Make the Herdr boundary explicit now that Herdr-Linux-remote and
Colibri-FreeBSD are validated as separate planes:
- Herdr FreeBSD port is parked, not a migration blocker. The exploratory
FreeBSD build findings are kept for the record but framed as a parked
experiment, not a pending task.
- Herdr stays a Linux/macOS display/remote plane behind the socket contract;
colibri-glasspane is the native FreeBSD supervision answer.
Tighten stale status so it stops rotting:
- Replace the fixed "31 passed, 0 failed" count with "all gates green as of
b325c38" plus the clippy clean note.
- Anchor the top-level status line to commit b325c38.
Doc-only; no code or test changes.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
agent_state_from_jsonl / pi_event_type / pane_from_jsonl fold a live Pi --mode json stream through the AgentState machine and capture session id+cwd from the flat header. Lenient: blank/malformed/type-less lines are skipped. 8 tests pass (5 state model + 3 JSONL ingestion, incl. a verbatim pi 0.75.5 session header). Phase 1 unchanged.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
FreeBSD-native agent supervision reimplementing Herdr's glasspane (sessions/panes/agent-state) behind Colibri's unified API; Herdr stays an optional Linux display client (AGPL + Linux-only). Key bet: agent state is derived deterministically from Pi --mode json events (colibri-pi-events taxonomy), not terminal screen-scraping.
docs/COLIBRI-GLASSPANE-DESIGN.md: capability graph, 5-state model + event→state map, unified API, clawdie.glasspane.snapshot.v1 contract, FreeBSD impl notes, 5 phases. crates/colibri-glasspane: Phase-1 pure state model (AgentState, apply_pi_event/fold_pi_events, Pane, GlasspaneSnapshot) + 5 tests. PTY/socket server + orchestrator are later phases.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Read-only who-imports-what of the clawdie-ai TS drop candidates. Corrects the earlier drop list: agent-runner.ts (the Pi host runner, 4 callers) and jail-exec-runner.ts (jailPi load-bearing) are KEEP, not drops. Real safe drop set is narrow + contained in controlplane-heartbeat-executor.ts: the non-Pi backend branches (aider/codex, gated behind CONTROLPLANE_RUNNER) + tmux-screenshot-command (→ Herdr). Precondition: production CONTROLPLANE_RUNNER=pi. Plan only — execution is a separate gated PR.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Adds debby's runtime inventory to colibri-contracts golden coverage (12 tests pass) and marks gate #3 done. Three-host parity: osa/domedog/debby all on Node 24; Pi at 0.75.5 on osa+domedog, absent on debby (non-blocking follow-up). All five proof gates (#1-#5) are now green.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Graph-only comparison of Herdr (socket/PTY agent supervision) vs Colibri (DeepSeek-first Rust) vs clawdie-ai TS, across supervision/coordination/execution/provider+cache. Hybrid boundary: Herdr stays an optional Linux client (AGPL + Linux/macOS-only); FreeBSD core is native. Unified function-names committed for the provider+cache layer (proven); other layers proposed/roadmap. Gated drop candidates concentrated in tmux/glass-pane supervision glue, non-Pi runners, and bespoke provider-smoke paths; coordination control-plane kept+extended. Flexibility matrix (agents/surfaces/providers) preserved.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Implement the Colibri runtime HostStatus reader, add mock and live osa watchdog evidence, and mark gate #5 complete without changing production TypeScript paths.
---
Build: pass
Tests: pass — 11 golden + 5 runtime tests
Graph-only artifact (no code): Mermaid + JSON nodes/edges + gap list + risk list for porting the watchdog host-status reader to Rust. Grounds the port in the real coupling: watchdog.ts owns the socket; doctor.ts + colibri-host-status.ts are the confirmed readers; pi-profile is keep-compatible (not a confirmed direct reader). The Rust reader is additive + read-only (cmd:status only) and replaces a contract, not production logic. Implementation/validation left to operator + Codex.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Record osa FreeBSD build/test and live DeepSeek cache evidence, add the manifests to golden contract coverage, and mark gate #4 complete in the migration inventory.
---
Build: pass
Tests: pass — 8 passed (golden contracts)
Gate #1 (contracts golden tests) and #2 (DeepSeek live cache manifest, 3584/3661 hit on domedog) marked done with evidence. Added a FreeBSD build-lane handoff for Codex on osa: cargo build/test --workspace, optional osa live-cache probe → osa cache manifest. Closes the FreeBSD half of gate #4.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Mark the migration inventory as approved for the first colibri-deepseek extraction while keeping TS production service paths gated.
---
Build: not run — documentation-only approval
Tests: not run — documentation-only approval
docs/MIGRATION-INVENTORY.md: TS surfaces to keep as contracts, files to retire later (gated), schemas to port, crate build order, and proof gates before replacing the TS service. Extract contracts, not logic.
crates/colibri-contracts: serde structs for clawdie.interagent.run-manifest.v1, clawdie.runtime-version-inventory.v1, clawdie.provider-smoke.result.v1. Root becomes a workspace; existing binaries unchanged. Golden tests round-trip the real committed osa+domedog manifests (5 passed) — a stable shared base before deeper refactor.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>