Flagpost v1.1.0 — Live updates, targeted announcements & more
The first feature release since going public — driven almost entirely by issues filed against the platform in its first days.
Highlights
- Live updates across the site — a per-competition activity channel keeps dashboards, challenge cards, rosters, and analytics moving in real time, no refresh needed.
- Expanded announcements — urgency levels (info / warning / critical), audience targeting to specific teams or users, bell notifications, and a refreshed banner + notification centre.
- Public spectator insights — stat tiles, highlights, and a top-10 points-over-time timeline on the public scoreboard.
- Judge-question analytics cards — least solved, most attempted, most tickets, most first bloods, at a glance.
- Archived-competition retention — optional auto-delete after a configurable window (default 30 days), with structural protection for pre-existing archives.
- Personal challenge scratchpad — solo competitors get the live CRDT notes pad that was previously team-only.
- Richer scoreboard chart — per-bar labels and a detail tooltip on hover/focus.
- Plus sortable/searchable/paginated tables platform-wide, themed scrollbars, and a round of bug fixes.
Upgrading from v1.0.0: two additive DB migrations run automatically on start (docker compose up); no manual steps, no breaking changes.
What's Changed
🚀 Features
- feat(ui): reusable data-table — sort, search, pagination by @tbcsec in #28
- feat(ui): data-table rollout — scoreboard, users, roles, challenges by @tbcsec in #29
- feat(ui): themed scrollbars via design tokens by @tbcsec in #30
- feat(public): spectator insights + points timeline by @tbcsec in #35
- feat(realtime): live updates across the site — the activity room by @tbcsec in #36
- feat(analytics): judge-question insight cards by @tbcsec in #39
- feat(retention): archived-competition auto-delete by @tbcsec in #41
- feat(announcements): severity ladder, audience targeting + UI pass by @tbcsec in #44
- feat(collab): personal challenge scratchpad for individual mode by @tbcsec in #47
- feat(scoreboard): contextual top-10 chart — labels + detail tooltip by @tbcsec in #53
🐛 Bug Fixes
- fix(demo): first-blood announcement uses the lightning-bolt idiom by @tbcsec in #31
- fix(announcements): banner auto-dismisses after a 30s dwell by @tbcsec in #32
- fix(automations): resolve friendly template fields ({user_name}, {challenge_title}, …) by @tbcsec in #33
- fix(build): hoist the clock read out of render (unbreaks the image build) by @tbcsec in #43
- fix(shell): stop a long email pushing "Sign out" out of the sidebar by @tbcsec in #50
- fix(ui): dark-mode-correct, right-aligned date picker indicators by @tbcsec in #51
📦 Dependencies
🧹 Other Changes
- chore(demo): friendly-field seed showcase + simulator ticket/staff pacing by @tbcsec in #34
- ci: add a merge-result job that tests against current main by @tbcsec in #45
Full Changelog: v1.0.0...v1.1.0