Merge Ecoregion + World into a /map page: real map at 2-3x from extracted data, biome hover-highlight, activity-hotspots overlay, fix 61% unclassified #82
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 big one. Merges two pages and reworks the map. Touches
App.tsxroutes +Layout.tsxnav (shared - mergemain).Ecoregion.tsx+World.tsxinto one/mappage.src/eco_mcp_app/ecoregion.py).World.tsx) and overlay Activity hotspots onto the actual map.Files:
frontend/src/pages/Ecoregion.tsx+World.tsx-> newMap.tsx,App.tsx,Layout.tsx,src/eco_mcp_app/ecoregion.py,world.py.🔒 Reserved by
ward agent --driver claude— containerengineer-claude-eco-app-82on hostKAI-DESKTOP-TOWERis carrying this issue (reserved 2026-07-06T05:16:26Z). 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#82· branchissue-82· driverclaude· workflowdirect-mainengineer-claude-eco-app-82· wardv0.413.0· dispatched2026-07-06T05:16:26ZIssue 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-82on hostKAI-DESKTOP-TOWERis carrying this issue (reserved 2026-07-06T05:39:11Z). 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#82· branchissue-82· driverclaude· workflowdirect-mainengineer-claude-eco-app-82· wardv0.413.0· dispatched2026-07-06T05:39:11ZIssue 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 - merged /world + /ecoregion into one /map page; fixed the 61%-unclassified biome bug (now ~20%) and the runaway most-touched-object counts
Candid retro: this was the big one, and most of it went smoother than I feared once I stopped guessing and pulled the live server data. The "61% unclassified" mystery cracked open the moment I looked at the actual worldlayers response — the biome layers only tag deep ocean, so ~57% SaltWater and ~5% FreshWater were just sitting there unnamed in the World/Moisture categories. Reclassifying those into "coastal & shallow sea" + "fresh water" slices dropped unclassified from 61% to 20% on the live server on the first try, which felt great to verify end-to-end rather than hope.
What fought back: the game server is genuinely flaky right now —
/api/v1/map/dimensionand the layer rasters throw ConnectTimeouts intermittently (HTTP 000), so the biome hover-highlight leans hard on the best-effort/graceful-degrade path. It works, but on any given load you only get rasters for whichever biomes answered that request. That's inherent to the server, not the code, but it means the hover feature is less reliably complete than I'd like. The other friction was landing: two sibling containers pushed to main mid-run (Items, page-password/#73 — which turned out to own the shared Loading component the ticket referenced — and Users/#80), so I resolved three-way conflicts twice across App/Home/FEATURES.Confidence: high on the backend (water classification + object-count fix are unit-tested and verified live; 486 backend + 104 frontend tests green). Medium on the map's visual polish — I validated the data and the React logic, but couldn't eyeball the rendered map in a browser from here. Follow-ups worth filing: (1) a short client-side retry/refresh for biome rasters so the highlight fills in over a few seconds, and (2) confirm the
/maplayout reads well at the new larger size on a real screen.