feat(lume): qualify macOS backend against deployed service - #36
Merged
Merged
Conversation
Add tunneled Lume lifecycle, atomic ownership sidecars, identity-pinned clones, capacity gates, SSH/SFTP guest transport, and Mac platform dispatch. Preserve failed snapshot copies for exact-name cleanup. Add real SSH/SFTP fixtures and an opt-in live lane; update the runbook and qualification evidence. Local lint, race tests, native/Linux builds, and offline artifact smoke pass. Deployed acceptance remains blocked on the existing server VM identity and verified source IP; SSH restrictions, PF, and tailnet policy are unchanged.
Contributor
Author
|
Seed PR #29 is now squash-merged. Rebased this branch onto that merge, dropping the already-integrated seed commits. Fixed CI goconst findings by extracting shared OS/user/state constants; behavior is unchanged. Linux/amd64-targeted lint reports 0 issues, and the rebased full race suite plus build pass. Waiting for the updated required CI before squash merge. |
jmgilman
force-pushed
the
fix/phase8-live-qualification
branch
from
September 16, 2026 00:50
6c7717a to
14787c8
Compare
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.
Change
Integrate the Phase 8 seed and Lume backend on v0.1.1, preserving its named bearer authentication and authenticated loopback reverse-proxy fixes. Supersedes draft #31 and includes the seed work from #29; #29 is left open for its existing review.
Live qualification found and fixed three defects:
/bin/sh. Studio's zsh login shell rejected an empty sidecar glob after the last sandbox was deleted.Each failure was reproduced in a regression before its fix. No methods were added to
compute.Backend.Live acceptance
Executed against the real HTTPS MCP service on
agentcompute01, from its existing source-pinned identity to Studio. Final complete MCP acceptance used source4f7024d/ version0.1.1-phase8.4f7024d.sw_versreports macOS 26.6.2 / 25G83.list_apps; 1920×1200 screenshot fetched over HTTPS from the agent workstation and visually checked: desktop, not Setup Assistant. No TCC approval or wizard interaction was needed.aftertobefore.net.createreturnscapability failed: unsupported on platform mac.Final MCP timings: first create 37.46 s, second create 51.05 s, screenshot plus HTTPS fetch 4.74 s. Earlier creates took 80–98 s; these are observations, not cold-start guarantees.
Evidence:
spikes/lume/qualification.json; operational details:images/macos/README.md.Validation
golangci-lint fmtgolangci-lint run— 0 issuesgo test -race ./...— passgo build ./...— passCGO_ENABLED=0— passOperational state and findings
Qualification used a runtime-only systemd override. The fleet-pinned v0.1.1 service, original config, and original catalog are restored; temporary binaries and the copied guest credential are removed. The restored endpoint still requires bearer authentication (401 without it). Only the stopped seed remains.
No Mac permissions, SSH policy, TCC grants, seed contents, PF rules, tailnet policy, design documents, or journal files were changed. Networking #22 and Phase 9a's same-key wrong-source refusal are established prerequisites; Studio remains untagged. The approved unrestricted Incus credential exception is unchanged.
Residuals:
sandbox.listcan return a transient not-found error if another process deletes a listed sandbox before detail lookup. Observed during parallel live-lane teardown; sequential lifecycle and TTL acceptance passed.This qualifies the backend; it does not permanently deploy an unreleased build or merge the pending PRs.