Keep /preview/currency.json JSON-safe when live data contains non-finite floats #147
Labels
No labels
burndown-2026-06
headless
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/eco-app#147
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?
Live verification after Discord rich-preview rollout found
/preview/currency.jsonreturning HTTP 500 while/preview.json,/preview/world.json,/preview/logistics.json, and/preview/market.jsonreturn 200. The app log showsValueError: Out of range float values are not JSON compliant: infathttp_app.py:452inpreview_currency_jsonwhen constructingJSONResponse(payload). This makes the registered/eco economycommand resolve to the generic unavailable error. The module already has_sanitize_nonfinite, used by the user dossier path. Apply the JSON-safety boundary to the currency preview (and any shared preview response boundary if that is the more coherent narrow fix), add a regression test with nested inf/-inf/nan proving a 200 and strict JSON output, run the full ward validation gate, land it, and record the image build evidence. Do not change DiscordLink or global Discord command registration. After merge, the operator will reroll and live-verify the test-guild command.WARDED_WORKFLOW: done ✅
details
Review: skipped — in-container review gate intentionally skipped by the temporary ward default pending brokered QA.
workflow: merge-remote-main; review summary: skipped (temporary ward default pending brokered QA)
Felt: narrow and direct.
Confidence: high.
Surprises: pre-commit has the baseline Ruff N999 on scripts/install-desktop-config.py; image build unavailable (no compatible Docker builder/Buildx).
Follow-up: director rebuild, rollout, and test-guild verification.
WARDED_WORKFLOW: blocked 🛑
salvage details
An ephemeral
ward container(codex mode) dispatched for this issue finished but its work was not merged tomain, so cleanup preserved it on a branch before teardown and reopened the issue (a closing reference for #147 never reachedmain). Recover from the salvage branch below.coilyco-gaming/eco-appward-salvage/eco-app-0c6e4df2Cleanup diagnostics
Recover
— Codex, via
ward agentWARDED_WORKFLOW: reservation-released
release details
Run finished with
WARDED_WORKFLOW: blocked 🛑.ward container reapreleased containerengineer-codex-eco-app-147(--harness codex): the terminal outcome supersedes the reservation, so a later redispatch no longer needs--override-reservation.— Codex, via
ward agentVerified resolved on the canonical deployment. Commit
0e1ee0cis on main, the current build-publish pipeline is green, andhttps://eco-app.coilysiren.me/preview/currency.jsonreturns HTTP 200 and parses as strict JSON with no non-finite floats. The issue was reopened only by the documented false-salvage path.