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>