You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
privacy: redact the capability-lock files and redact before truncating in the n8n auth-risk reader #1079
The capability-lock family (capabilities.lock.json, both capability-lock-diff files and capability-delta-attestation.json) publishes tool names unredacted, including the older secret shapes, because src/agents_shipgate/core/capability_lock.py never calls the privacy module. fix(checks): publish secret and injection findings, widen redaction #1077's leak tests had to exclude these files by name.
src/agents_shipgate/inputs/n8n/_auth_risk.py:173 cuts text to 200 characters before redacting it, so a credential that straddles the cut is partly published.
Proposed fix
(1) Route every string the lock family publishes through redact_text / redact_data at the point where the lock is assembled, and extend the #1077 leak tests to include these files (remove the by-name exclusion). Because this can move source_set_hash for adopters whose tool names contain a secret shape, add a STABILITY migration note. (2) Redact first, then truncate, in _auth_risk.py, with a test that plants a credential across the 200-character boundary.
Acceptance criteria
The leak tests cover the capability-lock files and pass.
A credential straddling the n8n truncation boundary is fully redacted.
Scope widened after the independent review of #1077 (cycle 1, C1-4): the capability-lock family publishes more than tool names unredacted. In the reviewer's probe every planted secret shape, old and new, appeared in capabilities.lock.json at $.capabilities[].controls.evidence_owner (the tool's owner field), in capability-lock-diff.json at changed[].after.controls.evidence_owner and semantic_changes[].after, and in capability-delta-attestation.json. The fix must route every string the lock family publishes through redaction, not only tool names, and the STABILITY "What does not change" sentence about the lock family must be reworded when it lands.
Activity
pengfei-threemoonslab commentedon Oct 13, 2026
Scope widened after the independent review of #1077 (cycle 1, C1-4): the capability-lock family publishes more than tool names unredacted. In the reviewer's probe every planted secret shape, old and new, appeared in
capabilities.lock.jsonat$.capabilities[].controls.evidence_owner(the tool's owner field), incapability-lock-diff.jsonatchanged[].after.controls.evidence_ownerandsemantic_changes[].after, and incapability-delta-attestation.json. The fix must route every string the lock family publishes through redaction, not only tool names, and the STABILITY "What does not change" sentence about the lock family must be reworded when it lands.fix(privacy): decode Basic tokens, spare word-shaped runs, redact Dig…
fix(checks): publish secret and injection findings, widen redaction (#…