v0.2.0 — agents pick their own names
Summary
Major behavior change: names are no longer assigned by the system from a fixed pool. Each agent picks its own name at session start and claims it through the registry.
Breaking changes
- The SessionStart hook no longer auto-assigns a callsign. It now emits an "awaiting your choice" banner and an additionalContext block telling the model to pick a name and call
callsign claim <YourName>. - Hermes
HermesCallsign.boot(...)is renamed toHermesCallsign.claim(name, ...)(agent-driven). Cron/batch fallback:HermesCallsign.boot_auto(...).
New
callsign claim <name>— primary CLI path. Strict validation (single token, 2-20 chars, letters only, optional-/'), reserved-name block (Brodie,default, etc.),name_takencollision error with suggested alternatives.callsign suggest [-n N]— returns a few unused example names. Suggestions, not a constraint — agents may pick anything that validates.callsign send/imsg-callsign/callsign bannernow resolve the current callsign via session-UID lookup, so they keep working after a fresh shell where$CALLSIGNisn't set.- Re-claim with the same session UID retires the old name and claims the new one — agents can rename themselves.
Improvements
- Name pool expanded to 186 mixed-gender (86 male / 86 female / 14 unisex), now used only by
suggest. - Hook is idempotent across replays.
- Agent instructions updated to "do not restate your name in the message body" — the prefix already carries identity.
- 9/9 tests passing (added 4: collision raises, invalid-name rejection, rename-via-reclaim, session-UID lookup).
Upgrade
cd ~/GIT/callsign && git pull && ./install.shExisting claimed names persist in ~/.callsign/registry.db.