Commit graph

33 commits

Author SHA1 Message Date
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
5ebcc66b13 docs(host-matrix): hermes-osa Telegram gateway LIVE — Mevy token consolidated
- Mevy (@zleht_bot) token migrated from old backup .env to hermes-osa
- Gateway running in polling mode via tmux session hermes-gateway
- python-telegram-bot[webhooks]==22.6 installed
- pip bootstrapped via python3 -m ensurepip (not in Hermes venv)
- Track B (Telegram/gateway) marked DONE, rc.d daemonization still deferred
2026-06-17 22:05:57 +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
9ec7f39c13 docs(host-matrix): reflect live state — hermes-osa validated, provider/path clarity
- hermes-osa: installed, local chat validated, DeepSeek direct primary
- Telegram: off (separate token from Mevy), daemon: not enabled
- Mevy vs hermes-osa: separate bots, separate tokens, coexisting
- Current vs Designed: Colibri routing local-only today, probe is tool not hook
- OS/hardware facts come from probes + matrix, not SOUL.md
2026-06-17 21:35:22 +02:00
c4c9816dae docs(migration): add Claude review-lane verification notes
- separate 'present in recovered env' from 'Hermes-supported' (Codex nuance)
- flag Telegram token reuse as a getUpdates collision risk vs Mevy
- first .env = provider keys only, Telegram deferred; Vaultwarden durable home

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 20:29:47 +02:00
f97da2329a docs: Clawdie→Hermes migration manifest — 104-key inventory classified
- Bucket 1: boot now (~5 keys, Hermes supports natively)
- Bucket 2: useful soon (~10 keys, minor mapping)
- Bucket 3: old Clawdie-specific (~89 keys, capability roadmap)
- Source: ZFS snapshot + May 2026 backup (104/104 match)
- Redacted: key names only, no values
2026-06-17 20:19:07 +02:00
e89b9e0e9f docs(host-matrix): make hermes-osa state home unambiguous
Reconcile the HERMES_HOME path: /home/clawdie/.hermes is authoritative for
first validation; /home/clawdie/clawdie-ai (an earlier target) is the old
orphaned runtime and off-limits. Align agents here before install.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 19:03:00 +02:00
4bff0eabbf docs(host-matrix): add FreeBSD prereqs & first-run checklist for hermes-osa
Fold blind spots P2-P5 into the install note: pkg-install prereqs first
(bash/uv/git/curl), bash required (shebang now portable via hermes-bsd PR #3),
run attended (interactive prompts), core-only first validation (native-build
extras may not compile on FreeBSD 15), and rc.d as a deliberate re-setup
(/var/db/hermes, hermes user) — validation state won't migrate.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 18:59:25 +02:00
f8c2dcf4e0 docs(host-matrix): prefer source-proof hermes-osa setup path (Sam & Pi) 2026-06-17 17:48:57 +02:00
3c5adc531b docs(host-matrix): reconcile hermes-osa FreeBSD install state (Sam & Pi) 2026-06-17 17:47:32 +02:00
191e4ab3b5 docs: retire Autolycus label -> hermes-osa; correct FreeBSD install facts
'Autolycus' is an LGPL upstream dependency the clean-room MIT hermes-bsd layer
explicitly avoids — never a service we run. Rename the osa agent label to
hermes-osa across AGENTS.md, agent-roster.md, HOST-MATRIX.md, and the FreeBSD
integration doc. Fix the roster's wrong 'LGPL v2.1 fork' -> clean-room MIT.

Correct the install facts (grounded in code): service is hermes_daemon
(packaging/freebsd/hermes_daemon.in), state home env is HERMES_HOME (not the
no-op AUTOLYCUS_HOME). Records the don't-mv-clawdie-ai caution and commit f8bf2803d.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 17:14:43 +02:00
413e86f937 docs(host-matrix): add disk discipline — check, don't guess
Make free space a first-class probed fact: check df/--storage before
installing toolchains or building, keep the Disk (free) column current,
flag hosts past ~85%. Records reference footprints (Go ~290MB, Rust ~1.8GB)
and the standing debby ~95%-full watch.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 17:01:51 +02:00
f7e440d787 chore: install Go 1.24.4 on debby — toolchain baseline complete 2026-06-17 16:35:22 +02:00
c952ae954e chore: unify toolchain — fnm Node 24, uv 0.11, probe detects version managers
- verify_facts_probe.py: detect fnm/nvm Node managers
- TOOLCHAIN.md: resolve Node divergence (debby fnm→24, OSA node24)
- uv bumped 0.9.7→0.11.21 on debby
- fnm 1.39.0 installed, Node 24.16.0 default
2026-06-17 16:34:01 +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
04c65e73bc docs(toolchain): record clean Python 3.12 FreeBSD baseline (Sam & Pi) 2026-06-17 14:57:36 +02:00
d93df5db19 docs: add cross-platform TOOLCHAIN baseline + Python 3.12 decision
Standardize toolchain across the matrix: Python 3.12 floor (no version-pinned
shebangs; ISO-time symlink python3->python3.N + uv for venvs), Node LTS
(flags debby Node22 vs FreeBSD node24 divergence to resolve), Rust/Go/Zig
and managed tools (tmux/codex/pi/zot) conventions.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 14:12:22 +02:00
30ceed2a6c docs(host-matrix): fill osa row + Mevy/Codex/Autolycus placement 2026-06-17 13:52:42 +02:00
3ee288866a docs(host-matrix): fill debby row + Hermes/Zot placement 2026-06-17 13:24:46 +02:00
817624cdc7 docs: add shared HOST-MATRIX — fill-as-you-go host/agent inventory
domedog row probed and filled; debby/osa left for those agents to populate
via verify_facts_probe.py. Corrects placement: Hermes=debby (live),
Mevy=osa (live operator bot).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 13:19:42 +02:00
0e0edc2477 fix: rename CLAIRE→CLAWDIE, clarify FreeBSD integration doc purpose
- docs/CLAWDIE-HERMES-FREEBSD-INTEGRATION.md: renamed from typo 'CLAIRE'
- AGENTS.md: updated reference path
- Purpose: phased plan to put Hermes on FreeBSD/OSA natively, via our
  MIT-licensed hermes-bsd fork (not the LGPL Autolycus fork)
2026-06-14 14:33:21 +02:00
Sam & Claude
a8926d47ba docs(polish): prettier formatting, add missing skill to index, fix broken doc reference 2026-06-14 14:19:45 +02:00
5850ee5bf8 docs: switch to hermes-bsd (MIT), update integration plan
- AGENTS.md: hermes-bsd replaces hermes-freebsd in private sources
- CLAIRE-FREEBSD-HERMES-INTEGRATION.md: updated to MIT fork, new install path
2026-06-14 03:24:15 +02:00
9c332b1b78 docs: expand agent matrix — 5 agents across 3 hosts, Hermes-FreeBSD integration plan
- Agent roster: add Autolycus (Hermes fork on FreeBSD 15/OSA)
- AGENTS.md: full 5-agent matrix with harness/OS/role
- New doc: CLAIRE-FREEBSD-HERMES-INTEGRATION.md — phased plan
- Added hermes-freebsd to private sources list
2026-06-14 03:09:17 +02:00
72f9e193c3 docs: match layered-soul docs to its populated state
Remove the PLAN-CONFIGURE-PRIVATE-REPO plan — its phases are done (identity/
memories/skills populated, Colibri import working, headroom sidecar shipped);
the ongoing curation workflow lives in CONNECT-HERMES-SOUL.md and the system_brain/
system_ops design lives in colibri docs. Clarify in the README that this repo is
both the template and a working reference (real content, not placeholders), and
fix the skills glob in CONNECT to skills/**/SKILL.md to match the importer.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 02:12:41 +02:00
4d8ce07fa7 docs: apply Prettier to current markdown (Sam & Codex)
Normalize markdown formatting after the latest main updates.\n\nChecks: python3 scripts/layered_soul.py validate .; npx --yes prettier@3 --check '**/*.md'; git diff --check.
2026-06-14 01:48:32 +02:00
3da596d5b9 docs: add headroom compression plan (3.4), update status post-PR#53 review
- Phase 3.4: headroom Unix socket sidecar integration for Colibri
- Confirmed clawdie installer hardening (PR #53) is orthogonal
- Updated status table: layered-soul content now populated, headroom installed
- FreeBSD: zero blockers, Python 3 in base, daemon runs unprivileged
2026-06-14 01:09:36 +02:00
5c5df32101 Populate layered-soul: identity, memories, skills, plan (Hermes & Sam)
- SOUL.md: full agent identity, operating principles, voice
- IDENTITY.md: runtime identity, hosts, boundaries
- USER.md: operator context imported from hermes-soul
- AGENTS.md: actual operating rules, infrastructure, quick reference
- memories/curated/: 5 topics (tailscale, forgejo, agents, projects, vaultwarden)
- skills/: 9 cross-harness skills imported from hermes-soul after review
- docs/PLAN-CONFIGURE-PRIVATE-REPO.md: configuration plan
- Validate: passes clean
2026-06-14 00:21:26 +02:00
8f2db52336 Build Layered Soul template and helper tooling (Sam & Codex)
Merges the public Forgejo seed repo with the prepared Layered Soul skeleton, expands the README, adds validation/rendering/private-source planning helper tooling, and documents how private hermes-soul connects without copying private runtime state.\n\nChecks: prettier on markdown; python3 -m json.tool manifests; python3 scripts/layered_soul.py validate .; render-prompt smoke; plan-private-source smoke against /home/clawdie/ai/hermes-soul; git diff --check
2026-06-13 21:49:43 +02:00