diff --git a/docs/CAPABILITY-ROUTING.md b/docs/CAPABILITY-ROUTING.md index c843e9b..438ef6a 100644 --- a/docs/CAPABILITY-ROUTING.md +++ b/docs/CAPABILITY-ROUTING.md @@ -75,15 +75,17 @@ Hosts advertise only what they truly have. Actual registered agents (2026-06-19) This illustrates the routing flow (now runnable over the [LIVE] cross-host topology above): -1. FreeBSD ships no `py312-pillow` flavor in the quarterly repo, so the image has stayed - lean. **But** the default-flavor `py311-pillow` is prebuilt and `python311` is already - present (clawdie-iso #84), so `image-render` can be restored on FreeBSD via `py311-pillow` - on 3.11. `screenshot` additionally needs a **display** — the XFCE operator image has one - (so screenshots work there), but headless osa does not (image-render only). +1. FreeBSD ships no `py312-pillow` flavor in the quarterly repo, but the default-flavor + `py311-pillow` is prebuilt and `python311` is already present (clawdie-iso #84). The + **operator image now ships it** (clawdie-iso #85): `clawdie-join-hive.sh` advertises + `image-render` (Pillow on 3.11) and `screenshot` when a display is present. So the XFCE + operator image qualifies for both; headless osa would get `image-render` only (no display, + and `py311-pillow` not added there yet). 2. The skill manifest declares `required_capabilities: ["image-render"]` (or `screenshot`). -3. Only a Linux host advertises these — today **domedog** carries `image-render`/`ffmpeg` - (osa dropped Pillow). `screenshot` additionally needs a display, so a _headless_ host - does not qualify for it. +3. Both **domedog** (Linux, `image-render`/`ffmpeg`) and the **FreeBSD operator image** + (`image-render` + `screenshot` via `py311-pillow`, clawdie-iso #85) now advertise these. + `screenshot` additionally needs a display, so a _headless_ host (domedog, osa) does not + qualify for it — the operator image, with its XFCE session, does. 4. Colibri routes the task to a matching host automatically — **proven 2026-06-19: an `image-render` task routed to domedog**; with no match it parks until a capable agent appears. diff --git a/docs/HOST-MATRIX.md b/docs/HOST-MATRIX.md index 0fc3e7f..b0525bb 100644 --- a/docs/HOST-MATRIX.md +++ b/docs/HOST-MATRIX.md @@ -161,7 +161,10 @@ rows only. - **Colibri agent (joined central board 2026-06-19)** — the headless Linux media/compute lane: - **Capabilities advertised**: `linux`, `python3.12`, `rust`, `go`, `node`, `ffmpeg`, `image-render`. **Not** `screenshot`/`gui` (headless VM), not `docker` (absent). - `image-render`/`ffmpeg` are domedog-only in the fleet — osa dropped Pillow. + In the always-on fleet `image-render`/`ffmpeg` are domedog-only (osa is a headless + server with no `py312-pillow`). The **FreeBSD operator image** (live USB, XFCE) now + also advertises `image-render` **and** `screenshot` via prebuilt `py311-pillow` on + python 3.11 (clawdie-iso #85) — it has a display, so screenshots work there. - **Reach**: client shim `colibri-shim.service` (system unit, `User=clawdija`, `Restart=always`, reboot-persistent) runs `socat UNIX-LISTEN:~/.colibri/colibri.sock → TCP ${OSA_TS_IP}:9190` (osa bridge over