Skip to content

YOK-2785: merge queue landing - #848

Merged
beebauman merged 4 commits into
mainfrom
YOK-2785
Sep 3, 2026
Merged

YOK-2785: merge queue landing#848
beebauman merged 4 commits into
mainfrom
YOK-2785

Conversation

@beebauman

Copy link
Copy Markdown
Contributor

Item branch for YOK-2785; lands through the merge queue's merge_group integration gate.

@beebauman
beebauman enabled auto-merge September 3, 2026 03:44
@beebauman
beebauman added this pull request to the merge queue Sep 3, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Sep 3, 2026
beebauman and others added 4 commits September 3, 2026 00:10
yoke ui served the read-only local-universe web view only while its
terminal stayed open, and minted a fresh token — so a fresh URL — on
every run. Closing the window closed the view.

The view now belongs to the machine. `yoke ui up` starts the same
loopback-only, token-gated server detached and returns; `yoke ui down`
stops it; `yoke ui` and `yoke ui status` report whether it is serving
and print the tokened URL when it is. Bare `yoke ui` never serves.

The session token is minted once into a 0600 file under the machine
state directory and reused across up/down cycles, so the URL an operator
bookmarks keeps working. It never travels on argv, never reaches the
daemon record, and never reaches a log.

Both start paths run the identical `yoke ui serve-process` child
entrypoint, and that serving process publishes its own record — so
status and stop read one shape whether launchd or a parent process
brought the view up. On macOS the supervisor is a launch agent with
RunAtLoad and KeepAlive, so the view returns after a reboot until `down`
boots it out; elsewhere the daemon is a detached child.

The connection allowlist now also runs in the process that opens the
universe, not only in the command that asked for it: an agent brought
back at login refuses a connection that became hosted or prod-flagged
since it was registered.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
A session with no reachable GUI launchd domain — an SSH login, most
commonly — could not start the view at all, because the launch agent was
treated as a requirement rather than as the supervisor that survives a
reboot. It now falls back to the detached child every other platform
uses and says which supervisor it got, so the view still outlives the
terminal.

Registers the daemon's engine seams in the dynamic-authority import
roster, and collapses the engine-missing message the client-side seams
share to one home rather than repeating the string per seam.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The recorded procedure ran the bare command with host and port flags,
which now reads status and rejects them. It starts the view instead,
which also suits the step better: the command returns rather than
holding the SSH session open while the tunnel is established.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The rebase resolved the generated inventory to the base branch's copy,
so it named one ui verb where the tree now has five.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@beebauman
beebauman enabled auto-merge September 3, 2026 04:19
@beebauman
beebauman added this pull request to the merge queue Sep 3, 2026
Merged via the queue into main with commit f4d1eeb Sep 3, 2026
24 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 3, 2026
@beebauman
beebauman deleted the YOK-2785 branch September 3, 2026 04:40
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant