Repository navigation
v0.1.2
Tightening pass on the v0.1.1 adversarial review.
Real fixes (Codex pass 2)
pushredactor was matching the formatted stdin payload, not the raw value. Fly'sNAME=secret\nand Vercel'ssecret\nwould not match if the upstream printedsecretbare in an error. Redactor is now built from raw value (plusNAME=VALUEfor fly).vercel env addbecomes interactive when the env var exists. Always passes--forcenow.- Keychain error mapping is status-aware. Only
errSecItemNotFoundmaps to exit 6; other Security framework failures stay Internal.
Audit + tests
- Each
run/pushrecords arun_idso pairedstarted/okentries are unambiguous under concurrency. - Honest atomicity comment in audit.rs (PIPE_BUF is for pipes, not regular files).
- Test
run_writes_started_audit_entry_before_child_exitsnow uses a long-lived child + mid-flight inspection; the redactor test asserts the redaction token appears too.
Known limitations (deferred)
- SIGINT forwarding to child for
kill -INT akm-pid. Ctrl-C already works via shared process group. - ANSI-coloured / encoded secret forms in child output (literal match only).
security dump-keychainenumeration →ItemSearchOptionsmigration (0.2.0).
Tests: 12 unit + 16 integration.