Implement Arena command console surface #425

Merged
PlasticDigits merged 2 commits from cursor/arena-command-console-c09e into main 2026-06-06 13:37:42 +00:00
PlasticDigits commented 2026-06-06 13:36:27 +00:00 (Migrated from gitlab.com)

Summary of changes

Implements GitLab #291 by replacing the /arena concept-mock-plus-live-stack mount with one production arena-command-console surface. The live ArenaSimplePage read/write paths remain the source of truth, while the layout now makes Last Buy and inline CHARM buying primary, moves CRED/timers/WarBow into a secondary operations rail, corrects visible DOUB/CHARM/CRED decision labels, and documents the new invariant/QA path.

Issue #291 should remain open for maintainer/product acceptance.

Design review notes

  • User goals: quickly judge the Last Buy timer, choose a CHARM amount, see price/range/CRED yield, and execute a buy without opening a modal.
  • Surfaced decisions/actions: Last Buy countdown and direct Buy CHARM controls are the primary column; secondary podium timers, CRED claim state, and WarBow actions are available but visually subordinate.
  • Stale assumptions removed: static concept data, fake 1,042 DOUB price, 1.0 min CHARM, reset copy, dual-stack /arena rendering, and visible CL8Y-facing labels where the Arena v2 user decision is DOUB.
  • Design direction preserved: dark tactical glass, compact hierarchy, Yield Omega branding, standardized AddressInline/blockie usage, and low-opacity bunny/sniper-shark character accents.

Checklist

Acceptance item Command or manual step Status
Fetch issue title/body/comments glab issue view 291 -R PlasticDigits/yieldomega --comments PASS
/arena renders a single unified command-console surface arenaCommandConsoleStatic.test.ts; npm run test:e2e -- e2e/arena.spec.ts --workers=5; Rabby Chromium smoke (commandConsoleCount=1, conceptCount=0) PASS
Last Buy primary Code/design review; Rabby Chromium smoke; Anvil E2E mount PASS
Inline CHARM buy without modal click-through bash scripts/e2e-anvil.sh wallet-write/CRED specs PASS
Characters identifiable in new aesthetic Rabby Chromium visual DOM smoke; art README update PASS
Frontend typecheck/lint/unit tests cd frontend && npm run typecheck && npm run lint && npm test PASS
Relevant non-Anvil E2E cd frontend && npm run test:e2e -- e2e/arena.spec.ts --workers=5 PASS
Relevant Anvil E2E export PATH="$HOME/.foundry/bin:$PATH" && bash scripts/e2e-anvil.sh PASS
Build cd frontend && npm run build PASS
Docs/art/naming checks bash scripts/check-arena-naming.sh && bash scripts/check-art-readme-consumers.sh && bash scripts/check-doc-anchors.sh PASS
Chromium + Rabby Wallet inspection headed Chromium with Rabby extension; provider injected true; mobile 390x844 overflow <= 0 PASS

Visual/design verification checklist for third parties

  • Confirm /arena has one arena-command-console surface and no stacked .arena-final-concept mock.
  • Confirm Last Buy timer is the primary visual object.
  • Confirm CHARM text input, slider, min/max/advanced controls, pay picker, and Buy CHARM CTA are visible inline.
  • Confirm decision tiles show CHARM Price in DOUB, 0.99-10 CHARM range, and CRED yield.
  • Confirm CHARM/CRED card, secondary timers, and WarBow actions sit in the secondary rail.
  • Confirm Yield Omega branding, blockie/address treatment, and bunny/sniper-shark accents match the dark glass command-console aesthetic.
  • Confirm /arena/protocol remains the AUDIT route and /timecurve* redirects still work.

Accessibility/responsive notes

  • Keeps existing ChainMismatchWriteBarrier, wallet connect, AddressInline/blockie, and profile-modal paths.
  • Adds arena-command-console/primary test IDs and labelled primary/secondary regions.
  • Mobile verification: 390x844 Rabby Chromium smoke reported no horizontal overflow; Playwright mobile viewport route spec passed.
  • Rabby helper updated to recognize compact connect copy (Connect wallet).

Blockers

None.

## Summary of changes Implements GitLab #291 by replacing the `/arena` concept-mock-plus-live-stack mount with one production `arena-command-console` surface. The live `ArenaSimplePage` read/write paths remain the source of truth, while the layout now makes Last Buy and inline CHARM buying primary, moves CRED/timers/WarBow into a secondary operations rail, corrects visible DOUB/CHARM/CRED decision labels, and documents the new invariant/QA path. Issue #291 should remain open for maintainer/product acceptance. ## Design review notes - User goals: quickly judge the Last Buy timer, choose a CHARM amount, see price/range/CRED yield, and execute a buy without opening a modal. - Surfaced decisions/actions: Last Buy countdown and direct Buy CHARM controls are the primary column; secondary podium timers, CRED claim state, and WarBow actions are available but visually subordinate. - Stale assumptions removed: static concept data, fake 1,042 DOUB price, 1.0 min CHARM, reset copy, dual-stack `/arena` rendering, and visible CL8Y-facing labels where the Arena v2 user decision is DOUB. - Design direction preserved: dark tactical glass, compact hierarchy, Yield Omega branding, standardized AddressInline/blockie usage, and low-opacity bunny/sniper-shark character accents. ## Checklist | Acceptance item | Command or manual step | Status | |---|---|---| | Fetch issue title/body/comments | `glab issue view 291 -R PlasticDigits/yieldomega --comments` | PASS | | `/arena` renders a single unified command-console surface | `arenaCommandConsoleStatic.test.ts`; `npm run test:e2e -- e2e/arena.spec.ts --workers=5`; Rabby Chromium smoke (`commandConsoleCount=1`, `conceptCount=0`) | PASS | | Last Buy primary | Code/design review; Rabby Chromium smoke; Anvil E2E mount | PASS | | Inline CHARM buy without modal click-through | `bash scripts/e2e-anvil.sh` wallet-write/CRED specs | PASS | | Characters identifiable in new aesthetic | Rabby Chromium visual DOM smoke; art README update | PASS | | Frontend typecheck/lint/unit tests | `cd frontend && npm run typecheck && npm run lint && npm test` | PASS | | Relevant non-Anvil E2E | `cd frontend && npm run test:e2e -- e2e/arena.spec.ts --workers=5` | PASS | | Relevant Anvil E2E | `export PATH="$HOME/.foundry/bin:$PATH" && bash scripts/e2e-anvil.sh` | PASS | | Build | `cd frontend && npm run build` | PASS | | Docs/art/naming checks | `bash scripts/check-arena-naming.sh && bash scripts/check-art-readme-consumers.sh && bash scripts/check-doc-anchors.sh` | PASS | | Chromium + Rabby Wallet inspection | headed Chromium with Rabby extension; provider injected true; mobile 390x844 overflow <= 0 | PASS | ## Visual/design verification checklist for third parties - Confirm `/arena` has one `arena-command-console` surface and no stacked `.arena-final-concept` mock. - Confirm Last Buy timer is the primary visual object. - Confirm CHARM text input, slider, min/max/advanced controls, pay picker, and Buy CHARM CTA are visible inline. - Confirm decision tiles show CHARM Price in DOUB, 0.99-10 CHARM range, and CRED yield. - Confirm CHARM/CRED card, secondary timers, and WarBow actions sit in the secondary rail. - Confirm Yield Omega branding, blockie/address treatment, and bunny/sniper-shark accents match the dark glass command-console aesthetic. - Confirm `/arena/protocol` remains the AUDIT route and `/timecurve*` redirects still work. ## Accessibility/responsive notes - Keeps existing `ChainMismatchWriteBarrier`, wallet connect, AddressInline/blockie, and profile-modal paths. - Adds `arena-command-console`/primary test IDs and labelled primary/secondary regions. - Mobile verification: 390x844 Rabby Chromium smoke reported no horizontal overflow; Playwright mobile viewport route spec passed. - Rabby helper updated to recognize compact connect copy (`Connect wallet`). ## Blockers None.
PlasticDigits commented 2026-06-06 13:36:41 +00:00 (Migrated from gitlab.com)

marked this merge request as ready

marked this merge request as **ready**
PlasticDigits commented 2026-06-06 13:36:57 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
PlasticDigits commented 2026-06-06 13:37:42 +00:00 (Migrated from gitlab.com)

mentioned in commit 3e9819bfdd

mentioned in commit 3e9819bfdd1ce7544d3c322fdd60e67a5e872753
PlasticDigits (Migrated from gitlab.com) merged commit 3e9819bfdd into main 2026-06-06 13:37:42 +00:00
ghost1 commented 2026-06-06 13:41:40 +00:00 (Migrated from gitlab.com)

Security review

Commit reviewed: c2fd2c09868b96f4d3e70b40c78cbe2403ba39eb (MR !425 head)
Scope: Arena command-console UI (#291) — TimeArenaPage, ArenaSimplePage, index.css, E2E/tests, docs, rabby_playwright.mjs.

Outcome: FINDINGS: 0 medium+

Summary

This MR is a frontend layout and presentation refactor. It removes the stacked concept mock, reorganizes Arena components into a single arena-command-console surface, and corrects visible spend-asset labels (CL8Y → DOUB on Arena v2).

Paths reviewed

Area Result
Authn/authz / write gates Unchanged — buy path still wrapped in ChainMismatchWriteBarrier; submitBuy / useArenaSaleSession not in diff
Injection (XSS/DOM) No new sinks — React JSX only; no dangerouslySetInnerHTML; labels derived from session.isArenaV2, not user input
On-chain tx integrity Display relabel only — payWith: "cl8y" still routes via existing Arena v2 DOUB plumbing (payTokenOptionsForSimpleBuy, swapOutToken: "doub")
Secret leakage None in diff
SSRF / path traversal / deserialization Not applicable — no new network or filesystem handlers
Supply chain No dependency changes

Inline threads

None — no medium+ findings to anchor on specific diff lines.


Automated security review (Cursor Cloud Agent).

## Security review **Commit reviewed:** `c2fd2c09868b96f4d3e70b40c78cbe2403ba39eb` (MR !425 head) **Scope:** Arena command-console UI (#291) — `TimeArenaPage`, `ArenaSimplePage`, `index.css`, E2E/tests, docs, `rabby_playwright.mjs`. **Outcome:** **FINDINGS: 0** medium+ ### Summary This MR is a frontend layout and presentation refactor. It removes the stacked concept mock, reorganizes Arena components into a single `arena-command-console` surface, and corrects visible spend-asset labels (CL8Y → DOUB on Arena v2). ### Paths reviewed | Area | Result | |------|--------| | Authn/authz / write gates | Unchanged — buy path still wrapped in `ChainMismatchWriteBarrier`; `submitBuy` / `useArenaSaleSession` not in diff | | Injection (XSS/DOM) | No new sinks — React JSX only; no `dangerouslySetInnerHTML`; labels derived from `session.isArenaV2`, not user input | | On-chain tx integrity | Display relabel only — `payWith: "cl8y"` still routes via existing Arena v2 DOUB plumbing (`payTokenOptionsForSimpleBuy`, `swapOutToken: "doub"`) | | Secret leakage | None in diff | | SSRF / path traversal / deserialization | Not applicable — no new network or filesystem handlers | | Supply chain | No dependency changes | ### Inline threads None — no medium+ findings to anchor on specific diff lines. --- *Automated security review (Cursor Cloud Agent).*
ghost1 commented 2026-06-06 13:41:45 +00:00 (Migrated from gitlab.com)

Security review

Commit reviewed: c2fd2c09868b96f4d3e70b40c78cbe2403ba39eb (MR !425 head)
Scope: Arena command-console UI (#291) — TimeArenaPage, ArenaSimplePage, index.css, E2E/tests, docs, rabby_playwright.mjs.

Outcome: FINDINGS: 0 medium+

Summary

This MR is a frontend layout and presentation refactor. It removes the stacked concept mock, reorganizes Arena components into a single arena-command-console surface, and corrects visible spend-asset labels (CL8Y → DOUB on Arena v2).

Paths reviewed

Area Result
Authn/authz / write gates Unchanged — buy path still wrapped in ChainMismatchWriteBarrier; submitBuy / useArenaSaleSession not in diff
Injection (XSS/DOM) No new sinks — React JSX only; no dangerouslySetInnerHTML; labels derived from session.isArenaV2, not user input
On-chain tx integrity Display relabel only — payWith: "cl8y" still routes via existing Arena v2 DOUB plumbing (payTokenOptionsForSimpleBuy, swapOutToken: "doub")
Secret leakage None in diff
SSRF / path traversal / deserialization Not applicable — no new network or filesystem handlers
Supply chain No dependency changes

Inline threads

None — no medium+ findings to anchor on specific diff lines.


Automated security review (Cursor Cloud Agent).

## Security review **Commit reviewed:** `c2fd2c09868b96f4d3e70b40c78cbe2403ba39eb` (MR !425 head) **Scope:** Arena command-console UI (#291) — `TimeArenaPage`, `ArenaSimplePage`, `index.css`, E2E/tests, docs, `rabby_playwright.mjs`. **Outcome:** **FINDINGS: 0** medium+ ### Summary This MR is a frontend layout and presentation refactor. It removes the stacked concept mock, reorganizes Arena components into a single `arena-command-console` surface, and corrects visible spend-asset labels (CL8Y → DOUB on Arena v2). ### Paths reviewed | Area | Result | |------|--------| | Authn/authz / write gates | Unchanged — buy path still wrapped in `ChainMismatchWriteBarrier`; `submitBuy` / `useArenaSaleSession` not in diff | | Injection (XSS/DOM) | No new sinks — React JSX only; no `dangerouslySetInnerHTML`; labels derived from `session.isArenaV2`, not user input | | On-chain tx integrity | Display relabel only — `payWith: "cl8y"` still routes via existing Arena v2 DOUB plumbing (`payTokenOptionsForSimpleBuy`, `swapOutToken: "doub"`) | | Secret leakage | None in diff | | SSRF / path traversal / deserialization | Not applicable — no new network or filesystem handlers | | Supply chain | No dependency changes | ### Inline threads None — no medium+ findings to anchor on specific diff lines. --- *Automated security review (Cursor Cloud Agent).*
PlasticDigits commented 2026-06-08 08:45:13 +00:00 (Migrated from gitlab.com)

mentioned in commit cc02efcf4a

mentioned in commit cc02efcf4adf3a630c8b7e3328d8120f2bc77d8b
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/yieldomega!425
No description provided.