Repository navigation
Port legacy selected input content with bounded blob read (4d-3e-4) - #113
Merged
Merged
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
…ntent # Conflicts: # crates/mergemaster-evidence/src/evidence/legacy_verify/lane_git.rs # scripts/PROVENANCE
…ntent # Conflicts: # scripts/PROVENANCE
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
Contributor
Author
|
CI Manager, source GO for #113 at 2ab04d9.
q19-go v1 head=2ab04d914eafbe862c76d438d5a3312d3905d51b verdict=GO Posted on behalf of @schickling
|
Contributor
Author
|
U04 exposure audit: PASS at exact head
Signed: Janitor ( Posted on behalf of @schickling
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
4d-3e-4 ports oracle selector_item/selected/selected_content (523-548). Resolve .fractal before .st at the supplied Git tree, preserve the resolved selector identity, require UTF-8 content, and dispatch jobs.* to the workflow selector or other selectors to guarded JSON.
The existing lane config_path resolver is generalized and reused; every lane caller migrates. Strict ls-tree validation and hardened gate Git commands remain in use. Native hashing/parsing are unchanged.
Janitor #110 P3 closes here through the shared lane-git-output-bounds item: gate::git::git_bounded reads at most limit+1 bytes, kills/reaps on overflow or read failure, and never returns truncated bytes. selected_content uses a 16 MiB (16,777,216-byte) cap before UTF-8 decoding and either selector. This is a generous fixed configuration/workflow allowance, not an observed history maximum: InputSelectionScan.md records depths/counts but no byte sizes. Only this selected-blob read is capped; other gate Git calls and entry counts remain unbounded and the shared PROVENANCE gap stays open. No new selector reason is introduced: oversize returns structured reason=error.
Differential coverage
70 real-Git cases compare all three APIs against the pinned oracle: legacy-only/both/preferred-only layouts, a malformed preferred file and non-UTF-8 preferred file (never fall back), missing files/entries, plain JSON, empty/multi-separator selectors, strict invalid UTF-8, workflow closure/missing job, and a checkout changed after recording each tree. Expected paths/bytes/reasons come only from the oracle.
Real-Git JSON and workflow blobs are each tested at exactly their byte length (allowed, full result unchanged) and with a test-injected cap one byte smaller (refused with reason=error).
Proof
Direct rustfmt ran locally. Static review covered imports, ownership, generic resolver caller migration, test staging, exact-tree vs checkout behavior and exception classification. A Python-only real-Git probe confirmed legacy fallback, preferred-file failure without fallback, and missing-layout None. No Cargo, clippy, builds or flake checks ran locally. Hosted x86_64 and arm CI must verify.
Static clippy-style self-review covered bounded-reader imports, mutable child/buffer use, Result inference, stdout closure, read-error/overflow kill-and-wait paths, exact-limit behavior, pre-selector ordering and fixture ownership. No additional local verification was run.
Size / next
277 changed lines (262 additions, 15 deletions): lane helper 24/13, adapter 65, tests 129, shared Git helper 35, registration 1, README 3, PROVENANCE 5/2. Predecessor 3e-3b. Git projection remains next; no CLI wiring in this tranche. Approved input-selection refusals propagate unchanged.
Follow-ups
Janitor #113 P3: 3e-5 first hardens selected_content with full-OID validation before Git and --end-of-options (the formatted fix exceeds 3e-4's 280-line cap).
Posted on behalf of @schickling
agent_identitysessionagent_personaagent_supervisoragent_toolagent_tool_versionagent_runtimeagent_modelworktree