docs(infra): design Compass self-host runner + adoption strategy (RIG-3070) - #804
Draft
rigel-mintaka wants to merge 1 commit into
Draft
docs(infra): design Compass self-host runner + adoption strategy (RIG-3070)#804rigel-mintaka wants to merge 1 commit into
rigel-mintaka wants to merge 1 commit into
Conversation
|
Compass engineering docs preview: https://9e745fcb.compass-eng-docs.pages.dev Deployed from Changed pages: |
rigel-mintaka
force-pushed
the
compass-obs/rig-3070-runner-adoption-strategy
branch
from
August 31, 2026 19:47
f4f27c2 to
650c699
Compare
rigel-mintaka
marked this pull request as ready for review
August 31, 2026 19:47
rigel-mintaka
marked this pull request as draft
August 31, 2026 23:21
rigel-mintaka
force-pushed
the
compass-obs/rig-3070-runner-adoption-strategy
branch
2 times, most recently
from
September 1, 2026 04:13
30a299d to
99722b5
Compare
rigel-mintaka
force-pushed
the
compass-obs/rig-3070-runner-adoption-strategy
branch
from
September 1, 2026 05:06
99722b5 to
43fb66c
Compare
rigel-mintaka
marked this pull request as ready for review
September 1, 2026 05:07
rigel-mintaka
marked this pull request as draft
September 2, 2026 20:29
rigel-mintaka
added a commit
that referenced
this pull request
Sep 2, 2026
…sh macOS (RIG-3139) Designs the reversal of the RIG-2542 client-only retirement: mode="embedded" returns to the Compass native app as the low-friction onboarding / local-dev front door, ADDED ALONGSIDE the fully-surviving client mode. The retirement's premise (the microVM Runner's KVM floor retiring local agent execution) is falsified now that podman is a permanent supported single-tenant tier per the trust-model boundary (DL-318, compass-obs #804). Covers the mode-selection contract, supervisor re-wire against the current stack, cross-OS preflight, bundle re-scope (sidecars return, postgres stays a DL-260 container), the macOS podman-machine provisioning spike, and the UI embedded boot arm. Records the record on the ui/ design path (RIG-3113 dissolved product/ into ui/) and lands the ledger delta in DECISIONS.md: new rows DL-319 (dual-mode thesis), DL-320 (dual-mode app.toml), DL-321 (sidecar bundle sans postgres); status flips DL-235/237/238 → Superseded by DL-319/320/321. DL-236's standalone-compass-stack half stays Active. Folds Matt's freeze-gate topology + backend feedback: the §Topology matrix separates the two independent axes (app mode: embedded/client; runner backend: podman/microVM) and records the recommended backend per funnel entry — embedded-local is podman-primary (macOS cannot do microVM; WSL2 has no KVM out of the box), self-host is microVM-recommended with podman the cost-sensitive tier, managed is microVM. Scrubs managed-hosted to the trust-model boundary only, with an OSS-core scope note keeping product-strategy specifics out of this repo. Adds three load-bearing open questions with recommendations for Matt's gate: OQ-9 (docker socket vs force-podman — force-podman: the --userns=keep-id:uid= isolation boundary is podman-specific), OQ-10 (apple/container as a macOS backend — defer: macOS-26 + Apple-silicon-only, pre-1.0), OQ-11 (embedded microVM on Linux — v1 container-only, follow-up). Also folds the prior review passes' podman-version FATAL preflight (delta 4, OQ-8) and the doc-comment reconciliations. Refs RIG-3139 Spec-impact: adds the embedded-mode revival design record (Draft) under docs/designs/ui/ Ledger-impact: DL-319/320/321 added; DL-235/237/238 flipped to Superseded Co-authored-by: Matt Wilkinson <matt@rigel.build>
rigel-mintaka
changed the base branch from
main
to
compass-obs/managed-boundary-naming-rule
September 2, 2026 21:27
rigel-mintaka
force-pushed
the
compass-obs/rig-3070-runner-adoption-strategy
branch
from
September 2, 2026 21:27
43fb66c to
d33fa75
Compare
rigel-mintaka
added a commit
that referenced
this pull request
Sep 2, 2026
…sh macOS (RIG-3139) Designs the reversal of the RIG-2542 client-only retirement: mode="embedded" returns to the Compass native app as the low-friction onboarding / local-dev front door, ADDED ALONGSIDE the fully-surviving client mode. The retirement's premise (the microVM Runner's KVM floor retiring local agent execution) is falsified now that podman is a permanent supported single-tenant tier per the trust-model boundary (DL-318, compass-obs #804). Covers the mode-selection contract, supervisor re-wire against the current stack, cross-OS preflight, bundle re-scope (sidecars return, postgres stays a DL-260 container), the macOS podman-machine provisioning spike, and the UI embedded boot arm. Records the record on the ui/ design path (RIG-3113 dissolved product/ into ui/) and lands the ledger delta in DECISIONS.md: new rows DL-319 (dual-mode thesis), DL-320 (dual-mode app.toml), DL-321 (sidecar bundle sans postgres); status flips DL-235/237/238 → Superseded by DL-319/320/321. DL-236's standalone-compass-stack half stays Active. Folds Matt's freeze-gate topology + backend feedback: the §Topology matrix separates the two independent axes (app mode: embedded/client; runner backend: podman/microVM) and records the recommended backend per funnel entry — embedded-local is podman-primary (macOS cannot do microVM; WSL2 has no KVM out of the box), self-host is microVM-recommended with podman the cost-sensitive tier, managed is microVM. Scrubs managed-hosted to the trust-model boundary only, with an OSS-core scope note keeping product-strategy specifics out of this repo. Adds three load-bearing open questions with recommendations for Matt's gate: OQ-9 (docker socket vs force-podman — force-podman: the --userns=keep-id:uid= isolation boundary is podman-specific), OQ-10 (apple/container as a macOS backend — defer: macOS-26 + Apple-silicon-only, pre-1.0), OQ-11 (embedded microVM on Linux — v1 container-only, follow-up). Also folds the prior review passes' podman-version FATAL preflight (delta 4, OQ-8) and the doc-comment reconciliations. Refs RIG-3139 Spec-impact: adds the embedded-mode revival design record (Draft) under docs/designs/ui/ Ledger-impact: DL-319/320/321 added; DL-235/237/238 flipped to Superseded Co-authored-by: Matt Wilkinson <matt@rigel.build>
Base automatically changed from
compass-obs/managed-boundary-naming-rule
to
main
September 3, 2026 01:15
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
mattwilkinsonn
added a commit
that referenced
this pull request
Sep 3, 2026
…sh macOS (RIG-3139) (#833) Designs the reversal of the RIG-2542 client-only retirement: mode="embedded" returns to the Compass native app as the low-friction onboarding / local-dev front door, ADDED ALONGSIDE the fully-surviving client mode. The retirement's premise (the microVM Runner's KVM floor retiring local agent execution) is falsified now that podman is a permanent supported single-tenant tier per the trust-model boundary (DL-318, compass-obs #804). Covers the mode-selection contract, supervisor re-wire against the current stack, cross-OS preflight, bundle re-scope (sidecars return, postgres stays a DL-260 container), the macOS podman-machine provisioning spike, and the UI embedded boot arm. Records the record on the ui/ design path (RIG-3113 dissolved product/ into ui/) and lands the ledger delta in DECISIONS.md: new rows DL-319 (dual-mode thesis), DL-320 (dual-mode app.toml), DL-321 (sidecar bundle sans postgres); status flips DL-235/237/238 → Superseded by DL-319/320/321. DL-236's standalone-compass-stack half stays Active. Folds Matt's freeze-gate topology + backend feedback: the §Topology matrix separates the two independent axes (app mode: embedded/client; runner backend: podman/microVM) and records the recommended backend per funnel entry — embedded-local is podman-primary (macOS cannot do microVM; WSL2 has no KVM out of the box), self-host is microVM-recommended with podman the cost-sensitive tier, managed is microVM. Scrubs managed-hosted to the trust-model boundary only, with an OSS-core scope note keeping product-strategy specifics out of this repo. Adds three load-bearing open questions with recommendations for Matt's gate: OQ-9 (docker socket vs force-podman — force-podman: the --userns=keep-id:uid= isolation boundary is podman-specific), OQ-10 (apple/container as a macOS backend — defer: macOS-26 + Apple-silicon-only, pre-1.0), OQ-11 (embedded microVM on Linux — v1 container-only, follow-up). Also folds the prior review passes' podman-version FATAL preflight (delta 4, OQ-8) and the doc-comment reconciliations. Refs RIG-3139 Spec-impact: adds the embedded-mode revival design record (Draft) under docs/designs/ui/ Ledger-impact: DL-319/320/321 added; DL-235/237/238 flipped to Superseded Co-authored-by: Matt Wilkinson <matt@rigel.build>
rigel-mintaka
force-pushed
the
compass-obs/rig-3070-runner-adoption-strategy
branch
from
September 3, 2026 01:18
d33fa75 to
54895e9
Compare
…-3070) Frozen-on-merge design record for the self-host runner topology and adoption strategy. The security boundary follows the trust model: untrusted multi-tenant operation requires the microVM hardware boundary; self-host single-tenant deployments keep podman as a permanent, supported entry tier (no /dev/kvm), microVM recommended not required; embedded-local mode revived as the cross-OS podman-backed developer front door (app-architecture reversal designed in the compass-native embedded-revival record). Records DIRECTION only. When and how a hosted multi-tenant service sequences its move to microVM-only is a managed-plane rollout decision, out of scope here (docs/concepts/self-host-and-managed.md). Encodes DL-318. Stacked on the managed-boundary naming-rule convention docs (RIG-3153). Co-authored-by: Matt Wilkinson <matt@rigel.build>
rigel-mintaka
force-pushed
the
compass-obs/rig-3070-runner-adoption-strategy
branch
from
September 3, 2026 02:28
54895e9 to
da36ec0
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.
Documents Matt's ruled self-host runner topology and adoption strategy as a frozen-on-merge contract in a new design record under
docs/designs/infra/runtime/compass-runner-adoption-strategy/. Mints DL-318.What this record freezes
The security boundary follows the trust model, not the deployment uniformly (Matt, 2026-08, amended 2026-08-31):
microvm-runner.md:403-405); this record scopes that end state to the untrusted-multi-tenant trust model./dev/kvm— it runs on any cheap VPS or box. A self-host operator runs their own agents on their own code on their own box, so there is no untrusted tenant to isolate and the KVM boundary is optional. microVM is the recommended (not required) self-host upgrade, for defense-in-depth or an operator who runs untrusted code or shares the box. This amends the frozen KVM-only amendment with a self-host carve-out, honestly flagged as reopening a frozen decision, and distinguished from the amendment's own already-rejected carve-out (which was about the untrusted-multi-tenant boundary, not this single-tenant case).compass-app's supervisor invocation / embedded config arm / bundle, reversing DL-235's client-only charter) is designed in the compass-native lane's embedded-revival record.SelectBackendstack backends (podman + microVM), both already shipping — embedded-local runs the same podman backend locally, not a third runtime.Relationship to the frozen corpus
The ruling ratifies one frozen record, records the deferred reversal of a second, and amends a third:
Scope boundary
How a hosted multi-tenant service adopts, sequences, and deploys the microVM-only boundary is a managed-plane concern and is out of scope for this public OSS record (
docs/concepts/self-host-and-managed.md). This record carries the core capability and the self-host/embedded adoption strategy only.Tasks (filed at freeze)
VerifyMicroVMSupporthard gate); podman backend retained permanently for self-host. Owner: compass-runner.The embedded app-architecture reversal is deliberately NOT a task here — it is the compass-native lane's record. OQ-1 (microVM readiness bar), OQ-2 (VPS provider pick), OQ-3 (macOS podman-machine socket spike) are deferred and non-freeze-blocking.
Ledger-impact: mints DL-318 in
docs/designs/DECISIONS.md.Spec-impact: none (design record; the runner-topology spec follows the impl tasks post-freeze).
Refs RIG-3070
Co-authored-by: Matt Wilkinson matt@rigel.build