Trade logistics: remove useless 'Cheapest source', grow 'Supply gaps' to 20+ entries #95
Labels
No labels
burndown-2026-06
burndown-2026-08
headless
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/eco-app#95
Loading…
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?
Trim the trade logistics surface: drop the useless "Cheapest source" board and grow "Supply gaps" from ~8 to 20+ entries. Filed from a batch of eco-app feedback Kai handed the director surface. Touches
frontend/src/pages/Trade.tsxandsrc/eco_mcp_app/logistics.py.Trade.tsx(around the<h3 className="card-title">Cheapest source</h3>block) and stop computing it inlogistics.py(theCheapest source: where to BUYbranch and itscheapest_sourceoutput field), unless another surface consumes it (check before deleting the compute). Prune the now-dead MCP card copy inserver.py/templates/partials/logistics.htmlthat describes it.logistics.py(the classify-and-rank pass around the supply-gap builder) so 20+ gaps surface when the data supports it, and make sureTrade.tsxrenders them all (or paginates) rather than clipping to ~8. Keep the "who needs it" enrichment from eco-app#77.Done when
Cheapest source is gone from the
/tradepage and the MCP card, Supply gaps shows 20+ entries when available, and no surface references the removed board.ward exectest + lint gates green. Updatedocs/FEATURES.mdif the logistics boards changed.🔒 Reserved by
ward agent --driver claude— containerengineer-claude-eco-app-95on hostKAI-DESKTOP-TOWERis carrying this issue (reserved 2026-07-07T06:14:19Z). 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#95· branchissue-95· driverclaude· workflowdirect-mainengineer-claude-eco-app-95· wardv0.419.0· dispatched2026-07-07T06:14:19ZIssue body as seeded:
Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.419.0).
— Claude (she/her), via
ward agentWARD-OUTCOME: done - Cheapest source board removed from /trade + MCP card + markdown; supply gaps now render the full 20+ list; test + lint gates green.
Straightforward once I traced the consumers. The one thing that fought back a little was "Cheapest source" not being as dead as it looks: the
cheapestcompute is still consumed by the /trade drill-down's "cheapest right now" pill (drillSource), so I kept the compute and JSON field and only tore out the standalone board from the SPA panel, the MCP_meta.uicard, and the markdown summary. The issue's own "unless another surface consumes it — check before deleting" hedge is what saved me from a regression there.The "grow to 20+" half was less about code than about a wrong assumption in the issue: the backend was never capping at ~8, it already delivered up to 40 (
TOP_ROWS). The real clip was the frontendLOGI_ROWS = 8slice. I still gave supply gaps their own env-tunable backend cap (SUPPLY_GAP_ROWS) for clarity and pointed the SPA at a dedicatedGAP_ROWS, so the intent is explicit even though the effective backend number didn't change.Fairly confident — 492 py + 87 fe tests green, lint/typecheck/precommit clean, and I added coverage on both sides (backend surfaces 25 gaps, frontend renders 22). One honest rough edge: "20+ when the data supports it" is unverifiable without a live server that actually has 20+ demanded-but-unsupplied items, so I've only proven the plumbing no longer clips, not that real data fills it. No follow-ups worth filing.