carlos / platform Public

Merge origin/main (tenant-iso-routes, layout pass) into feat/hostclaim-box

SyncExec unifies on main's SyncOption: WithHostWrite carries Plan 6's
host-write config beside SkipFenced, which applies on both paths; the
agent tick keeps main's layout leg and then Plan 6's serial notify.
Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 357dd520f26292043ad8f3688db153ab789aae79 parent 3b8539aparent 1c43c2c
129 files changed, +13954 −296
  • AGENTS.md +19 −0
  • README.md +6 −0
  • apimode.go +45 −8
  • cli.go +55 −0
  • cli_test.go +92 −0
  • cmd/console/main.go +17 −0
  • deploy.go +49 −4
  • docs/site/cli.md +63 −9
  • docs/superpowers/plans/2026-09-25-isolated-exec-4-layout-amendments.md +133 −0
  • docs/superpowers/specs/2026-09-11-isolated-exec-design.md +63 −1
  • domains_cli.go +106 −6
  • instances_e2e_test.go +5 −0
  • internal/activator/maintenance.go +63 −1
  • internal/activator/maintenance_test.go +136 −0
  • internal/appconfig/claimsync_test.go +137 −3
  • internal/appconfig/syncexec.go +54 −8
  • internal/appconfig/syncexec_test.go +58 −0
  • internal/cgroup/cgroup.go +29 −0
  • internal/console/apidomains.go +50 −8
  • internal/console/apiinstancemove_test.go +1 −0
  • internal/console/apiinstances.go +52 −0
  • internal/console/apiinstances_test.go +148 −3
  • internal/console/apiinstancesenvironment_test.go +1 −0
  • internal/console/apistatuslayout.go +117 −0
  • internal/console/apistatuslayout_test.go +188 −0
  • internal/console/appdomains.go +5 −0
  • internal/console/appsettings.go +14 −5
  • internal/console/appsettings_gate_test.go +2 −0
  • internal/console/authcli.go +21 −5
  • internal/console/authcli_test.go +9 −1
  • internal/console/controlplane_test.go +7 −3
  • internal/console/domainattach.go +52 −7
  • internal/console/domainpolicy.go +159 −0
  • internal/console/domainproof_test.go +425 −0
  • internal/console/domainstate.go +20 −1
  • internal/console/domainstate_test.go +5 −0
  • internal/console/edgeproof.go +172 −0
  • internal/console/edgeproof_test.go +122 −0
  • internal/console/instancepage.go +37 −1
  • internal/console/instancepage_test.go +53 −1
  • internal/console/placementdoors_test.go +1 −0
  • internal/console/regionfill_test.go +3 −1
  • internal/console/server.go +26 −3
  • internal/console/store.go +14 −5
  • internal/console/svcroutes_test.go +7 −2
  • internal/console/templates/app_instance.html +1 −0
  • internal/console/view.go +8 −0
  • internal/domains/aliases.go +12 −1
  • internal/domains/claims.go +184 −21
  • internal/domains/claims_proof_test.go +243 −0
  • internal/edge/edge.go +11 −0
  • internal/edge/fleetapi_e2e_test.go +77 −0
  • internal/edge/forwardproof.go +52 −0
  • internal/edge/forwardproof_test.go +150 −0
  • internal/edge/homemap.go +3 −0
  • internal/edge/homemap_test.go +3 −0
  • internal/edge/mesh.go +11 −41
  • internal/edge/storedoor.go +120 −33
  • internal/edge/storedoor_test.go +84 −10
  • internal/edge/wildcard.go +11 −1
  • internal/edge/wildcard_parents_test.go +5 −2
  • internal/edge/wildcard_test.go +10 −7
  • internal/edgeproof/edgeproof.go +160 −0
  • internal/host/agent.go +88 −20
  • internal/host/agent_isolated_test.go +27 −4
  • internal/host/agent_layout_test.go +704 −0
  • internal/host/layoutleg.go +396 −0
  • internal/host/movespass.go +7 −7
  • internal/host/movespass_test.go +30 −0
  • internal/host/systemapply.go +106 −1
  • internal/host/systemapply_test.go +170 −0
  • internal/host/units/carlos-app@.service +6 −0
  • internal/host/units/carlos-edge.service +20 −1
  • internal/host/units/carlos-instance-probe.service +54 −1
  • internal/host/units/carlos-instance-seed@.service +48 −1
  • internal/host/units/carlos-instance-sidecar@.service +48 −1
  • internal/host/units/carlos-instance@.service +48 −1
  • internal/host/units_hardening_test.go +148 −0
  • internal/host/units_isolation_test.go +27 −3
  • internal/instancectl/hardening.go +342 −0
  • internal/instancectl/hardening_test.go +185 −0
  • internal/instancectl/peer_linux.go +11 −0
  • internal/instancectl/peer_other.go +1 −0
  • internal/instancectl/server.go +56 −7
  • internal/instancectl/server_test.go +2 −2
  • internal/instanceexec/exec.go +2 −2
  • internal/instanceexec/probe.go +60 −2
  • internal/instanceexec/probe_hardening.go +193 −0
  • internal/instanceexec/probe_hardening_test.go +221 −0
  • internal/instanceexec/probe_linux.go +1 −1
  • internal/instanceexec/probe_test.go +40 −19
  • internal/instanceexec/scope_linux.go +146 −0
  • internal/instanceexec/scope_other.go +13 −0
  • internal/instancefs/dirs_linux.go +158 −0
  • internal/instancefs/dirs_linux_test.go +231 −0
  • internal/instancefs/instancefs.go +24 −0
  • internal/instancefs/instancefs_linux.go +22 −0
  • internal/instancefs/instancefs_linux_test.go +23 −0
  • internal/instancefs/instancefs_other.go +32 −0
  • internal/layout/journal.go +339 −0
  • internal/layout/journal_linux.go +16 −0
  • internal/layout/journal_linux_test.go +46 −0
  • internal/layout/journal_other.go +13 −0
  • internal/layout/journal_test.go +344 −0
  • internal/layout/links_linux.go +20 −0
  • internal/layout/links_other.go +9 −0
  • internal/layout/pass.go +1212 −0
  • internal/layout/pass_linux_test.go +1768 −0
  • internal/layout/plan.go +194 −0
  • internal/layout/plan_test.go +160 −0
  • internal/layout/preflight.go +449 −0
  • internal/layout/preflight_test.go +561 −0
  • internal/layout/rawdir_test.go +109 −0
  • internal/ops/litestream.go +23 −4
  • internal/ops/ops.go +1 −1
  • internal/ops/ops_test.go +81 −1
  • internal/provision/provision.go +33 −4
  • internal/provision/provision_test.go +33 −0
  • internal/provision/reconcile.go +30 −9
  • internal/provision/reconcile_test.go +150 −0
  • internal/registry/registry.go +35 −0
  • internal/registry/registry_test.go +32 −0
  • internal/release/layoutintent.go +172 −0
  • internal/release/layoutintent_test.go +98 −0
  • internal/status/contract_test.go +25 −1
  • internal/status/snapshot.go +45 −1
  • internal/status/snapshot_test.go +51 −0
  • status_instances.go +117 −0
  • status_instances_test.go +112 −0

