Repository navigation
Conversation
A data directory in use by another Tcode, one that cannot be opened, a failed migration check or a kernel that does not start no longer end in a system alert and exit. The window opens on Machines, where This machine says why and offers Retry and Quit; saved machines and pairing stay available. Retry takes ownership of the data directory again. The local transport bootstrap gives the shell is now fallible, and the shell resolves it before replacing the current attachment. Settings → Remote and the invitation need the process's own host, so they apply only while it runs.
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
A local host that fails to start is now one more attachment failure. The window opens as usual on Machines, where This machine gives the reason and offers Retry and Quit. Saved machines and pairing stay available.
What each failure now shows (on the This machine row):
acquire_ownership): "Could not start: another Tcode host is already using the data directory …". Retry takes ownership once the other instance quits.open_host): the error, then "Its settings could not be read, so the default language and theme are in use."needs_migration.spawn_host.Things that follow from having no local host:
RemoteControllerthat the process's own host installs, so they are offered only while that host runs. Without this, a window attached to a remote machine could reachupdate_global::<RemoteController>with no controller installed.Failures in the migration window are unchanged. They were already drawn in-window.
Evidence
TCODE_DATA_DIR. The second shows a system alert and exits.After: same setup. The window opens with This machine unavailable, Retry and Quit (desktop, light, English,
HOSTNAME="Demo Mac", throwaway profile).Live checks, run by hand against the debug build:
TCODE_DATA_DIRpointed at a regular file: "Could not start: File exists (os error 17). Its settings could not be read, so the default language and theme are in use."Seam test,
shell::tests::a_local_host_that_does_not_start_is_shown_and_retried. It drivesAppShellthrough the sameShellSetup.localthatrun_shellfeeds:Mutation check: when
attachdoes not hand the reason to the panel, the test fails (shell.rs:4587).Tests touched:
attachment::tests::closing_an_attachment_finishes_its_pump_without_shutting_down_the_host: setup only. It now passes theTransportdirectly, becauseAttachment::opentakes a resolved transport. Its contract is unchanged.shell::tests::mount_initial: the helper's local factory now returnsOk(transport).Checks:
Gaps:
local: None), so this state cannot occur there.Merge Danger
Door: two-way
Blast Radius: startup
The desktop startup path changed:
store::data_dir(), and the store is opened insidestart_local_host.--pairopens its own store handle.LocalTransport's signature changed for every caller (desktop, phone example, tests).RELAUNCH_WAIT.Closes #682