Repository navigation
REQ 113
The engine shall submit and retain Ollama review content only within an explicit per-run disclosure and retention policy that minimizes sensitive evidence and model-generated prose.
Local-only inference is not permission to submit a whole desktop or retain text copied from it. Model output can echo credentials or activation values even when it satisfies a JSON schema. Issue #234, under epic #229, addresses content minimization rather than relying solely on file permissions.
Approval names the permitted evidence fields, image mode (none, specified crop/redaction, or explicitly approved full frame), transformation policy/version, and retained result fields/lifetime. Missing image disclosure approval causes rejection before image submission; model text cannot expand approval. Crops/redactions are deterministic host operations with validated bounds, performed without modifying source captures. Evidence binds original and submitted-image hashes plus policy identity; the model sees only the approved transformed pixels and required minimized metadata. Retention uses an allowlisted structured result; unnecessary raw prompts, responses, desktop text, private paths, credentials, and activation values do not enter logs, published artifacts, receipts, or checkpoints. Prose that cannot be safely minimized/validated is suppressed or causes sanitized rejection, not an unrestricted fallback copy. Known sensitive-canary cases fail closed. No classifier, regex, or model is represented as a guarantee of recognizing every unknown secret; avoiding unapproved pixels/text and minimizing prose are primary controls. Retained files enforce private custody, with no automatic deletion of operator-owned evidence or models; policy expiry blocks reuse and reports explicit cleanup needs rather than silently deleting assets.
Disclosure/retention cases supporting TEST-115 integrated through PR #240, implementation 610aaf1e4490e37ba3ebfdb88b741e6622dda3e6, merge 326b0d9fa2a23796683436d6ed8e297ad370a172. Local suites passed 2,079 Python and 78 .NET tests; focused slices passed 117 Python and 67 generation cases. All seven upstream checks passed, including actual Windows private-custody tests. The missing-disclosure reproducer failed before the fix. Synthetic pixels, metadata and model-prose canaries verify deterministic crop/redaction, unchanged source images, output minimization, expiry/refusal, safe CLI diagnostics, and private Linux/Windows custody. No real desktop, private source, credential, or live inference was used. Arbitrary-secret discovery is not claimed; checkpoint-specific integration cases remain allocated to REQ-115.
SYS-REQ-029; frame identity REQ-112 and private checkpoints REQ-115
High
scripts/tests/test_assisted_benchmark_review.py (test_images_require_explicit_disclosure_beyond_field_approval, test_regions_strip_unapproved_pixels_metadata_and_model_prose, test_invalid_privacy_never_submits_images); scripts/tests/test_assisted_benchmark_run.py (test_entrypoint_does_not_echo_private_paths_in_errors, private receipt and policy cases); tools/source-config/ProjectBuddy.SourceConfig.Tests/GenerationTests.cs (GeneratedOutputsRequirePrivateCustody, InvalidPrivacyNeverReachesReview, ModelProseIsNotRetainedInStructuredReview, ModelProseNeverReachesGeneratedEvidence, CliDiagnosticsDoNotEchoPrivateInputPaths); .github/workflows/ci-assurance.yml (Pillow 12.1.1 and Ubuntu/Windows checks). Full local commands are the Python regression suite and locked source-config .NET suite; executed checkpoint canary/custody cases are separately recorded in REQ-115.
scripts/assisted_benchmark_contract.py (validate_review_privacy); scripts/assisted_benchmark_review.py (transform_frame, select_evidence, review_evidence: Pillow transforms, disclosure, expiry, minimized prose and result hashes); scripts/assisted_benchmark_run.py (orchestrate, write_private_receipt, main: private receipts and safe errors); tools/source-config/ProjectBuddy.SourceConfig/OllamaReview.cs (ReviewPrivacy.Read, Validate, OllamaReview.RunAsync, Parse); Generation.cs (CreatePrivateDirectory, ProtectPrivateFile, VerifyPrivate, RunAsync: exact custody), and Program.cs (required --review-privacy, sanitized diagnostics), under tools/source-config/ProjectBuddy.SourceConfig/.
Implemented in develop; defined disclosure/canary/custody paths regression- and CI-verified, not universal secret detection or live-data qualification