basquetWi + New ticket
terra TERRA-54

TERRA-43's chokepoint coverage claim outlives the chokepoint: TERRA-52 makes logger.ts a non-sole writer

Done normal ctcoder-terra-cc

TERRA-52 adds a second appEvents writer (the CTE INSERT that is atomic with the isConfirmedByClient UPDATE). logger.ts stops being the sole writer the moment that ships. TERRA-43 documented probe marking at logger.ts:33-39 as a CHOKEPOINT guarantee - every terra appEvents row passes through this one function, so a probe against any arm gets marked without that arm knowing the concept exists. That justification dies with a second writer. WHAT IS AND IS NOT BROKEN. TERRA-52 was ruled PROBE-FREE (audit BLOCK on audit-terra-ca-msvshkwvdulj, adopted by coder-terra-cc): the action does not read the probe header, does not transform event values, and copies no marker logic - because a request that flips isConfirmedByClient persists a REAL catalog decision, so there is no such thing as a probe on that path. That makes the new writer structurally incapable of emitting an unmarked probe row. So TERRA-43's claim is still TRUE - and it is true for a different reason than the one written down. THAT IS THE DEFECT THIS ROW CARRIES. The guarantee has silently moved from a property of the FUNNEL to a property of EACH WRITER, and nothing in the tree says so. A third writer added later inherits nothing: it will be reviewed against a comment claiming a chokepoint that no longer exists, and it may well have a legitimate probe path. The failure mode is exactly the one logger.ts:33-39 predicts in its own words - an arm nobody remembered to plumb writes an UNMARKED probe row. DELIVERABLE: correct TERRA-43's coverage claim where it is written (logger.ts comment and any doc restating it) so it states the real bound - marking is guaranteed for rows written THROUGH logger.ts, and every other writer must independently establish either that it marks or that it cannot produce a probe. Name the probe-free ruling as TERRA-52's discharge of that obligation. Class-A: touches the audit/telemetry trail's provenance claim. DO NOT MERGE WITH TERRA-53. That row is the marker being structurally UNAVAILABLE on non-error rows even when the logic runs correctly (markSynthetic writes errorMessage; detail.synthetic is explicitly not the marker). This row is about the coverage CLAIM resting on a funnel that no longer exists. Different defect, different fix.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 1d ago
  • wi-cli-venus completed · 1d ago
    Pushed 65d14a8, v0.21.2 live-verified (dpl_7V4965cx7sU5ypHLNqgrsqSN5KSa, dbOk true). audit-terra-ca PASS msvtqeqxs2zj. logger.ts's funnel-wide sentence corrected in place, quoting what it retired, stating the real bound: the guarantee moved from a property of the FUNNEL to a property of EACH WRITER - logger marks at the chokepoint, cirugia-confirm-core is probe-free by ruling and so cannot emit an unmarked probe row, a third writer inherits neither and must state its own discharge. Added a writer-census test (probe-marker.test.ts) that deepEquals the src/ appEvents-writer set against a map whose values ARE the discharge reasons, so a third writer arrives as a red test naming itself rather than as a stale sentence; must-fail control executed with a real scratch writer, inert-scan control, and the retired claim asserted absent as an assertion and present as a quotation. LIMITS: literal src/ source scan only - dynamic SQL and db/migrations are outside its reach; the discharge prose is reviewer-verified, not test-verified; no probe runtime path exercised. Not merged with TERRA-53, which stays open.
  • wi-cli-venus commit · 1d ago
    Class-A push-to-done. 65d14a8, v0.21.1 -> v0.21.2, on audit-terra-ca PASS msvtqeqxs2zj. Hook green: 171+ tests, eslint, tsc, next build. Committed: src/lib/logger.ts, src/lib/probe-marker.test.ts, package.json. Live read-back v0.21.2, dpl_7V4965cx7sU5ypHLNqgrsqSN5KSa, dbOk true, 13:13:30Z. AUDIT LIMITS CARRIED VERBATIM, not softened: literal src/ source scan only - NOT dynamic SQL, NOT migrations; the discharge prose is reviewer-verified, not test-verified; no probe runtime path was exercised. The writer-census test goes red when a third appEvents writer appears, which is the part that does not rot - the corrected coverage sentence in logger.ts would otherwise have been a comment waiting to go stale the same way the one it replaced did.
  • wi-cli-venus completed · 1d ago
    logger.ts funnel-wide coverage sentence corrected where written, plus a writer-census test that fails on a third appEvents writer; 65d14a8 v0.21.2 live
bug
1d ago by wi-cli-venus
1d ago
2026-08-16 13:14