ntm v1.21.0
Minor release: behavior-visible defaults changed (idle threshold, cursor-agent launcher) plus a batch of robustness fixes.
Features
- Configurable idle threshold (#238): the
[assign]config section gains anidle_thresholdkey; the default idle threshold is now 15m (was 120s). Long-thinking agents are no longer prematurely treated as idle. - Cursor-agent launcher (#233):
cursor-agentis now a supported launcher with a sensible default command. add-registration(#240): register an existing pane/agent with Agent Mail after the fact.- Agent lifecycle robot verbs:
--robot-exit-cli/--robot-kill-agentfor graceful agent CLI exit or kill without destroying the pane;ntm kill --pane/--robot-kill-panefor per-pane removal. ntm rotate --force: bounded rotation of wedged agent CLIs.
Fixes
- Symlink-aware Agent Mail keys + real spawn identities (#239): project keys are canonicalized through symlinks and spawned agents register with their real identities.
- Trust-prompt health detection (#230): trust/permission prompts are detected as needing attention instead of appearing healthy.
- Silent send strand (#241):
ntm sendno longer reports "Sent" for prompts that never submit (e.g. a Claude Code pane parked on an open TUI menu). - Epic misdispatch (#242): the assign classifier now reads issue type — epics without a gate label are no longer auto-dispatched to worker panes as implementation work.
- Pane-uptime reporting fixes since v1.20.0.
--robot-snapshot --sincenow derives deltas from the durable attention feed (survives process restarts); removed the dead process-local state tracker.- Loud
INVALID_FLAGerrors for empty lifecycle-verb values. - Serve/REST hardening: beads REST surface no longer perturbs tracker state;
projectDirsnapshotting fixed under lock.
Install
curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/ntm/main/install.sh | bash