CI passed — run details

AGENTS.md

Loading diff…

README.md

Loading diff…

apimode.go

Loading diff…

cli.go

Loading diff…

cli_test.go

Loading diff…

cmd/console/main.go

Loading diff…

deploy.go

Loading diff…

docs/site/cli.md

Loading diff…

docs/superpowers/plans/2026-09-25-isolated-exec-4-layout-amendments.md

Loading diff…

docs/superpowers/specs/2026-09-11-isolated-exec-design.md

Loading diff…

domains_cli.go

Loading diff…

instances_e2e_test.go

Loading diff…

internal/activator/maintenance.go

Loading diff…

internal/activator/maintenance_test.go

Loading diff…

internal/appconfig/claimsync_test.go

Loading diff…

internal/appconfig/syncexec.go

Loading diff…

internal/appconfig/syncexec_test.go

Loading diff…

internal/cgroup/cgroup.go

Loading diff…

internal/console/apidomains.go

Loading diff…

internal/console/apiinstancemove_test.go

Loading diff…

internal/console/apiinstances.go

Loading diff…

internal/console/apiinstances_test.go

Loading diff…

internal/console/apiinstancesenvironment_test.go

Loading diff…

internal/console/apistatuslayout.go

Loading diff…

internal/console/apistatuslayout_test.go

Loading diff…

internal/console/appdomains.go

Loading diff…

internal/console/appsettings.go

Loading diff…

internal/console/appsettings_gate_test.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/console/authcli_test.go

Loading diff…

internal/console/controlplane_test.go

Loading diff…

internal/console/domainattach.go

Loading diff…

internal/console/domainpolicy.go

Loading diff…

internal/console/domainproof_test.go

Loading diff…

internal/console/domainstate.go

Loading diff…

internal/console/domainstate_test.go

Loading diff…

internal/console/edgeproof.go

Loading diff…

internal/console/edgeproof_test.go

Loading diff…

internal/console/instancepage.go

Loading diff…

internal/console/instancepage_test.go

Loading diff…

internal/console/placementdoors_test.go

Loading diff…

