Skip to content

Commit 23507c0

Browse files
committed
feat(scripts): measure the return-propagating durability seams the log-level gate cannot name
`check-durability-degradation-log-level.mjs` accepts three answers from a catch guarding a durability-critical operation: rethrow, log at `error`, or hand the failure to the caller through its declared propagation vocabulary. Both maps that spell the third answer — `FAILURE_PROPAGATION_CALLEES` repo-wide and `FAILURE_PROPAGATION_SITES` scoped per function — are keyed on the NAME of a callee the catch reaches. A catch that hands the failure back by RETURNING an out-param object calls nothing, so it has no name to declare: the delivery IS the constructed value. That is an expressiveness statement, true whether the population is one seam or fifty, and on its own not a reason to change anything. This census exists so the routing decision is taken against a number instead of an impression, and so the number can be re-taken rather than quoted from a report that has gone stale. It is a MEASUREMENT, not a gate: it exits 0 on any membership count and is deliberately not named `check:*` or `gen:*`, the shape `measure-durability-swallow-family.mjs` established. The durability axis is three declared vocabularies, never a spelling: the gate's own `DURABILITY_CRITICAL_CALLEES` and #12981's `WRITE_SHAPED_CALLEES`, both read out of their source files at run time so this census cannot drift from them, plus a `READ_ON_THE_MERITS` register carrying the reading for each operation admitted here. `NOT_A_DURABILITY_CLAIM` is the opposite direction — sites that match the shape over a declared write name but claim no persistence, excluded with the reading rather than filtered silently. Both registers fail `--self-test` when a row stops matching. Claude-Session: https://claude.ai/code/session_017ef78bLdybu3AffehKkhfk Co-authored-by: Claude <noreply@anthropic.com>
1 parent 97233b9 commit 23507c0

1 file changed

Lines changed: 980 additions & 0 deletions

File tree

0 commit comments

Comments
 (0)