diff --git a/docs/guide/architecture/layered-memory-fabric.md b/docs/guide/architecture/layered-memory-fabric.md index 13d9b1e..dcc14f9 100644 --- a/docs/guide/architecture/layered-memory-fabric.md +++ b/docs/guide/architecture/layered-memory-fabric.md @@ -83,4 +83,4 @@ Linux can use the same shape with Linux-native adapter values such as `linux-ser - Use **Layered Memory Fabric** in public/promo copy. - Use **skills / brain / ops planes** in technical docs. - Keep `system_brain` as the database name; that name is intentional. -- Avoid "split brain" except when referring to legacy filenames or historical changelog entries. +- Avoid "split brain" except when referring to existing code identifiers or historical changelog entries. diff --git a/docs/guide/install/controlplane-install.md b/docs/guide/install/controlplane-install.md index 141e529..c9e9791 100644 --- a/docs/guide/install/controlplane-install.md +++ b/docs/guide/install/controlplane-install.md @@ -18,6 +18,5 @@ This installs the storage datasets, the `clawdie` service user, and the rc.d notes. > **Scope.** This provisions the control-plane host service only. PF egress, -> worker jails, PostgreSQL, and the CMS/web service were handled by the legacy -> clawdie-ai `just` + Ansible orchestrator and are not yet part of the colibri -> installer. The canonical Bastille/Warden bridge name remains `warden0`. +> worker jails, PostgreSQL, and the CMS/web service are not yet part of the +> colibri installer. The canonical Bastille/Warden bridge name remains `warden0`. diff --git a/docs/guide/install/install.md b/docs/guide/install/install.md index 2ddc091..0208516 100644 --- a/docs/guide/install/install.md +++ b/docs/guide/install/install.md @@ -78,11 +78,10 @@ target host. `discover`, `plan`, and a bare `apply` never write — preview with ## Scope: what the installer does _not_ do (yet) `clawdie` provisions the **host service** only. The wider service mesh — PF -egress, worker jails, PostgreSQL, Forgejo/Git, and the CMS/web service — was -provided by the legacy clawdie-ai `just` + Ansible orchestrator and is **not yet -part of the colibri installer**. Older pages that reference `just install`, -`just setup-db`, `just doctor`, and similar describe that legacy flow, not this -repo; they are being reconciled to the `clawdie` model. +egress, worker jails, PostgreSQL, Forgejo/Git, and the CMS/web service — is +**not yet part of the colibri installer**. Pages that reference `just install`, +`just setup-db`, `just doctor`, and similar describe a previous orchestrator; +they are being reconciled to the `clawdie` model. ## FreeBSD validation diff --git a/docs/guide/install/requirements.md b/docs/guide/install/requirements.md index 916853b..c9a1eb9 100644 --- a/docs/guide/install/requirements.md +++ b/docs/guide/install/requirements.md @@ -23,9 +23,8 @@ these requirements before running `clawdie apply`. `cargo build -p clawdie --release`. See [Install](./install/). - **Bastille** for jail management. -> The legacy clawdie-ai `just` + Node/`tsx` orchestrator is not used in this -> repo; the sections below still describe the clawdie-ai product runtime and are -> being reconciled to the colibri model. +> The sections below describe the clawdie product runtime and are being +> reconciled to the colibri model. ## Runtime philosophy diff --git a/docs/guide/operate/provider-fallback.md b/docs/guide/operate/provider-fallback.md index 7bffb0d..916c590 100644 --- a/docs/guide/operate/provider-fallback.md +++ b/docs/guide/operate/provider-fallback.md @@ -92,7 +92,7 @@ The cooldown file now resolves with the same project-local precedence used by other operator artifacts: - `AGENT_STATUS_DIR/provider-cooldowns.json` -- otherwise `CLAWDIE_VAR_DIR/provider-cooldowns.json` (legacy compatibility) +- otherwise `CLAWDIE_VAR_DIR/provider-cooldowns.json` - otherwise repo-local `tmp/state/provider-cooldowns.json` Expired entries are dropped on load. diff --git a/docs/guide/operate/structured-reports.md b/docs/guide/operate/structured-reports.md index 9408e4f..6088fb3 100644 --- a/docs/guide/operate/structured-reports.md +++ b/docs/guide/operate/structured-reports.md @@ -95,7 +95,7 @@ does not write itself. The contract: wrapper and `getDefaultStatusDir()` in `src/reports/test-report.ts`): 1. `$AGENT_STATUS_DIR` if set - 2. `$CLAWDIE_VAR_DIR` if set (legacy) + 2. `$CLAWDIE_VAR_DIR` if set 3. `/tmp/status` (default) Per `AGENTS.md` § "Temporary File Storage", artifact paths under repo diff --git a/docs/guide/reference/multi-agent.md b/docs/guide/reference/multi-agent.md index e7bbb8f..117fa13 100644 --- a/docs/guide/reference/multi-agent.md +++ b/docs/guide/reference/multi-agent.md @@ -115,7 +115,7 @@ SYSTEM_LOCALE=sl_SI.UTF-8 ``` For a different agent, choose different values (e.g. `de-DE`, `ru-RU`, `zh-CN`). -Do not use legacy encodings; `SYSTEM_LOCALE` must remain UTF-8. +`SYSTEM_LOCALE` must remain UTF-8. If multiple agents share one tmux server, new panes inherit the server locale. Either use separate tmux sessions per agent or set locale env vars inside each diff --git a/docs/wiki/cost-dashboard.md b/docs/wiki/cost-dashboard.md index a84f20c..dcaecc2 100644 --- a/docs/wiki/cost-dashboard.md +++ b/docs/wiki/cost-dashboard.md @@ -33,6 +33,7 @@ rendering — static HTML with a JSON data file refreshed every 60s by cron. ``` Each cost card shows: + - **Cache-hit bar:** green (cache) vs grey (fresh) — visual cache efficiency - **Provider:** deepseek / claude / gemini / ollama / local - **Cost:** with `▸ screenshot` badge if visual proof exists, `▸ text` for glasspane evidence @@ -42,12 +43,12 @@ Click a card with `▸` → lightbox opens the terminal screenshot at task compl ## Data sources -| Source | What | Refresh | -|---|---|---| -| `task_costs` (PostgreSQL) | Per-task cost rows pushed by daemon heartbeat | Real-time (SSH push on completion) | -| `hive_nodes` (PostgreSQL) | Node metadata, capabilities, LLM tier | Node heartbeat | -| `task_costs JSON file` | Denormalized JSON for the dashboard page | Every 60s (cron) | -| `proof_text` (inline JSON) | glasspane state snapshot | On task completion (daemon heartbeat) | +| Source | What | Refresh | +| -------------------------- | --------------------------------------------- | ------------------------------------- | +| `task_costs` (PostgreSQL) | Per-task cost rows pushed by daemon heartbeat | Real-time (SSH push on completion) | +| `hive_nodes` (PostgreSQL) | Node metadata, capabilities, LLM tier | Node heartbeat | +| `task_costs JSON file` | Denormalized JSON for the dashboard page | Every 60s (cron) | +| `proof_text` (inline JSON) | glasspane state snapshot | On task completion (daemon heartbeat) | ## Architecture @@ -79,6 +80,7 @@ cd /usr/local/src/colibri/packaging/mother/dashboard ``` This places: + - `/usr/local/www/clawdie/dashboard/index.html` — the dashboard page - `export-costs.sh` — JSON export script (in mother webroot) - `/usr/local/etc/cron.d/clawdie-dashboard` — cron job (every 60s) @@ -124,6 +126,7 @@ cache-hit on DeepSeek — route non-urgent tasks there." The `▸ screenshot` badge on cost cards opens a lightbox with the terminal PNG. The `▸ text` badge shows the glasspane state snapshot inline. screenshot UUID is stored alongside the cost row. Clicking opens the lightbox with: + - The full terminal PNG at task completion time - Task ID, provider, and cost in the overlay - The screenshot metadata (pane title, command, path, timestamp) diff --git a/docs/wiki/glasspane.md b/docs/wiki/glasspane.md index cade68a..6fe285e 100644 --- a/docs/wiki/glasspane.md +++ b/docs/wiki/glasspane.md @@ -43,7 +43,7 @@ daemon, TUI, and client CLI can all rely on. Agents emit structured events as newline-delimited JSON on stdout. Glasspane reads line-by-line with `BufReader`, deserializes each line, and feeds it into -the `PiJsonlIngestor` (the name is legacy — it handles zot events too). +the `PiJsonlIngestor`, which handles events from any agent runtime (zot, pi, and others). The reader runs in a **single background task per pane** (`pane_reader_loop`). It never blocks the daemon's main loop — the ingestor is a synchronous fold diff --git a/docs/wiki/index.md b/docs/wiki/index.md index d54a9cc..d32b253 100644 --- a/docs/wiki/index.md +++ b/docs/wiki/index.md @@ -13,7 +13,7 @@ cover the _how_; these pages cover the _why_. Stale decisions accumulate faster than anyone hand-audits them: a rename that was only half-applied, a doc that still describes the old design, a default left over from a superseded choice. Several recent passes were spent finding -exactly that (`pi → zot`, `usb_nodes → hive_nodes`, legacy rename to `sample`). This wiki +exactly that (`pi → zot`, `usb_nodes → hive_nodes`, rename to `sample`). This wiki makes the bookkeeping near-zero-cost: one place that records _what was decided_, links to _where it lives in code_, and can be **linted** for drift. diff --git a/docs/wiki/mother-hive.md b/docs/wiki/mother-hive.md index ca26e4a..59fd6b9 100644 --- a/docs/wiki/mother-hive.md +++ b/docs/wiki/mother-hive.md @@ -131,6 +131,7 @@ FK — correct behaviour (register first, then report costs). [`daemon.rs`](../../crates/colibri-daemon/src/daemon.rs) (`push_cost_to_mother`) ## See also + 107| 108|- [agent-harness](./agent-harness.md) — the zot/Colibri split; autospawn 109|- [naming-decisions](./naming-decisions.md) — `usb_nodes → hive_nodes`, autospawn flag rename