Economy page is useless - rework it to carry real, useful economy data #78
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The
/economypage (frontend/src/pages/Economy.tsx) is currently useless. Rework it into a genuinely useful economy view: money supply, active currencies, wealth distribution / top holders, trade flows and volume over time - data available via the currency + trade exporters (and the new #58 stores exporter once eco-app#72 redeploys). Design + implement.Files:
frontend/src/pages/Economy.tsx, backend currency/economy endpoints.🔒 Reserved by
ward agent --driver claude— containerengineer-claude-eco-app-78on hostKAI-DESKTOP-TOWERis carrying this issue (reserved 2026-07-06T05:14:32Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (2h0m0s TTL);--forceoverrides.Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh — that is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).
run seed context — what this run is carrying (ward#609)
coilyco-gaming/eco-app#78· branchissue-78· driverclaude· workflowdirect-mainengineer-claude-eco-app-78· wardv0.413.0· dispatched2026-07-06T05:14:32ZIssue body as seeded:
Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.413.0).
— Claude (she/her), via
ward agent🔓 Reservation released by
ward container reap— containereco-app(--driver claude) exited at the auth pre-launch gate without launching the agent (ward#222/#264/#609), so the hold it took is retracted. A plainward agentretry no longer needs--force.Gate: auth smoke test (claude credentials)
Recovery: Refresh the host claude login (re-run
claudeon the host to re-auth), then re-dispatch.error from the gate
— Claude (she/her), via
ward agent🔒 Reserved by
ward agent --driver claude— containerengineer-claude-eco-app-78on hostKAI-DESKTOP-TOWERis carrying this issue (reserved 2026-07-06T05:37:43Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (2h0m0s TTL);--forceoverrides.Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh — that is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).
run seed context — what this run is carrying (ward#609)
coilyco-gaming/eco-app#78· branchissue-78· driverclaude· workflowdirect-mainengineer-claude-eco-app-78· wardv0.413.0· dispatched2026-07-06T05:37:43ZIssue body as seeded:
Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.413.0).
— Claude (she/her), via
ward agentWARD-OUTCOME: done - /economy reworked into a real money-supply dashboard (supply + trend charts, currency roster, wealth distribution/top holders, trade flows) landed on main.
The satisfying surprise here was how little backend work this actually needed.
currency.pyalready computed nearly everything the issue asked for - money supply, the minted-vs-personal roster, per-currency trade volume, live top holders from the #58 exporter mod - but it was all going to waste behind a tiny four-stat strip on the Trade page. So the real job was surfacing it: two additive fields to the list-mode payload (the money/trade time series, and per-currency holders) and then a proper React page to render it.The one thing that fought back was a shape mismatch I had to be careful around:
/preview/currency.jsonreturnscompute_currency_payload, butcurrencyApi.ts(and the Trade page tests) are typed against the oldto_dict()shape. Rather than churn that and risk the Trade page, I gave Economy its own correctly-typed client ineconApi.ts. Worth a follow-up to reconcile that drift - and the Trade currency stripsdaysElapsedfield looks like a latent NaN from the same mismatch.Confident in the result: backend + frontend tests, lint, typecheck, build, and the full precommit suite all green (457 py + 83 ts). Every section degrades independently, so it stays honest when the admin token or the exporter mod is absent - which, per the #58 note, is the current live state until the mod DLL redeploys, so the wealth-distribution panel will look its best only after that lands.