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
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.
Status
Backend implemented and verified locally. Phase 8 is not yet deployed or qualified. The existing agentcompute server VM was selected, but its identity/tailnet source IP is still needed to install and prove the approved SSH boundary. Keep this PR draft. Stacked on #29.
Changes
internal/lumeagainst the existing 36-methodcompute.Backend; no Lume-only interface methods.machineIdentifierbefore first boot, preserving clone MACs.lume lsinventory before Lume HTTP. Detect accepted-but-stopped host-wide Apple capacity failures using only newly appended daemon log bytes.seed:catalog entry, service wiring tests, real SSH/SFTP transport fixtures, andAGENTCOMPUTE_TEST_LUMElive backend lane.spikes/lume/identity.json. Retain the earlier strict wizard regression gate, identity evidence, and unapplied PF proposal.Verification
Passed with Go 1.26.6 on darwin/arm64:
golangci-lint fmt --config .golangci.ymlgolangci-lint run --config .golangci.yml ./... --show-stats=falsego test -race ./... -count=1 -timeout=180sgo build ./...GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build ./...python3 .github/scripts/mcp_smoke.py --offline -- bin/agentcompute stdiojq empty spikes/lume/identity.jsonTransport regressions use real system SSH, separate jump/guest keys and the native SFTP server; only Lume HTTP is simulated. They cover quoting, cancellation, literal globs, permissions, missing files and binary transfers. Lifecycle regressions cover pre-HTTP capacity refusal, resource preparation, and exact-name cleanup retaining failed snapshot copies.
The environment-gated live backend test was not run. These checks are not deployed MCP evidence.
Host evidence and residual
agentcomputeremains hidden, standard/non-admin;sudo -n trueexits 1./Users/joshis now owner-only (0700); the account cannot read or traverse code, Documents, .ssh or Library beneath it.Remaining deployed acceptance
Blocked on the verified existing server VM identity/source IP: install and reprove SSH source containment; create through MCP and run
sw_vers; list apps; retrieve a screenshot; snapshot and restore; delete to seed-only inventory; restart rediscovery and TTL cleanup; unsupported-network AgentErrors; two concurrent guests and third-guest refusal. Creation and screenshot service round-trip timings remain unmeasured.No PF application, tailnet ACL changes, design-document edits or
.journal/edits. No prerequisite PR was merged.Prerequisites and upstream