Skip to content

Feeds: every card goes back to how it was except Reddit and Pinterest; team-only actions are no longer slash commands - #401

Merged
liamt8d merged 3 commits into
mainfrom
fix/feeds-and-team-commands
Nov 2, 2026
Merged

liamt8d merged 3 commits into
mainfrom
fix/feeds-and-team-commands

Conversation

@liamt8d

@liamt8d liamt8d commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

No version change (0.7.9-3 stays; the CHANGELOG lines of 0.7.9-3 about feeds are corrected, so the GitHub release notes follow). Run node deploy-commands.js after deploying: it removes the team-only actions from Discord's / menu. No database change.

1. The feed cards that were changed by mistake go back to how they were

The feeds work of PR #398 applied the new card beyond what was asked: Pokémon, Wikipedia and chess got a clean card (no platform icon, no source, no button), and Bluesky, Mastodon, Tumblr, Letterboxd and RSS got the Reddit layout. Only Reddit and Pinterest were meant to change, and the animal and picture feeds were meant to show just the picture.

  • Restored, identical to the code before that PR (11839b3): Pokémon, Wikipedia, chess.com, Epic, random music, AniList, Bluesky, Mastodon, Tumblr, Letterboxd and RSS, with their platform icon, their old layout and their old button; YouTube, Twitch, Kick, GitHub, npm, PyPI, Steam, Modrinth and the music platforms were checked and are unchanged.
  • Kept, as asked: the Reddit and Pinterest image-first cards; the animal feeds, the pictures feed and !animal / /game cat|dog|fox with only the picture; the default line only for the creator platforms (the ANNOUNCES table is unchanged); and the Pinterest/engine bug fixes (dateless items, ghost pins, seen marked before sending, cap of 3 per pass, picture fallback, /feed test).
  • Proof: scripts/check-feeds.js now compares the cards of the restored platforms with what the old builder produced: 162 cases (32 fixed items in three languages, with and without the server's own text and with image, button and color options off) stored in scripts/fixtures/feed-cards-old.json; all match exactly. The one deliberate difference is AniList, which had a default line before and has none now.
  • The notes are corrected (CHANGELOG.md [0.7.9-3], src/i18n/releases/en.js, es.js, pt-BR.js): only Reddit and Pinterest have the new card.

2. Team-only actions are no longer slash commands

Several owner and team actions were visible in the / menu to everybody (and refused at runtime). Now they are prefix-only, hidden and silent for anyone outside the team:

Old slash path Now
/bot premium grant|assign|unassign|revoke !premiumadmin ... (owner only; the old !premium grant ... words still work)
/channel create !channel create
/automod control !am <token> [stats|sync]
/guilddebug info|send|dm-owner !guilddebug ... (no longer registered anywhere)

/premium and /bot premium keep only status. A new check, scripts/check-team-not-slash.js (last step of check), fails if a team-only command or leaf appears in anything registered with Discord, including through umbrellas, and scans the slash commands' sources for team gates; it fails on the old state. !team is better: grouped by area, paged, !team <command> shows one tool in detail (usage, examples, dangers, old words, "Slash command: No") and tells whether petto <word> works; it is still silent for everybody outside the team. Registered commands: 67 before and after; leaves 967 before, 957 after.

Checks

npm run check passes in an empty environment (as in GitHub) and npm run types:check passes. Not verified without real Discord: how the restored cards look and the / menu after node deploy-commands.js.

…er platform gets its old card back

Reddit and Pinterest keep the image-first card, the animal and pictures feeds
and /animal keep showing only the picture, and the default words still follow
the creator table. Pokemon, Wikipedia, Chess.com, Epic, music, AniList, Bluesky,
Mastodon, Tumblr, Letterboxd and RSS draw the card they had before: platform
icon, title, footer and button. The checks compare those cards with the ones the
previous code built (scripts/fixtures/feed-cards-old.json). The release notes
say only what really changed.

Signed-off-by: Liamt8dd <juliancamilparratrujillo@gmail.com>
…ols, and a clearer !team

The owner and team actions were listed in the `/` menu of every server and only
refused at runtime: /bot premium grant|assign|unassign|revoke, /channel create,
/automod control and /guilddebug (registered in one private server). They are
removed from everything that is registered with Discord and kept, with the same
behavior, as hidden prefix-only tools with the silent rule of the other team
tools (for anybody outside the team they are not commands: no reply, no typing,
no "unknown command", not in !help, the autocomplete, the suggestions or the
catalogs):

- !premiumadmin grant|assign|unassign|revoke: owner only (a developer gets no
  answer). The old words keep working: !premium grant ... (also !prem, !pg,
  !pas, !pu, !prev, !bpg...) reach it. /premium and /bot premium keep `status`.
- !channel create and !am <token>: `prefixOnlySubcommands` takes them out of the
  slash JSON (and out of the umbrellas that wrap the command) while the prefix
  keeps reading them; `!channel create` still refuses non-team with its message.
- !guilddebug info|send|dm-owner: prefix only, no private-server registration,
  still only in the diagnostics server (the channel of `send` is --channel <id>).

The registered chat commands stay 67 and the private-server registration is
gone; run deploy-commands.js after deploying so Discord forgets the old ones.

!team groups the tools by area, pages them with the usual buttons, shows one
tool in detail with !team <command> (usage, examples, what it answers, dangers,
who can use it, its old words) and whether `petto <word>` works too, says that
none of them is a slash command, and is still generated from the metadata of the
commands, answering only the team.

scripts/check-team-not-slash.js is a new guard at the end of `check`: an
explicit list of team-only commands and actions that must never be registered,
the flags of a team tool on a registered command, and a scan of the sources of
every registered (and umbrella-wrapped) command for team gates that are not
allowed with a written reason; it also proves it reports the old state.

Signed-off-by: Liamt8dd <juliancamilparratrujillo@gmail.com>
…ithout the bot's environment

Signed-off-by: Liamt8dd <juliancamilparratrujillo@gmail.com>
@liamt8d
liamt8d merged commit 9dec700 into main Nov 2, 2026
4 checks passed
@liamt8d
liamt8d deleted the fix/feeds-and-team-commands branch November 2, 2026 03:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant