colibri/docs/ISO-ACCEPTANCE-RUNBOOK.md
Sam & Claude 7abe8c4d4c
Some checks failed
CI / markdown (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
docs: purge all Herdr references, consolidate into AGENTS.md + README (Sam & Hermes)
Deleted 8 stale docs (~1,700 lines) and merged their essential intent into
AGENTS.md and README.md:

Merged into AGENTS.md:
- Architecture Roles section (zot=agent, Colibri=control plane, pi=backend)
- ISO Takeover Gates table (Gates 1-5 with status)

Merged into README.md:
- glasspane row names zot/pi (not just Pi)
- architecture diagram names zot/pi JSONL
- removed Herdr dependency reference

Deleted (content merged or obsolete):
- docs/HERDR-VS-COLIBRI-GRAPH.md (migration artifact)
- docs/ADR-agent-harness-consolidation.md (merged into AGENTS.md)
- docs/COLIBRI-GLASSPANE-DESIGN.md (merged into README, rest in code)
- docs/COLIBRI-DAEMON-GLASSPANE-INTEGRATION.md (code is source of truth)
- docs/MULTIAGENT-WORKFLOW-IMPROVEMENTS.md (already in AGENTS.md)
- docs/T1.4-PROMPT-DISCIPLINE-PLAN.md (gaps tracked in priority handoff #3)
- docs/ISO-INTEGRATION-PLAN.md (gates merged into AGENTS.md)
- .hermes/plans/2026-05-27-colibri-cutover.md (old plan, superseded)

Also cleaned Herdr references from Rust doc comments in
colibri-glasspane/src/lib.rs and colibri-client/src/lib.rs.

Result: 18 docs → 11 docs, 66 Herdr references → 0.
Gates: fmt/clippy/test all green.
2026-06-14 14:04:49 +02:00

167 lines
3.3 KiB
Markdown

# ISO Acceptance Runbook — Colibri Service
Use this after Colibri has been staged into an ISO/image root and booted on FreeBSD.
## 0. Pre-flight
```sh
freebsd-version
id colibri
ls -l /usr/local/bin/colibri /usr/local/bin/colibri-daemon
ls -l /usr/local/etc/rc.d/colibri_daemon
sysrc colibri_daemon_enable
```
Expected:
- `colibri` user exists.
- binaries are executable.
- rc.d script is executable.
- service is enabled for ISO acceptance, or can be started manually.
## 1. Start service
```sh
service colibri_daemon start
sleep 2
service colibri_daemon status
```
Expected:
- service reports running.
- `/var/run/colibri/colibri.sock` exists.
- `/var/db/colibri/` exists and is owned by the service user.
- `/var/log/colibri/daemon.log` exists or is created on first output.
Triage:
```sh
tail -100 /var/log/colibri/daemon.log
ls -la /var/run/colibri /var/db/colibri
sockstat -u | grep colibri || true
```
## 2. Operator status
```sh
colibri status
```
Expected fields:
```text
daemon/version/host
paths.data_dir
paths.db_path
paths.socket_path
cost.mode
cost.session_max_bytes
cost.max_uncompacted_turns
sessions
agents / agent_list
panes
tasks
scheduler.interval_secs
```
Confirm `cost.mode` matches `colibri_cost_mode` from rc.conf.
## 3. Task board smoke
```sh
colibri create-task --title "iso smoke" --description "direct CLI task"
colibri list-tasks --status queued
```
Expected: list contains `iso smoke` with status `queued`.
## 4. Scheduler/intake smoke
```sh
colibri intake-task \
--title "iso intake smoke" \
--description "scheduler should persist this" \
--capability freebsd
# scheduler tick is currently 30s
sleep 35
colibri list-tasks --status queued
```
Expected: list contains `iso intake smoke`.
## 5. Glasspane smoke
```sh
colibri snapshot
```
Expected: valid JSON snapshot. It may have no panes before an agent is spawned.
Optional local fake-agent smoke if `colibri-smoke-agent` is included:
```sh
colibri spawn-local /usr/local/bin/colibri-smoke-agent --session-id iso-smoke
sleep 4
colibri snapshot
```
Expected: a pane transitions through idle/working/blocked/done.
## 6. Stop service
```sh
service colibri_daemon stop
sleep 2
service colibri_daemon status || true
ls -l /var/run/colibri/colibri.sock || true
ls -l /var/db/colibri/colibri.sqlite*
```
Expected:
- daemon exits.
- socket is removed or no longer connectable.
- SQLite DB remains.
## 7. Restart persistence
```sh
service colibri_daemon start
sleep 2
colibri list-tasks --status queued
```
Expected: tasks created before stop are still present.
## 8. Live desktop acceptance
Run when the test machine is available:
```text
boot ISO from USB
log into XFCE
launch Zed
run colibri status from terminal
launch colibri-tui if included
```
Expected:
- XFCE starts.
- Zed launches with GPU behavior acceptable for our requirements.
- Colibri service is running without the TypeScript control service.
- CLI/TUI remain responsive.
## Pass criteria
The ISO candidate passes Colibri service acceptance when:
- rc.d starts/stops the daemon cleanly.
- `colibri status` exposes paths, cost, scheduler, tasks, panes.
- direct tasks persist to SQLite.
- intake tasks drain on scheduler tick.
- glasspane snapshot is reachable.
- restart preserves SQLite state.
- no TypeScript control service is required for core supervision.