docs(future-arch): observed execution/egress/secrets axes + DN-1 design note#130
Conversation
…gn note Add research/23 capturing the three axes #22 under-weighted from a 2026-05-22 live-VM walk: process_api as execution supervisor, transparent egress filtered on connect, and no long-lived key in the guest. Records four proposed locks (P1-P4) pending phase sign-off rather than editing ADRs/antipatterns directly. Add design-notes.md (sibling of gaps.md for candidate solutions) with DN-1: a substrate-independent egress/identity/secret-broker design. https://claude.ai/code/session_01XL5dtnrq4agijEMnSWzkGm
📝 WalkthroughWalkthroughThis PR extends the future architecture documentation with design governance and observational research. It adds a design-notes.md document establishing rules for candidate solutions, includes DN-1 covering substrate-independent egress and broker-based secret handling, and introduces a research document capturing live microVM guest behavior across execution supervision, egress enforcement, and identity handling. ChangesArchitecture Design and Research Documentation
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@docs/future-architecture/research/23-anthropic-microvm-execution-network-secrets-observed.md`:
- Line 27: The line beginning with "`#22` §1 established `process_api` as PID 1…"
is being parsed as a Markdown heading; update that line in the document so the
"`#22`" is not at the start of the line (for example replace with "\`#22`", or wrap
as inline code "`#22`", or rephrase to "No. 22") while preserving the rest of
the sentence and the `process_api` code formatting so it renders as plain text
reference rather than an ATX heading.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 59206cbc-f016-451f-826f-1f865fbb718a
📒 Files selected for processing (3)
docs/future-architecture/README.mddocs/future-architecture/design-notes.mddocs/future-architecture/research/23-anthropic-microvm-execution-network-secrets-observed.md
|
|
||
| ### 1.1 `process_api` is the execution supervisor, not just init | ||
|
|
||
| #22 §1 established `process_api` as PID 1 (custom Go binary, `rdinit=`). This walk shows it is also the **execution supervisor** — the everything-process for running code inside the VM: |
There was a problem hiding this comment.
Escape #22 at line start to avoid unintended heading parsing.
Line 27 begins with #22, which Markdown treats as an ATX heading token in many parsers/lints. Use inline code or escape the hash so it renders as plain text reference.
Suggested fix
-#22 §1 established `process_api` as PID 1 (custom Go binary, `rdinit=`). This walk shows it is also the **execution supervisor** — the everything-process for running code inside the VM:
+`#22` §1 established `process_api` as PID 1 (custom Go binary, `rdinit=`). This walk shows it is also the **execution supervisor** — the everything-process for running code inside the VM:📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| #22 §1 established `process_api` as PID 1 (custom Go binary, `rdinit=`). This walk shows it is also the **execution supervisor** — the everything-process for running code inside the VM: | |
| `#22` §1 established `process_api` as PID 1 (custom Go binary, `rdinit=`). This walk shows it is also the **execution supervisor** — the everything-process for running code inside the VM: |
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 27-27: No space after hash on atx style heading
(MD018, no-missing-space-atx)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@docs/future-architecture/research/23-anthropic-microvm-execution-network-secrets-observed.md`
at line 27, The line beginning with "`#22` §1 established `process_api` as PID 1…"
is being parsed as a Markdown heading; update that line in the document so the
"`#22`" is not at the start of the line (for example replace with "\`#22`", or wrap
as inline code "`#22`", or rephrase to "No. 22") while preserving the rest of
the sentence and the `process_api` code formatting so it renders as plain text
reference rather than an ATX heading.
Catch up with main: pulls in observed execution/egress/secrets axes + DN-1 design note (PR #130). No conflicts expected — both branches only touch docs/future-architecture/ in non-overlapping files. next/v1 continues as the long-lived architecture branch; main is not modified by this merge.
Summary
Captures a follow-up live-VM observation into
docs/future-architecture/, as a companion toresearch/22. #22 covered storage; this adds the three axes it under-weighted.research/23-anthropic-microvm-execution-network-secrets-observed.md— observed facts from a 2026-05-22 VM walk across three axes:process_apiis PID 1 and the child-process/PTY supervisor and the:2024control-channel server;--block-local-connectionskeeps workloads off the control port. In-VM memory boundary is weak (/proc/1/memreadable as root) — by acceptance, not accident.antipatterns.md/architecture/(unlike fix: CodeQL path-injection alerts + bump vulnerable deps #22's A37).design-notes.md— new file, sibling ofgaps.md, for candidate solutions not yet locked. First entry DN-1: a substrate-independent egress / identity / secret-broker design (one default-deny+allowlist-on-connect invariant with thin Docker/k8s/VM wrappers; "internet not intranet" SSRF deny-set; Tailscale/Headscale mesh for identity; broker-gateway so the real key never enters the sandbox; RBAC pipeline where LiteLLM is accounting-only, not auth).README.md— indexes both new files in the document map.Test plan
ipv6.disable=1) and Add detailed comparison: Open Computer Use vs Open Terminal #23 (IPv6 egress observed)https://claude.ai/code/session_01XL5dtnrq4agijEMnSWzkGm
Generated by Claude Code
Summary by CodeRabbit