Repository navigation
feat(runtime): retain artifacts across execution retries - #29
Merged
Merged
Conversation
Closed
19 tasks done
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.
A delayed case-wide retry cleanup can delete a newer generation's artifacts, including references of an already committed Resolution. Retry correctness must hold with all older rows retained.
This removes
ArtifactCleaner,CleanupCaseArtifacts, and RunManager's cleaner dependency and cleanup-failure settlement. Retries use a new generation and the existing T3/T4 reads and owned reset/commit transactions. History is retained indefinitely, including billing data, checkpoints and legacy rows with unknown provenance. The retention policy and the requirements for any future physical GC are documented indocs/execution-generation-retention.md.The old optional cleaner capability is intentionally removed rather than kept as a callable compatibility API. Explicit user Case deletion keeps its existing semantics. No physical GC, TTL, scheduler, migration, or T6 deployment gate is introduced.
Validation:
go test -race -p 1 -count=1 -json ./...with real MySQL: all 52 packages with tests pass; only four real CodeRunner sandbox tests skip. Migration parity and T1–T4 regressions run in this suite.go vet ./..., formatting andgit diff --checkpass.38009584246: all five gates pass on exact HEAD334951c7a9c624b75d597fee4f47e25b794c20b3(backend, frontend, operational scripts, runtime conformance and MySQL migration compatibility).These tests prove removal of deletion authority. They do not claim transaction fencing for physical GC. Any future reclamation requires new real-DELETE race/rollback/reply-loss acceptance tests; excluding old binaries remains T6 scope.
Closes #23