Skip to content

fix(agentic): redact report/CLI/timer statements - #307

Closed
innocarpe wants to merge 1 commit into
feat/agentic-q1-prepared-pack-viewsfrom
feat/agentic-q1-5-report-redaction
Closed

fix(agentic): redact report/CLI/timer statements#307
innocarpe wants to merge 1 commit into
feat/agentic-q1-prepared-pack-viewsfrom
feat/agentic-q1-5-report-redaction

Conversation

@innocarpe

Copy link
Copy Markdown
Owner

Summary

  • Default agentic flush / run / list-held / list-claims JSON redacts candidate statements, citation quotes, and prepared pack views ([redacted]).
  • New --verbose flag opts into full private text for interactive debug only.
  • 30m timer path remains non-verbose (documents that agentic-timer.log must not carry statements).

Why

Quality ultragoal dual review B-v2-1 blocked transcript recovery (Q3′) until report/timer surfaces stop leaking private statements and quotes. Flush/run currently nested full pipeline proposals (statement + quote + extract views) into operator JSON and timer stdout. That violates the privacy fence and makes dogfood receipts unsafe to share.

This is Q1.5′ (stacked on Q1′ prepared-pack views). Do not start Q3′ until this and Q2.5′ are green.

Scope and changes

  • In scope:
    • packages/agentic/src/report.tsredactAgenticRunnerReport / pipeline / proposal helpers + leak probe
    • apps/carpeos-cli — wire redaction into flush, run, list-held, list-claims; --verbose
    • scripts/install-agentic-timer.sh — document no --verbose on timer
    • unit tests for Q-S12-style serialization
  • Key behavior:
    • Before: flush/run report embeds statements, quotes, pack views
    • After: default report is counters + redacted placeholders; --verbose restores full text
  • Intentionally not changed: status already count-only; full quality counter map (QD7 rest) lands with Q2′; timer unit file args unchanged (already non-verbose)

Labels

  • Kind: fix
  • Area (optional): None

Architecture/data-contract impact

  • Operator CLI JSON gains redacted / verbose fields on flush/run/list paths.
  • In-process AgenticRunnerReport type is unchanged; redaction is a serialization boundary for operator output.
  • Stacked on fix(agentic): prepared pack + effective Flash views #306 (feat/agentic-q1-prepared-pack-views) — merge after Q1′.

Validation

Command Result
pnpm --filter @carpeos/agentic test PASS (84 tests)
make preflight-fix PREFLIGHT PASS mode=pr
Linux bubblewrap / Gitleaks Not run — Linux GHA only

Public-data/security boundary

  • Synthetic fixtures/examples only
  • No credentials, private paths, private knowledge, production logs, or runtime exports
  • Private issues reduced to public-safe repros when applicable

Compatibility/migrations/deployment

  • Compatibility: default CLI output is stricter (less private text). Operators who grepped statements from flush JSON need --verbose.
  • Migrations: None
  • Deployment: Not applicable (library + CLI; next package release)

Risks and rollback

  • Risks: operators may miss that default list-held no longer shows statement text without --verbose.
  • Rollback: revert this PR; keep Q1′ if already merged.

Review guide

  • Start with: packages/agentic/src/report.ts and CLI flush/run writeJson sites
  • Pay attention to: timer must never gain --verbose; default redaction covers extract_view_text
  • Suggested local check: pnpm --filter @carpeos/agentic exec vitest run test/report.test.ts

Out of scope/follow-ups

  • Q7′ no fake side effects in live mode
  • Q2′ / Q2.5′ quality corpus + admit scoping (Q2.5′ still required before Q3′)
  • Aggregate quality counter map on flush (partial QD7) beyond redaction

Checklist

  • Title is Conventional Commit English
  • One coherent milestone / change (quality ultragoal Q1.5′)
  • Labels from .github/labels.json only
  • Validation table honest
  • Deploy/migration status explicit
  • Stacked base intentional: feat/agentic-q1-prepared-pack-views (PR fix(agentic): prepared pack + effective Flash views #306)

Q1.5′ (QD7 / Q-S12): default operator JSON for flush/run/list-held/list-claims
strips statements, quotes, and prepared pack views. --verbose opts in. Timer
path stays non-verbose so agentic-timer.log does not log private prose.
@innocarpe innocarpe added the fix Fixes incorrect or broken behavior. label Aug 7, 2026
@innocarpe
innocarpe deleted the branch feat/agentic-q1-prepared-pack-views August 7, 2026 08:23
@innocarpe innocarpe closed this Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix Fixes incorrect or broken behavior.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant