Repository navigation
Clean up VIR apps after startup failures and shutdown - #12
Merged
Merged
Conversation
Use the shared Runtime startup and cleanup support, retire terminal interpreter or DOM errors, and keep recoverable errors usable. Treat cancelled demo startup quietly. Add a small Lean test app and browser coverage for real callbacks, disposal, startup rollback and error handling. Co-Authored-By: Codex <noreply@openai.com>
Keep the response body open until disposal and verify that the browser aborts the request. Clarify which startup phase supports disposal. Co-Authored-By: Codex <noreply@openai.com>
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 VIR program can stay alive after its app fails to start or its LeanUI runtime is disposed. This connects the VIR adapter to LeanUI's existing cleanup support.
Failed starts release the new program and restore the previous active runtime. Calling
dispose()stops browser work, releases the VIR program once, and blocks later callbacks. Fatal interpreter or screen-update errors stop the app; recoverable errors still allow input. The Bench and Life pages treat deliberate startup cancellation quietly.Tests use a small Lean app with storage, timers, focus and fetch requests. All 11 test groups pass in Chromium and Firefox, covering repeated shutdown, both startup calls, late callbacks, and cleanup errors. The tests simulate a fatal interpreter error and also exercise a real recoverable Lean error.
Bench and Life also match the vanilla results in both browsers: all nine table operations agree, and Life reaches the expected board after 100 steps. These are correctness checks, with no performance claim.
The existing packet format and runtime pin are unchanged. Full site/Roster/QED64 CI has not been run locally.