52328da8f9
feat(eod): add custom minefield authoring, play, and leaderboard
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-08 14:41:18 -04:00
5b4842943e
feat(minigames): extract shared custom-minigame validation and unlock libs
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-08 14:41:18 -04:00
1f99e34c0d
feat(minigames): add custom minefield and radio test collections with permissions, events, and migration
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-08 14:41:18 -04:00
0143c235bc
docs: add conventional commit prefix rules to AGENTS.md
2026-09-08 13:16:16 -04:00
2c8e305ff5
v0.2.22 - add OPORD Recall briefing-recall minigame, add Chronicle story beats
2026-09-08 13:09:02 -04:00
251bb0506f
docs(opord): rename veteran tier detail to extended order
2026-09-08 13:06:00 -04:00
8439dd7e17
docs(opord): drop the linking-question examples from the protocol card
2026-09-08 13:04:43 -04:00
baa1863c2f
docs(opord): reframe protocol card copy around game mechanics
2026-09-08 13:03:43 -04:00
840bc27646
feat(opord): add draining timer bar to the 2s unlock countdown
2026-09-08 13:02:28 -04:00
246a5796f8
feat(opord): lock answering behind a 2s countdown per question
2026-09-08 13:00:43 -04:00
50b9b7e46c
feat(opord): add garrison, ROE, intel, and secondary objectives with tier scaling
2026-09-08 12:53:36 -04:00
d8ee14ee8d
feat(opord): dynamic abort contingency with six options
2026-09-08 12:39:57 -04:00
53dec0b127
fix(opord): wrap quiz option button text instead of overflowing
2026-09-08 12:35:25 -04:00
0996b9b7c2
feat(opord): scale tiers to 10/15/20 questions with expanded briefings
2026-09-08 12:34:37 -04:00
987250b60a
docs: restrict release version bumps and tags to main deploys
2026-09-08 12:18:43 -04:00
c8c0267d54
feat(opord): soften fairness copy to a polite ask
2026-09-08 12:18:43 -04:00
8206ee2303
v0.2.21 - Esc/R reset keybind for OPORD Recall
2026-09-08 12:13:49 -04:00
e52a637f96
feat(minigames): Esc/R reset keybind with hint text for OPORD Recall
2026-09-08 12:13:45 -04:00
494b60db3b
v0.2.20 - fairness note on OPORD briefing
2026-09-08 12:09:15 -04:00
5bde9707a3
feat(minigames): fairness note between briefing banner and OPORD canvas
2026-09-08 12:09:11 -04:00
bf5468e461
v0.2.19 - Arma-style grid format for OPORD Recall
2026-09-08 12:04:59 -04:00
4594912325
feat(minigames): format OPORD Recall grids Arma style as 034-672
2026-09-08 12:04:51 -04:00
3daa7a3601
v0.2.18 - tier-scaled OPORD briefings with relational questions
2026-09-08 11:58:38 -04:00
3fefb8b4a3
feat(minigames): tier-scaled briefings with relational questions for OPORD Recall
2026-09-08 11:58:15 -04:00
b2bdbb9ea6
v0.2.17 - OPORD Recall anti-cheat
2026-09-08 11:46:58 -04:00
95663924ea
feat(minigames): anti-cheat pass for OPORD Recall
...
- briefing is now self-paced (player clicks Begin recall; no memo countdown)
- recall quiz has a hard server-validated time band per tier (45/60/75s limits, minimum plausible human time, 2.5s grace); scripted instant or over-limit submissions are rejected
- briefing is rendered on canvas: no selectable text in the DOM, copy/cut/context-menu/ctrl-a-c-x-s-p blocked; screenshots remain possible but burn quiz time
- ?seed=<n> URL param pins a deterministic scenario (no server meaning; used by the e2e spec to know the grid)
- e2e spec updated for the new flow and asserts no grid text leaks into the DOM
2026-09-08 11:46:53 -04:00
225434d8fc
v0.2.16 - add OPORD Recall minigame
2026-09-08 11:26:44 -04:00
eaa0325b6d
feat(minigames): add OPORD Recall briefing-recall minigame
...
- seeded OPORD generator (grid, azimuth, H-HOUR, phase lines, codewords, callsign, frequency) in pure lib src/lib/opord-recall.ts with per-tier memo windows (25/18/12s) and quiz sizes (4/6/8)
- server action submitOpordRecallResult validates input, recomputes score server-side, persists to Profiles progression.minigames.opordRecall, broadcasts XP, emits minigame:opord-recall event
- UI at /opord: briefing countdown, one-at-a-time quiz, debrief metres, tier radio group, SSE presence, REST leaderboard per tier
- profiles migration 20260908_152021 (7 additive columns) + XP hook wiring
- nav entries in command palette and NavUser Exercises submenu
- e2e spec plays a full round and asserts debrief + leaderboard row
2026-09-08 11:26:18 -04:00
caca11a60b
feat(story): add Chronicle story beats system with reader states and reactions
2026-09-08 01:32:59 -04:00
bf5c53249a
v0.2.9 - mobile mission detail fixes, friday ops overflow and host credit
2026-09-08 01:31:12 -04:00
b64f4b26f4
fix(intelligence): contain friday ops rows on mobile and credit side op hosts
2026-09-08 01:31:01 -04:00
de3db4bd09
fix(missions): stack hero content in flow on mobile and move attendance above details on small screens
2026-09-08 01:31:00 -04:00
dcc308c2ae
v0.2.8 - dash sanitization sweep across user-facing UI, admin, and bot text
2026-09-07 05:20:04 -04:00
949459647d
style(roster): use hyphen in the A-Z roster tab label
2026-09-07 05:19:53 -04:00
9f80361d14
style(projects): replace dash separator in sprint date ranges
2026-09-07 05:19:53 -04:00
eb3dc0231c
style(locker): replace dash placeholder for grid footprint
2026-09-07 05:19:53 -04:00
5f5072399b
style(helpdesk): replace dash placeholder for missing ticket dates
2026-09-07 05:19:53 -04:00
d485a82fa6
style(minigames): replace dashes in leaderboard and radio UI
2026-09-07 05:19:53 -04:00
12b19b3d6a
style(banking): replace dash placeholders in activity feed and timestamps
2026-09-07 05:19:53 -04:00
a8d1a8870e
style(collections): replace dashes in admin field descriptions
2026-09-07 05:19:50 -04:00
8ee02faa59
style(bot): replace dashes in embed and reminder fallback text
2026-09-07 05:19:50 -04:00
a399f3feab
style(profile): replace dash placeholders in profile stats table
2026-09-07 05:19:50 -04:00
da9ea23271
style(logistics): replace dash placeholder on vehicle grid dimensions
2026-09-07 05:19:50 -04:00
a4ea3ea387
style(intelligence): replace dashes with ASCII in mission and campaign views
2026-09-07 05:19:48 -04:00
47d338c868
style(events): replace dashes with ASCII in event log UI
2026-09-07 05:19:48 -04:00
cdfd5c4278
docs(agents): document the no-dash rule and pre-release dash gate
2026-09-07 05:19:48 -04:00
ccfdc3b46e
v0.2.7 - side op host credit, daily ready-check reminders with DMs, mark-as-Ready control, global event log page, sidebar regrouping, storage permission split
2026-09-07 05:07:55 -04:00
dcb4893b10
feat(storage): split storage permissions and rework manage-storage UI
...
Deposits/withdrawals of stock (economy-mutating) are now superuser-only, while moving items around (transfer/place/collect) stays open to logistics-qualified users; seed roles updated to match. ManageStorageDialog reworked alongside its toolbar/button/view wrappers, and the structure page wires up the new permission split.
2026-09-07 05:07:53 -04:00
91dc48ad2c
refactor(sidebar): group logistics nav into Assets/Operations/Personnel sections
...
Logistics entries are collapsed into collapsible groups, Personnel moves from its own sidebar section into Logistics, and an Event Log entry is added to Intelligence.
2026-09-07 05:07:51 -04:00
29f7e2b57a
feat(events): add global event log page
...
New /events page rendering the full game event ledger (system + narrative events) with type/target/source/date filtering, backed by a shared shadcn table component.
2026-09-07 05:07:51 -04:00