mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-16 03:49:26 +00:00
feat(pre-push-safety-net): resolve immutable push comparisons
This commit is contained in:
@@ -142,3 +142,18 @@ The content review checked boundary ownership, failure handling, vendor exclusio
|
||||
and independent finding/coverage/push status. Draft defaults remain clearly labeled. Runtime
|
||||
integration, performance and capability admission remain unverified work; no code tests were
|
||||
needed for these documentation-only amendments.
|
||||
|
||||
### Group 2 implementation: immutable Git reads
|
||||
|
||||
The local Git runtime is 2.43.0. Snapshot reads must suppress replacement objects
|
||||
and implicit promisor fetching, including on Git versions that predate newer
|
||||
lazy-fetch controls. The protocol allow-list is the stronger boundary: an empty
|
||||
`GIT_ALLOW_PROTOCOL` forbids transports even when repository configuration permits
|
||||
an individual protocol. Git documents this precedence in its
|
||||
[environment-variable reference](https://git-scm.com/docs/git#Documentation/git.txt-GITALLOWPROTOCOL).
|
||||
Regression fixtures must prove supplied-object identity and lack of helper execution;
|
||||
setting environment variables alone is not evidence of either property.
|
||||
|
||||
The snapshot adapter provides change evidence, not a second region selector. Source
|
||||
materialization, changed spans, and correspondence must remain language agnostic;
|
||||
unknown parser or correspondence boundaries cannot become a successful negative.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"feature_name": "pre-push-safety-net",
|
||||
"created_at": "2026-09-12T15:35:00Z",
|
||||
"updated_at": "2026-09-12T17:21:05.783007Z",
|
||||
"updated_at": "2026-09-12T18:32:19.033933Z",
|
||||
"language": "en",
|
||||
"phase": "implementation",
|
||||
"approvals": {
|
||||
@@ -19,7 +19,7 @@
|
||||
}
|
||||
},
|
||||
"ready_for_implementation": true,
|
||||
"implementation_approval_note": "2026-09-12: maintainer explicitly said 'approve.' in response to approval of the generated task plan and starting implementation with group 1. All tasks are approved; this implementation run starts with tasks 1.1\u20131.4. No task is complete until its fresh-evidence and reviewer gates pass.",
|
||||
"implementation_approval_note": "Groups 1 and 2 explicitly authorized by the maintainer. Group 1 verified complete; this run implements group 2 (2.1\u20132.3). Remaining task plan retains approval, with execution sequenced by the spec.",
|
||||
"depends_on": [
|
||||
"contributor-scan"
|
||||
],
|
||||
@@ -40,6 +40,11 @@
|
||||
"at": "2026-09-12T16:20:40.814596Z",
|
||||
"source": "approve.",
|
||||
"action": "Accepted the generated task plan and authorized starting group 1 (1.1\u20131.4). Implementation started; tasks require independent review and fresh verification before completion."
|
||||
},
|
||||
{
|
||||
"at": "2026-09-12T18:32:19.033933Z",
|
||||
"source": "ok, next kiro phase, approved; correct. we can continue with the spec",
|
||||
"action": "Authorized group 2 (2.1\u20132.3), resumed after local Claude Mem repair. Independent review and fresh verification remain required."
|
||||
}
|
||||
],
|
||||
"task_review": {
|
||||
@@ -60,6 +65,7 @@
|
||||
],
|
||||
"remaining_tasks": 23,
|
||||
"verification_record": "implementation-group-1.md",
|
||||
"next_group": 2
|
||||
"next_group": 2,
|
||||
"active_group": 2
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,12 +56,13 @@ the hook and capability admission are not yet implemented. See `implementation-g
|
||||
- _Verified 2026-09-12:_ independent review APPROVED; 965 tests passed, 9 skipped; touched-source Ruff/mypy passed. Parent rebuilt the local image and verified non-root, network-disabled CLI startup, all contract imports, an 83-byte configuration round trip and invalid-budget rejection. Comparison-owned completion preserves different bases for a shared head. Contracts are structural; runtime snapshot/cache/runner/admission implementations remain in later tasks.
|
||||
|
||||
- [ ] 2. Resolve immutable pushed content
|
||||
- [ ] 2.1 Resolve every supplied ref update and comparison
|
||||
- [x] 2.1 Resolve every supplied ref update and comparison
|
||||
- Parse Git's complete update input using object-format-aware validation; resolve existing tips, new-branch configured bases, force-pushes, merges, peeled tags, deleted refs and unsupported objects.
|
||||
- Deduplicate equal targets without merging different base comparisons; retain every ref association. Do not silently substitute HEAD or fetch missing objects.
|
||||
- Done when multi-ref and missing-base fixtures produce exact comparison identities and explicit dispositions, including deletion-only no-analysis results.
|
||||
- _Boundary: Snapshot Adapter_
|
||||
- _Requirements: 1.1, 1.3, 1.4, 7.1_
|
||||
- _Verified 2026-09-12:_ independent review APPROVED after Unicode-ref repair; 997 tests passed, 9 skipped; focused 76 passed and touched Ruff/mypy passed. Real SHA-1/SHA-256 fixtures cover exact comparisons, tags, deletion, missing/ambiguous bases, replacement/graft suppression and blocked promisor fetch. Parent read 2,547 pinned source bytes and verified real-repository comparison/ref identity with dirty state and index preserved. ASCII protocol framing retains valid Unicode ref names.
|
||||
- [ ] 2.2 Materialize isolated object snapshots
|
||||
- Read immutable tracked blobs into bounded scratch storage using machine-readable paths; do not checkout into the live tree or run filters, project scripts or network requests.
|
||||
- Preserve path identity and report symlinks, gitlinks, unavailable LFS blobs and unsupported content; never follow source outside the snapshot.
|
||||
|
||||
Reference in New Issue
Block a user