Repository navigation
fix(session-temporal): refuse refresh superseded by a session reset - #4381
Merged
ScriptedAlchemy merged 15 commits intoOct 22, 2026
Merged
Conversation
A source rewrite that retires an observation while a refresh is running requests a session reset. Completion then failed with a retryable storage error (frontier mismatch), so the scheduler retried forever and the reset, which only applies once no refresh runs, never did. Completion now refuses such a candidate as a terminal state transition so the scheduler fails it durably and the next refresh applies the reset. Fixes #4373 Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Contributor
Author
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
|
Contributor
Author
There was a problem hiding this comment.
🔍 Devin Review: 1 flag
Not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)
ScriptedAlchemy
enabled auto-merge (squash)
October 22, 2026 00:26
ScriptedAlchemy
disabled auto-merge
October 22, 2026 01:18
ScriptedAlchemy
enabled auto-merge (squash)
October 22, 2026 03:16
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 rollout rewrite can request a temporal reset while its old refresh candidate is still running. Treat that superseded candidate as a terminal
InvalidStateTransition, so the scheduler fails the stale operation and the next begin applies the pending reset and rebuilds from the rewritten source. This prevents repeated retryable storage failures from leaving the session unavailable indefinitely.Completion checks the pending reset after validating the running binding. Refusal preserves the active generation. Grouped completion uses the same authority and retains per-item savepoint rollback. The regression verifies typed refusal, preservation of the active generation, application of the pending reset, and activation of the rebuilt candidate.
The host fixture retains exact-profile endpoint discovery, child ownership and early-exit diagnostics, and cleanup limited to a freshly created short socket directory. Both long-profile regressions and their existing wait bounds remain.
Validation:
b66ac773: temporal candidate reset/rebuild, all-host catalog lifecycle, long-profile doctor, and canonical short-socket cleanup. Strict Bazel Clippy passed for the root session suite and CLI host journey suite. These results precede the latest master integration.73222209passed Clippy, feature gates, repository/dashboard gates, and the shipped Linux CLI build. Its full Linux build failed when three remote actions returnedNOT_FOUND: Failed to find existing taskat 04:40:44 UTC. Worker logs show the scheduler stream closing and connection refusal at the same time. The test-execution step was skipped, so that run supplies no test results.b2d5196faaae28be18cb9f0af730a7d98db62a6dpreserves the prior PR head and merges master throughcd9fde234d, including resident-memory and cache-output revalidation repairs.Full CI on the current head must pass before merge, including the Linux fleet and aggregate result.
Fixes #4373