design-sidecar-isolation
Human
Closes security finding B1 (#370): native sidecars move to the nested tier and a box refuses flat tenant spawns once nothing would be refused. Spec rev 3 approved to build by Paul 2026-10-24; plan ca0b4393; building task by task with Astra reviews, then release v0.29.0 + patch, rolled dev first.
Commits
38
Files changed
102
+13056 −465
Discussions
1
1 open
Tasks
19/25
done
Discussions 1 open
Tasks 19/25 done
- Rev 1 spec and review brief Done
- Astra round 1 findings Done
- Rev 2 answering round 1 Done
- Astra round 2 Done
- Paul's rulings on the open questions Done
Activity
- claude agent, operated by paul@keymail.dev pushed 6e2904493 Sidecar isolation Task 11: the shape's other consumers; status --layout shows the flat-exec policy and the closure check (§3.12, D14, D15)
- claude agent, operated by paul@keymail.dev pushed b9f6256d9 Sidecar isolation Task 10 fix round 1: one host.env parser for the claim unit and the workers floor
- task updated: Task 10: downgrade guards (D11)
- task updated: Task 11: other shape consumers
- claude agent, operated by paul@keymail.dev pushed 1ce674552 Sidecar isolation Task 10: downgrade guards hold the workers floor (D11 rev 4)
- claude agent, operated by paul@keymail.dev pushed f672e3acf Sidecar isolation Task 9 fix round 1: a refused respawn stands down; D16 witnessed through the real leg; aliased os/exec imports enumerated
- task updated: Task 9: flat-exec policy, inventory, ratchet (D12-D16)
- claude agent, operated by paul@keymail.dev pushed f434efea2 Sidecar isolation Task 9 (5/5): census claims for the flat-exec units
- claude agent, operated by paul@keymail.dev pushed 81421c285 Sidecar isolation Task 9 (4/5): host.env's allowlist takes the isolation switches (R4-2)
- claude agent, operated by paul@keymail.dev pushed e0ff1412b Sidecar isolation Task 9 (3/5): the agent arms the policy, keeps the spawn record and reports the inventory (D12, D14, D15, D16)
- task updated: Task 8: layout pass moves workers (D8, D9 check, D11)
- claude agent, operated by paul@keymail.dev pushed f7efe00e0 Sidecar isolation Task 9 (2/5): status carries the flat-exec report and the workers word (D14)
- claude agent, operated by paul@keymail.dev pushed 0bdbe7822 Sidecar isolation Task 8 fix round 1: recovery asks the replicator, the config is decoded strictly and read as one version, an absent-db journal may name no companion (D8, D9)
- claude agent, operated by paul@keymail.dev pushed 0fbb62d33 Sidecar isolation Task 9 (1/5): the flat-exec policy at both spawn seams (D12, D13)
- claude agent, operated by paul@keymail.dev pushed a51c3caa6 Sidecar isolation Task 8: census claims for the changed units; gofmt
- claude agent, operated by paul@keymail.dev pushed 603f43dc9 Sidecar isolation Task 8 (4/4): every wake source refuses a fenced worker (D8, Review Focus 3)
- claude agent, operated by paul@keymail.dev pushed 5954fb493 Sidecar isolation Task 8 (3/4): status reports worker rows; the agent wires readiness and the replicator (D8, D9, D11)
- claude agent, operated by paul@keymail.dev pushed f327c2f5e Sidecar isolation Task 8 (2/4): ConfigEnvPath learns the worker shape (D8)
- claude agent, operated by paul@keymail.dev pushed 3d8ce335c Sidecar isolation Task 8 (1/4): the layout pass moves worker rows (D8, D9, D11)
- task updated: Task 7: minting + workers readiness (D7, D11)
- claude agent, operated by paul@keymail.dev pushed 7490ed699 Sidecar isolation Task 7: workers mint nested only when the box was ready at agent start (D7, D11)
- claude agent, operated by paul@keymail.dev pushed 039914d68 Sidecar isolation Task 5 fix 1: the shared socket refuses a nested worker by its incarnation, not its listener
- task updated: Task 6: StartWorkerStaged nested arm, crash reading, start ordering (D4-D6, D19)
- claude agent, operated by paul@keymail.dev pushed 81dc25c3d Sidecar isolation Task 6 (6/6): the nested worker end to end, the crash loop of Review Focus 1, KillHost is no proof for a nested worker
- claude agent, operated by paul@keymail.dev pushed 3f52a36b0 Sidecar isolation Task 6 (5/6): an uncertain nested worker start is not "nothing ran" (D19, R2-1)
- claude agent, operated by paul@keymail.dev pushed bee95bc35 Sidecar isolation Task 6 (4/6): RoleGone generalises LegacyRunGone; a failed nested worker wake keeps its lease until its unit is proven gone (D19)
- claude agent, operated by paul@keymail.dev pushed 8af981832 Sidecar isolation Task 6 (3/6): StartWorkerStaged dispatches on layout; the nested arm runs the worker unit (D5)
- claude agent, operated by paul@keymail.dev pushed dcd04fb4d Sidecar isolation Task 6 (2/6): unitProc.Crashed reads systemd's Result for the proc's own invocation (D6)
- claude agent, operated by paul@keymail.dev pushed f1533ce5d Sidecar isolation Task 6 (1/6): CARLOS_SIDECAR_DB tells every worker where its database is (D4)
- task updated: Task 5: per-host agent socket + worker prepare (D3)