Home: populate more cards with sub-cards (the '66 settlers' bullet style) #75
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 sub-cards on the home cards (the "66 settlers"-style info bullets - see
components/StatGrid.tsx/components/Hero.tsx) are nice. Extend more of the Home cards to carry sub-cards where there's relevant per-card detail to show.Files:
frontend/src/pages/Home.tsx,frontend/src/components/StatGrid.tsx,frontend/src/components/Hero.tsx.🔒 Reserved by
ward agent --driver claude— containerengineer-claude-eco-app-75on hostKAI-DESKTOP-TOWERis carrying this issue (reserved 2026-07-06T05:13:02Z). 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#75· branchissue-75· driverclaude· workflowdirect-mainengineer-claude-eco-app-75· wardv0.413.0· dispatched2026-07-06T05:13:02ZIssue 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-75on hostKAI-DESKTOP-TOWERis carrying this issue (reserved 2026-07-06T05:36:05Z). 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#75· branchissue-75· driverclaude· workflowdirect-mainengineer-claude-eco-app-75· wardv0.413.0· dispatched2026-07-06T05:36:05ZIssue 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 - live sub-card badges added to the economy, trades, crafting, climate, and ecoregion Home cards
This one was a clean extension of an existing groove. The
useTradePulse/useCivicsPulsehooks already set the exact shape — one-shot best-effort fetch, abort on unmount, leave the badge absent on any failure — so the five new pulse hooks were basically fill-in-the-blank against the typed API clients that already existed for each surface. The nicest surprise was how little glue was needed: every card I wanted to light up already had alib/*Api.tsclient and a/preview/get_eco_*.jsonendpoint, so no backend work at all.The one thing that fought back a little was the test. The existing Home test stubbed a single fetch mock returning the status payload for every URL, which quietly worked only because the new hooks throw-and-swallow on a mismatched shape. I added a URL-routing mock so the new badges are actually asserted rather than incidentally absent.
Fairly confident in the result — lint, typecheck, build, and the full vitest suite are green on the merged tree, and the graceful-degrade contract means a missing endpoint just hides the badge. Deliberately left replay (local-only service), calculator, and community badge-less since they have no live fused-surface detail. Possible follow-up: the top-item/ecoregion-match pills can get long on narrow viewports; a max-width + ellipsis on
.mini-pillmight be worth a small polish issue if it looks cramped in the wild.