# Talking Stick 0.14.0

Date: 2026-08-25

## Added

- **CI workflow.** `.github/workflows/ci.yml` runs `npm ci`, typecheck, build, and the Vitest suite on Ubuntu and macOS with Node 22 and 24 for every push to `master` and every pull request. (#43)

## Changed

- **Git worktrees share one room.** Linked worktrees resolve their coordination root through the repository's common `.git` directory, so agents in different worktrees of the same repository join the main checkout's room. Real filesystem ancestors are still checked first, so an explicit `--force-new` per-worktree room keeps winning. Submodule layouts keep their checkout root. (#61)
- **Quiet default wait ignores advisory takeovers.** An unbounded `tt wait` no longer exits for `takeover_available` with reason `owner_idle` (owner alive, merely quiet); it keeps long-polling. Ownership hazards (`owner_gone`, `owner_timeout`, `claim_timeout`) still wake it, and `tt try` or an explicit `--timeout` still report every offer. No new flags. (#62)
- **Bounded `tt events` tail.** A bare `tt events` returns at most the 50 most recent in-horizon events; `--all` and `--limit` widen it as before. (#57)
- **Skill and receive contract clarify failure exits.** A non-zero exit from `tt release`/`pass`/`assign`/`take` (including exit 127 when `node` is missing from PATH) means the turn did not change; re-verify with `tt state`. The skill now shows `tt msg send --stdin` for bodies with backticks, `$(...)`, or newlines. (#52, #59)

## Fixed

- **No cmux noise outside cmux.** `tt wait` only probes `cmux identify` when a cmux caller context (`CMUX_TAB_ID` / `CMUX_AGENT_LAUNCH_KIND`) exists, and the probe no longer leaks the daemon's socket error to stderr. `tt standby` without `--wake` falls back to manual standby (reporting `fallback_reason`) when cmux is unavailable; explicit `--wake cmux` remains strict. (#64)

## Verification

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