Commit graph

148 commits

Author SHA1 Message Date
Sam & Claude
7ae22097e1 docs(guide): add Terminal Capture & Signature Triage operate page
Some checks are pending
CI / rust (pull_request) Waiting to run
CI / markdown (pull_request) Waiting to run
CI / port (pull_request) Waiting to run
CI / agent-jail-pkgs (pull_request) Waiting to run
The terminal-capture / signature-triage layer (colibri-glasspane terminal.rs
+ signatures.rs, driven by the daemon poll loop) had no guide coverage. Document
it: content-hash dedup history, edge-triggered signature alerts, per-OS
signature sets, the COLIBRI_TERMINAL_* / TELEGRAM_* config, and the
terminal-watch/unwatch/list/history/poll socket commands. Linked from the
operate index.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 09:31:04 +02:00
95c487546d docs(guide): port 39 procedural docs from clawdie-ai to colibri
Some checks are pending
CI / rust (pull_request) Waiting to run
CI / markdown (pull_request) Waiting to run
CI / port (pull_request) Waiting to run
CI / agent-jail-pkgs (pull_request) Waiting to run
New docs/guide/ tree — canonical home for operator-facing procedural docs.
Starlight frontmatter added to all files. 0.12 alignment fixes applied:

- v0.11.0 → v0.12.0 throughout
- PI_TUI_PROVIDER/MODEL → DEEPSEEK_API_KEY
- Headless Codex login → Agent runtime setup (zot + RPC mode)
- /login and auth.json references removed
- pi → zot in provider-fallback spawn reference
- colibri-provider-verify (was pi-provider-smoke)
- Language cleanup: smoke test → verification, fake → test,
  can't self-fix → requires operator intervention,
  broken → unresponsive, Fix anything broken → Verify all checks pass

