Phase 1b: two agents claim distinct tasks on the board. Registers sysadmin (freebsd) and db-admin (postgres), creates two tasks, each agent claims one, both transition queued→claimed →started→done. Proves different agents get different tasks. Phase 1c: one agent handles two tasks with isolated sessions. Registers one worker (freebsd), submits two freebsd tasks, same agent claims both, both transition to done independently. Documents current behavior (no guard against multi-claim) and proves session isolation. All workspace tests green (0 failures). |
||
|---|---|---|
| .forgejo/workflows | ||
| crates | ||
| docs | ||
| manifests | ||
| packaging | ||
| scripts | ||
| src | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| .prettierignore | ||
| .prettierrc | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
| rust-toolchain.toml | ||
Colibri
The Clawdie control plane core — a small, cross-platform (FreeBSD + Linux) Rust daemon. Developed from an operator USB environment; deploys as the Clawdie service on bare FreeBSD hardware (ZFS RAID1, PostgreSQL + pgvector, bhyve VMs, Bastille jails). Unifies coordination (task board, agent registry, skills catalog) with cache-first cost discipline (byte-stable prompt prefixes, cache-hit metering).
Status: workspace gates are fmt/clippy/test/release green. Round 2 audit is closed. Current priorities: ISO boot/runtime validation, Pi spawn end-to-end, and cost-mode enforcement (see docs/MULTI-AGENT-HOST-PLAN.md). Always query live state: see the crate table below and run the gate commands for current counts.
FreeBSD build lane handoff: docs/FREEBSD-BUILD-LANE-HANDOFF.md.
ISO acceptance runbook: docs/ISO-ACCEPTANCE-RUNBOOK.md.
Clawdie Studio/Zed proposal: docs/CLAWDIE-STUDIO-PROPOSAL.md.
External MCP host prototype: docs/COLIBRI-EXTERNAL-MCP-PROTOTYPE.md.
Optional Headroom compression sidecar: docs/wiki/headroom-sidecar.md.
Workspace
| Crate | Role |
|---|---|
colibri (root) |
Workspace root + probe binaries (colibri-probe, runtime-inventory) |
colibri-mcp |
MCP bridge for editor integration (Zed, Claude Code) via stdio JSON-RPC |
colibri-contracts |
JSON schema contracts (golden tests) |
colibri-deepseek |
DeepSeek cache-hit probe, prefix metering |
colibri-runtime |
Host status ingestion, runtime inventory |
colibri-glasspane |
Agent 5-state machine (zot/pi JSONL events → state) |
colibri-daemon |
Always-on Unix socket server, session lifecycle |
colibri-client |
Typed Unix-socket client + operator CLI |
colibri-glasspane-tui |
ratatui live dashboard (FreeBSD-native) |
colibri-store |
Embedded SQLite coordination (task board, agents, skills) |
colibri-skills |
Skills catalog crate |
clawdie |
Host installer/deployer: ZFS layout + clawdie service (FreeBSD/Linux) |
Build
cargo build --release
Test
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
Architecture
colibri-daemon (always-on Unix socket server)
├── glasspane — agent state machine (zot/pi JSONL → idle/working/blocked/done)
├── store — SQLite coordination (tasks, agents, skills)
├── socket — newline-JSON socket API
├── session — append-only JSONL sessions, 3-region prompt assembly
└── spawner — agent subprocess management (retry/backoff, FreeBSD jail confinement)
colibri-client — CLI tools (colibri, colibri-test-agent)
colibri-glasspane-tui— ratatui dashboard
Probe binaries
# DeepSeek cache probe (needs DEEPSEEK_API_KEY)
cargo run --release --bin colibri-probe
# Runtime inventory manifest
cargo run --release --bin colibri-runtime-inventory
FreeBSD
Target x86_64-unknown-freebsd (Rust Tier-2). TLS uses rustls for clean
static linking (no openssl-sys dependency). Default DB path: /var/db/colibri/colibri.sqlite.