Repository navigation
Conversation
Signed-off-by: Jeremy lewi <jeremy@lewi.us>
Signed-off-by: Jeremy lewi <jeremy@lewi.us>
Signed-off-by: Jeremy lewi <jeremy@lewi.us>
Signed-off-by: Jeremy lewi <jeremy@lewi.us>
Signed-off-by: Jeremy lewi <jeremy@lewi.us>
jlewi
force-pushed
the
codex/release-storage-diagnostics
branch
from
October 27, 2026 15:14
b383a69 to
1baaa8c
Compare
jlewi
marked this pull request as ready for review
October 27, 2026 15:14
jlewi
marked this pull request as draft
October 27, 2026 16:16
Signed-off-by: Jeremy lewi <jeremy@lewi.us>
Signed-off-by: Jeremy lewi <jeremy@lewi.us>
…elease Signed-off-by: Jeremy lewi <jeremy@lewi.us>
Signed-off-by: Jeremy lewi <jeremy@lewi.us>
Signed-off-by: Jeremy lewi <jeremy@lewi.us>
Signed-off-by: Jeremy lewi <jeremy@lewi.us>
Signed-off-by: Jeremy lewi <jeremy@lewi.us>
jlewi
marked this pull request as ready for review
October 27, 2026 18:18
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 release upgrade previously waited for every tab to preserve edits and acknowledge readiness before replacing storage and reloading all pages. A frozen tab or failed storage request could hold up that coordination indefinitely.
Activation now replaces the shared storage worker under its existing lifetime lock without asking other tabs to prepare. Only the initiating tab reloads automatically. Other tabs retain their mounted editors and reconnect independently to the selected worker; a stable capability handshake precedes data RPCs. Confirmed incompatibility attempts local recovery once, while timeouts never trigger an automatic reload.
Each tab preserves its editor contents, captured baseline, observed history, actor identity, and exact pending operations in a verified, versioned session-storage checkpoint before reloading. The new app restores the captured editor and replays identical operation IDs, preserving concurrent edits and deduplicating lost acknowledgements. Quota errors, preservation deadlines, active execution, and uncertain generic mutations keep that tab open. Legacy snapshot editors require a durable flush. Published manifests declare
tabRecoveryFormat: 1. Rolling back to a release without that contract first flushes the initiating tab durably; current peers refuse to discard their editors into an incompatible checkpoint reader. Historical launchers keep their original policy, so pre-bootstrap installations use the explicit migration entrypoint.Storage restart remains separate from app reload. Independent management diagnostics report worker startup phase, elapsed time, and pending requests; stop/force-stop and restart controls remain available. Release recovery controls expose published releases, exact commit/build selection, downloads and release-settings diagnostics even when settings fail. Force close requires a responsive worker event loop; it does not steal the ownership lock.
Validation:
SHELL=/bin/bash runme run build testpassed.The design and CUJs document the independent-tab lifecycle and historical migration boundary. CI includes checkpoint/negotiation tests and both current and frozen release compatibility suites. The final historical browser run passed upgrade, offline migration-entry startup, rollback with a current peer left open, and broken-app/worker recovery against frozen commit
9a5fdbf0ca30bf73431b7c4eb90f75f3c91e3ecf. Publisher tests verify the recovery capability survives manifest publication. A deterministic regression test also verifies that normal editor restoration finishes before the orphan-checkpoint scan, preventing duplicate save sessions after reload. CI passed both current and frozen historical release suites forddecc8c. One local fault-injection run timed out observing the worker settings-read failure; five isolated repetitions passed without runtime changes. Startup acceptance now records full worker status history on failure. The complete final candidate acceptance gate passed foreb786ba.Deployed to staging at commit
eb786ba8f28f8473300592c442f55b5d75c7db37, releaseeb786ba8f28f8473300592c442f55b5d75c7db37-8a74c53ceb6d8b89f804354bdd17f1329675f65955ef733d9b4d3bb0c38b605b. Verified all 514 asset hashes before pointer promotion, then verified stable/latest and root files through the gateway. An isolated staging browser created a notebook, saved content, reloaded only its tab, restored the content, and cleared its acknowledged recovery checkpoint with no page errors.