colibri/docs/wiki/naming-decisions.md
Sam & Claude 9947da9edc
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
fix(wiki-lint): make check 2 actually work + parse ledger
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

42 lines
4.1 KiB
Markdown

# Naming decisions ledger
← [index](./index.md)
A living record of renames driven by superseded assumptions, so future drift is
checkable against one list. "Shipped" means merged to `main`; verify against the
linked code before trusting a row.
## Shipped
| Old → New | Why | Anchor |
| ------------------------------------------------ | --------------------------------------------------------------------------------- | ---------------------------------------------- |
| `COLIBRI_AUTOSPAWN_PI``COLIBRI_AUTOSPAWN` | Harness-neutral (default agent is zot, not pi) | `crates/colibri-daemon/src/socket.rs` |
| `COLIBRI_PI_BINARY``COLIBRI_AUTOSPAWN_BINARY` | same | `socket.rs` (`autospawn_agent_if_configured`) |
| `pi_session_id``session_id` | zot agents have session ids too; `#[serde(alias)]` keeps back-compat | `crates/colibri-glasspane/src/lib.rs` (`Pane`) |
| `fake-pi-agent.py``sample-pi-agent.py` | "fake" too loaded; it emits a canned _sample_ | `scripts/sample-pi-agent.py` |
| non-local spawn default `hermes-agent``zot` | `hermes-agent` was a nonexistent leftover binary | `socket.rs` (`default_agent_args`) |
| `usb_nodes``hive_nodes` | a node is any host that joined the hive, not only a USB boot (`+node_type`); #161 | `packaging/mother/mother_schema.sql` |
## In-flight
_None currently._
## Known residue (not yet actioned)
| Item | Note |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `pi_type` | pi-era name for "normalized event type"; **internal only**, not serialized. Optional rename → `event_type`. `crates/colibri-glasspane/src/lib.rs` |
| `FEATURE_COLIBRI` | `AGENTS.md`/README imply "no separate feature flag," but the build keeps it (default YES, "internal escape hatch"). Reconcile wording or flag. (clawdie-iso) |
| `clawdie-startx` | README teaches `clawdie-gui`; `startx` kept as the internal wrapper — documented transition, verify the user-facing launcher leads with `gui`. (clawdie-iso) |
| `ADR-agent-harness-consolidation.md` | Referenced but does not exist; `AGENTS.md` is the real anchor. See [agent-harness](./agent-harness.md). |
## Structural decisions
| Decision | Why / lesson | Anchor |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| Single home for mother infra = colibri | The mother MCP scripts were copied into both colibri and clawdie-iso; the iso copy drifted to an **SQL-injectable** `node-register-mcp` on `main`. Same script in two repos drifts — a lint pass should flag cross-repo duplicates. | colibri `packaging/mother/`; iso removal in iso PR #129 |
## See also
- [agent-harness](./agent-harness.md)
- [quality-gates](./quality-gates.md) — the gate that should catch these at PR time