167 lines
3.3 KiB
Markdown
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 Herdr-on-FreeBSD or TypeScript control service is required for core supervision.
|