1
0
Fork 0
Commit graph

589 commits

Author SHA1 Message Date
2691bb05ec feat(poker): real chip piles on every seat's bet, the pot, and the console readout
Co-authored-by: Sisyphus <sisyphus@ohmyopencode.dev>
2026-09-14 23:02:13 -04:00
f81d978f88 feat(chips): sm size variant for chip piles on dense felt surfaces
Co-authored-by: Sisyphus <sisyphus@ohmyopencode.dev>
2026-09-14 23:00:54 -04:00
169f938b05 feat(poker): chip-flight animation between pot and viewer on hand settle
Co-authored-by: Sisyphus <sisyphus@ohmyopencode.dev>
2026-09-14 19:26:30 -04:00
0ddc090acb fix(poker): top-anchor activity log below the turn clock, cap visible lines
Co-authored-by: Sisyphus <sisyphus@ohmyopencode.dev>
2026-09-14 19:25:43 -04:00
df90a34c99 feat(poker): move action toolbar below the felt on narrow screens
Co-authored-by: Sisyphus <sisyphus@ohmyopencode.dev>
2026-09-14 19:25:34 -04:00
90070abb2e feat(poker): contain-fit 4:3 felt sizing and fullscreen portal parity with blackjack
Co-authored-by: Sisyphus <sisyphus@ohmyopencode.dev>
2026-09-14 19:24:59 -04:00
c4b19bf8e5 fix(blackjack): multiplayer seat overlaps, log above time bar, mobile toolbar clipping
Seat commit pill renders in the panel row (was painting over the bankroll on poker-shared absolute offsets), cardless hand reveals no longer render, corner-seat reveals shift outward clear of the dealer block, the action log tops out below the time bar, and on 640px-and-narrower screens the toolbar renders below the felt in flow instead of clipped inside it. Ships the v0.2.38 changelog entry.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 19:17:26 -04:00
4583596903 feat(chips): felt, chip, and popup styles plus win sound asset
Felt table, chip stack, delta popup, spinner, and flash styles for the card minigames; chaching.mp3 win sound.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:38:49 -04:00
17f3cc6f47 feat(profile): promote action and blackjack stats in profile XP
Server action pairing the GM promote button with the promotion service, plus the blackjack minigame stats block counted into profile XP totals.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:38:49 -04:00
77034a8e67 refactor(missions): render comms body with lexical-content class
Replaces inline prose utility stack with the shared lexical-content class from the rich text editor work.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:38:49 -04:00
4d9edb3dbe feat(chips): credit chip bank from non-card minigame XP
Each minigame action credits chipBank with chipsForXp on profile update, feeding the card-game buy-in pool.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:38:26 -04:00
be1e120727 chore(generated): regenerate types and import map, register migrations
Generated artifacts mirror the new collections and fields across the previous commits; the migration registry registers all four new migrations as one batch, matching the dev migrate flow.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:38:13 -04:00
a2ab066645 chore(infra): static AI compose prompts, sync-prod refresh, and deps
Payload config seeds AI Compose instructions statically so wiped prompt tables rebuild without LLM calls; sync-prod pairs with that per the config comment. Adds lexical deps and changelog entries.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:38:13 -04:00
67971dd7e6 feat(chips): persistent chip pool economy with shared balance card
Chip service and actions, fixed ChipBankCard with delta popup, sounds, spinner, and arena integration; chip bank migration and tests. Arena diffs are the chip-card mounts and join/leave spinner dispatches.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:38:05 -04:00
474aff734d feat(blackjack): add blackjack minigame with realtime table wiring
Engine, felt, controls, sounds, card skins, and dev popups; SSE events in the realtime hook, nav and command palette entries, stats migration, and the six blackjack test suites.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:38:05 -04:00
34dcefec54 feat(poker): felt UI popups, named table display, and dev controls
Table components, popup system, dev panel, and the actions/page wiring, with popup, table, and dev-control tests.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:37:19 -04:00
c5defa9e70 feat(poker): engine upgrades, named tables, and stat extensions
Poker lib layer: engine, tables, stats, hand setup, shared table names, with engine tests.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:37:19 -04:00
4d08122464 feat(voiceover): spoiler gate, pacing pattern, and recorder updates
Recorder and pages gain a spoiler gate; voiceover lib adds clause-pause pacing support.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:37:12 -04:00
982c33f4f3 feat(missions): lexical rich text editing, side-op narrative fields, briefing updates
Editor, toolbar, and button components with the lib they share, consumed by the mission briefing section and side-op dialogs.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:37:12 -04:00
7ad9320c02 feat(respawn-tickets): settle attendance-based respawn tickets per mission
Tickets collection, settlement service, arma-bridge API route, one-shot ticketsSettledAt marker on missions, migration, and tests.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:37:05 -04:00
8d92e7aaa9 feat(promotions): add rank promotion ceiling with GM promote flow
Promotion service lib, ceiling field on Ranks, permission gate, migration, and GM promote button with tests.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:37:05 -04:00
8c3dbdbc98 chore(events): extend event and notification registries for new features
Additive event types (blackjack, personnel promotion, respawn tickets) and the promotion notification label consumed by the following feature commits.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-14 15:36:58 -04:00
f1da86ae81 feat(bot): cancel roll-calls and announce rescheduled ops
- Cancelled ops: roll-call embed edited to the cancelled state (buttons
  removed) plus a standalone cancellation notice in the ops channel;
  clears the roll-call markers and sets the new discordCancelledAt
  marker on the mission.
