167ac22990
fix(radio): floor unlock-progress readout so it never overstates the threshold
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-09 00:03:36 -04:00
911fc31354
feat(minigames): hide UGC entry buttons until custom content unlocks
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-09 00:03:29 -04:00
25975db23f
refactor(minigames): move routes, components, and libs under minigames parents
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-09 00:02:59 -04:00
455d705eb9
feat(minigames): add UnlockNotice and wire into EOD and radio arenas
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-08 22:38:38 -04:00
bf491fc9cd
feat(eod): add author exposure toggle and reduced-XP copy to custom play
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-08 15:57:01 -04:00
6d4b5ad297
feat(eod): restrict custom loss reveal and add question-mark fog to hidden cells
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-08 15:57:01 -04:00
1cf11745fe
feat(radio): add custom radio test 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
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
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
c8c0267d54
feat(opord): soften fairness copy to a polite ask
2026-09-08 12:18:43 -04:00
e52a637f96
feat(minigames): Esc/R reset keybind with hint text for OPORD Recall
2026-09-08 12:13:45 -04:00
5bde9707a3
feat(minigames): fairness note between briefing banner and OPORD canvas
2026-09-08 12:09:11 -04:00
3fefb8b4a3
feat(minigames): tier-scaled briefings with relational questions for OPORD Recall
2026-09-08 11:58:15 -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
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
b64f4b26f4
fix(intelligence): contain friday ops rows on mobile and credit side op hosts
2026-09-08 01:31:01 -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
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
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
227885daf7
feat(missions): let side op creators mark their op as Ready
...
Adds a 'Mark as Ready' control on the mission detail page (owner or missions:update gated) plus the markSideOpReady server action. Status-gated to Concept/Planning/Scheduled; emits a mission:ready event. Stops the daily ready-reminders and lets missionEmbeds post the roll-call.
2026-09-07 05:07:48 -04:00
ffb2c2c5d9
feat(missions): show op host on side op cards and mission pages
...
Side ops now credit their creator: mission cards get a 'Hosted by X' meta entry and the mission detail page gets a Host chip. Display name preferred over username; only shown for side ops with a populated createdBy.
2026-09-07 05:07:43 -04:00
1b422ba1c2
feat(voiceover): collect take descriptions and surface reviewer feedback
...
Submitters can attach an optional 300-char note to each take, and their own takes list now shows the description plus the reviewer feedback that was previously admin-only.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-07 04:37:08 -04:00
a2a5f7877b
style: remove em-dashes from user-visible prose (wave 1)
2026-09-07 01:34:28 -04:00
d9d0f8f7ae
feat(voiceover): add reading guidance panel to the teleprompter
2026-09-07 00:52:26 -04:00
db73170da1
feat(missions): schedule Friday side ops in the unit timezone
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-07 00:34:35 -04:00
892587c3ba
feat(nav): add Friday Ops calendar entry and truncate level label in mini mode
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 23:29:55 -04:00
03f699d852
feat(missions): add Friday Ops calendar page and side-op dialog UI
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 23:29:54 -04:00
4f4e2b136f
feat(missions): make campaign optional and track side-op creators
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 23:29:48 -04:00
420bd1f411
fix(qualification): reset lane on restart and show whole-second countdown
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 17:46:44 -04:00
9f35dc7ddd
fix(nav): remove duplicated qualification course menu item
2026-09-06 17:24:50 -04:00
3bc689d572
refactor(nav): flatten sidebar sections into direct links
...
Replace nested section submenus in Intelligence, Infrastructure, and Personnel with flat per-page links carrying icons; drop the defensive item copying in AppSidebar.
Ultraworked with [Sisyphus](https://github.com/code-yeongju/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 17:23:03 -04:00
28250550ab
feat(wiki): add rendered template preview to template dialog
...
Template dialog gains a rendered preview (markdown pipeline + scoped template CSS + HTML templates) alongside the existing source preview, with Rendered/Markdown toggle; editor threads the template maps through.
Ultraworked with [Sisyphus](https://github.com/code-yeongju/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 17:23:03 -04:00
44b78ba7d9
feat(voiceover): add submission pages, recorder UI, and server actions
...
Add /voiceover script list and take detail pages, teleprompter reader, voice capture/recorder components, submission server actions with a 9 MB audio cap, and a Contribute > Voiceover entry in the user menu.
Ultraworked with [Sisyphus](https://github.com/code-yeongju/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 17:23:03 -04:00