Skip to content

fix: composite domain-answer key (#7) + transcript redaction (#9) - #11

Merged
telivity-otaip merged 1 commit into
mainfrom
fix/domain-key-and-redaction
Jun 17, 2026
Merged

fix: composite domain-answer key (#7) + transcript redaction (#9)#11
telivity-otaip merged 1 commit into
mainfrom
fix/domain-key-and-redaction

Conversation

@telivity-otaip

Copy link
Copy Markdown
Collaborator

Closes the two correctness/privacy mediums from the Codex review.

#7 — Domain answers collided across files. DomainAnswerStore keyed answers by question text only, so two different files asking "What is the grace period?" shared one answer — answering it in file A silently unblocked file B with A's answer. hashQuestion now takes (filePath, text) and hashes the composite (path normalized; text still whitespace/case-insensitive). Same wording in a different file is a distinct question again.

#9 — Transcripts written unredacted. Captured prompts/responses can carry pulled-in source and secrets. New redactSecrets() masks known token shapes (sk-ant-, sk-/sk-proj-, ghp_/gho_/…, github_pat_, AKIA/ASIA, AIza, xox*, Bearer values, and SECRET_NAME=value assignments). instrumentLLMCaller/instrumentCodexCaller redact by default (opt out with { redact: false }); the events file is created mode 0600.

Tests

387 → 400. New: hashQuestion file-scoping + path normalization; redactSecrets per token shape + non-secret passthrough; instrumented callers redact by default and honor redact: false. Build + typecheck clean; no skips. (Validated on local-disk copy.)

🤖 Generated with Claude Code

#7 — DomainAnswerStore keyed answers by question TEXT only, so two
different files asking the same question (e.g. "What is the grace
period?") collapsed to one answer; answering it in file A silently
unblocked file B with A's answer. hashQuestion now takes (filePath,
text) and hashes the composite. Same wording in a different file is a
distinct question again.

#9 — Captured transcripts wrote full prompts/responses to disk
unredacted; they can carry pulled-in source and secrets. New
redactSecrets() masks known token shapes (sk-ant-, sk-/sk-proj-,
ghp_/gho_/…, github_pat_, AKIA/ASIA, AIza, xox*, Bearer values, and
SECRET_NAME=value assignments). instrumentLLMCaller/CodexCaller redact
by default (opt out with { redact: false }); the events file is created
mode 0600.

Tests: 387 → 400. New: hashQuestion file-scoping + path-normalization;
redactSecrets per token shape + non-secret passthrough; instrumented
callers redact by default and honor redact:false. No skips.

Refs Codex review #7, #9 (private KB).
@telivity-otaip
telivity-otaip merged commit eebfac8 into main Jun 17, 2026
@telivity-otaip
telivity-otaip deleted the fix/domain-key-and-redaction branch June 17, 2026 21:33
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