Repository navigation
fix: admit only creditable pipeline tracker dependencies - #5268
Merged
Merged
Conversation
This was referenced Oct 13, 2026
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.
Tracker initialization accepts prerequisites such as
bootstrap_clonethat cannot earn completion credit, leaving a pipeline unable to progress. Kitchen-created trackers also omit the incarnation identity required to bind completion credit.This change requires a shared validated
TrackerInitializationpayload at both tracker writers. It rejects unknown steps, non-run_skillendpoints, self-dependencies, and cycles before writing a tracker, with bounded diagnostics and recovery guidance. Server-derived edges use the same eligibility rule, and manual initialization combines them with caller-requested dependencies.Kitchen trackers now receive a completion identity while retaining existing identities and statuses on re-initialization. Tracker mutations cannot change admitted dependencies. Receipt acknowledgement and completion-credit guards remain enforced.
Validation:
pre-commit run --all-filespassed.test_check/task test-local-gatepassed: 47,046 passed, 601 skipped, 29 xfailed.plan -> clonemapping, both creation paths through acknowledged credit, unchanged completion refusals, and the writer/gate/credit call inventory.Closes #5266
Response to the implementation audit
test_run_skill_predecessor_creates_dependencywith explicitly typedrun_skillendpoints and the exact expected graph. The existing test already covered the behavior, but the plan requested a separate new case; that explicit addition was missing.record_pipeline_step(op='init')call form. It preserves all four required facts: omit dependencies or supply only skill-to-skill edges, the server adds recipe dependencies, and other steps never earn completion credit.server/test_record_pipeline_step_complete.pyis already inLAYER_CASCADE_CONSERVATIVE["recipe"]attests/_test_filter.py:1365, under the recipe key beginning at line 1323. AST inspection confirms membership. No duplicate entry is needed.run_skilltool kind. This uses the public core gateway and is in the stated scope.The explicit positive test is the only tracked-code change in this audit response. The other findings are explained above. This update does not claim a new formal
/audit-implverdict.Audit-response validation:
pre-commit run --all-filespassed; configuredtest_check/task test-local-gatepassed with 47,047 passed, 601 skipped, 29 xfailed. Explicit Case 4 test added in commit8971744997f5a966a97fb71693005442d4b93268.