Harden generation commits, session expiry, and frontend builds - #124
Merged
Conversation
dovvnloading
marked this pull request as ready for review
August 12, 2026 14:27
dovvnloading
force-pushed
the
codex/qa-reliability-pass-2
branch
from
August 12, 2026 14:32
0423404 to
eda80ad
Compare
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.
Summary
This second bounded QA pass closes three high-confidence reliability gaps in generation lifecycle handling, session expiry recovery, and source frontend builds.
cancelledafter persisting generation side effects.Root cause and impact
Cancellation previously remained authoritative after assistant, memory, code-proposal, or title writes. A late stop could therefore leave durable output behind while the job's terminal state claimed cancellation. The registry now exposes an atomic commit barrier: cancellation wins before it, while persistence wins after it. The canonical assistant turn is the first derived durable write; optional memory and code-proposal failures no longer invalidate an answer that already exists.
The generation stream treated HTTP 401 as a reason to stop reconnecting but did not clear the tracked job or notify the app's session boundary. That left the composer generating indefinitely and replayed the stale job after re-authentication. Both direct-stream and status-fallback 401 paths now clean matching state and expire the UI session exactly once.
The source launcher staged frontend inputs for the build, then wrote a digest from the live tree after the build. A concurrent edit could make a bundle built from snapshot A claim snapshot B's digest. Digests now come from the staged tree actually compiled. Vite no longer reaches outside that staged tree during
buildStart.Validation
./scripts/check.ps1 -Tier fullmainBase alignment
#123 has merged. This branch was rebased onto that exact
maintree and now contains only the follow-up commiteda80ad; the rebased source tree is byte-for-byte identical to the fully tested pre-rebase tree.Operational notes
No dependencies, migrations, or stored-data formats change. Rollback is a normal revert of the follow-up commit.