Skip to content

Flagpost v1.1.0 — Live updates, targeted announcements & more

Choose a tag to compare

@tbcsec tbcsec released this 26 Jul 11:41
· 101 commits to main since this release
96e1eb4

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

  • chore(deps): eslint-config-next 16 — native flat config, drop FlatCompat by @tbcsec in #37

🧹 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