- Rescheduled ops (Cancelled back to Ready/Scheduled, future start):
  immediate announcement embed with the new start time and when the
  fresh roll-call goes up (usual 3-day lead, or live-in-channel when
  already due), then clears the marker so the normal flow posts a new
  roll-call. Prior RSVPs carry over.
- Hidden bot-managed discordCancelledAt field on Missions + migration.
- Bot embed poll loop handles both transitions idempotently.
2026-09-12 19:30:22 -04:00
076a631fe8 feat(poker): drop the center suit glyph from mini cards
Mini-sized cards show the rank and corner suit only, keeping the guide's example rows quiet at small sizes.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 17:30:11 -04:00
8634c17ff2 feat(poker): rework the guide ranking table into tier columns
Rankings flow down the left column then the right with muted chevrons in the gaps marking the order, the text and example cards sit in their own centered columns, and each row wears its ladder tier.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 17:30:11 -04:00
1b0e4ed074 feat(poker): grade hand ranks on a progressive style ladder
Every made hand maps to a presentation tier from high card (no styling) through brass, silver, and gold pairs to a sapphire straight flush and a royal flush prismatic treatment. The live hand hint carries the tier, so the you-have placard glows with your hand's rank, and royals now read as royal flush.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 17:30:03 -04:00
19113e39c9 feat(awards): add award advancement series
Awards can now upgrade through a series: collection fields and migration, grant flow support, profile and account UI updates, and regression coverage.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 17:07:37 -04:00
71e9f3e9e0 fix(poker): keep the lobby list stable across background polls
Background polls no longer flip the lobby into its scanning state, so the empty window and table rows stop blinking every three seconds; the refresh spinner is reserved for manual refreshes and the error line only clears on a successful load.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 17:07:37 -04:00
16a44d3fc5 feat(poker): redesign felt as diegetic oval with toolbar and viewer cards
The table becomes a full oval racetrack with a center deck and pot plaque, perimeter seats as compact pills with stack-first readouts that flash on change, betting actions mounted on the felt near the viewer, your own cards dealt onto the bottom rail at community-card size, directional popups, and gated start and waiting-room polish.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 17:07:28 -04:00
e9e89929f9 feat(poker): add floating action popups with staggered blind intro
Snapshot diffs surface fold, check, bet, call, raise, all-in, and pot-win text over each seat, leavers announce centrally, and new hands open with a small-blind then big-blind sequence before the first real turn. Popups fire exactly once per event with reduced-motion fallbacks.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 17:07:20 -04:00
56e3d253c9 feat(poker): add synthesized sfx and generative background jazz
Web audio synth with zero audio assets: deal whooshes, chip clacks, turn chimes, showdown and win stingers, plus a lazy 92bpm jazz loop. Transitions drive playback from pure snapshot mappers with staggered delays for the blind sequence, a header mute and volume toggle persists, and everything no-ops safely without audio support.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 17:07:12 -04:00
9b2b0db553 feat(poker): add card skin toggle with light, dark, and classic svg decks
Faces render white with dark ink by default, the previous dark theme cards remain one toggle away, and the classic deck draws the svg assets from public/images/assets/playing-cards. The choice persists per browser.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 17:07:05 -04:00
f7bb8f1e9f feat(poker): mark leavers immediately and auto-end when one player remains
Leavers now flip a left flag on the very next snapshot, the felt announces who left, and a game left with a single seated player resolves at once with a bell notification instead of waiting out the hand timer.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 17:06:57 -04:00
117de8ecee feat(poker): pause placement XP behind POKER_XP_ENABLED switch
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 12:57:34 -04:00
7bf14544d1 chore(db): register new migrations and regenerate payload types
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:26:27 -04:00
c7894cb664 fix(roster): order rank groups by Payload _order index
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:26:27 -04:00
7090ebc253 fix(missions): guard object-typed campaign relation in list filter
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:26:27 -04:00
bce910fa1c fix(campaigns): wrap campaign cards evenly with flex layout
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:26:27 -04:00
a843a85656 fix(banking): keep activity tabs list stretched in flex column
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:26:27 -04:00
f90d9348e7 fix(intel): require write permissions for wiki moderation qualification
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:25:59 -04:00
6169bf6ce6 feat(awards): add ribbon design studio, review queue and submission UI
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:25:59 -04:00
ac822f259c feat(awards): add ribbon submissions collection, design validation and migration
Also scopes the MCP plugin to explicit per-collection eligibility (mcpCollections).

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:25:59 -04:00
b477103522 feat(poker): add poker stats to profiles with migration
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:25:43 -04:00
1fb0165c12 feat(poker): add sit-and-go tables UI, felt styles, realtime events and navigation
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:25:43 -04:00
6968ee0abc feat(poker): add poker engine, evaluation and stats libs with tests
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:25:43 -04:00
91a3a38831 chore(events): add poker and ribbon event constants and notification labels
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:25:21 -04:00
cbbf1816f6 chore(events): add ribbon-submissions to event log targets
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:25:21 -04:00
2406df82dd feat(qualification): draw configurable crosshair on the aim trainer canvas
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:25:21 -04:00
51f9d57aaa feat(qualification): add crosshair preferences module and settings popover
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-11 03:25:21 -04:00
0125cd6d4d docs(bot): note the modal channel picker and announce default
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-10 23:58:08 -04:00
ecdbcbd15b feat(bot): pick the target channel inside the announce modal
- The compose modal gains an optional channel select (text and
  announcement channels), preselected with the configured default
