Repository navigation
Port legacy Git input projection (4d-3e-5) - #114
Conversation
agent-identity: agent/compoundingtech/mergemaster agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
…ojection # Conflicts: # scripts/PROVENANCE
…ojection # Conflicts: # scripts/PROVENANCE
…ojection # Conflicts: # README.md
agent-identity: agent/compoundingtech/mergemaster agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
|
q19-go v1 head=5e68f970486ba66df19e4a03c9e5819b1b248e7a verdict=GO CI Manager SOURCE GO, after an independent exact-head review with no findings. Janitor P3 from #113 is closed: selected_content accepts only 40 or 64 lowercase hex characters before any git read and passes --end-of-options. The owned temporary GIT_INDEX_FILE is set after sanitization and is cleaned up through RAII. Synthetic blobs are hashed without -w before write-tree --missing-ok. The differential test builds real git objects: 21 path sets x 3 trees = 63 combinations against the pinned Python oracle. This is a source verdict only: no build or test was run here, and the CI result is separate. Posted on behalf of @schickling
|
|
U04 exposure audit: PASS at exact head
Signed: Janitor ( Posted on behalf of @schickling
|
Summary
4d-3e-5 ports oracle project (566-605): plain-path Git trees, complete-component exclusions, deduplicated resolved selectors named PATH::SELECTOR, empty projection None and the whole-tree fast path. Reuses the strict ls-tree parser and hardened gate command. Preserves raw path bytes, symlink/executable/gitlink modes and index-only synthetic selected blobs (hash-object without -w; write-tree --missing-ok).
GIT_INDEX_FILE is an owned temporary index set after sanitization. The narrow stdin plumbing has only bounded-stdout Git callers, suppresses candidate-controlled stderr, and kills/reaps on stdin failure. No timeout is claimed; the existing gate-wide timeout/output gaps remain listed. Native tree hashing and CLI wiring are unchanged.
First hardening change closes Janitor #113 P3: selected_content requires a full lowercase tree OID before any Git read and passes --end-of-options to ls-tree. This moved here because rustfmt's expanded argument list exceeds 3e-4's remaining three lines; 3e-4 stays unchanged. Invalid revisions return structured error. Static/clippy-style review confirms the guard precedes both reads, all new bindings/imports are used, and existing differential assertions are unchanged. No new refusal fixture fits within the cap.
Differential coverage
63 real-Git combinations (21 path sets at three trees), with raw FF/tab/newline names, executable/symlink/gitlink modes, overlapping plain paths, component exclusions including trailing slashes, missing/empty/full trees, unresolved selectors with '.', selected-entry deduplication across layouts, unrelated JSON changes, and preferred layout. All expected keys/reasons come from the unchanged pinned oracle.
Proof
Direct rustfmt ran locally; static review covered raw-name ownership, exclusion slash handling, parser reuse, process stdin closure/error reaping, intentional index environment after sanitization, fixture mode/staging/gitlink preservation and imports. Python-only real-Git probes confirmed empty None, whole-tree identity (including unresolved selector), trailing-slash exclusions and resolved-selector deduplication. No Cargo, clippy, builds or flake checks ran locally. Hosted x86_64/arm checks must verify.
Size / sequence
280 changed lines (276 additions, 4 deletions): projection 117, tests 139, selected-content hardening 14/3, parser visibility 1/1, registration 1, docs 4. Predecessor 3e-4 selected-content/layout. This closes the input projection helper tranche; loading and evaluator/CLI wiring remain later approved-series work.
Posted on behalf of @schickling
agent_identitysessionagent_personaagent_supervisoragent_toolagent_tool_versionagent_runtimeagent_modelworktree