Finish SAND-WP-0002: remote smoke, podman-compose, HTTP stub

- T10 smoke passed on CoulombCore (sand-boxer self-deploy, sandbox 4e542c51)
- Add e2e smoke compose, scripts/smoke-compose-e2e.sh, make smoke-remote
- Support SANDBOXER_COMPOSE_CMD for podman-compose hosts
- FastAPI v0 stub at sandboxer.api.app; migration gaps doc
- Mark workplan finished (all 10 tasks done)
This commit is contained in:
2026-06-23 16:52:29 +02:00
parent 380034c911
commit 8e0465865a
17 changed files with 610 additions and 30 deletions

View File

@@ -9,6 +9,7 @@ owner: codex
topic_slug: custodian
created: "2026-06-23"
updated: "2026-06-23"
state_hub_workstream_id: "afbcbc84-5ec7-4f8b-ae21-4cbda0d05195"
---
# Host telemetry and self-canary introspection
@@ -43,6 +44,7 @@ later).
id: SAND-WP-0008-T01
status: todo
priority: high
state_hub_task_id: "8f7b46e3-045e-481c-81bd-1c61734c6eb3"
```
Author `docs/host-telemetry.md` defining:
@@ -64,6 +66,7 @@ does not own long-term metrics DB).
id: SAND-WP-0008-T02
status: todo
priority: high
state_hub_task_id: "732bae4e-2dd9-4500-a86d-e869007bb383"
```
Add:
@@ -85,6 +88,7 @@ Canary deliverable on `ready`: JSON `IntrospectionReport` in sandbox status
id: SAND-WP-0008-T03
status: todo
priority: high
state_hub_task_id: "7bd22f27-5058-4c19-98b6-b923909a8815"
```
SSH-side collection (shell + structured parse, no extra daemon on host):
@@ -103,6 +107,7 @@ command output.
id: SAND-WP-0008-T04
status: todo
priority: high
state_hub_task_id: "c2d19bb7-9322-4744-a71e-75f7701a6fb2"
```
Scan remote host for:
@@ -121,6 +126,7 @@ No automatic deletion in this task — dry-run only.
id: SAND-WP-0008-T05
status: todo
priority: medium
state_hub_task_id: "b6b02289-d36e-4ee1-9ff7-dc59a1d24886"
```
Integrate into `SandboxManager.create` / `destroy` when profile metadata requests
@@ -139,6 +145,7 @@ Same pattern on `destroy` for teardown impact. Tests mock SSH collector.
id: SAND-WP-0008-T06
status: todo
priority: high
state_hub_task_id: "d9941d93-a662-45c0-820b-88d32266c653"
```
When `create` has no `repo` input:
@@ -163,6 +170,7 @@ sandboxer create --input repo=/other/repo # unchanged behavior
id: SAND-WP-0008-T07
status: todo
priority: high
state_hub_task_id: "76430452-c98e-44e5-b625-e243dc12b8a5"
```
After `wait_ready` for canary profile:
@@ -179,6 +187,7 @@ After `wait_ready` for canary profile:
id: SAND-WP-0008-T08
status: todo
priority: medium
state_hub_task_id: "4ee4b95b-e7b5-4893-b78e-914f808bc00a"
```
Emit structured telemetry to:
@@ -200,6 +209,7 @@ activity-core may schedule periodic canary runs later — out of scope here.
id: SAND-WP-0008-T09
status: todo
priority: medium
state_hub_task_id: "6ea8eda6-491b-460a-a526-7565962f449e"
```
```bash
@@ -217,6 +227,7 @@ sandboxer reap-stale --apply [--older-than 24h] # T10+; gated behind --apply
id: SAND-WP-0008-T10
status: todo
priority: medium
state_hub_task_id: "435a3993-d8d3-4280-b68a-c37e34d20312"
```
- `docs/runbooks/profile-sandbox-canary.md`