A bridge browser launch that cannot begin is reported, not a daemon crash (#1332) - #1723
Merged
Merged
Conversation
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.
Rom's Linux try on #1332: picked "A browser the daemon runs", the panel said only "The bridge browser is off." — because the daemon had exited.
What
The daemon mints the bridge token once, at boot, from the bridge preference as it stood then (
daemon.ts:143). Switch the bridge on and pick the daemon's browser in the same sitting, and the launcher throws its "restart first" error synchronously insidestart(), before any handler is attached.void bridgeBrowser.start()made that an unhandled rejection, which ends the process (reproduced: Node 24, exit 1). The dashboard kept its last reading, "off", since every read after that fails quietly.bridgeBrowserOwner.start()calls the launcher inside a promise executor: still synchronous (its first step is readable at once, which four existing tests rely on), but a throw is now a failed launch —stopped, with the reason, logged as "could not start" — the same path a launch that fails on the way takes.The restart requirement itself stands: the bridge routes are also mounted only at boot. That is a separate wart, not this fix.
Verified
Full suite green (1648 node + 864 dashboard; 1 new test). Broken on purpose in the compiled output — the plain
launch(...)call restored — the new test dies with the launcher's error instead of readingstopped.Specs:
bridge-browser.SPEC.md(the launch that cannot begin),BridgeBrowserSettings.SPEC.md(not running, not stopped), both test specs.🤖 curated · Fable 5, effort high