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>
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>
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>
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>
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)
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)
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>