Two-tree model: docs/wiki/ (decisions) + docs/guide/ (procedural).
Single source of truth in colibri. clawdie-ai docs/public/ to be retired.
2026-06-26 09:16:43 +02:00
4e509c3e37 docs(plan): refresh MULTI-AGENT-HOST-PLAN for current state
Phase 3 schema landed (PR #204) — columns exist, wiring pending.
Bridge IP scrubbed, health/status unscrambled. Linux packaging
added (PR #203). Firewall rules live (pf OSA + ufw domedog).
Gap 4 (claim_task atomicity) marked closed. Test count: 256.

Accurate status: Phase 3 is schema-in/logic-pending (not 'deferred'
and not 'done'). Heartbeat/lease/TTL remain open.
2026-06-26 01:49:46 +02:00
4935cd3000 docs(wiki): add pi end-to-end proof to agent-harness
Some checks failed
CI / agent-jail-pkgs (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
agent-harness.md listed only zot's end-to-end proof (zot_rpc_smoke.rs,
ignored, ZOT_BIN-gated). pi now has better default CI coverage via
pi_spawn_live.rs (unignored, runs every test run), plus the new
default_agent_args unit tests proving the autospawn argv contract.

Also moves the autospawn argv reference into its own bullet for clarity.
2026-06-25 23:40:41 +02:00
934d1123a5 docs(wiki): remove remaining stale references — 'fake', AUTOSPAWN_PI
- index.md: 'fake → sample' → 'legacy rename to sample'
- mother-hive.md: 'AUTOSPAWN_PI → AUTOSPAWN' → 'autospawn flag rename'
- Verified: zero 'fake' references in repo
2026-06-25 23:40:23 +02:00
d8060e504b chore: remove all 'fake-pi-agent' references — code, linter, docs
- naming-decisions.md: rephrase row, no longer references old filename
- wiki-lint: remove allowlist entry + guard block (rename is done)
- Verified: zero 'fake' references remaining in repo
2026-06-25 23:40:23 +02:00
d267a4bcb2 docs(wiki): polish terminal + operator-attention pages
- terminal.md: pi→zot,pi order (zot is default agent), 'pi harness'→'agent harness (zot, pi)',
  add pkg install kitty (x11/kitty 0.47.4)
- operator-attention.md: document NO_COLOR pitfall (Hermes leak→force_color_output fix),
  note dual-view (header+bar) as future enhancement
- glasspane.md: link terminal capture + signature triage from see-also

(Sam & Claude)
2026-06-25 23:40:23 +02:00
Sam & Claude
20b65f9577 docs(wiki): add terminal + operator-attention pages, fix glasspane drift
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Two new decisions captured, one page corrected:

terminal.md — the terminal-capability decision. Why colibri-tui and the agents
it supervises need modified-key reporting (Tab vs Shift-Tab, n vs N, Enter),
why the choice fell on Kitty, the tmux extended-keys + csi-u passthrough for
the in-tmux workflow, raw-vs-tmux distinction, the SSH xterm-kitty terminfo
gotcha, and pi's identical requirement. The decision is about capability;
Kitty is the instance.

operator-attention.md — the shipped attention system as one decision. Attention
as a derived view over the state machine (not a sixth variant), the TUI
bar/jump/filter/row-highlight, and the #193 terminal-capture + signature-triage
+ edge-triggered alerts. Records the has_attention session-filter bug and fix.
Lists what is still open (outbound push, answer-from-dashboard).

glasspane.md — corrected drift. The real AgentState enum is {Idle, Working,
Blocked, Done, Error}; Stalled is a derived flag, not a variant (the page's
diagram omitted Blocked and listed Stalled as a variant). The "Usability
roadmap (TODO)" listed the attention half as not-yet-built; it shipped via
#191/#193, so those items move to operator-attention.md and the roadmap keeps
only the genuinely-unbuilt direction.

index.md — two table rows (also satisfies the orphan-page check).

Verified: prettier-clean on all 4 files; wiki-lint --strict clean (144 pass /
0 fail, up from 137); no dangling refs, no orphans, no resurrected names.

(Sam & Claude)
2026-06-25 22:50:19 +02:00
e953b1c050 Merge pull request 'docs: concrete attention system design for colibri-tui' (#189) from docs/tui-attention-plan into main
Some checks are pending
CI / port (push) Waiting to run
CI / rust (push) Waiting to run
CI / markdown (push) Waiting to run
CI / agent-jail-pkgs (push) Waiting to run
Reviewed-on: #189
2026-06-25 18:44:25 +02:00
95bf3f396d fix(store): atomic+exclusive claim_task — close Gap 4 concurrency guard (#190)
Some checks are pending
CI / rust (push) Waiting to run
CI / markdown (push) Waiting to run
CI / port (push) Waiting to run
CI / agent-jail-pkgs (push) Waiting to run
Co-authored-by: Sam & Claude <hello@clawdie.si>
Co-committed-by: Sam & Claude <hello@clawdie.si>
2026-06-25 17:33:15 +02:00
Sam & Claude
0ac07a864c docs: add concrete attention system design to TUI enhancements
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Resolved decisions from brainstorm (Sam & Claude):
- needs_attention = Error + Blocked + Stalled (free function on &Pane)
- Stall threshold stays at 4h (Stalled is rare/critical, not frequent)
- Attention bar replaces header when active (same 3-line footprint)
- Row highlight inverts on selection (red bg → bright red fg on DarkGray)
- Filter composes with session filter (AND), not replaces

Implementation plan: 4 tiers in main.rs (~100-120 lines added):
  T1: needs_attention() + attention bar (replaces header)
  T2: n/N jump keys
  T3: a key attention filter
  T4: per-row highlight (invert on selection)
  T5: answer-from-dashboard (separate PR)

Also documents pre-existing 'All sessions' unreachable bug.
2026-06-25 17:18:13 +02:00
c1ae24d5ce docs(glasspane): operator-attention usability roadmap + TUI-enhancements working doc (#188)
Some checks are pending
CI / rust (push) Waiting to run
CI / markdown (push) Waiting to run
CI / port (push) Waiting to run
CI / agent-jail-pkgs (push) Waiting to run
Co-authored-by: Sam & Claude <hello@clawdie.si>
Co-committed-by: Sam & Claude <hello@clawdie.si>
2026-06-25 16:59:05 +02:00
6078c3f28f docs: refresh MULTI-AGENT-HOST-PLAN for 0.12.0 — mark phases 1+2 complete (#187)
Some checks are pending
CI / rust (push) Waiting to run
CI / markdown (push) Waiting to run
CI / port (push) Waiting to run
CI / agent-jail-pkgs (push) Waiting to run
Co-authored-by: Sam & Claude <hello@clawdie.si>
Co-committed-by: Sam & Claude <hello@clawdie.si>
2026-06-25 16:58:35 +02:00
47504cd05d docs(handoff): fix artifact list, add node+npm requirement
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
- §2: list colibri-mcp instead of colibri-test-agent (matches preflight at
  build.sh:335 — test-agent is optional, gated by COLIBRI_STAGE_TEST_AGENT)
- §3: name the specific binaries preflight checks
- Notes: add Node.js (npm) to host toolchain requirements — build_and_stage_docs
  needs node+npm, and the handoff should match REQUIREMENTS.md
2026-06-24 19:42:33 +02:00
382b4a9188 mother: preflight python3, document prereqs, route from build handoff
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Three reinforcing changes so the next agent's mother setup lands instead
of failing late:

- setup-mother.sh: fail-fast preflight for python3 (geodesic-dome-mcp is a
  python3 script that otherwise installs fine and fails only when invoked).
- MOTHER-SETUP.md: new Prerequisites section — python3 on PATH, and the
  COLIBRI_AUTOSPAWN_RPC_PROMPT boot decision (set = auto-spawn agent on
  boot; unset = quiet token-free boot).
- FREEBSD-BUILD-LANE-HANDOFF.md: pointer to MOTHER-SETUP.md/setup-mother.sh
  so the mother docs are discoverable from the build-lane entry point.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 19:24:30 +02:00
2075b65c94 docs: pin zot agent to v0.2.47 in FreeBSD build-lane handoff
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
The handoff named v0.2.29 while clawdie-iso build.sh preflight defaulted
to v0.2.42. Pin to the current latest zot tag (v0.2.47) so the agent
builds the intended version and all references agree.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 19:11:24 +02:00
Sam & Claude
5896a4ddcd docs: move reference docs into wiki (agent-events, headroom, layered-soul) 2026-06-24 17:32:13 +02:00
524ccbff40 docs: delete 3 stale docs; repoint refs to successor
Some checks failed
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
Remove genuinely-stale docs (decision/evidence now elsewhere):
- TRUSS-SPAWN-ANALYSIS.md — debug trace of a jail-spawn bug that was fixed
- PLAN-MOTHER-MCP-VAULT-KEYS.md — planned a vaultwarden-pubkey exchange; the
  shipped mother MCP is seed-based (wiki/mother-hive + MOTHER-SETUP)
- PRIORITY-HANDOFF-ISO-SPAWN-COST.md — self-superseded by MULTI-AGENT-HOST-PLAN

Repointed referrers (README, AGENTS, FREEBSD-BUILD-LANE-HANDOFF, docs/README)
to MULTI-AGENT-HOST-PLAN. Fixed the wiki ADR note (the stale 'referenced in
stage-colibri-iso.sh' claim — those refs were already cleaned up).

KEPT the two design docs (COLIBRI-JAILED-AGENT-SPAWN-DESIGN,
COLIBRI-EXTERNAL-MCP-PROTOTYPE): on closer look they hold how-it-works detail
the wiki only summarizes + links, so folding would lose detail or bloat the wiki.

Gates: wiki-lint --strict (131) + markdown format clean.
2026-06-24 16:58:49 +02:00
86d3f92efe Merge pull request 'docs(wiki): add 9 subsystem pages (rebuilt on current main)' (#174) from wiki-expansion-rebased into main
Some checks are pending
CI / port (push) Waiting to run
CI / agent-jail-pkgs (push) Waiting to run
CI / rust (push) Waiting to run
CI / markdown (push) Waiting to run
2026-06-24 16:49:05 +02:00
f581433b29 docs(wiki): add 9 subsystem pages (rebuilt on current main)
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Brings the wiki-expansion pages onto current main WITHOUT the stale baggage the
original feature/wiki-expansion branch carried (it predated the rename + date
PRs and would have reverted them). Cherry-picked only the 9 genuinely-new pages:
contracts, store-schema, external-mcp, operator-cli, tui, runtime-inventory,
skills-catalog, vault-provision, deployment. Added them to index.md.

Fixed on the way in: vault-provision referenced the pre-rename
VAULT-PROVISION-FIRST-PROOF → repointed to VAULT-PROVISION-RUNBOOK. (No US dates
in these pages.)

Gates: wiki-lint --strict clean (131 pass); markdown format clean.
2026-06-24 16:48:49 +02:00
b233aa8d9e docs: normalize prose dates to DD.mon.YYYY (AGENTS.md rule)
Some checks failed
CI / agent-jail-pkgs (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
Convert US/ISO prose dates (2026-06-21) to EU format (21.jun.2026) across colibri
docs + wiki. Left as-is (data, not prose): the captured JSON "time" timestamp in
AGENT-EVENTS-REFERENCE and the rustc/cargo version strings in
CLAWDIE-INSTALLER-HANDOFF — ISO is correct for machine timestamps/filenames.

Gates: wiki-lint --strict clean; markdown format clean.
2026-06-24 16:43:41 +02:00
064079e3fc docs: harness-agnostic + plainer doc names; codify naming principle
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
- ZOT-RPC-TRANSCRIPT.md → AGENT-EVENTS-REFERENCE.md: neutral, per-harness event
  reference (currently documents zot; pi uses pi --mode json). Avoids baking the
  current default harness into a name — same lesson as the pi_* renames. Adds a
  'Developer reference — operators can skip' header.
- VAULT-PROVISION-FIRST-PROOF.md → VAULT-PROVISION-RUNBOOK.md: it's a runbook;
  'first-proof' was redundant.
- Updated referrers: spawner.rs, wiki/agent-harness.md, docs/README.md.
- wiki/naming-decisions.md: new 'Naming principle — harness-agnostic by default'
  section (neutral concept → neutral name + configurable value; harness-specific
  → harness in the name, kept symmetric zot_/pi_).
- Fixed US/ISO prose dates → DD.mon.YYYY (21.jun.2026) per AGENTS.md; left the
  literal JSON "time" timestamps in the captured transcript as-is (data).

Gates: wiki-lint --strict clean; markdown format clean.
2026-06-24 16:33:40 +02:00
c111de0f3d feat(hooks): install-hooks.sh — one-command hook activation 2026-06-24 14:09:59 +02:00
32de49a4e0 docs(wiki): cross-link cost-model → task-board
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
2026-06-24 13:47:14 +02:00
ace863d3eb feat(wiki): expand to full coverage — cost-model, glasspane, task-board, jail-confinement
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Adds four wiki pages, one per major architectural subsystem:

- cost-model: byte-stable prefixes, cache-hit metering, three cost modes,
  auto-escalation, T14 compaction, DeepSeek cache-hit probe
- glasspane: agent state machine, JSONL streaming, AgentRuntime taxonomy,
  snapshot API, pane reader loop
- task-board: capability match scoring, cron/interval/once schedule types,
  intake drain, SQLite backing
- jail-confinement: persistent vs ephemeral jails, priv-mode policy,
  reuse of spawner confinement for MCP servers

Updates index.md: removes "pilot" framing, updates lint section to reflect
the shipped wiki-lint, adds all four pages to the table.

wiki-lint --strict: clean (70 PASS, 0 FAIL).
2026-06-24 13:37:31 +02:00
4f5876a7ea feat(wiki): mother-hive decisions page + strict lint gate + pre-push hook
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
- New docs/wiki/mother-hive.md — thin decisions page covering forced-command
  SSH boundary, single-home-in-colibri, hive_nodes rationale, peer auth,
  key-on-seed, and daemon-user design. Links to MOTHER-SETUP.md for setup
  instructions; never duplicates them.
- Flip wiki-lint to --strict in ci-checks.sh — drift failures now block the
  gate the same as clippy warnings. 42 PASS / 0 FAIL, clean since merge.
- New scripts/pre-push — runs ci-checks.sh on every git push to main. Install
  once: ln -sf ../../scripts/pre-push .git/hooks/pre-push. Bypass only with
  --no-verify. Closes the gap that let pi_binary reach main (gate existed but
  nobody was forced through it).
- Updated AGENTS.md, quality-gates.md, and index.md to reflect all three.
2026-06-24 13:26:57 +02:00
7bc9483156 refactor(glasspane): pi_type → event_type; close out wiki residue
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Residue item #1: rename the pi-era `pi_type` field/param to `event_type` in
colibri-glasspane. It names the normalized event-type string (zot events map
onto the same taxonomy), so the harness-neutral name is correct. Internal only
— PiStreamUpdate is not serialized — so no wire impact.

Wiki ledger updated:
- pi_type → event_type added to Shipped (now enforced by wiki-lint).
- Residue items resolved and recorded under Structural decisions:
  - FEATURE_COLIBRI is an internal build-time escape hatch, not a user-facing
    flag — README clarified (clawdie-iso #130).
  - clawdie-gui is the stable operator command; clawdie-startx retained as a
    back-compat alias (both installed) — verified intentional, not drift.
- Known residue now down to the dangling ADR reference only.

Verified: ci-checks.sh green (fmt/clippy/test/markdown); wiki-lint --strict clean.
2026-06-24 10:44:15 +02:00
9947da9edc fix(wiki-lint): make check 2 actually work + parse ledger
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
The 'resurrected old names' check was non-functional: it ran in a pipeline
subshell (fail/pass counts and --strict exit were lost), accumulated hit files
with literal \\n (so the per-file filter never matched), and hardcoded the old
names — already stale (missing usb_nodes, the rename that motivated this).
Planting hermes-agent + usb_nodes + COLIBRI_AUTOSPAWN_PI in a source file
passed clean under --strict.

Rewrite:
- Parse old names from the Shipped table of naming-decisions.md (self-updating;
  no hardcoded list to rot).
- Loop in the main shell (read from a file) so counters and --strict propagate.
- xargs grep -nHF across the file list; filter legit contexts case-insensitively
  (migration/rename/back-compat/alias/changelog) so the serde alias and the
  setup-mother migration code don't false-positive.
- Move usb_nodes → hive_nodes from In-flight to Shipped (colibri #161 merged) so
  it is now enforced.

Verified: clean run exits 0 (PASS 37); planting hermes-agent/usb_nodes/
COLIBRI_AUTOSPAWN_PI now FAILs and --strict exits 1. Fixed a serde-alias
false-positive (multi-line attribute). sh -n + markdown gate green.
2026-06-24 10:35:39 +02:00
ddc0780d66 docs(wiki): ledger entry — single home for mother infra (colibri)
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Records the dedup decision + the cross-repo drift lesson (an injectable
node-register-mcp copy reached iso main). The kind of regression a lint pass
should catch.
2026-06-24 10:14:08 +02:00
5b5058cff4 docs(wiki): LLM-Wiki pilot — decisions/architecture knowledge base
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Pilot step 1 of the Karpathy LLM-Wiki pattern, scoped to decision-dense areas:
an agent-maintained docs/wiki/ that records WHAT was decided and links to WHERE
it lives in code (code stays the source of truth; pages link, don't duplicate).

Pages:
- index.md       — purpose, conventions (the 'schema'), lint workflow, catalog
- agent-harness  — zot (agent) + Colibri (control plane); autospawn + RPC driver
- naming-decisions — ledger of harness-neutral/architecture renames (shipped,
                   in-flight, and known residue) — the drift tracker
- quality-gates  — ci-checks.sh as the pre-merge gate; why drift reached main

Intent: make the 'lingering old decision' bookkeeping near-zero-cost and
lintable. Lint tool itself (advisory, flag-don't-rewrite) is the next pilot step.
Already records real open drift (e.g. the dangling ADR reference).

Markdown gate green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 09:58:51 +02:00
daed5db908 test: rename 'fake' test agent → 'sample' (lighter, less loaded)
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
'fake' carries a broad/negative association. Rename the test-double agent and
all its references to 'sample' (it emits a canned sample of pi-format JSONL):

- scripts/fake-pi-agent.py → scripts/sample-pi-agent.py (git mv, mode kept)
- pi_spawn_live.rs: sample-pi-agent.py, pane label 'sample-pi'
- socket.rs: fn sample_agent_stdout_stream_updates_glasspane, labels, 'pi-sample'
- live_socket_check.rs: sample_agent; colibri.rs: /tmp/sample-agent
- glasspane/spawner doc comments: 'sample JSONL readers'
- docs (ISO-SERVICE-LAYOUT, PRIORITY-HANDOFF, ISO-ACCEPTANCE-RUNBOOK)

Pure rename; no behavior change. ./scripts/ci-checks.sh green.
Stacks on #158.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 18:19:49 +02:00
a2f6599335 fix(glasspane): skip duplicate zot tool_call events (Sam & Pi)
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Treat zot tool_use_start as the canonical tool_execution_start event and skip the later standalone tool_call so Glasspane does not double-fire tool starts. Update the real-key transcript notes to mark the double-fire issue resolved.\n\nValidation: ./scripts/check-format.sh; cargo fmt --check; cargo test -p colibri-glasspane; cargo test -p colibri-daemon glasspane -- --nocapture; cargo test -p colibri-daemon pi_spawn_path_produces_correct_glasspane_state -- --nocapture; cargo clippy -p colibri-glasspane -p colibri-daemon --all-targets -- -D warnings.
2026-06-22 06:01:48 +02:00
a778145925 docs(zot-rpc): prettier table realignment
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 23:06:27 +02:00
289a203016 docs(zot-rpc): correct the tool_call double-fire claim to match the transcript
The raw stdout shows only tool_use_* + tool_progress + tool_result for the tool
cycle — no standalone {"type":"tool_call"} line. Downgrade the double-fire
note from a 'verified fact' to an open question, and mark the tool_call table
row as mapped-but-not-observed. Keeps the doc's 'observed, not inferred'
section honest. 14/15 types remain validated against real output.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 23:06:11 +02:00
07ff4d3b1f docs: real-key zot rpc transcript — all 15 event types confirmed
Step 1 of colibri#143 complete. Complete tool call cycle captured
with valid DEEPSEEK_API_KEY: 61 lines, 2 turns, 1 bash tool call.

All 15 event types observed and mapped — no glasspane gaps.
Notable: tool_call and tool_use_start both map to tool_execution_start
(double-fire on real runs). Verified facts replace 'name matches source.'

Full raw transcript at /tmp/zot_transcript_full.txt (OSA).
2026-06-21 23:00:51 +02:00
6b71025772 docs: prettier-format PLAN-MOTHER-MCP-VAULT-KEYS table alignment
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Pre-existing gate offender (PR #141 slipped check-format.sh). Table-alignment
whitespace only, no content change. Restores a green ./scripts/check-format.sh.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 22:47:45 +02:00
1242c52360 docs(zot-rpc): backtick event identifiers in the verdict
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
The bare underscored names (tool_call, tool_use_*, text_delta, assistant_*)
were read as markdown emphasis and mangled by prettier; wrap them in code
spans so they render literally and stay prettier-immune.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 22:46:07 +02:00
6b9222c746 docs: zot rpc transcript — wire format confirmed for glasspane
Step 1 of colibri#143. Captured with zot rpc --provider deepseek.
Wire format: bare event objects (no JSON-RPC envelope), matches
glasspane's zot_event_type parser. All 6 observed types mapped.
Remaining types (tool_call, text_delta, etc.) need a live API key
but type names match zot source.

Verdict: glasspane parser is correct. Steps 2-3 unblocked.
2026-06-21 22:41:34 +02:00
c15edcade4 Merge pull request 'fix(packaging): make agent-jail pkg drift check local-friendly (Sam & Pi)' (#142) from fix/post-pull-format-and-mother-sync-review into main
Some checks are pending
CI / agent-jail-pkgs (push) Waiting to run
CI / rust (push) Waiting to run
CI / markdown (push) Waiting to run
CI / port (push) Waiting to run
Reviewed-on: #142
2026-06-21 20:41:00 +02:00
a125959991 fix(packaging): make agent-jail pkg drift check local-friendly (Sam & Pi)
Some checks failed
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
Honor an optional pkg-list-jails path/URL argument, allow comments inside the agent-jail section, and apply Prettier to docs/README.md. This preserves the cross-repo gate for the jq addition.\n\nValidation: ./scripts/check-format.sh; cargo fmt --check; ./packaging/freebsd/port/check-cargo-crates.sh; ./packaging/freebsd/check-agent-jail-pkgs.sh /home/clawdie/ai/clawdie-iso/packages/pkg-list-jails.txt; sh -n packaging/freebsd/agent-jail-bootstrap.sh packaging/freebsd/mother-sync-hive-keys.sh; cargo check -p colibri-daemon -p colibri-client -p colibri-mcp.
2026-06-21 20:38:39 +02:00
1d0ac22443 docs: plan mother MCP link — Vaultwarden pubkey exchange
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Direction B: agent calls mother via SSH, pubkeys exchanged through
Vaultwarden. Three components:
- clawdie-enable-mother.sh: keygen + vault publish + external-mcp.json
- clawdie-vault-fetch: new --publish-pubkey mode
- mother-sync-hive-keys.sh: cron-driven rebuild of authorized_keys.hive

Security: rebuild-not-append, restriction applied by mother,
dedicated key file, atomic write.
2026-06-21 19:52:19 +02:00
2ea97b3186 docs: prettier-format MULTI-AGENT-HOST-PLAN table padding
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Run the mandatory markdown format gate (check-format.sh / prettier@3) on the
doc — table column padding only, no content change. Makes the PR pass the gate.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 18:46:55 +02:00
Sam & Claude
4792ca84e4 docs: rework MULTI-AGENT-HOST-PLAN for 0.11.0 — narrowed gaps, Phase 2a done
Update context to released 0.11.0 (was 0.10.0 staged). Command inventory
now 19 (was 17), CLI surface 19/19 (was 10/17). Mark Phase 2a COMPLETE
(register-agent/list-agents merged). Add Closed-gaps section documenting
tenant/vault chain, issues #88/#91/#92. Apply positive language convention.
Narrow gap analysis to remaining open items.

(Sam & Claude)
2026-06-21 18:39:02 +02:00
a7565c49ad fix(spawner): stage jail spawn files under daemon-owned home, not /var/run
Some checks failed
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
Closes #135. The daemon stages per-spawn launch.sh/env.sh under the jail root;
the previous location /var/run/colibri-stage is root-owned, so the daemon
(running as clawdie) could not create per-spawn subdirs there — the second
jail-spawn EACCES, worked around in #134 by pre-creating the dir in
agent-jail-bootstrap.sh.

Move the default staging root to the daemon user's home,
/home/clawdie/.cache/colibri/stage, which clawdie owns by construction of the
jail account. create_dir_all now succeeds with no privileged pre-creation step,
and /home is persistent (unlike a tmpfs /var/run). The path is overridable via
COLIBRI_JAIL_STAGE_DIR, matching the daemon's other env-configurable paths.

- spawner.rs: const → staged_jail_run_dir() resolver; updated unit test.
- agent-jail-bootstrap.sh: drop the now-unnecessary install -d staging block
  and DAEMON_USER var (the #134 workaround).
- docs: update jailed-spawn design + truss analysis to the new location.

clippy clean; spawner suite green (21 tests); sh -n clean; touched docs pass
the markdown gate.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 17:37:32 +02:00
9814ce8afb docs: truss analysis of jail-spawn Permission Denied + debugging reference
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Two root causes found via truss:
1. Bare command names (sudo, jexec) unresolved under daemon(8) PATH
   → fixed by resolve_program() in PR #131
2. Jail staging directory owned by root, unwritable by clawdie
   → fixed by chmod 777 <jail_root>/var/run/colibri-stage

Trace saved at /tmp/daemon.truss (1964 lines, successful spawn).
2026-06-21 17:22:30 +02:00
13f4ff7cc2 fix(spawner): avoid async closure in retry path (Sam & Pi)
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
Move the backoff spawn operation into a named async helper so older tooling does not trip over || async syntax, and add a jail sudo wrapping unit test. Document sudo as an interim validated-host privilege mode.\n\nValidation: ./scripts/check-format.sh; cargo fmt --check; cargo check -p colibri-daemon; cargo test -p colibri-daemon jail_tests -- --nocapture.
2026-06-21 16:00:11 +02:00
6e5f227fa7 docs(handoff): mark C1 validated — apply --yes + idempotent re-run
OSA 2026-06-21: clawdie apply --pool testpool --yes completes all 7 steps
(ZFS datasets, _clawdie user, chown, rc.d, sysrc). Idempotent re-run skips
user creation via exit 65. C1 is done.
2026-06-21 15:23:28 +02:00
Sam & Claude
94650a6f45 docs: proof runbook → clean CLI + sweep #126 markdown corruption
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
1. VAULT-PROVISION-FIRST-PROOF.md — refresh to the clean CLI now that the
   three gaps are closed (#101/#102 via PR #107; #92 via PR #119):
   - Step 3: raw SQLite INSERT →
   - Step 4: raw  JSON →
   - Status header: mark all three closed; note the proof validates the
     production deployment pattern (bare-metal Clawdie service runs this model)
   - Chain-resolution section: document the #92/#119 containment guard
     (canonicalize + assert under COLIBRI_JAIL_ROOT_BASE before any write)
   - Follow-ups: record what landed vs. what's still open (no delete-tenant
     verb; CI runner intermittently down)

2. Sweep markdown corruption introduced by #126 (merged while CI runner was
   down, so the prettier gate never ran):
   - AGENTS.md — prettier reflow
   - COLIBRI-SKILLS-PLAN.md — Ownership table had a row split across two
     lines ('consumer.' orphan + a duplicated Agents row); restored to 5
     clean logical rows

Checks: npx prettier@3 --check across all docs + AGENTS.md + README.md →
0 warnings; cargo fmt --check clean.

Co-Authored-By: Hermes & Sam <hello@clawdie.si>
2026-06-21 14:46:19 +02:00
5fe3e676b2 docs: repair formatting + content from positive-language rewrite (#124)
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled
PR #124 applied the positive-instruction-framing convention across docs but
was self-merged without the markdown format gate, leaving 6 files failing
prettier and a few structural defects. This repairs them:

- prettier --write on the 6 files that failed ./scripts/check-format.sh
  (AGENTS.md, CLAWDIE-STUDIO-PROPOSAL, COLIBRI-SKILLS-PLAN, HEADROOM-SIDECAR,
  MULTI-AGENT-HOST-PLAN, VAULT-PROVISION-FIRST-PROOF).
- COLIBRI-SKILLS-PLAN.md: fix a table row split across two lines by a stray
  newline injected mid-cell.
- CLAWDIE-STUDIO-PROPOSAL.md: remove an orphaned "together." left dangling
  by a reworded sentence; restore the editor-bridge (MCP) guardrail bullet
  that was dropped, reworded positively; restore the guardrail list structure.
- CLAWDIE-STUDIO-PROPOSAL.md: plain-language the three implementation
  guardrails (MCP foundation, opt-in/guarded tools, set-cost-mode scope).

./scripts/check-format.sh -> green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 13:19:26 +02:00
b878b4bdfb docs: rewrite negative patterns as positive actionable instructions
Some checks failed
CI / agent-jail-pkgs (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
Convert 'do not', 'cannot', 'never', 'avoid', 'don't' patterns across
AGENTS.md, README.md, and 11 docs/*.md files into positive,
actionable instructions that tell the reader what TO do.

Preserved: hard safety constraints (MUST NOT agent boundaries,
vault credential confinement intent) — these are enforceable
guardrails where the prohibition IS the instruction.
2026-06-21 13:09:19 +02:00