Trevor PaughSystems engineer
Trevor PaughProject Chronicles

Chronicles / Helldivers 2 War Room

Feeds, setup, and a lesson about migrations

Progress

Servers subscribe channels to feeds through a /feed setup modal with a catalogue and bulk subscribe. Results wait for the outcome dispatch rather than guessing. A migration numbered 7403 taught the project to check what it was running.

The Terminid sigil. Each faction has its own mark on the cards.
The Terminid sigil. Each faction has its own mark on the cards.

Feeds

A feed is a channel’s subscription to a kind of event: new Major Orders, order results, planet liberated, planet lost, Steam news. The pieces, in the order they arrived:

  • An allowlist of servers that may subscribe. When it is unset, the bot refuses everyone, which is the safe default for a bot that was not meant to be public.
  • Results wait. An order’s result card is posted when the API’s outcome dispatch arrives, not when the deadline passes, so the bot never announces a win that was actually a loss on the last tick.
  • A catalogue and bulk subscribe, so a server can turn on every feed at once.
  • Region progress on front cards, once the API started exposing it.
  • Creator DM on disable. If a server removes the bot, or a channel disappears, the person who set it up gets a direct message saying which feed stopped and why.

The setup modal

Pull request 9 replaced the slash-command arguments with a modal: pick a channel, tick the feeds. A bug fix in the same PR re-checks that the channel still exists and that the bot can post there before saving, since a stale channel ID had produced silent failures.

Migration 7403

A database migration was applied with a number that did not match the file it came from, and the next deploy tried to apply it again. The fix was small; the lesson was recorded in the project’s notes: list the applied migrations before running any, every time. The README still has one stale line about this that the notes flag for cleanup.