NTM v1.2.0
Named Tmux Manager - Orchestrate AI coding agents in tmux sessions with beautiful TUI interfaces.
Quick Install
# One-liner install (Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/ntm/main/install.sh | bash
# Homebrew (macOS/Linux)
brew install dicklesworthstone/tap/ntm
# Go install
go install github.com/Dicklesworthstone/ntm/cmd/ntm@v1.2.0Shell Integration
Add to your shell rc file:
eval "$(ntm init zsh)" # for zsh
eval "$(ntm init bash)" # for bash
eval "$(ntm init fish)" # for fishChangelog
Features
- d0c0308: feat(auth): add Claude Code authentication flow handler (@Dicklesworthstone)
- b2beca0: feat(auth): implement Claude auth flow logic with detection patterns (@Dicklesworthstone)
- 79b7c05: feat(auth): implement restart strategy with shell detection (@Dicklesworthstone)
- 78fb96a: feat(beads): add comprehensive Dashboard 360-View Cockpit bead structure (@Dicklesworthstone)
- 5a86d62: feat(cass): add initial Go client for CASS robot mode (@Dicklesworthstone)
- 5fb96dd: feat(cass): add ntm cass CLI commands (status, search, insights, timeline) (@Dicklesworthstone)
- 8eb688f: feat(cass): add robot mode flags for CASS integration (@Dicklesworthstone)
- 143a113: feat(cass): implement context injection and duplicate detection (@Dicklesworthstone)
- 330dec7: feat(cass): implement full health check and capabilities discovery (@Dicklesworthstone)
- 0326d40: feat(cass): implement full search query options support (@Dicklesworthstone)
- 07b8d35: feat(cass): implement graceful degradation when cass is missing (@Dicklesworthstone)
- b8c04d1: feat(checkpoint): add storage and type tests (27% → 39.5%) (ntm-960) (@Dicklesworthstone)
- 079cc49: feat(cli): CASS context injection, improved rotation, and watcher ignores (@Dicklesworthstone)
- 19967d8: feat(cli): add 'What next?' success footers for spawn and quick (ntm-952.2.3) (@Dicklesworthstone)
- ddcfff6: feat(cli): add --ssh flag to all commands for remote execution (@Dicklesworthstone)
- 249ad5c: feat(cli): add changes and conflicts commands for file modification tracking (@Dicklesworthstone)
- 0cc100e: feat(cli): add file watching mode, plugins command, and hooks directory support (@Dicklesworthstone)
- a99e626: feat(cli): add integration tests for spawn command and fix pane title parsing (@Dicklesworthstone)
- da53e6f: feat(cli): add rotate command and interactive guards (@Dicklesworthstone)
- 836b222: feat(cli): add rotate command for account rotation (@Dicklesworthstone)
- bb9e2fe: feat(cli): add standard progress patterns for long operations (ntm-952.2.4) (@Dicklesworthstone)
- d34cdda: feat(cli): add tag filtering to send command (@Dicklesworthstone)
- f8a9dad: feat(cli): implement --tag filtering for send, list, status, interrupt, and kill commands (@Dicklesworthstone)
- 6d6fb72: feat(cli): implement clipboard integration (EPIC: ntm-gon) (@Dicklesworthstone)
- 66a85ef: feat(cli): unified session resolution and command improvements (@Dicklesworthstone)
- 6efe375: feat(clipboard): implement internal clipboard package and update copy command (@Dicklesworthstone)
- 0c87071: feat(config): add --force flag to project init, improve template resolution (@Dicklesworthstone)
- ac629f4: feat(config): add CASS integration configuration (@Dicklesworthstone)
- ddde51e: feat(config): add CASS integration configuration options (@Dicklesworthstone)
- bd24bca: feat(config): add NTM_CONFIG env var and JSON output for quick command (@Dicklesworthstone)
- 3fa8af3: feat(config): add accounts and rotation configuration schema (@Dicklesworthstone)
- 8bcc773: feat(config): add config file watcher and theme configuration (@Dicklesworthstone)
- e9222b6: feat(config): implement per-project configuration via .ntm/config.toml (@Dicklesworthstone)
- a41b24a: feat(copy): add pane selector, output file, and enhanced filtering options (@Dicklesworthstone)
- e4f28b8: feat(dashboard): add Agent Mail integration fields to model (@Dicklesworthstone)
- 5c20bcd: feat(dashboard): add MetricsPanel and HistoryPanel components (@Dicklesworthstone)
- 9d54b97: feat(dashboard): add UBS scan status badge and layout fixes (@Dicklesworthstone)
- 90454d1: feat(dashboard): add comprehensive layout and helper tests (39.9% → 48.4%) (ntm-m1tw) (@Dicklesworthstone)
- ccb6c71: feat(dashboard): add error handling for failed data fetches (@Dicklesworthstone)
- 0244fe5: feat(dashboard): add fetch coalescing, cancellation, and diagnostics (@Dicklesworthstone)
- 28fd034: feat(dashboard): add files panel and CASS context panel to sidebar (@Dicklesworthstone)
- 5048c89: feat(dashboard): add glamour renderer for detail pane output (@Dicklesworthstone)
- d281f18: feat(dashboard): add help overlay with '?' toggle (ntm-952.4.1) (@Dicklesworthstone)
- 7c04fc7: feat(dashboard): add panel focus system and enhanced pane row building (@Dicklesworthstone)
- e1c6bd1: feat(dashboard): add panel system with beads and alerts components (@Dicklesworthstone)
- ecf13e3: feat(dashboard): add project health and file locks to detail pane (@Dicklesworthstone)
- 1aaf537: feat(dashboard): add shimmer animation for high context warnings (@Dicklesworthstone)
- ac552b4: feat(dashboard): add spinner animation for working state agents (@Dicklesworthstone)
- 15d20b7: feat(dashboard): add ticker panel and refactor panel system (@Dicklesworthstone)
- 2616208: feat(dashboard): center align banner and stats bar in dashboard view (@Dicklesworthstone)
- b3341b7: feat(dashboard): enhance terse output format for agent states (@Dicklesworthstone)
- 9546122: feat(dashboard): enhanced pane grid with status icons and activity badges (@Dicklesworthstone)
- 6dfb343: feat(dashboard): implement per-agent border colors with pulse animation (ntm-t0f2) (@Dicklesworthstone)
- 44314f3: feat(dashboard): integrate new panels into dashboard system (@Dicklesworthstone)
- f40cf61: feat(dashboard): integrate shimmer progress bar and refactor row building (@Dicklesworthstone)
- 907069b: feat(dashboard): integrate status detection with refresh cycle (@Dicklesworthstone)
- 304b819: feat(diff): add ntm diff command for comparing output (@Dicklesworthstone)
- 8687242: feat(gemini): add auto-select Pro model feature for Gemini agents (@Dicklesworthstone)
- 91dc833: feat(history): add duration tracking for send operations (@Dicklesworthstone)
- 836c98f: feat(history): display duration column in prompt history list (@Dicklesworthstone)
- 64a546f: feat(history): stabilize JSON output and add validation (@Dicklesworthstone)
- 8c30c14: feat(hooks): implement pre/post hooks for add and create commands (@Dicklesworthstone)
- 1d262b9: feat(layout): add TierUltra and TierMega for ultra-wide display layouts (@Dicklesworthstone)
- 7a27dcb: feat(mail): add Human Overseer messaging CLI for agent communication (@Dicklesworthstone)
- ef67236: feat(mail): add read/ack commands for Agent Mail messages (@Dicklesworthstone)
- 4b4d3cf: feat(mail): implement ntm mail inbox command (@Dicklesworthstone)
- 5d118aa: feat(mail): restore full inbox implementation and fix dashboard references (@Dicklesworthstone)
- 9a712a6: feat(mail): restore inbox functionality with stub fallback (@Dicklesworthstone)
- 8304cc3: feat(output): add Agent Mail status to StatusResponse schema (@Dicklesworthstone)
- 859c914: feat(output): add CLIError system with remediation hints (ntm-952.2.1) (@Dicklesworthstone)
- 72c89cf: feat(palette): add live reload, history tracking, and responsive layout (@Dicklesworthstone)
- 474938f: feat(palette): add pinned commands, favorites, recents, and help overlay (@Dicklesworthstone)
- 45f3109: feat(palette): improve navigation, filtering, and visual feedback (@Dicklesworthstone)
- 9da5495: feat(panels): enhance beads and alerts panels with richer displays (@Dicklesworthstone)
- 1ea7fcf: feat(persona): implement persona system for role-based agent spawning (@Dicklesworthstone)
- 402617f: feat(pipeline): add ntm pipeline command for multi-stage execution (@Dicklesworthstone)
- f287505: feat(plugins): implement command plugins support (@Dicklesworthstone)
- cf2fb96: feat(plugins): implement custom agent definitions via toml files (@Dicklesworthstone)
- a875729: feat(profiler): integrate recommendations into profile output (@Dicklesworthstone)
- 0f60f21: feat(quota): add ntm quota command and provider usage fetching (@Dicklesworthstone)
- d9ab127: feat(quota): implement quota tracking system core package (@Dicklesworthstone)
- 7fcce1f: feat(resilience): add comprehensive test coverage (16.6% → 97.2%) (ntm-959) (@Dicklesworthstone)
- f13c127: feat(robot): add --robot-dashboard for AI orchestrator consumption (@Dicklesworthstone)
- eb13a91: feat(robot): add --robot-markdown for token-efficient LLM output (ntm-xqbq) (@Dicklesworthstone)
- bfbe639: feat(robot): add --robot-save and --robot-restore flags for session persistence (@Dicklesworthstone)
- 7f52319: feat(robot): add model/variant to robot output structs (@Dicklesworthstone)
- 02e573e: feat(robot): comprehensive markdown table output for --robot-dashboard (@Dicklesworthstone)
- bfa030a: feat(robot): enhance --robot-mail with pane mapping and conflict detection (@Dicklesworthstone)
- 31bea69: feat(robot): enhance agent mail integration and add markdown section filtering (@Dicklesworthstone)
- 0adc074: feat(robot): enrich status output with Agent Mail and file changes (@Dicklesworthstone)
- 6d0a8f9: feat(rollback): interrupt agents before rolling back git state (@Dicklesworthstone)
- c463c17: feat(rotate): implement full restart and re-auth strategies (@Dicklesworthstone)
- 5163bed: feat(rotation): add --all-limited flag for batch rotation of rate-limited agents (@Dicklesworthstone)
- 496bb3c: feat(rotation): add multi-provider support (Codex, Gemini) via Provider interface (@Dicklesworthstone)
- 1d98c45: feat(rotation): auto-trigger rotation on rate limit detection (@Dicklesworthstone)
- 61a07a9: feat(scan): add --watch mode for continuous scanning (@Dicklesworthstone)
- 08b85cc: feat(scan): add agent mail notifications for scan results (@Dicklesworthstone)
- ba331df: feat(scanner): integrate bv graph analysis with scan findings (@Dicklesworthstone)
- 7e94bad: feat(startup): implement two-phase startup architecture (@Dicklesworthstone)
- 6aed178: feat(status): display Agent Mail status and file reservations (@Dicklesworthstone)
- 49bd65a: feat(storage): add atomic writes, file locking, and efficient scanning (@Dicklesworthstone)
- 1e86dd5: feat(styles): add shimmer progress bar and extend badge tests (@Dicklesworthstone)
- ab98b4e: feat(styles): add style builder functions using design tokens (ntm-952.1.3) (@Dicklesworthstone)
- f42736a: feat(theme): add Catppuccin Latte light theme and auto-detection (@Dicklesworthstone)
- ab90a66: feat(theme): add NO_COLOR standard support for accessibility (ntm-952.5.2) (@Dicklesworthstone)
- 3bddb39: feat(tmux): add capture caching infrastructure (ntm-952.6.3) (@Dicklesworthstone)
- a3a732f: feat(tmux): add context.Context support for cancellable operations (@Dicklesworthstone)
- 821d3b1: feat(tmux): add tag parsing and manipulation support (@Dicklesworthstone)
- 1de71bb: feat(tmux): refactor to use Client struct for remote execution support (@Dicklesworthstone)
- 113c506: feat(tracker): add git-ignore aware file snapshots (@Dicklesworthstone)
- d0cf74a: feat(tracker): add severity classification and LastAt tracking for conflicts (@Dicklesworthstone)
- 61abde2: feat(tracker): enhance conflict detection with severity levels and filtering (@Dicklesworthstone)
- e24a314: feat(tui): add CASS search palette to dashboard (@Dicklesworthstone)
- 3a1c052: feat(tui): add regression snapshot tests for state components (ntm-952.1.4) (@Dicklesworthstone)
- 15daa47: feat(tui): add responsive layouts and enhanced badge styling (@Dicklesworthstone)
- 324ace6: feat(vscode): create initial extension scaffold (@Dicklesworthstone)
- fba5c3f: feat(vscode): enhance dashboard with mail integration and improved styling (@Dicklesworthstone)
- e77f069: feat(vscode): implement cli wrapper and status bar integration (@Dicklesworthstone)
- 1571c25: feat(vscode): implement context commands and fix send targets (@Dicklesworthstone)
- a3f2450: feat(vscode): implement webview dashboard with beads and mail status (@Dicklesworthstone)
- 97a6894: feat(vscode): improve status bar context and color coding (@Dicklesworthstone)
- d8938ce: feat(watcher): add WithIgnorePaths option for directory filtering (@Dicklesworthstone)
Bug Fixes
- 02300cb: fix(agentmail): ensure session activity updates target correct project (@Dicklesworthstone)
- 066c2d0: fix(agentmail): normalize base URL, atomic session file writes (@Dicklesworthstone)
- e465e3c: fix(agentmail): prevent thundering herd and improve Unicode handling (@Dicklesworthstone)
- f62bfc3: fix(checkpoint): handle utf8 truncation and stderr warnings (@Dicklesworthstone)
- 373e612: fix(ci): resolve CI failures in lint, GoReleaser, and tests (@Dicklesworthstone)
- 8fd17e8: fix(ci): skip flaky tests and SARIF upload issues (@Dicklesworthstone)
- 251d3ba: fix(cli): correct break statement and simplify agent counting (@Dicklesworthstone)
- a4fa233: fix(cli): ensure non-zero exit codes on error in JSON output mode (@Dicklesworthstone)
- 09af15a: fix(cli): improve mail JSON output and integration test setup (@Dicklesworthstone)
- 54b3e67: fix(cli): remove duplicate isInteractive and fix test assertion (@Dicklesworthstone)
- eaefa7c: fix(cli): require explicit args in non-interactive environments (@Dicklesworthstone)
- 1a442c0: fix(dashboard): add missing scanDuration field to Model struct (@Dicklesworthstone)
- 4959909: fix(dashboard): add missing scanner import (@Dicklesworthstone)
- 5775669: fix(dashboard): add scan duration timing (@Dicklesworthstone)
- 06f9044: fix(dashboard): preserve metrics data and fix shimmer effect (@Dicklesworthstone)
- ce9c996: fix(dashboard): use loaded config for alerts instead of defaults (@Dicklesworthstone)
- a8777bd: fix(e2e): create project directory in variants test (@Dicklesworthstone)
- d99318e: fix(e2e): tolerate spawn exit code in variants test (@Dicklesworthstone)
- c8fb148: fix(health): simplify agent detection and improve idle state accuracy (@Dicklesworthstone)
- 74f3a48: fix(icons): default to ASCII icons to prevent width drift (@Dicklesworthstone)
- 724db10: fix(icons): replace emoji with ASCII-safe glyphs for terminal compatibility (@Dicklesworthstone)
- 30afaef: fix(mail): resolve duplicate function definitions (@Dicklesworthstone)
- 9b39f8f: fix(pipeline): increase stage timeout from 5 to 30 minutes (@Dicklesworthstone)
- 46dd5a6: fix(prompt): improve file range handling and size limit enforcement (@Dicklesworthstone)
- 38465d6: fix(prompt): improve line range parsing for Windows paths and validation (@Dicklesworthstone)
- 40987f8: fix(rotate): update test expectation for dry-run validation (@Dicklesworthstone)
- a686aee: fix(status): check up to 3 non-empty lines for idle prompt detection (@Dicklesworthstone)
- bacb1ef: fix(status): make JS stack frame pattern more specific to avoid false positives (@Dicklesworthstone)
- 77abd5e: fix(status): prevent false idle detection from $ in command history (@Dicklesworthstone)
- c19d8ef: fix(status): remove overly broad dollar-sign prompt detection in DetectAll (@Dicklesworthstone)
- 5b946da: fix(tests): add cleanup and error checking to CLI integration tests (@Dicklesworthstone)
- 1af88d3: fix(tests): improve E2E test reliability and formatting (@Dicklesworthstone)
- 28d650a: fix(tests): update test expectations and improve test robustness (@Dicklesworthstone)
- 02df927: fix(theme): safer auto-detection with panic recovery and named return (@Dicklesworthstone)
- bab88ba: fix(ticker): prevent ANSI escape code corruption in scrolling text (@Dicklesworthstone)
- 332bad0: fix(tmux): correct pane name regex to properly capture bracket tags (@Dicklesworthstone)
- 55fc4f3: fix(tmux): prevent command injection via unsafe directory quoting (@Dicklesworthstone)
- c522dbb: fix(tmux): use client method for session checks and escape remote commands (@Dicklesworthstone)
- 44c5994: fix(vscode): resolve switch-case break warnings in dashboard (@Dicklesworthstone)
- 6770aee: fix: remove dead code and use os.UserHomeDir() (@Dicklesworthstone)
- 400d9d4: fix: remove stub files and ensure all functionality is real (@Dicklesworthstone)
- 5ca77be: fix: resolve build errors in session, tracker, and cli packages (@Dicklesworthstone)
- 580e430: fix: resolve compile errors and consolidate duplicate code (@Dicklesworthstone)
- 26a87fd: fix: sanitize filenames correctly and use stderr for warnings (@Dicklesworthstone)
- b5eae8f: fix: session JSON output, config watch path comparison, dashboard cfg (@Dicklesworthstone)
Others
- a6119c0: Add robot dashboard output and markdown helpers (@Dicklesworthstone)
- 79aa0d0: Adjust mail inbox command to delegate aggregated fetch (@Dicklesworthstone)
- 2df072f: Fix flaky and failing tests in config, hooks, robot, and tmux packages (@Dicklesworthstone)
- 916b976: Implement basic plugin loading infrastructure (@Dicklesworthstone)
- 0e60898: Implement multi-file hook loading and fix cli bugs (@Dicklesworthstone)
- c461a39: Implement wide/ultra-wide layout for ntm status and fix compilation errors (@Dicklesworthstone)
- 42c849b: Refine robot dashboard output structure (@Dicklesworthstone)
- 1b62567: bench(dashboard): add Mega/Ultra layout benchmarks for ntm-jypl (@Dicklesworthstone)
- 330857a: build: add ignore build tag to mail inbox stub (@Dicklesworthstone)
- c110f57: chore(beads): close completed tasks and update status (@Dicklesworthstone)
- 5aa0889: chore(beads): close ntm-952.2.1 (CLI error format standardization) (@Dicklesworthstone)
- 39f8a17: chore(beads): close ntm-952.2.3 (What next success footers) (@Dicklesworthstone)
- 6b1d411: chore(beads): close ntm-952.4.1 (Dashboard help overlay) (@Dicklesworthstone)
- b2f8673: chore(beads): close ntm-bke.1 (Project Config Discovery) (@Dicklesworthstone)
- 5ad1576: chore(beads): close ntm-gnyw (@Dicklesworthstone)
- c87891a: chore(beads): close ntm-t897 UBS watcher integration (@Dicklesworthstone)
- 0c92938: chore(beads): close ntm-xi11 test fix (@Dicklesworthstone)
- be98427: chore(beads): close ntm-y7l agent tagging (@Dicklesworthstone)
- 7d936fd: chore(beads): mark ntm-xqbq as closed (@Dicklesworthstone)
- 2b30f21: chore(beads): mark ntm-yl9x (Files Panel) as closed (@Dicklesworthstone)
- d1698ae: chore(beads): sync issue tracker state (@Dicklesworthstone)
- dcf023b: chore(beads): sync issue tracker state (@Dicklesworthstone)
- 422bcfa: chore(beads): update issue tracker state (@Dicklesworthstone)
- 02a46e3: chore(beads): update issue tracking for UX polish work (@Dicklesworthstone)
- 56d44f9: chore(cli): updates from testing session (@Dicklesworthstone)
- 90abdb4: chore(lint): simplify golangci-lint config for CI compatibility (@Dicklesworthstone)
- f6979b1: chore(release): update GoReleaser config for v2 compatibility (@Dicklesworthstone)
- 4431b7e: chore(startup): add rotate and plugins to command classification (@Dicklesworthstone)
- bfdaca8: chore(vscode): include pending client updates (getMail, error handling) (@Dicklesworthstone)
- a69ee49: feat(dashboard/panels): adopt shared state components and add alert pulsing (@Dicklesworthstone)
- f3d00f0: feat(dashboard/panels): use shared state components for empty/error states (ntm-952.4.2) (@Dicklesworthstone)
- a1b2388: feat(tui/components): add shared HelpOverlay and KeyHint patterns (ntm-952.1.2) (@Dicklesworthstone)
- 0435e84: feat(tui/components): add shared state rendering component (ntm-952.1.1) (@Dicklesworthstone)
- 25ad318: feat(tui/dashboard): configurable refresh, output caching, quick actions (ntm-0c8q, ntm-952.4.4) (@Dicklesworthstone)
- ea3837c: feat(tui/panels): add height stabilization to prevent layout jitter (ntm-952.4.3) (@Dicklesworthstone)
- 512c2c3: feat(tui/styles): add reduced motion accessibility support (ntm-952.5) (@Dicklesworthstone)
- 75b3223: optimize(history): efficient time-based pruning and batch import (@Dicklesworthstone)
- a2d2702: optimize(tokens): use smart estimation and remove redundant calc (@Dicklesworthstone)
- 6bb929a: perf(notify,resilience): parallelize notifications and async event handling (@Dicklesworthstone)
- d643c90: refactor(bv): replace global WorkDir with explicit dir parameter (@Dicklesworthstone)
- 11c105a: refactor(cli): add stub pattern for optional commands and improve session display (@Dicklesworthstone)
- 75c8f47: refactor(cli): improve binding detection, cleanup send.go, enhance watch (@Dicklesworthstone)
- a465c7a: refactor(cli): improve mail command testability and error handling (@Dicklesworthstone)
- 3119159: refactor(cli): make help command testable using io.Writer (@Dicklesworthstone)
- f767282: refactor(cli): make help functions accept io.Writer for testability (@Dicklesworthstone)
- 9a1d0d4: refactor(codeblock): replace regex with stateful parser for nested fences (@Dicklesworthstone)
- a678b74: refactor(config): extract ExpandHome helper and add project config watching (@Dicklesworthstone)
- 0bc0a3f: refactor(infra): watcher polling, events async, config cleanup (@Dicklesworthstone)
- 4aba4eb: refactor(mail): consolidate inbox code and stub robot dashboard (@Dicklesworthstone)
- d46fef9: refactor(mail): consolidate mail_inbox.go into mail.go and clean up comments (@Dicklesworthstone)
- 88e0f53: refactor(quota): improve PTY output polling and parsing reliability (@Dicklesworthstone)
- da45a61: refactor(scanner): use bv package, pass project context consistently (@Dicklesworthstone)
- 44d12db: refactor(session): use tmux client, improve workdir detection (@Dicklesworthstone)
- b10a900: refactor(tui): adopt theme system for dynamic colors in components (@Dicklesworthstone)
- 3728497: refactor(tui): improve responsive layout across dashboard and tutorial (@Dicklesworthstone)
- 2bd4bad: refactor(tui/theme): improve status styles and list selection visibility (@Dicklesworthstone)
- 889c537: refactor: code cleanup and formatting improvements (@Dicklesworthstone)
- 50c7234: security(cli): apply command sanitization to add command (@Dicklesworthstone)
- 7b94278: security(cli): validate model names to prevent shell injection (@Dicklesworthstone)
- a001336: security(robot,session): apply command sanitization to all launch paths (@Dicklesworthstone)
- 074005c: security(tmux): add pane command sanitization to prevent injection (@Dicklesworthstone)
- 26f4a65: security: harden input validation and sanitization across subsystems (@Dicklesworthstone)
- 82a8381: style(cli): apply gofmt formatting to CLI command files (@Dicklesworthstone)
- 3c44d0a: style(dashboard): apply gofmt formatting to commands and history panel (@Dicklesworthstone)
- b21af19: style(robot): apply gofmt formatting and fix indentation (@Dicklesworthstone)
- 0d43a0e: style(tui): apply gofmt formatting to style and theme packages (@Dicklesworthstone)
- c765d68: test(auth): add tests for Claude auth flow detection methods (@Dicklesworthstone)
- 3f8c7e2: test(cli): add real-tmux integration test for send command (@Dicklesworthstone)
- 8f7b9c1: test(cli): add real-tmux integration test for status command (@Dicklesworthstone)
- 4527983: test(cli): add unit tests for help.go (@Dicklesworthstone)
- 126cf2b: test(config): add unit tests for config package (scanner, helpers) (@Dicklesworthstone)
- 1aeb1a4: test(dashboard): add benchmarks for wide rendering performance (@Dicklesworthstone)
- cab5f51: test(dashboard): add layout tier and split proportion tests (@Dicklesworthstone)
- 60a9e86: test(e2e): add comprehensive agent workflow integration tests (@Dicklesworthstone)
- b4fc2c7: test(e2e): add quick command E2E tests (@Dicklesworthstone)
- 4a5ed40: test(e2e): strengthen robot mode JSON output validation (@Dicklesworthstone)
- f08b440: test(history): add JSON output integration test (@Dicklesworthstone)
- 34cacb6: test(hooks): skip timeout test on CI environments (@Dicklesworthstone)
- 94c9f80: test(infra): add BuildLocalNTM helper and improve test reliability (@Dicklesworthstone)
- e56109a: test(integration): add CLI spawn/send/status integration test (@Dicklesworthstone)
- fb35dbc: test(integration): add CLI → tmux integration tests (@Dicklesworthstone)
- 373af00: test(integration): add config loading integration tests (@Dicklesworthstone)
- c6c2501: test(integration): improve flaky status detection tests (@Dicklesworthstone)
- 9a3ca38: test(integration): skip TestStatusDetectsAgentTypes on CI (@Dicklesworthstone)
- 0d01c5b: test(layout): add comprehensive tier system boundary tests (@Dicklesworthstone)
- a072b73: test(output): add unit tests for output package to improve coverage (@Dicklesworthstone)
- 0fc9225: test(panels): add comprehensive tests for all dashboard panels (@Dicklesworthstone)
- fcf5025: test(panels): add comprehensive ticker panel tests (@Dicklesworthstone)
- f84c8e9: test(resilience): add testability hooks and restartAgent test (@Dicklesworthstone)
- 65a4111: test(robot): add unit tests for PrintTerse, PrintSpawn, Save/Restore (@Dicklesworthstone)
- b879149: test(security): add model validation tests for shell injection prevention (@Dicklesworthstone)
- f90d0cd: test(styles): add tests for theme-aware gradient and color helpers (@Dicklesworthstone)
- 8a60617: test(templates): add shell quoting tests and fix doc comment (@Dicklesworthstone)
- 61ca083: test(tmux): add unit tests for internal/tmux to improve coverage (@Dicklesworthstone)
- b7dc262: test(tui): add comprehensive unit tests for TUI packages (@Dicklesworthstone)
- af063a7: test(tutorial): add comprehensive unit tests for tutorial model (@Dicklesworthstone)
- 00eceb0: test(updater): add unit tests for version comparison and update checks (@Dicklesworthstone)
Full Changelog: v1.1.0...v1.2.0
Container Image: ghcr.io/dicklesworthstone/ntm:v1.2.0