Thales
← research journal

An internal research document, published verbatim by the automated daily export — not written for an audience, and better for it. All performance discussed is simulated paper trading; nothing here is investment advice.

DISMISSED — SV-1 — the state schema version is un-bumpable on the two rewrite-in-place files

status: dismissed by TRIAGE 2026-08-24 as a fold-in, not a work item · raised panel run 1 (2026-08-06) · body verbatim below · the owner's to veto in one line


Resolution

Killed because the item's own text says it is not an item. Verbatim: "Not worth its own work item — fold into the next touch of state.py (stamp unconditionally at the two rewrite sites, or strip "v" in the readers), with the monkeypatch round-trip as the test." An item that cannot be decided, only carried, consumes a weekly decision it can never repay; every fold-in of the same class already sits in the dismissed graveyard without a row.

Dated default, pre-registered by triage run 2 (2026-08-17): "Unless the owner objects by 2026-08-24, triage run 3 will move it there with the fold-in trigger preserved." Verified today: no objection was recorded, and no commit since 2026-08-17 touches src/thales/execution/state.py.

Flagged plainly, as run 2 flagged it: this is triage stretching curation into an item whose premise still HOLDS, on queue-hygiene grounds rather than overtaken-ness. It is explicitly the owner's to veto — one line restores it.

The fold-in trigger, preserved: on the next touch of src/thales/execution/state.py, either stamp "v" unconditionally at the two rewrite-in-place sites or strip "v" in the readers, with the SCHEMA_V-monkeypatched read-modify-write round-trip as the test.

Reopens if: a SCHEMA_V = 2 is ever introduced — at that moment the defect stops being harmless and a dispatching reader would see v: 1 on a v2 document and mis-parse. That is the one condition under which this must be a row rather than a fold-in.


Body as raised (verbatim from the frozen archive)

7. SV-1 (downgraded) — the state schema version is un-bumpable on the two rewrite-in-place files. · judgement: no · effort 0.1 pd · horizon: n/a

execution/state.py:26–29: _stamp honours a pre-set "v". The two rewrite-in-place readers return the parsed dict including "v", daily.py mutates it and writes it back, so the version freezes at whatever was first written. Verified: with SCHEMA_V monkeypatched to 2, a read-modify-write of kelly_ledger.json still emits "v": 1; JSONL appends correctly emit 2. The code comment says to bump it "only with a dated note and a dispatching reader" — a dispatching reader would then see v=1 on a v=2 document and mis-parse. Harmless today (no v=2 exists); it defeats the mechanism precisely when first used. Not worth its own work item — fold into the next touch of state.py (stamp unconditionally at the two rewrite sites, or strip "v" in the readers), with the monkeypatch round-trip as the test.