feat: point the macOS app at the global manual daemon#23
Merged
Conversation
The Control Center app is intended to be globally installed, but it still derived its default daemon target from project hashing. In manual mode that made the app depend on repo context and forced operators to know a project-scoped daemon URL ahead of time. The start path had the same mismatch. Even when the app resolved a daemon URL explicitly, app-triggered daemon start still launched using the old project-oriented flow, so the app could start one daemon and probe another. Default the app bootstrap to the global manual daemon endpoint, preserve explicit loopback listen_addr overrides, surface the chosen daemon target reason in diagnostics, and make app-triggered starts use manual mode with an aligned listen address. Add the matching CLI daemon start flag support and regression coverage across the Swift and Go surfaces.
The PR review found one real correctness issue and a couple of low-value pieces of state in the new manual-daemon bootstrap path. ShellBootstrap was manually parsing listen_addr overrides, which duplicated loopback validation and risked mishandling bracketed IPv6 forms. It also carried a DaemonTargetSource enum that production code never consumed, and the non-manual warning text had diverged between lifecycle and monitoring notes. Normalize listen_addr through the existing loopback URL validator, remove the unused target-source enum, share the non-manual warning string, add an IPv6 regression test, and tighten the docs/matrix wording around the current single-global-manual-daemon contract.
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
Context
The Control Center is a globally installed operator app. In manual mode it should not require repo cwd, project hashing, or a precomputed daemon URL to connect to af spawn-backed monitoring. This change adopts the backend manual-daemon contract from #22 and keeps explicit loopback overrides working intentionally.
Refs: ts-2df50e