Repository navigation
Commit 23507c0
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
0 commit comments