- /announce now posts only to the announce channel by default: the ops
  fallback is gone, so an unconfigured announce channel errors instead
  of silently posting to ops
- Roll call was already ops-only and is unchanged

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-10 23:58:03 -04:00
cb62a2f1b7 docs(bot): document the announce modal composer
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-10 21:33:59 -04:00
bfffb5fdd3 feat(bot): compose announcements in a paste-friendly modal
- /announce with no message opens a modal: optional title field plus a
  4000-char paragraph body for multi-line markdown
- Target channel rides in the modal customId; staff is re-checked on
  submit and the post goes out as the same amber Announcement embed
- Inline message flow unchanged; modal submits route under ptf-announce:

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-10 21:33:55 -04:00
09ed08caf3 fix(dashboard): make stretched cards fill cells and truncate instead of overflowing
- Widget wrappers use flex-1 with a min-w-0 chain so cards stay at their
  grid-cell width instead of shrinking to content or overflowing it
- ItemContent gains min-w-0 so nowrap text ellipsizes inside the card
  (notifications, campaigns, tickets) rather than clipping at the viewport
- Stretched Service Summary and Mission Briefing top-pack their content;
  Mission Briefing header flips between Next Mission and Last Mission
2026-09-10 20:03:39 -04:00
f0af778713 feat(dashboard): customizable dashboard with personal widgets
- Drag-and-drop widget arrangement (main two-column zone + sidebar) with
  per-widget span resize, persisted to Users.preferences.dashboard.layout
  via saveDashboardLayout (migration included)
