Reconcile product specs, content audit, and pause docs with shipped UI (#320) #476

Merged
PlasticDigits merged 2 commits from verify/issue-320-doc-reconcile into main 2026-06-14 05:06:40 +00:00
PlasticDigits commented 2026-06-14 02:45:22 +00:00 (Migrated from gitlab.com)

Summary

Reconciles product specs, frontend content audit, pause ops docs, indexer design, arena-views, and AGENTS.md with shipped TimeArena constants, LaunchGate route IA, and the current play-surface layout (no decision row / ArenaSubnav).

  • CRED / XP: FIRST_BUY_CRED_BONUS = 1100e18, MAX_PLAYER_LEVEL = 5 aligned across time-arena.md and arena-v2.md.
  • CHARM price: DOUB buys document effectiveCharmPriceWad() (#305), not bare charmPriceWad.
  • Routes: play at /; AUDIT at /arena/protocol; legacy /arena and /timecurve → /.
  • Pause ops: claimWarBowFlag gated by _requireLive() / paused.
  • Indexer design: lists GET /v1/arena/last-buy-epoch-pricing and GET /v1/arena/warbow/latest-bp; clarifies offset pagination vs aspirational cursor tokens.
  • Remainder routing: documents shipped ArenaBuyRouting (category remainder → WarBow cat 3) with approved Last Buy direction noted via #309.

Verification checklist

Acceptance item Command / review Result
Progression/CRED constants match TimeArena.sol rg 'FIRST_BUY_CRED_BONUS|MAX_PLAYER_LEVEL' contracts/src/arena vs docs/product/time-arena.md + arena-v2.md PASS — 1100e18 / level cap 5
Route IA consistent across product + audit docs Manual vs frontend/src/app/LaunchGate.tsx, surfaceContent.ts, RootLayout.tsx PASS — play /, AUDIT /arena/protocol, legacy redirects
Pause doc matches _requireLive() rg claimWarBowFlag contracts/src/arena/TimeArena.sol + pause ops docs PASS — flag claim blocked when paused
Indexer design lists implemented API routes/events rg last-buy-epoch-pricing|warbow/latest-bp docs/indexer/design.md + indexer/src/api_arena.rs PASS
Doc anchor integrity bash scripts/check-doc-anchors.sh PASS — 66 anchors
Content audit / surface tests cd frontend && npm test -- surfaceContent arenaCommandConsoleStatic PASS — 9 tests
No contradictory CRED bonus or level cap in product specs rg '150 CRED|uncapped' docs/product/ PASS — none
Content audit E2E paths match LaunchGate.tsx Manual review docs/testing/frontend-content-audit.md vs LaunchGate.tsx + e2e/arena.spec.ts PASS

Follow-ups

  • Open a contract MR to route category remainder wei to Last Buy (approved product direction; shipped code still sends to WarBow cat 3).
  • Trim residual 150 CRED references in manual-qa-checklists.md and skills/play-time-arena-doub/SKILL.md (out of #320 file list).
  • Update docs/onchain/security-and-threat-model.md remainder row to match shipped ArenaBuyRouting (currently cites Time Booster).

Note

Low Risk
Markdown-only changes with no runtime, contract, or indexer behavior modified; main risk is doc drift if future code changes are not reflected.

Overview
Reconciles GitLab #320 documentation with shipped TimeArena, LaunchGate routing, and the current play console—no application code in this diff.

Routes & surfaces: Play is documented at /; AUDIT at /arena/protocol; bare /arena and /timecurve redirect to / with referral /arena/:code preserved. Play uses ArenaTimerPodiumCarousel; the four-card ArenaSimplePodiumSection grid is AUDIT-only. Removed shipped chrome (ArenaSubnav, arena-command-console__decision-row) is called out; buy-hub metrics live in the buy panel / projected-effects pills.

Product & progression: FIRST_BUY_CRED_BONUS = 1100e18, MAX_PLAYER_LEVEL = 5, DOUB effectiveCharmPriceWad() vs governance anchor, and flat 100 CRED/CHARM for buyWithCred are aligned across time-arena.md and arena-v2.md.

Pause ops: claimWarBowFlag is documented as gated by paused via _requireLive(), matching TimeArena.sol.

Indexer design: Documents GET /v1/arena/last-buy-epoch-pricing and GET /v1/arena/warbow/latest-bp; clarifies limit/offset / next_offset vs aspirational opaque cursors on list routes.

Content audit: frontend-content-audit.md adds pass criteria for buy-hub metrics and the AUDIT four-podium grid.

Reviewed by Cursor Bugbot for commit ac639db066. Bugbot is set up for automated code reviews on this repo. Configure here.

## Summary Reconciles product specs, frontend content audit, pause ops docs, indexer design, arena-views, and AGENTS.md with shipped `TimeArena` constants, `LaunchGate` route IA, and the current play-surface layout (no decision row / `ArenaSubnav`). - **CRED / XP:** `FIRST_BUY_CRED_BONUS = 1100e18`, `MAX_PLAYER_LEVEL = 5` aligned across `time-arena.md` and `arena-v2.md`. - **CHARM price:** DOUB buys document `effectiveCharmPriceWad()` (#305), not bare `charmPriceWad`. - **Routes:** play at `/`; AUDIT at `/arena/protocol`; legacy `/arena` and `/timecurve` → `/`. - **Pause ops:** `claimWarBowFlag` gated by `_requireLive()` / `paused`. - **Indexer design:** lists `GET /v1/arena/last-buy-epoch-pricing` and `GET /v1/arena/warbow/latest-bp`; clarifies offset pagination vs aspirational cursor tokens. - **Remainder routing:** documents shipped `ArenaBuyRouting` (category remainder → WarBow cat 3) with approved Last Buy direction noted via #309. ## Verification checklist | Acceptance item | Command / review | Result | |-----------------|------------------|--------| | Progression/CRED constants match `TimeArena.sol` | `rg 'FIRST_BUY_CRED_BONUS\|MAX_PLAYER_LEVEL' contracts/src/arena` vs `docs/product/time-arena.md` + `arena-v2.md` | **PASS** — 1100e18 / level cap 5 | | Route IA consistent across product + audit docs | Manual vs `frontend/src/app/LaunchGate.tsx`, `surfaceContent.ts`, `RootLayout.tsx` | **PASS** — play `/`, AUDIT `/arena/protocol`, legacy redirects | | Pause doc matches `_requireLive()` | `rg claimWarBowFlag contracts/src/arena/TimeArena.sol` + pause ops docs | **PASS** — flag claim blocked when paused | | Indexer design lists implemented API routes/events | `rg last-buy-epoch-pricing\|warbow/latest-bp docs/indexer/design.md` + `indexer/src/api_arena.rs` | **PASS** | | Doc anchor integrity | `bash scripts/check-doc-anchors.sh` | **PASS** — 66 anchors | | Content audit / surface tests | `cd frontend && npm test -- surfaceContent arenaCommandConsoleStatic` | **PASS** — 9 tests | | No contradictory CRED bonus or level cap in product specs | `rg '150 CRED\|uncapped' docs/product/` | **PASS** — none | | Content audit E2E paths match `LaunchGate.tsx` | Manual review `docs/testing/frontend-content-audit.md` vs `LaunchGate.tsx` + `e2e/arena.spec.ts` | **PASS** | ## Follow-ups - Open a contract MR to route category remainder wei to **Last Buy** (approved product direction; shipped code still sends to WarBow cat 3). - Trim residual `150 CRED` references in `manual-qa-checklists.md` and `skills/play-time-arena-doub/SKILL.md` (out of #320 file list). - Update `docs/onchain/security-and-threat-model.md` remainder row to match shipped `ArenaBuyRouting` (currently cites Time Booster). <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Markdown-only changes with no runtime, contract, or indexer behavior modified; main risk is doc drift if future code changes are not reflected. > > **Overview** > Reconciles **GitLab #320** documentation with shipped **TimeArena**, **`LaunchGate`** routing, and the current play console—**no application code** in this diff. > > **Routes & surfaces:** Play is documented at **`/`**; **AUDIT** at **`/arena/protocol`**; bare **`/arena`** and **`/timecurve`** redirect to **`/`** with referral **`/arena/:code`** preserved. Play uses **`ArenaTimerPodiumCarousel`**; the four-card **`ArenaSimplePodiumSection`** grid is **AUDIT-only**. Removed shipped chrome (**`ArenaSubnav`**, **`arena-command-console__decision-row`**) is called out; buy-hub metrics live in the buy panel / projected-effects pills. > > **Product & progression:** **`FIRST_BUY_CRED_BONUS = 1100e18`**, **`MAX_PLAYER_LEVEL = 5`**, DOUB **`effectiveCharmPriceWad()`** vs governance anchor, and flat **100 CRED/CHARM** for **`buyWithCred`** are aligned across **`time-arena.md`** and **`arena-v2.md`**. > > **Pause ops:** **`claimWarBowFlag`** is documented as gated by **`paused`** via **`_requireLive()`**, matching **`TimeArena.sol`**. > > **Indexer design:** Documents **`GET /v1/arena/last-buy-epoch-pricing`** and **`GET /v1/arena/warbow/latest-bp`**; clarifies **`limit`/`offset`** / **`next_offset`** vs aspirational opaque cursors on list routes. > > **Content audit:** **`frontend-content-audit.md`** adds pass criteria for buy-hub metrics and the AUDIT four-podium grid. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit ac639db066fab289e33d02b0b95b1322a3cd0b85. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-14 02:45:30 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-14 02:45:40 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
PlasticDigits commented 2026-06-14 02:49:51 +00:00 (Migrated from gitlab.com)

Security review — MR !476

Commit reviewed: 4dee4c20a2b0a46e2d8ef308ee1e8e4f13104023

Scope: 8 files — documentation and runbook only (AGENTS.md, docs/frontend/arena-views.md, docs/indexer/design.md, docs/operations/*, docs/product/*, docs/testing/frontend-content-audit.md). No contract, indexer, or frontend runtime code in this diff.

Method: Full MR diff review; spot-checked security-relevant doc claims against shipped code (TimeArena.claimWarBowFlag → _requireLive() / paused; indexer routes GET /v1/arena/last-buy-epoch-pricing, GET /v1/arena/warbow/latest-bp in api_arena.rs). Prior MR security threads: none.

Outcome: FINDINGS: 0 medium+

Security review: no medium+ findings on this diff.

  • No injection surfaces, auth/authz changes, secret leakage, or new executable paths introduced.
  • Pause-ops updates correctly document that claimWarBowFlag is gated by _requireLive() (aligns with TimeArena.sol).
  • Indexer route documentation describes existing read-only HTTP handlers; no new attack surface in this MR.
  • Route/IA and product-constant edits are informational only.

Inline threads: none (no findings to anchor).

## Security review — MR !476 **Commit reviewed:** `4dee4c20a2b0a46e2d8ef308ee1e8e4f13104023` **Scope:** 8 files — documentation and runbook only (`AGENTS.md`, `docs/frontend/arena-views.md`, `docs/indexer/design.md`, `docs/operations/*`, `docs/product/*`, `docs/testing/frontend-content-audit.md`). No contract, indexer, or frontend runtime code in this diff. **Method:** Full MR diff review; spot-checked security-relevant doc claims against shipped code (`TimeArena.claimWarBowFlag` → `_requireLive()` / `paused`; indexer routes `GET /v1/arena/last-buy-epoch-pricing`, `GET /v1/arena/warbow/latest-bp` in `api_arena.rs`). Prior MR security threads: none. **Outcome:** `FINDINGS: 0` medium+ Security review: **no medium+ findings** on this diff. - No injection surfaces, auth/authz changes, secret leakage, or new executable paths introduced. - Pause-ops updates correctly document that `claimWarBowFlag` is gated by `_requireLive()` (aligns with `TimeArena.sol`). - Indexer route documentation describes existing read-only HTTP handlers; no new attack surface in this MR. - Route/IA and product-constant edits are informational only. **Inline threads:** none (no findings to anchor).
PlasticDigits commented 2026-06-14 02:53:35 +00:00 (Migrated from gitlab.com)

added 61 commits

  • 4dee4c20...03a43d4a - 60 commits from branch main
  • ac639db0 - Merge main into verify/issue-320-doc-reconcile and resolve doc conflicts.

Compare with previous version

added 61 commits <ul><li>4dee4c20...03a43d4a - 60 commits from branch <code>main</code></li><li>ac639db0 - Merge main into verify/issue-320-doc-reconcile and resolve doc conflicts.</li></ul> [Compare with previous version](/PlasticDigits/yieldomega/-/merge_requests/106/diffs?diff_id=1850560175&start_sha=4dee4c20a2b0a46e2d8ef308ee1e8e4f13104023)
PlasticDigits commented 2026-06-14 02:53:37 +00:00 (Migrated from gitlab.com)

Resolved merge conflicts with main (8 files).

  • Kept #320 play-surface IA (/ play, /arena/protocol AUDIT, no ArenaSubnav / decision row).
  • Adopted main onchain doc updates: #311 buyWithCred epoch CRED pool accrual and #313 remainder wei → Last Buy.
  • Merged indexer route descriptions (last-buy-epoch-pricing, warbow/latest-bp) with offset-pagination guidance (#320).
  • Pause ops: retained separate claimWarBowFlag row gated by _requireLive().

Sanity: check-doc-anchors.sh PASS; surfaceContent + arenaCommandConsoleStatic tests PASS (9).

Resolved merge conflicts with `main` (8 files). - Kept #320 play-surface IA (`/` play, `/arena/protocol` AUDIT, no `ArenaSubnav` / decision row). - Adopted `main` onchain doc updates: #311 `buyWithCred` epoch CRED pool accrual and #313 remainder wei → Last Buy. - Merged indexer route descriptions (`last-buy-epoch-pricing`, `warbow/latest-bp`) with offset-pagination guidance (#320). - Pause ops: retained separate `claimWarBowFlag` row gated by `_requireLive()`. Sanity: `check-doc-anchors.sh` PASS; `surfaceContent` + `arenaCommandConsoleStatic` tests PASS (9).
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-14 02:53:56 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
PlasticDigits commented 2026-06-14 02:58:29 +00:00 (Migrated from gitlab.com)

Security review — MR !476

Commit reviewed: ac639db066fab289e33d02b0b95b1322a3cd0b85

Scope: 7 files — documentation and runbook only (docs/frontend/arena-views.md, docs/indexer/design.md, docs/operations/final-signoff-and-value-movement.md, docs/operations/pause-and-final-signoff.md, docs/product/arena-v2.md, docs/product/time-arena.md, docs/testing/frontend-content-audit.md). No contract, indexer, or frontend runtime code in this diff.

Method: Full MR diff review (post–main merge at ac639db0); spot-checked security-relevant doc claims against shipped code:

  • TimeArena.claimWarBowFlag → _requireLive() / paused (TimeArena.sol:486–487)
  • Indexer routes GET /v1/arena/last-buy-epoch-pricing, GET /v1/arena/warbow/latest-bp in api_arena.rs (parameterized SQL; address allowlist on players)
  • Product constants FIRST_BUY_CRED_BONUS = 1100e18, MAX_PLAYER_LEVEL = 5 vs TimeArena.sol / ArenaXp.sol

Prior review: 4dee4c20 (0 medium+). Re-reviewed after merge-conflict resolution; no new executable paths or auth surfaces introduced.

Outcome: FINDINGS: 0 medium+

Security review: no medium+ findings on this diff.

  • No injection surfaces, auth/authz changes, secret leakage, or new executable paths introduced.
  • Pause-ops updates correctly document that claimWarBowFlag is gated by _requireLive() (aligns with onchain implementation and test_pause_blocks_claimWarBowFlag).
  • Indexer route documentation describes existing read-only HTTP handlers only; no new attack surface in this MR.
  • Route/IA and product-constant edits are informational only.

Inline threads: none (no findings to anchor).

## Security review — MR !476 **Commit reviewed:** `ac639db066fab289e33d02b0b95b1322a3cd0b85` **Scope:** 7 files — documentation and runbook only (`docs/frontend/arena-views.md`, `docs/indexer/design.md`, `docs/operations/final-signoff-and-value-movement.md`, `docs/operations/pause-and-final-signoff.md`, `docs/product/arena-v2.md`, `docs/product/time-arena.md`, `docs/testing/frontend-content-audit.md`). No contract, indexer, or frontend runtime code in this diff. **Method:** Full MR diff review (post–`main` merge at `ac639db0`); spot-checked security-relevant doc claims against shipped code: - `TimeArena.claimWarBowFlag` → `_requireLive()` / `paused` (`TimeArena.sol:486–487`) - Indexer routes `GET /v1/arena/last-buy-epoch-pricing`, `GET /v1/arena/warbow/latest-bp` in `api_arena.rs` (parameterized SQL; address allowlist on `players`) - Product constants `FIRST_BUY_CRED_BONUS = 1100e18`, `MAX_PLAYER_LEVEL = 5` vs `TimeArena.sol` / `ArenaXp.sol` **Prior review:** `4dee4c20` (0 medium+). Re-reviewed after merge-conflict resolution; no new executable paths or auth surfaces introduced. **Outcome:** `FINDINGS: 0` medium+ Security review: **no medium+ findings** on this diff. - No injection surfaces, auth/authz changes, secret leakage, or new executable paths introduced. - Pause-ops updates correctly document that `claimWarBowFlag` is gated by `_requireLive()` (aligns with onchain implementation and `test_pause_blocks_claimWarBowFlag`). - Indexer route documentation describes existing read-only HTTP handlers only; no new attack surface in this MR. - Route/IA and product-constant edits are informational only. **Inline threads:** none (no findings to anchor).
PlasticDigits commented 2026-06-14 05:06:41 +00:00 (Migrated from gitlab.com)

mentioned in commit 08fa6d9b84

mentioned in commit 08fa6d9b84d749194fe020d25384e72179033a14
PlasticDigits (Migrated from gitlab.com) merged commit 08fa6d9b84 into main 2026-06-14 05:06:41 +00:00
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!476
No description provided.