Skip to content

July 15 Daily Completion Report

Outcome

Guardian Review is privacy-conscious in actual parent-facing behavior. A live request cannot be previewed or submitted until the selected provider is enabled and connected. Before any external call, the parent chooses optional evidence and context, sees the exact minimized JSON, receives provider-specific OpenAI processing and retention disclosures, and must check an unchecked consent control. Cancelling sends nothing.

Implemented path:

authorized local alert → relevant evidence selection → deterministic redaction v2 → exact parent preview → cancel or digest-bound consent → external model → strict encrypted result → local history or content-scrubbing deletion

Privacy and minimization delivered

  • Added guardian-review-redaction-v2 with NFKC normalization, invisible control removal, ordinary/obfuscated email handling, phone/Unicode handle/path masking, account/device/location masking, incident-scoped stable placeholders, and relevance-aware URL handling.
  • Defaulted to detector-selected excerpts. Additional full extracted screen text is optional and excluded by default; screenshots are never serialized.
  • Removed local incident/device/profile identifiers, exact detector score, classifier state, and exact repeat count from the outbound DTO.
  • Bounded evidence to eight 800-character excerpts and 4,800 total evidence characters, parent context to 1,500 characters, and canonical outbound content to 12,000 characters.
  • Added information-category, model, schema, prompt, redaction, actor, incident, time/status, latency, and success/failure audit metadata without raw prompts, evidence, parent notes, results, or credentials.

Parent controls delivered

  • Clear model/provider/configuration state and disabled-until-ready behavior.
  • Guided removal of optional evidence, age group, goal details, and parent context before preview.
  • Separate “Stored locally” and “Sent to OpenAI” views plus exact read-only JSON.
  • Unchecked explicit consent and a visible “Cancel — send nothing” action.
  • Structured result presentation, per-alert history, and global history.
  • Critical-reauth deletion that scrubs encrypted preview/context/assessment data and provider response identifiers while retaining a minimal audit tombstone.

API and persistence

  • Alembic revision: 0004_guardian_review_privacy.
  • Existing preview/submit/result routes remain compatible with added privacy metadata and optional controls.
  • Added preview cancellation, filtered history, and local assessment deletion.
  • Authorization returns 404 for inaccessible review records and rejects non-parent roles.

Verification

Environment: Linux x86_64, Python 3.12 backend environment, Python 3.13 root environment, Node 24.18.0, npm 11.16.0, America/New_York on 2026-07-15.

Area Command Result Duration
Backend compile python -m compileall -q app tests Pass 0.48 s
Backend lint ruff check app tests Pass 0.29 s
Backend types mypy app Pass 0.93 s
Backend tests pytest -q 261 passed 36.77 s
Windows agent compile/lint compileall + ruff check Pass 2.17 s
Windows agent tests pytest -q agent-windows/tests 59 passed 4.45 s
Root tests, including E2E pytest -q tests 58 passed 22.04 s
E2E focused rerun pytest -q tests/e2e 1 passed 3.46 s
Dashboard typecheck npm run typecheck Pass 8.01 s
Dashboard tests npm test -- --run 17 passed 5.95 s
Dashboard production build npm run build Pass 1.58 s

Unique application tests: 395 passed, 0 failed, 0 skipped. The focused E2E rerun is already included in the root count and is not double-counted.

Additional passing gates:

  • 196-case deterministic classifier benchmark: precision, recall, category recall, and critical recall all 1.0; zero false positives/negatives.
  • Feature matrix, version consistency, third-party notices, repository controls, generated hardware tiers, and embedded dashboard parity.
  • MkDocs strict build.
  • Gitleaks scanned 123 commits with no leaks found.
  • Python environment audit reported no dependency vulnerabilities after excluding the two local editable project packages; npm production audit reported zero vulnerabilities.

The Docker OCR canary was attempted but the local Docker daemon was unavailable, so the canary could not start in this environment. This is an environment gate, not a test failure attributable to the changed code; the GitHub Docker canary remains required on the exact pull request commit.

One existing Starlette warning remains: the installed FastAPI test client warns that its httpx compatibility shim is deprecated. It does not fail tests and was not introduced by this work.

Commits

  • 9f967defeat: harden Guardian Review minimization and audit controls
  • 77270a7feat: add Guardian Review consent and history experience
  • 607d781test: cover Guardian Review privacy and authorization
  • 8f414affix: mask labeled Guardian Review usernames
  • Documentation, embedded dashboard, and this report are recorded by the docs: record July 15 Guardian Review privacy work commit containing this file.

Known limitations and next work

  • Deterministic redaction cannot prove removal of every novel obfuscation, international address/identifier format, ordinary-language name, or image-only private detail. The exact parent preview remains the final control.
  • URL-relevant scam/phishing reviews intentionally preserve only the normalized destination hostname.
  • Guardian Review remains a fallible second opinion, not an emergency, diagnostic, medical, psychological, or legal service.
  • Guardian Review-specific parent feedback/evaluation reporting and expanded frozen judge scenarios remain planned.