Released September 16, 2026

TroopPlanner v0.54.0

← All releases

Twenty-seven changes and ten database migrations. One fixes a failure a troop leader hit editing an announcement on September 5. One makes per-troop backups run reliably again. One corrects 86 merit badge requirement rows the last release got wrong.

What's new on the site

Email and newsletters

  • Editing an announcement in the newsletter editor saves again. Saving an inline edit showed an error instead of the saved item. This happened to a real edit on September 5. The save handed the announcement to the page under the wrong name, so the page had nothing to draw. Fixed.
  • Retry Send actually sends. The last release added a Retry Send button on a failed broadcast. Verification found that a failed broadcast could not be claimed for sending, so the button did nothing. It now works.
  • The recipient chips picker works from the keyboard. The click-to-add group chips from the last release could not be reached with Tab and Enter. They can now.

Advancement and merit badges

  • The 86 mis-split requirement rows are corrected. The last release split "Do ONE of the following" requirements into separate rows but stopped after the fifth option and numbered some options 51, 81 instead of 5a, 8a. The splitter is rebuilt around one rule — split wherever the BSA book gives a sub-item its own number — and every affected row is regenerated from the saved original text. About 196 rows become roughly 896 separately signable rows across 60 badges. Aviation requirement 2 gains 2f and 2g; Athletics 51–59 become 5a–5i. Every sign-off a counselor already gave stays attached to the same option text. A permanent check now fails the build if any row is left holding an unsplit option.

Events, finance and campouts

  • A fee line can no longer be stranded. A fee that was charged, refunded, then hand-set back to Paid offered only a Refund button, which errored with "Nothing to refund" — the line had no working control at all, and any refunded line could be walked into that dead end in two clicks. Each button is now decided by the same rule the money code enforces. The cycle button always shows, so no line is ever stuck; Refund shows in addition while the line actually holds money. A genuinely charged Paid line shows Refund and Mark Not required side by side.
  • Patrol cards on the Phase 3 formation board can be reordered. Cards always rendered alphabetically. Each card's name bar now has a ⠿ handle: drag one onto another to swap them, or tap one then the other. The order lives in your browser for the current visit; "Reset to default patrols" puts everything back to alphabetical.
  • The New Campout button is retired. There were two ways to start a campout — a button on the Campouts page and an ordinary event with type Campout. The event is now the only way in. The Campouts page empty state reads "No upcoming campouts scheduled. Add an event with type Campout to start planning one."
  • Marking attendance for a member who is no longer there returned a server error. It now returns a plain "not found".

Scouts and families

  • Patrols get a flag image. Alongside the existing patch image, the patrol detail and edit pages now offer a Flag Image upload. This was a half-built field left in the database; twelve other dead columns were dropped in the same cleanup.

The site overall

  • No more double scrollbar during a demo session or a backup restore. The banner at the top did not subtract its own height from the space below, so the whole page grew a second scrollbar around the sidebar and content. Only the sidebar and the main area scroll now, as on any normal page.

Behind the scenes

Nothing here changes what you see on the site.

  • Each module now has a platform setting, an operator setting and a troop preference, and appears only when all three allow it. On release day nothing changed for any troop: the migration copied each troop's current setting into its preference. A troop whose module the operator has turned off now sees a grayed-out toggle reading "Turned off by the platform operator."
  • Per-troop backups run reliably again.