Cross-platform Rust control plane core
Find a file
Sam & Claude 98b232cc0a fix(clawdie): set COLIBRI_DB_PATH so the service doesn't crash-loop at boot (Sam & Claude)
clawdie.in exported COLIBRI_DAEMON_DATA_DIR/SOCKET/HOST but not COLIBRI_DB_PATH.
On FreeBSD, default_db_path() then falls back to /var/db/colibri/colibri.sqlite
— the full Colibri daemon's DB, owned colibri:colibri (0750). clawdie runs as
the clawdie user, so Store::open() hits EACCES; DaemonState::new() panics
(daemon.rs:35) and daemon(8) -r restart-loops forever. The service would never
serve, despite a correct-looking rc.d.

Fix: add a clawdie_db_path var (default ${clawdie_data_dir}/clawdie.sqlite) and
export COLIBRI_DB_PATH from prestart, keeping clawdie's DB in its own
clawdie-owned dir. No collision with the colibri daemon's DB.

Reproduced + verified on Linux:
- COLIBRI_DB_PATH unwritable  → panic "failed to open coordination store … Permission denied", exit 101
- COLIBRI_DB_PATH in data dir → sqlite created, runs clean

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 14:56:41 +02:00
.hermes/plans docs: add Colibri cutover orchestration plan (Sam & Hermes) 2026-05-27 15:59:13 +02:00
crates Merge remote-tracking branch 'origin/main' 2026-06-02 09:26:46 +02:00
docs Merge remote-tracking branch 'origin/main' 2026-06-02 09:26:46 +02:00
manifests Record debby runtime inventory (gate #3 parity) (Sam & Claude) 2026-05-26 18:08:41 +02:00
packaging/freebsd fix(clawdie): set COLIBRI_DB_PATH so the service doesn't crash-loop at boot (Sam & Claude) 2026-06-02 14:56:41 +02:00
scripts feat: ISO service hardening — rc.d + log rotation + layout docs 2026-05-31 16:48:48 +02:00
src Auto-load .env for the DeepSeek probe; gitignore .env (Sam & Claude) 2026-05-26 14:27:41 +02:00
tests Fix platform matrix rustfmt drift 2026-05-27 13:06:58 +02:00
tools Add Colibri operator smoke CLI helpers 2026-05-27 12:19:24 +02:00
.agent-handoff.md docs: cut over Colibri remotes to Forgejo (Sam & Claude) 2026-05-29 09:03:59 +02:00
.env.example Auto-load .env for the DeepSeek probe; gitignore .env (Sam & Claude) 2026-05-26 14:27:41 +02:00
.gitignore Auto-load .env for the DeepSeek probe; gitignore .env (Sam & Claude) 2026-05-26 14:27:41 +02:00
AGENTS.md docs: fix stale Codeberg ref in Linux agent constraints (Sam & Hermes) 2026-05-29 11:58:23 +02:00
Cargo.lock Merge remote-tracking branch 'origin/main' 2026-06-02 09:26:46 +02:00
Cargo.toml Merge remote-tracking branch 'origin/main' 2026-06-02 09:26:46 +02:00
README.md Merge remote-tracking branch 'origin/main' 2026-06-02 09:26:46 +02:00
rust-toolchain.toml Scaffold Colibri Phase 1: colibri-probe DeepSeek cache smoke (Sam & Claude) 2026-05-26 10:08:23 +02:00

Colibri

The Clawdie control plane core — a small, cross-platform (FreeBSD + Linux) Rust daemon that unifies coordination (task board, agent registry, skills catalog) with cache-first cost discipline (byte-stable prompt prefixes, cache-hit metering).

Status: 8 crates; workspace gates are expected to be fmt/clippy/test/release green. Avoid fixed test-count status here — run the gate commands below for the current count. Phase 3 (coordination core) is in progress.

Design doc + cutover plan: docs/COLIBRI-CUTOVER-PLAN.md. Next ISO integration plan: docs/ISO-INTEGRATION-PLAN.md. ISO acceptance runbook: docs/ISO-ACCEPTANCE-RUNBOOK.md. Clawdie Studio/Zed proposal: docs/CLAWDIE-STUDIO-PROPOSAL.md.

Workspace — 10 crates

Crate Role
clawdie Simplified operator agent: glasspane + herdr + DeepSeek/Telegram in one small binary (build-flag configured). See docs/CLAWDIE-AGENT-WIKI.md.
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 (Pi 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

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 (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)

colibri-client       — CLI tools (colibri, colibri_smoke_agent)
colibri-glasspane-tui— ratatui dashboard (no Herdr dependency)

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 is rustls to avoid openssl-sys linking. Default DB path: /var/db/colibri/colibri.sqlite.