Commit graph

10 commits

Author SHA1 Message Date
Sam & Claude
0bb2f8f260 docs: flip to python3=3.11 default (3.12 available); trim the pillow noise
Per operator decision: stop fighting FreeBSD's PYTHON_DEFAULT=3.11 — python3 is
3.11 everywhere, python3.12 stays available for apps needing newer. This makes
Pillow trivial (py311-pillow imports on python3), so the prior "3.12 floor +
py312-pillow absent + run on 3.11 explicitly" explanation collapses.

- TOOLCHAIN.md: table row + decision section flipped to 3.11-default and cut to a
  few lines (supersedes the 17.jun.2026 "3.12 floor" decision); symlink note now
  says build.sh points python3 at 3.11.
- CAPABILITY-ROUTING.md: trimmed the osa line + worked example — image-render via
  py311-pillow on python3, no version gymnastics.
- HOST-MATRIX.md: trimmed the operator-image image-render/screenshot note.

prettier + layered_soul validate clean. Dates in edited blocks use EU format.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 10:12:29 +02:00
Sam & Claude
dcc39938ed docs: reflect image-render/screenshot enabled on the FreeBSD operator image
Follow-on to clawdie-iso #85 (py311-pillow + join-hive capability detection):
the operator image now advertises image-render and screenshot, so the
capability is no longer Linux/domedog-only. Update the CAPABILITY-ROUTING worked
example and the HOST-MATRIX capability note accordingly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 09:58:49 +02:00
Sam & Claude
2fd29cead7 docs: python 3.11/3.12 coexistence on FreeBSD; correct the Pillow rationale
Reconcile the toolchain + capability docs with clawdie-iso #84 (FreeBSD
PYTHON_DEFAULT=3.11):

- TOOLCHAIN.md: the FreeBSD column claimed `py312-*` flavors; reality is
  python312 (app) + python311 (pkg default, transitive), with py311-* prebuilt
  and py312-* absent in the quarterly repo. Added the 3.11/3.12 coexistence note
  ("3.12 floor" = floor for our code, not a ban on the base's 3.11).
- CAPABILITY-ROUTING.md: corrected the imprecise "Pillow dropped on FreeBSD"
  rationale. The blocker was the missing py312-pillow flavor, not Pillow itself;
  the prebuilt py311-pillow is available, so image-render can be restored on
  FreeBSD via 3.11. Clarified screenshot also needs a display (XFCE operator
  image yes, headless osa no → image-render only there).

prettier + layered_soul validate clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 09:44:49 +02:00
f162501da7 matrix: move orchestrator to hermes-osa (always-on VPS); debby is intermittent
debby is a laptop that powers off periodically; osa is the always-on VPS and
already hosts the colibri board. The hub must live where it never disappears, so
the orchestrator role moves to hermes-osa; debby drops to secondary agent + soul
backup.

- AGENTS.md, HOST-MATRIX, agent-roster, tailscale-network: role swap + always-on/
  intermittent facts
- HOST-MATRIX + CAPABILITY-ROUTING: corrected 'debby orchestrator dispatches' ->
  osa hosts the board, debby/domedog are clients
- integration doc + SOUL/project-structure survivability lines reconciled

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 22:50:16 +02:00
21a630cd93 docs(hive): add HIVE-ONBOARDING design — colibri-vault as the join-the-hive primitive
Captures the strategy: promote the proven clawdie-vault-fetch flow into a
colibri-vault crate that provisions a jail's secrets, making 'spawn jail ->
vault-provision -> register' the single onboarding step.

- tenant = jail = bucket (1:1:1); Org Collections for multi-tenant isolation
- 'one key' ideal (customer provider key + operator org service-account)
- mother skill (genesis + policy-gated self-replication); colibri-vault is a limb
- moat = capability routing (one-key agent borrows the whole multi-OS swarm)
- security invariant: bootstraps on host, jails hold only resolved secrets
- lean MVP + explicit overengineering traps to avoid

Cross-linked from CAPABILITY-ROUTING. Building blocks LIVE, platform PLANNED.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 21:03:50 +02:00
a5139b5f7f security(docs): mask Tailscale IPs + bot handles behind fleet.env
Real tailnet IPs and Telegram bot handles were being committed in docs/
memories/skills. Scrubbed all tracked markdown to ${VAR} placeholders; real
values now live in fleet.env (gitignored) and stay live via 'tailscale status'.

- add fleet.env.example (committed) + fleet.env (gitignored); .gitignore *.env
- AGENTS.md + HOST-MATRIX: masking convention so it can't recur
- also: domedog registered as Colibri agent (image-render/ffmpeg/build lane);
  correct CAPABILITY-ROUTING example to real registered caps (domedog headless)

Past commits not rewritten (history moves to Codeberg at v1.0); this fixes HEAD.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 18:19:32 +02:00
c68953b107 docs(mcp): add MCP integration guide — Colibri as coordination hub
New docs/MCP-INTEGRATION.md: how the two Hermes instances connect via MCP
using colibri-mcp as the hub-and-spoke front-end to the shared board, rather
than a direct mesh. Grounded in actual code:
- Hermes is both MCP server (hermes mcp serve) and client (mcp_servers config)
- colibri-mcp tool surface + env vars (COLIBRI_MCP_SOCKET/WRITE), socket transport
- ties into the live board + poller/worker loop and the socat cross-host bridge
- LIVE/SETUP/PLANNED tags; security, rejected mesh alternative, external-MCP future

Cross-linked from CAPABILITY-ROUTING.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 17:51:29 +02:00
8b88a030d1 docs(routing): mark cross-host routing LIVE — socat bridge + poller/worker
Cross-host transport landed via colibri PR #83 (socat bridge on osa
100.72.229.63:9190, Tailscale-only, + poller/worker loop), validated
debby<->osa.

- HOST-MATRIX: Current-vs-Designed note -> Routing LIVE; Track C -> DONE
- CAPABILITY-ROUTING: banner, caveat, topology [PLANNED]->[LIVE], worked example

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 16:51:27 +02:00
010d959a16 fix(host-matrix,cap-routing): reconcile Linux Hermes push, correct live vs planned
- hermes-osa: LIVE (local chat validated), Mevy: separate (coexists)
- Provider: DeepSeek direct primary, OpenRouter fallback, Z.AI deferred
- Telegram/gateway/daemon explicitly OFF/deferred, 4 tracks documented
- CAPABILITY-ROUTING.md: labelled [LIVE] [PLANNED] [DESIGN] throughout
- Cross-host routing: explicitly 'not live yet' — local Unix socket only
- Removed stale install-note section superseded by osa detail block
- osa section compacted: single list format, no redundant entries
- Merges and supersedes Linux Hermes commit 9ec7f39
2026-06-17 21:39:29 +02:00
b6bdc829e4 docs: add capability-based task routing design
Multi-OS routing: hosts advertise capability tags, tasks declare
required_capabilities, Colibri's scheduler (pick_agent/capability_match_score,
already implemented) places each task on a qualifying host. Documents the
vocabulary, the probe->capability mapping, the SkillManifest.required_capabilities
addition, central-daemon topology, and the tmux-screenshot skill as the worked
example (why dropping FreeBSD Pillow loses no capability).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 16:06:00 +02:00