internal/console/regionfill_test.go

Loading diff…

internal/console/server.go

Loading diff…

internal/console/store.go

Loading diff…

internal/console/svcroutes_test.go

Loading diff…

internal/console/templates/app_instance.html

Loading diff…

internal/console/view.go

Loading diff…

internal/domains/aliases.go

Loading diff…

internal/domains/claims.go

Loading diff…

internal/domains/claims_proof_test.go

Loading diff…

internal/edge/edge.go

Loading diff…

internal/edge/fleetapi_e2e_test.go

Loading diff…

internal/edge/forwardproof.go

Loading diff…

internal/edge/forwardproof_test.go

Loading diff…

internal/edge/homemap.go

Loading diff…

internal/edge/homemap_test.go

Loading diff…

internal/edge/mesh.go

Loading diff…

internal/edge/storedoor.go

Loading diff…

internal/edge/storedoor_test.go

Loading diff…

internal/edge/wildcard.go

Loading diff…

internal/edge/wildcard_parents_test.go

Loading diff…

internal/edge/wildcard_test.go

Loading diff…

internal/edgeproof/edgeproof.go

Loading diff…

internal/host/agent.go

Loading diff…

internal/host/agent_isolated_test.go

Loading diff…

internal/host/agent_layout_test.go

Loading diff…

internal/host/layoutleg.go

Loading diff…

internal/host/movespass.go

Loading diff…

internal/host/movespass_test.go

Loading diff…

internal/host/systemapply.go

Loading diff…

internal/host/systemapply_test.go

Loading diff…

internal/host/units/carlos-app@.service

Loading diff…

internal/host/units/carlos-edge.service

Loading diff…

internal/host/units/carlos-instance-probe.service

Loading diff…

internal/host/units/carlos-instance-seed@.service

Loading diff…

internal/host/units/carlos-instance-sidecar@.service

Loading diff…

internal/host/units/carlos-instance@.service

Loading diff…

internal/host/units_hardening_test.go

Loading diff…

internal/host/units_isolation_test.go

Loading diff…

internal/instancectl/hardening.go

Loading diff…

internal/instancectl/hardening_test.go

Loading diff…

internal/instancectl/peer_linux.go

Loading diff…

internal/instancectl/peer_other.go

Loading diff…

internal/instancectl/server.go

Loading diff…

internal/instancectl/server_test.go

Loading diff…

internal/instanceexec/exec.go

Loading diff…

internal/instanceexec/probe.go

Loading diff…

internal/instanceexec/probe_hardening.go

Loading diff…

internal/instanceexec/probe_hardening_test.go

Loading diff…

internal/instanceexec/probe_linux.go

Loading diff…

internal/instanceexec/probe_test.go

Loading diff…

internal/instanceexec/scope_linux.go

Loading diff…

internal/instanceexec/scope_other.go

Loading diff…

internal/instancefs/dirs_linux.go

Loading diff…

internal/instancefs/dirs_linux_test.go

Loading diff…

internal/instancefs/instancefs.go

Loading diff…

internal/instancefs/instancefs_linux.go

Loading diff…

internal/instancefs/instancefs_linux_test.go

Loading diff…

internal/instancefs/instancefs_other.go

Loading diff…

internal/layout/journal.go

Loading diff…

internal/layout/journal_linux.go

Loading diff…

internal/layout/journal_linux_test.go

Loading diff…

internal/layout/journal_other.go

Loading diff…

internal/layout/journal_test.go

Loading diff…

internal/layout/links_linux.go

Loading diff…

internal/layout/links_other.go

Loading diff…

internal/layout/pass.go

Loading diff…

internal/layout/pass_linux_test.go

Loading diff…

internal/layout/plan.go

Loading diff…

internal/layout/plan_test.go

Loading diff…

internal/layout/preflight.go

Loading diff…

internal/layout/preflight_test.go

Loading diff…

internal/layout/rawdir_test.go

Loading diff…

internal/ops/litestream.go

Loading diff…

internal/ops/ops.go

Loading diff…

internal/ops/ops_test.go

Loading diff…

internal/provision/provision.go

Loading diff…

internal/provision/provision_test.go

Loading diff…

internal/provision/reconcile.go

Loading diff…

internal/provision/reconcile_test.go

Loading diff…

internal/registry/registry.go

Loading diff…

internal/registry/registry_test.go

Loading diff…

internal/release/layoutintent.go

Loading diff…

internal/release/layoutintent_test.go

Loading diff…

internal/status/contract_test.go

Loading diff…

internal/status/snapshot.go

Loading diff…

internal/status/snapshot_test.go

Loading diff…

status_instances.go

Loading diff…

status_instances_test.go

Loading diff…