VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head 726f7ab772
Evidence:
Exact PR/branch head verified: 726f7ab7726ff3fe1cb8e6d7f65cdcae9b8d0802.
PR CI green on exact head: ci/woodpecker/pr/ci success.
Reviewed SEC-005 persistence hooks: user messages and assistant messages are passed through redactSensitiveContent() before brain.conversations.addMessage(), and metadata carries redaction classifications.
Reviewed SEC-005 egress hooks: assistant text/thinking deltas are buffered until a safe redaction boundary, then emitted only after redactSensitiveContent(); split secret labels/values and private-key blocks are held until redaction can happen, with bounded overflow redaction.
Canary coverage proves the hook path would fail without the change: split sk_... secret is not emitted, split token=... is not emitted, private-key block is not emitted, overflow emits [REDACTED_STREAM_OVERFLOW], and assistant persistence stores [REDACTED_SECRET] plus classification metadata. Redaction unit canaries cover secret + PII formats before persistence/egress use.
Provider login hardening removes auth URLs and raw poll tokens from chat output/metadata; only a token digest is stored in Valkey and command output contains provider name only.
git diff --check clean; no credential material or secret values in the PR diff beyond test canaries.
VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head 726f7ab7726ff3fe1cb8e6d7f65cdcae9b8d0802
Evidence:
- Exact PR/branch head verified: `726f7ab7726ff3fe1cb8e6d7f65cdcae9b8d0802`.
- PR CI green on exact head: `ci/woodpecker/pr/ci` success.
- Reviewed SEC-005 persistence hooks: user messages and assistant messages are passed through `redactSensitiveContent()` before `brain.conversations.addMessage()`, and metadata carries redaction classifications.
- Reviewed SEC-005 egress hooks: assistant text/thinking deltas are buffered until a safe redaction boundary, then emitted only after `redactSensitiveContent()`; split secret labels/values and private-key blocks are held until redaction can happen, with bounded overflow redaction.
- Canary coverage proves the hook path would fail without the change: split `sk_...` secret is not emitted, split `token=...` is not emitted, private-key block is not emitted, overflow emits `[REDACTED_STREAM_OVERFLOW]`, and assistant persistence stores `[REDACTED_SECRET]` plus classification metadata. Redaction unit canaries cover secret + PII formats before persistence/egress use.
- Provider login hardening removes auth URLs and raw poll tokens from chat output/metadata; only a token digest is stored in Valkey and command output contains provider name only.
- `git diff --check` clean; no credential material or secret values in the PR diff beyond test canaries.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Verification
pnpm exec turbo run typecheck lint test --force(88 successful, 0 cached)pnpm format:checkRefs #707
VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head
726f7ab772Evidence:
726f7ab7726ff3fe1cb8e6d7f65cdcae9b8d0802.ci/woodpecker/pr/cisuccess.redactSensitiveContent()beforebrain.conversations.addMessage(), and metadata carries redaction classifications.redactSensitiveContent(); split secret labels/values and private-key blocks are held until redaction can happen, with bounded overflow redaction.sk_...secret is not emitted, splittoken=...is not emitted, private-key block is not emitted, overflow emits[REDACTED_STREAM_OVERFLOW], and assistant persistence stores[REDACTED_SECRET]plus classification metadata. Redaction unit canaries cover secret + PII formats before persistence/egress use.git diff --checkclean; no credential material or secret values in the PR diff beyond test canaries.