- New personal widgets: Wallet, Open Negotiations, My Tickets (View all),
  Recent Notifications (per-row mark as read)
- Widgets that are empty or not visible to the viewer are omitted so they
  never render as empty drag targets
- Registers both pending migrations and regenerates payload types/schema
2026-09-10 20:03:27 -04:00
365e8561ec feat(campaigns): extract CampaignsList with hide-completed toggle
The campaigns page now renders a client-side CampaignsList that keeps the
official/community sections and adds a hide-completed switch.
2026-09-10 20:03:16 -04:00
7180b0aa4c feat(missions): make code name optional, add UGC cover images
- Missions.codeName is now optional (still unique when set); migration included
- Campaign and side-op dialogs accept an optional cover image (uploadUgcImage)
- Reminder toasts, evaluation aggregates, calendar, cards and mission headers
  handle a null code name
- Mission read filter no longer hides drafts by status; visibility follows
  ownershipAndStatus.visibility only
2026-09-10 20:02:47 -04:00
f781e53dc1 feat(story): add chapter table of contents with hover reveal to chronicle page 2026-09-10 17:56:35 -04:00
de2ca66cec feat(voiceover): add hold-to-confirm spoiler gate on recording pages
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-10 16:14:02 -04:00
c48fee4b4d fix(missions): accept plain-text mod lists and keep side op narrative collapsed
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-10 16:13:59 -04:00
0fa6d9abb5 fix(missions): enforce access control on dashboard and intel mission queries
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-10 16:13:55 -04:00
486fdca2a0 fix(missions): enforce access control on missions pages
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-10 16:13:51 -04:00
8654eb40fa fix(missions): enforce visibility rules in collection read access
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-10 16:13:48 -04:00
a7c50c5fd0 feat(campaigns): add one-shot glitch hover effects for official campaign cards 2026-09-09 19:42:50 -04:00
8668a59d06 feat(campaigns): split page into official and community sections with tactical official cards 2026-09-09 19:42:50 -04:00
0dd9673690 fix(eod): unlock custom minefields after clearing two sectors 2026-09-09 18:55:00 -04:00
fdf6da5c5b fix(missions): only accept html mod lists for side op uploads 2026-09-09 18:55:00 -04:00
6fe7dd62bd feat(voiceover): add draft status to voice scripts and hide drafts from users 2026-09-09 18:55:00 -04:00
dcaa8c9bbe fix(voiceover): award xp and notify on admin-panel review approvals via hooks 2026-09-09 18:54:58 -04:00
1b552b3a6d feat(voiceover): add admin audio preview for voice submissions 2026-09-09 18:54:58 -04:00
cbe88c141b feat(opord): track per-tier best times with leaderboard column and par backfill 2026-09-09 11:37:51 -04:00
eb77f45b95 feat(opord): add par-anchored speed bonus to scoring 2026-09-09 11:28:39 -04:00
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
285de3ac14 fix(flappy): stop deriving returnTo from x-invoke-path
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-09 00:03:18 -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
76fbaba293 refactor(minigames): derive custom-page unlock state from shared lib predicates
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
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
efda519569 feat(eod): pay reduced XP with creator banking on custom minefield runs
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
243bb8ae0d feat(minigames): add creator bank and exposure toggle schema with migrations
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
987e78babd feat(minigames): add custom payout math and loss-reveal helpers to shared libs
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
4fde0fe91c fix(ui): use h-dvh for sheet side variants so panels fill mobile viewports
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-09-08 14:45:29 -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
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
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