Commit graph

8 commits

Author SHA1 Message Date
06601a09c4 refactor: clear pi-era residue from the harness-neutral agent path
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
Sweep for stale naming/defaults left over from the pi-only era (the same
class of bug as the pi_binary compile break):

- socket.rs: non-local spawn defaulted the binary to `hermes-agent` (a binary
  that does not exist) and hardcoded `--mode json` (invalid for zot) — a
  reachable latent bug via `colibri spawn-agent <provider>`. Default to zot and
  derive argv from a single default_agent_args() helper, shared with autospawn
  (removes the duplicated zot-vs-pi arg logic).
- glasspane/tui/client/daemon: rename the stale wire field `pi_session_id` →
  `session_id` (zot agents have session ids too). `#[serde(alias =
  "pi_session_id")]` keeps deserializing legacy/persisted snapshots.
- contracts + runtime_inventory: record `zot` version alongside `pi` for
  complete agent provenance (detect_zot_version()).
- Harness-neutral stale comments ("Pi agent", "hermes-agent" example,
  COLIBRI_PI_BINARY in a test doc).
- cmd_spawn_agent: #[allow(clippy::too_many_arguments)] — this lint was already
  failing `clippy -D warnings`, i.e. the CI gate was red on main and thus
  unenforceable. The gate (scripts/ci-checks.sh) now passes green.
- AGENTS.md: document that ci-checks.sh passing is mandatory before merge while
  no Actions runner enforces .forgejo/workflows/ci.yml.

Validated: ./scripts/ci-checks.sh green (fmt, clippy -D warnings, tests, md).

Stacks on #157 (zot-rpc driver) and #156 (0.12 build fix).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 18:04:45 +02:00
c14fe3ff79 Auto-load .env for the DeepSeek probe; gitignore .env (Sam & Claude)
colibri-probe now calls dotenvy::dotenv() at startup, so a DEEPSEEK_API_KEY pasted into a local .env is picked up automatically — no manual sourcing. .env is gitignored (a committed/pushed key is permanently compromised); .env.example is the committed template. No key value passes through the repo.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 14:27:41 +02:00
82c2304521 Add colibri-deepseek crate; move probe behind it (Sam & Claude)
First operator-approved slice. crates/colibri-deepseek owns the DeepSeek client + prefix-cache accounting, depends on colibri-contracts, and produces the pipeline: DeepSeek request -> byte-stable prefix -> provider-smoke.result.v1 -> run-manifest.v1 -> local JSONL event log (tmp/, gitignored). The colibri-probe binary is now a thin entrypoint over the crate; reqwest/chrono moved out of the root package.

Validated on Linux: cargo build --workspace --release PASS; colibri-contracts golden tests 5 passed; probe (skipped, no key) emits the smoke result and writes both schema lines to the JSONL log. No TS production paths touched. Live cache values await DEEPSEEK_API_KEY (proof gate #2).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 13:35:39 +02:00
98190703f0 Restore clean runtime_inventory.rs — prior commit merged conflict markers (Sam & Claude)
My 094b98f accidentally committed unresolved conflict markers when a stash pop collided with Codex's 6269030 (which independently fixed Linux Pi detection by canonicalizing the pi bin and walking ancestors for the package.json — covers nvm). Restoring 6269030's clean version; my npm-root-based variant was redundant and is dropped.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 11:33:17 +02:00
094b98faf4 Fix Linux Pi detection: resolve via npm root -g (Sam & Claude)
pi --version has no stable stdout and the ~/.npm-global path does not match nvm layouts, so Pi went undetected on Linux. Now also resolve the active node's global modules via 'npm root -g' and read pi's package.json. Additive — the FreeBSD/.npm-global paths Codex hardened are unchanged.

Verified on domedog (login shell, node v24.16.0): inventory now reports pi 0.75.5.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 11:32:07 +02:00
6269030424 Detect Pi from PATH inventory candidates
Prefer user and PATH candidates before system defaults, fall back to package.json discovery, and accept version output from stderr for shims.

---

Build: pass — cargo build --release

Tests: pass — cargo test (0 tests)
2026-05-26 11:26:39 +02:00
247ffc76a1 Add FreeBSD runtime inventory manifest
Expose COLIBRI_AGENT for lane attribution and add a runtime inventory binary matching the Clawdie runtime schema.

---

Build: pass — cargo build --release

Tests: pass — cargo test (0 tests)
2026-05-26 10:45:18 +02:00
cf7d25e83a Scaffold Colibri Phase 1: colibri-probe DeepSeek cache smoke (Sam & Claude)
Greenfield cross-platform (FreeBSD/Linux) Rust crate per clawdie-ai doc/COLIBRI-CONTROLPLANE-PLAN.md. colibri-probe sends a byte-stable DeepSeek prefix twice and reports prompt_cache_hit_tokens as a clawdie.provider-smoke.result.v1 manifest; build-only/skipped without DEEPSEEK_API_KEY.

Stack: tokio + reqwest(rustls-tls, no OpenSSL) + serde + chrono. Builds clean on Linux (cargo build --release, 1m16s); rust-toolchain pinned to 1.95.0. FreeBSD (osa) build is the next lane.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 10:08:23 +02:00