Skip to content

Stop SafetyEnvelopeVerdict claiming it survives export whole - #680

Open
xmap wants to merge 1 commit into
mainfrom
worktree-safety-envelope-export-claim
Open

Stop SafetyEnvelopeVerdict claiming it survives export whole#680
xmap wants to merge 1 commit into
mainfrom
worktree-safety-envelope-export-claim

Conversation

@xmap

@xmap xmap commented Aug 18, 2026

Copy link
Copy Markdown
Owner

SafetyEnvelopeVerdict's docstring asserted that its two bool fields
survive record export and redaction whole, and reasoned from _SCALAR_KEEP
mapping bool to keep:number to justify the field types.

The claim is false. gen_record_dispositions.py's _OVERRIDE_DISPOSITIONS
sends both beam_available and enclosure_permitted to drop:text,
deliberately: a point-in-time reading of live PSS/interlock and beam-shutter
state is the same class of fact that EnclosurePermitObserved.from_status /
.to_status already drop. So the VO is present in the full bundle and absent
from the published one, the opposite of what the docstring promised a reader.

The fields stay bool because that is the honest domain type for a yes/no
reading, not because of their disposition. The new text says so, names the
override as the authority, and tells anyone tempted to restore a
survives-export claim to read that override and its rationale first.

Docstring only. No behaviour change.

Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com

It does not. `_SCALAR_KEEP` maps `bool` to `keep:number`, which is what
the docstring reasoned from, but `gen_record_dispositions.py`'s
`_OVERRIDE_DISPOSITIONS` sends both `enclosure_permitted` and
`beam_available` to `drop:text`, and `_dispositions.py` has carried that
since. The override is deliberate and was itself a gate-review finding:
a point-in-time reading of live PSS/interlock and beam-shutter state is
the same class of fact `EnclosurePermitObserved.from_status` /
`.to_status` already drop, and the two events had been getting opposite
export treatment purely because one used `str` and the other `bool`.

So the fields are `bool` for domain correctness, and the docstring's
inference from that to "survives export and redaction whole" was
inverted. The VO is present in the full, unredacted bundle and absent
from the published one.

Not cosmetic: a research session evaluating whether a witnessed Run
should record a clearance flag read this docstring, cited it correctly,
and drew a conclusion the disposition table contradicts. The corrected
text names the override, states which bundle each way, and tells the
next reader to check the override before restoring the claim.

Comment-only; no behaviour changes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Coverage report

This PR does not seem to contain any modification to coverable code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant