fix(docs): correct security claims in the new activation/capabilities prose - #29
Merged
Conversation
… prose Follow-up to #27 and #28. Those PRs are sound refactors, but a few of the docstrings they added assert safety properties the code does not provide, and one of those claims justified dropping a real defense. - activation: restore the per-acquisition chmod on the lock file. `os.open` applies its mode ONLY on creation, so a lock left group/world-readable by an older run stayed that way; `main` re-tightened it on every `_locked()` entry. Adds a regression test that fails without the chmod. - activation: `_write_json_atomically` documented the durability order backwards. The parent-directory fsync happens AFTER the rename -- that is what makes the rename durable -- and the helper is advertised for reuse. - activation: `_try_chmod` claimed failing silently is always safe. It is not at the spawn log, which `Path.open("ab")` creates at 0o666 & ~umask, where this chmod is the only thing keeping child stdout/stderr private. - capabilities: the validator checks the SHAPE of an evidence claim, not its truth -- it never opens the referenced document. Say so instead of promising the matrix "cannot overclaim". - capabilities: `experimental` was defined as "only tested with synthetic data", but codex.model_attribution and cursor.mcp_semantics carry no evidence at all. Widen the definition to match the data.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #27 and #28. Both are sound refactors — the manifest output is byte-identical, the permission constants are unchanged, and no test assertion was lost. But a few of the docstrings they added assert safety properties the code does not provide, and one of those claims justified dropping a real defense.
One behavior fix
os.open's mode argument applies only when it creates the file, so a lock left group/world-readable by an older run stayed that way.mainre-tightened it on every_locked()entry; the helper extraction dropped that, and an inline comment ("mode is applied at creation, so no separate chmod is needed") stated the reason it was safe to drop. It wasn't. Adds a regression test that fails without the chmod (verified by reverting it).Docstring corrections
_write_json_atomicallydocumented the durability order backwards: the parent-directory fsync happens after the rename — that is precisely what makes the rename durable. Matters because the surrounding comment advertises this helper for reuse in a shared store-IO module._try_chmodclaimed failing silently is always safe. It isn't at the spawn log, whichPath.open("ab")creates at0o666 & ~umask— there this chmod is the only thing keeping child stdout/stderr (store paths, argv, tracebacks) private.experimentalwas defined as "only tested with synthetic data", butcodex.model_attributionandcursor.mcp_semanticsship with verification levelnone— no evidence at all. Widened the definition to match the data.Verification
Full suite: 2904 passed, 1 skipped. The new lock-permission test was negative-tested (removing the chmod makes it fail).