Repository navigation
fix: bind CI attribution to candidate source and refuse ambiguous target joins - #4344
Merged
Merged
Conversation
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.
CI classification previously read mutable cwd profile bytes, and legacy collection could attribute target timing from head equality or a partial PR join. This change fetches the profile at the exact selected repository/head, rejects malformed or duplicate tuples, and uses one literal workflow/job/step classifier. A complete native target PR/head/base/repository relation is required; missing or conflicting relations retain explicit gaps and contribute no attributable target timing.
The maintained .github profile covers audited engine/routine identities. Unknown profiles defer immutable classification facts; disposable-store controls prove later profile success and replay. The retained real empty-array target sample remains unknown and lives in the existing wired application test. UTEL, native target qualification, publication and installed adoption remain pending.
Hosted selftests exposed an unwired fixture directory and a staging cleanup race that masked a tampered-object refusal. The fixture is embedded in the wired test. Owned disposable Git operations now disable automatic maintenance; actual offline Git controls prove suppression and preserve refusal, no-push and cleanup behavior. Native writer identity remains unknown. Authority guards, pins, credentials/hooks/HTTPS, single lease push and native readback are unchanged.
Validation:22 reader tests,36 application tests,78 delivery-driver tests; exact clean repair-head selector68 and full offline release-successor-journal fixture pass. First failures are retained. Root safeguard review completed with no blocker; parent admits exact-head native qualification and merge readback.