Repository navigation
fix(runtime): preserve exhaustive continuation policy and task integrity - #1293
Merged
Merged
Conversation
aviggiano
force-pushed
the
fix/exhaustive-partial-report-continuation
branch
from
October 13, 2026 11:54
379d71b to
5be62b0
Compare
aviggiano
marked this pull request as ready for review
October 13, 2026 12:05
Comment on lines
+11188
to
+11192
| assert.ok( | ||
| specs | ||
| .find((task) => task.attemptId === consumer.attemptId) | ||
| ?.optionalDependencyArtifactDirs.includes(producer.artifactDir) | ||
| ); |
There was a problem hiding this comment.
This test only checks tasks in tasks.tasks. It never supplies dynamic_groups, so it does not cover the new call to applyCurrentDependencyPolicy on taskTemplates. That branch could stop applying the policy while this test stays green.
Add a dynamic template that depends on a newly continuing static producer. Assert that its serialized optionalDependencyArtifactDirs includes that producer.
Prompt To Fix With AI
This is a comment left during a code review.
Path: packages/runtime/test/runtime.test.ts
Line: 11188-11192
Comment:
**Dynamic templates go untested**
This test only checks tasks in `tasks.tasks`. It never supplies `dynamic_groups`, so it does not cover the new call to `applyCurrentDependencyPolicy` on `taskTemplates`. That branch could stop applying the policy while this test stays green.
Add a dynamic template that depends on a newly continuing static producer. Assert that its serialized `optionalDependencyArtifactDirs` includes that producer.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
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.
New exhaustive runs can reconcile a partial report after the property-catalog aggregation group exhausts its attempts. The group now uses
failure_policy: continue, and refreshed controllers derive optional dependency edges from the run's recorded graph for both static tasks and dynamic templates.Publication and verification share the same derivation. Tasks whose policy is unchanged retain their exact serialized form, and verification accepts the exact pre-refresh recorded derivation as well as the refreshed derivation. Tampered optional edges remain rejected.
Scope: refresh repairs missing optional metadata already authorized by the saved graph. It does not replace a historical run's sealed
haltpolicy with the latest packaged topology. Related to #1292; migration of those older halted runs remains separate.Validation:


Confidence Score: 5/5
The PR appears safe to merge; the remaining test-coverage suggestion is non-blocking.Fix with agent prompt
Summary
The PR lets new exhaustive runs continue after
property-catalogfails.Diagram
%%{init: {'theme': 'neutral'}}%% flowchart TD G[Sealed graph policy] --> P[Shared optional-input rule] T[Recorded tasks and templates] --> P P --> C[Refreshed controller] P --> D[Dynamic task publication] D --> V[Compare full tasks and graph] T --> L[Recorded derivation fallback] L --> VReviews (2) · Last reviewed commit: "Merge remote-tracking branch 'origin/uns..." · Reviewed by Greptile