Repository navigation
feat(ui): first-run setup screen and server connect form - #1757
Open
rigel-mintaka wants to merge 4 commits into
Open
rigel-mintaka wants to merge 4 commits into
rigel-mintaka wants to merge 4 commits into
Conversation
Adds bootSetup with the embedded and connect choices. It follows other windows' decisions via setup:decided plus shellState, keeps its listener across failed attempts, and aborts an idle connect form when a sibling decides. bootNativeClient gains a setup entry: editable URL, CA picker, no auto-probe, and the provider built from the connected URL. The transport adds pickCACert, chooseEmbedded, shellState and quitApp; shell modes gain setup and reopen. Refs RIG-4564 Co-authored-by: Matt Wilkinson <matt@rigel.build>
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
|
Compass engineering docs preview: https://compass-native-rig-4564-setu.compass-eng-docs.pages.dev Deployed from |
Accepts today's ConnectResult without serverUrl and falls back to the submitted URL. A rejected chooseEmbedded, shellConnect, shellState or CA pick leaves a retryable screen; a sibling client decision sets the live server URL before handoff; setup success clears the form; state reads re-check active work; reopen shares one renderer; a cancelled CA dialog keeps the selection. Refs RIG-4564 Co-authored-by: Matt Wilkinson <matt@rigel.build>
…ures An invalid Wails response frame becomes an RPC error and unsubscribes, so the pending fetch rejects; head status must be 200-599 and omitted optional fields are accepted. A setup success without serverUrl is a retryable failure. Queued sibling decisions and error messages survive failed or deferred state reads; the configured retry form handles a rejected connect locally. Refs RIG-4564 Co-authored-by: Matt Wilkinson <matt@rigel.build>
A sibling decision that arrives during a state read which then fails is retried with the error kept on screen. A decision queued by a stale read also aborts an idle connect form. A 101/103/204/205/304 head builds a Response with no body, which the constructor otherwise rejects. Refs RIG-4564 Co-authored-by: Matt Wilkinson <matt@rigel.build>
rigel-mintaka
marked this pull request as ready for review
October 6, 2026 06:55
This branch has not been deployed
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 implements T-4 of
docs/designs/ui/compass-native-server-url-entry/design.md: the first-run setup screen and the server connect form. It codes against the Go method names and JSON shapes the record fixes. The Go side lands in T-2b and T-3, so the screen is unreachable until T-3 sets thesetupmode.shell-globals.ts:ShellModegainssetupandreopen.daemon-transport.ts, still the only@wailsio/runtimeimporter:shellConnectsends{token}or{token, server};ConnectResultgainsinvalid-url,invalid-caand an optionalserverUrl; today's Go result omits it until T-2b;pickCACert,chooseEmbedded,shellState,onSetupDecidedandquitApp;boot-setup.ts:setup:decided, then readsshellState; it hands off to the configured client or shows the neutral reopen screen;okwins;chooseEmbedded,shellConnect,shellState,pickCACert) leaves a retryable screen. A decision that arrives during a failed or stale state read is kept and retried;clientdecision sets the live server URL before the configured hand-off.boot-native.tssetup entry: editable URL, CA picker with "Use system trust" (a cancelled dialog keeps the pick), and no auto-probe. Server messages render viatextContent. A setupokmust carryserverUrl, and the provider is built from it; the form is cleared on success. The configured entry is unchanged.boot-mode.tsroutessetuptobootSetupandreopento the neutral screen.Verification
bun test(boot-native,boot-setup,boot-mode,shell-globals,daemon-transport,daemon-transport.wails): 87 pass, each test written red first. Each T-4 test-cycle bullet maps to a case, including:okresult;okresult;moon run compass-ui:typecheck: pass.biome checkon the changed files: clean.compass-ui:test(full): pass in CI.Risks
Medium. These are new async UI state transitions, but no current launch path reaches them, so existing users see no change. Rollback: revert.
Compatibility
shellConnectcallers that send only a token are unchanged. The new bound methods need the Go side from T-2b and T-3.Documentation
None here. User-facing docs land in T-5.
Refs RIG-4564