1
0
Fork 0
Commit graph

225 commits

Author SHA1 Message Date
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
6bcd38aff6 feat(palette): add account and display quick actions
Add provisioning a personal bank account, toggling background texture and callsign display, and copying the page link; the layout now passes user preferences and personal-account state so the palette can hide or handle them.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-07 04:37:14 -04:00
c4a24483f6 feat(palette): add missing navigation entries
Cover transfers, projects, Friday Ops calendar, wiki, NPC personnel, awards, voiceover, and the training minigames.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-07 04:37:12 -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
db5745d458 fix(version): compose version+commit label when git describe is unavailable
Coolify builds have no git metadata, so fall back to <semver>+<commit sha> in both the version overlay and version-info generator instead of showing a bare version.

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
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
13f2132e25 feat(market): add economy reference prices and per-listing reset tool
Add getReferencePrices (modifier-applied NPC vendor price tip in CreateListingDialog) and resetEconomyState server action with a permission-gated 'Reset economy' button on listing cards for managers.

Ultraworked with [Sisyphus](https://github.com/code-yeongju/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 17:22:34 -04:00
56b8b9d320 feat(profile): add code, mark, and horizontal rule nodes to dossier editors
Register CodeNode/CodeHighlightNode, MarkNode, and HorizontalRuleNode in
the DossierExcerptEditors Lexical config so excerpts can use code blocks
with highlighting, inline marks, and divider rules.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 05:36:55 -04:00
33174572cc docs: refresh AGENTS.md guides
Update root and per-directory AGENTS.md files to reflect the current
state of the codebase: collection inventory, RBAC registry, base
management, personnel pages, training minigames, Discord bot transfer
and evaluation-reminder flows, banking currency config, migration
wrapper, and Playwright/Vivaldi e2e details.
2026-09-06 05:32:53 -04:00
55a03e8094 feat(wiki): add editor undo/redo, template dialog, highlighting, and formatting
- useEditorHistory: undo/redo stack over the textarea body
- WikiTemplateDialog: insert {{Template}} transclusions from the
  toolbar, with per-template {{param}} placeholder prompts
- WikiEditorHighlightLayer: mirrored overlay highlighting headings,
  directives, and template placeholders over the textarea
- editorHighlight.ts: tokenizer driving the overlay
- formatMarkdown.ts + createFormatUpdate: auto-format the document
- editorFormatting.ts: Tab/Shift+Tab indent/outdent, list
  continuation on Enter, inline bold/italic/code formatting, infobox
  snippet
- WikiEditor: editor and live preview side by side, preview renders
  template CSS/HTML via WikiPreparedBody
2026-09-06 05:32:51 -04:00
51f7c803e0 feat(wiki): add scoped template CSS and developer HTML templates
WikiTemplates gains two fields: an optional css code field injected on
pages that use the template (selectors auto-scoped to a hash-based
.ptf-tpl-* class so templates never collide with each other or the app
shell), and a developer-only html field rendered verbatim (sanitized)
in place of the markdown body when transcluded.

- templateCss.ts scopes/sanitizes CSS, incl. nested at-rules; pages
  and the editor live preview inject scoped styles and drop the Card
  chrome in favor of a full-width article
- templateHtml.ts sanitizes HTML and splits prepared markdown around
  expansion sentinels so raw HTML renders without rehype-raw
- templates.ts adds extractTemplateNames/extractPlaceholders/
  extractDirectiveNames; prepareMarkdown threads an htmlTemplates map
- markdown pipeline gains rehype-highlight for fenced code blocks
- styles.css adds wiki prose typography + infobox demo styling
- docs: demo article and Infobox template authoring guide
2026-09-06 05:32:48 -04:00
60da363a93 feat(profile): add rich-text dossier excerpt editors
Convert the dossier personal excerpt from a plain textarea to Lexical
rich text (matching the intel excerpt) with a 1000-character plain-text
limit, and replace the static read-only cards on the profile page with
inline DossierExcerptEditors: owners edit their personal excerpt,
profiles:intel_excerpt:update holders edit the intelligence record.
Changes are validated server-side (lexicalPlaintextLength) and emit
dossier:personal-excerpt-update / dossier:intel-excerpt-update events.
2026-09-06 05:32:23 -04:00
c37a848d66 refactor(nav): group minigame links into Exercises submenu
Collapse the four training minigame entries (Flight Simulator,
Minefield Clearance, Radio Traffic, Qualification Course) into a
single DropdownMenuSub under the user menu.
2026-09-06 05:32:04 -04:00
fb83250ff5 fix(sidebar): ignore toggle shortcut while typing in inputs
Skip the Cmd/Ctrl+B sidebar toggle when the event originates from a
TEXTAREA, INPUT, or contentEditable element so editor shortcuts work.
2026-09-06 05:32:04 -04:00
bcd6d97ff4 refactor(market): pass currency config through negotiation panel
Renders negotiation amounts from the full CurrencyConfig, matching the other market components.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 01:24:21 -04:00
0f7d3a57e3 feat(personnel): add npc contacts directory and statistics pages
Adds a Personnel nav group with Contacts (searchable NPC directory with profile pages showing listings and employment) and Statistics pages; moves Wiki under Intelligence and checks off the corresponding TODO item.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 01:24:14 -04:00
9e44b69714 feat(base): add structure staffing and upgrade management UI
Adds hire/terminate staff actions and an upgradeStructure server action plus baseManagement components (employment card, hire dialog, staff roster, upgrade card) wired into the structure detail page.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 01:24:14 -04:00
06dbf5b796 feat(admin): add collapsible group field
Wraps Payload's group field in a Collapsible so long groups (e.g. profile minigames) can start collapsed in the admin panel; refreshes the import map.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 01:24:11 -04:00
80ec3a0386 refactor(market): pass currency config through market UI
Market listings, offer dialogs, negotiation panels, and history now render prices from the full CurrencyConfig (symbol + singular/plural) instead of a nullable currency label string.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 01:23:57 -04:00
52ecc4f3b6 refactor(banking): pass currency config through banking UI
Banking overview, cards, detail, and activity feed now render amounts from the full CurrencyConfig (symbol + singular/plural) fetched from Game Rules instead of a plain currency label.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-06 01:23:57 -04:00
5430c02fbc fix(wiki): update placeholder text and improve clarity in wiki editor and standards dialog 2026-09-05 02:07:35 -04:00
28ced660c0 feat(wiki): add wiki navigation and styles
Extract the static sidebar nav data into sidebarData.ts and add a Wiki
entry (BookOpen) to the main nav. Adds scoped markdown styles
(columns, footnotes, note/warning callouts) under .wiki-markdown.
2026-09-05 00:02:20 -04:00
1dac6a0f9a feat(wiki): add wiki UI components
Frontend components for the wiki: content renderer (WikiContent),
editor with live preview and formatting toolbar (WikiEditor,
WikiEditorBody, WikiEditorToolbar, WikiLinkDialog, MarkdownGuide),
index/browse (WikiIndex, WikiStandardsDialog), page toolbar with
lock/delete/history (WikiToolbar, LockdownBanner), and revision history
(RevisionList).
2026-09-05 00:02:09 -04:00
72715c42a4 fix(leaderboards): match active players by user id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphus.ai>
2026-09-04 12:04:44 -04:00
dd2c868c89 fix(qualification): expose updated aim trainer leaderboard data
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphus.ai>
2026-09-04 12:04:44 -04:00