# Talking Stick 0.11.0

Date: 2026-08-13

## Added

- **Durable receiver registry.** A foreground `tt wait` registers its exact PID, start time, cursor, generation, and heartbeat in `room_receivers`. A concurrent second wait for the same room member fails fast with `duplicate_listener`, crash recovery replaces provably dead registrations, and `tt health` reads the registry instead of scanning process command lines.
- **Reachability-gated routing.** Fair release selects only members with a live registered receiver or a verified self-waking endpoint. Named `pass`/`assign` to an unreachable target fails with `recipient_unreachable` (with recovery suggestions) unless `--operator-requested` explicitly overrides.
- **Reservation expiry requeue.** An expired unclaimed reservation emits one `reservation_expired` event, preserves the pending handoff, and reroutes to the next reachable waiter (or idles) instead of broadcasting `takeover_available` to every wait. Owner-gone, owner-idle, and owner-timeout keep the explicit takeover decision.
- **Meaningful `--interrupt`.** `tt wait` records the caller's verified cmux surface as a session-scoped wake endpoint. A directed interrupt reaches a live listener through its wait output, and otherwise sends one coalesced, fixed, body-free wake prompt to the verified endpoint; a room interrupt may wake only the current owner. Send results expose `delivery_status` (`receiver`, `endpoint`, `pending`, or `unreachable`) with no acknowledgement handshake.
- **`claude` install alias.** `tt install claude` resolves to `claude-code`.

## Changed

- **Compact default JSON.** Coordination commands omit the static `coordination_prompt`, prose `next` hint, and event fields duplicated by the envelope. `--verbose` restores the full diagnostic representation. Substantive messages and handoffs are never truncated.
- **Grok hook throttling.** The installed Grok hook records only identity lifecycle events (`SessionStart`, `UserPromptSubmit`, `SessionEnd`); repeated observations of the same session are idempotent no-ops, keeping `grok-sessions.jsonl` bounded.
- **Strict positional paths.** `tt release`, `tt pass`, and `tt assign` reject an unsupported `--path` flag instead of silently resolving the current directory into the wrong room.
- Documentation: build/clean/generated-output commands are shared workspace mutations and require the stick; `SKILL.md` documents `--interrupt` etiquette and delivery statuses.

## Verification

```bash
npm run typecheck
npm test
npm run build
node dist/cli.js --help
git diff --check
npm pack --dry-run
```
