NTM v1.8.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.8.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
- 3f367fe: feat(assign): add effectiveness tracking module (@Dicklesworthstone)
- eb7cc41: feat(assign): add resolveAssignTimeout helper and plumb timeout through reservations (@Dicklesworthstone)
- d618407: feat(assign): refine effectiveness tracking and integration tests (@Dicklesworthstone)
- e6b5950: feat(beads): create comprehensive --label feature task graph (12 subtasks) (@Dicklesworthstone)
- 1ca6a8a: feat(cli): add --project flag to send and kill commands (bd-3cu02.14) (@Dicklesworthstone)
- 103d635: feat(cli): add --project flag to session list for project-based filtering (@Dicklesworthstone)
- 1d78217: feat(cli): add comprehensive audit logging for config commands (@Dicklesworthstone)
- 5f068f0: feat(cli): add ntm audit subcommands for log query and verification (bd-h5oyj) (@Dicklesworthstone)
- 948d0ca: feat(cli): add ntm rebalance command for workload analysis (bd-29nc) (@Dicklesworthstone)
- b02f035: feat(cli): add review queue command for session triage (@Dicklesworthstone)
- b49d2f7: feat(cli): implement ensemble export/import commands with checksum-verified remote imports (@Dicklesworthstone)
- ac949cf: feat(cli): redact preview + tests (bd-2v5gj, bd-2ae4c) (@Dicklesworthstone)
- c353604: feat(context): add ntm context inject command for project context injection (@Dicklesworthstone)
- 1f2ee43: feat(context): add robot mode for context inject and unit tests (@Dicklesworthstone)
- d68a998: feat(context): optional ms skill injection in context packs (@Dicklesworthstone)
- 844263b: feat(coordinator): expand coordinator and monitor functionality (@Dicklesworthstone)
- 5a69f51: feat(dashboard): return PostQuitAction to attach tmux session after zoom (@Dicklesworthstone)
- f6deb5e: feat(dcg): expand DCG status and tooling (@Dicklesworthstone)
- ff0b96b: feat(encryption): add encryption at rest for prompt history and event logs (@Dicklesworthstone)
- bc020e3: feat(ensemble): add portable export/import types and imported ensemble layer (bd-1afu6, bd-2sxe0) (@Dicklesworthstone)
- d259c6b: feat(health): extract OAuth/rate-limit health widget + close beads (@Dicklesworthstone)
- 12fa1ff: feat(label): extend --label to create/quick, add list columns, disambiguate CWD (@Dicklesworthstone)
- 893ad4e: feat(label): extend label support to create, spawn, and quick commands (@Dicklesworthstone)
- 6b0d914: feat(metrics): add Prometheus exposition format export (bd-308e) (@Dicklesworthstone)
- 1685f47: feat(notify): expand event types and enrich webhook payload template (@Dicklesworthstone)
- 722e6df: feat(ollama): add model management CLI, pull progress streaming, and model deletion (@Dicklesworthstone)
- 7fd0070: feat(palette): add viewport-based scrolling for command list (@Dicklesworthstone)
- af51043: feat(ratelimit): add Codex rate-limit detection + AIMD adaptive throttling (@Dicklesworthstone)
- a8c1f2e: feat(ratelimit): update rate limit tracker implementation (@Dicklesworthstone)
- bbac298: feat(resilience): PID-based liveness + false-positive reduction + process package (@Dicklesworthstone)
- 1fe4ce3: feat(robot): add SLB robot bridge (@Dicklesworthstone)
- 8980064: feat(robot): add auto-restart-stuck agent detection and config migration e2e test (@Dicklesworthstone)
- 0a6dfa7: feat(robot): add pagination hints to ensemble modes agent output (@Dicklesworthstone)
- 856bdc1: feat(robot): extend robot mode capabilities (@Dicklesworthstone)
- b2e2cec: feat(robot): major expansion of robot API infrastructure (@Dicklesworthstone)
- 7ba67bd: feat(scoring): expand tracker with comprehensive metrics (@Dicklesworthstone)
- 487568c: feat(spawn): add --assign-cc-only/cod-only/gmi-only agent type filter aliases (@Dicklesworthstone)
- 53e2110: feat(spawn): add --label flag for goal-labeled multi-session support (@Dicklesworthstone)
- a007a07: feat(spawn): add --label flag for multi-session project support (bd-1933u) (@Dicklesworthstone)
- 0ef6be6: feat(spawn): add Ollama local fallback with provider selection (@Dicklesworthstone)
- 594a010: feat(status): enhance unified status and dashboard (@Dicklesworthstone)
- f2e18e2: feat(swarm): update prompt injector (@Dicklesworthstone)
- 54ca655: feat(tools): add JFP tool support and expand CLI (@Dicklesworthstone)
- d06428d: feat(tui): add effectiveness dashboard panel (@Dicklesworthstone)
- d53631b: feat(web): add accounts dashboard page (@Dicklesworthstone)
- 2382fab: feat: add ntm scale command for manual agent fleet scaling (bd-2vcs) (@Dicklesworthstone)
- 6ca2004: feat: add visual stall indicators, agent naming, and controller command (@Dicklesworthstone)
Bug Fixes
- beeac23: fix(add): respect pane_init_delay_ms config setting (@Dicklesworthstone)
- 57658b3: fix(agents): drop --system-instruction-file from default gemini template (@Dicklesworthstone)
- a7f4932: fix(audit): use encoding/csv for proper CSV escaping (@Dicklesworthstone)
- bb4cc6f: fix(beads): correct --label design to match owner-approved GetProjectDir stripping (@Dicklesworthstone)
- 14e8e58: fix(cc): use multiline flag and NBSP handling for ❯ prompt, expand idle window (@Dicklesworthstone)
- 50e6306: fix(config): guard memLimitPrefix against missing systemd user session (@Dicklesworthstone)
- 9b0b338: fix(config): replace NODE_OPTIONS with cgroup memory limits for native binaries (@Dicklesworthstone)
- ee50ed3: fix(config): update default Claude model to Opus 4.6 (@Dicklesworthstone)
- 3f34346: fix(context): cache key must include ms-skills toggle (@Dicklesworthstone)
- afb7996: fix(doctor): detect beads_rust via br (@Dicklesworthstone)
- 52caae8: fix(e2e): add EnsureProject before RegisterAgent in UBS routing test (@Dicklesworthstone)
- a6ed863: fix(e2e): correct sequence number formatting in audit CSV export (@Dicklesworthstone)
- 46b8279: fix(e2e): streamline integration master test script (@Dicklesworthstone)
- 7a4d18c: fix(hooks): wire CLI timeout flag to pre-commit hook configuration (@Dicklesworthstone)
- b97a17a: fix(palette): correct line position calculation for scroll sync (@Dicklesworthstone)
- 9a00a9b: fix(palette): correct viewport scrolling — reset position, exact line calc, bypass clamping (@Dicklesworthstone)
- ca40eaa: fix(palette): sync viewport height between Update and View (@Dicklesworthstone)
- 960347a: fix(patterns): replace dead regex-like patterns with literal substrings (@Dicklesworthstone)
- b91dd7f: fix(resilience): replace text-based liveness with PID checks, add IsWorking guard (#48) (@Dicklesworthstone)
- ead92ed: fix(robot): update idle detection tests for bypass_permissions removal (@Dicklesworthstone)
- adc7ce2: fix(security): use command description instead of CLI example as palette prompt (@Dicklesworthstone)
- 38d7c86: fix(serve): correct syntax error in TestOriginAllowedExtended (@Dicklesworthstone)
- c09d3ea: fix(spawn): log warning on canonical identity file write failure (@Dicklesworthstone)
- 9def2d8: fix(templates): replace obsolete --enable web_search=live with --search (@Dicklesworthstone)
- 503779a: fix(tmux): add default timeout to CapturePaneOutput to prevent hangs (@Dicklesworthstone)
- 384f91b: fix(tmux): enable buffer-based delivery for Claude Code multi-line prompts (@Dicklesworthstone)
- 972ee65: fix(tmux): quote pipe-pane FIFO path (bd-30amm) (@Dicklesworthstone)
- 89a8bd9: fix(tmux): rollback PaneStreamer.Start state on error (bd-29dnz) (@Dicklesworthstone)
- 7c559da: fix(tmux): set history-limit 50000 on new sessions to preserve scrollback (#57) (@Dicklesworthstone)
- d4ceb54: fix(tools): resilient beads_rust binary resolution with version-probe fallback (@Dicklesworthstone)
- 64a2102: fix(watcher): harden reservation watcher (bd-1u7o4) (@Dicklesworthstone)
- 39f77b8: fix: WS double close, scanner data race, timeline nil check, gzip close, limit cap (bd-21qns) (@Dicklesworthstone)
- deb0d69: fix: address bugs from code review — truncate panic, silent decrypt, error handling (bd-d3zz9) (@Dicklesworthstone)
- 607b349: fix: controller template rendering, model names, and NODE_OPTIONS OOM (@Dicklesworthstone)
- c7026a7: fix: detect idle agents at Claude Code welcome screen and add swarm readiness gate (closes #59, closes #61) (@Dicklesworthstone)
- 4c9890d: fix: guard against int64 overflow in backoff delay calculation (@Dicklesworthstone)
- 56b2e1e: fix: guard scoring trend threshold against zero AvgScore (bd-jrm34) (@Dicklesworthstone)
- fb1731b: fix: move contribution policy to top of CONTRIBUTING.md (@Dicklesworthstone)
- 781a117: fix: overhaul Claude Code idle detection to prevent false positives (@Dicklesworthstone)
- fe1dfdb: fix: pipeline data race on state.UpdatedAt, audit log permissions (bd-1esjh) (@Dicklesworthstone)
- 012f74e: fix: prevent double-translation of agent type in detectState and add case-insensitive bypass pattern (@Dicklesworthstone)
- b649955: fix: prompt auto-submit, identity files, identity reuse, model guard, recovery flag, restart liveness (@Dicklesworthstone)
- d4dacd8: fix: reduce palette shimmer flicker by lowering animation frame rate (@Dicklesworthstone)
- fcb45a1: fix: replace incorrect PR process with actual contribution policy (@Dicklesworthstone)
- 7c70527: fix: resolve merge conflict in config — integrate both safety and spawn-pacing defaults (@Dicklesworthstone)
Documentation
- 4c7c3d3: docs(cli): add assign command to help output and taxonomy examples (@Dicklesworthstone)
- 244e487: docs(label): add --label documentation to spawn help and README (bd-3cu02.12) (@Dicklesworthstone)
Others
- cd542f2: Add --robot-output-format alias (close bd-1s6cs) (@Dicklesworthstone)
- 1917062: Add CLI branch tests (formatAge, truncateStr, truncateCassText, buildSafetyDefaults 100%) (@Dicklesworthstone)
- 170bc5c: Add CLI table/completion and TUI tokens style tests (@Dicklesworthstone)
- 2887139: Add Gemini setup tests and sync beads (@Dicklesworthstone)
- 11782c6: Add RCH build interception hooks (@Dicklesworthstone)
- b60d680: Add RCH dashboard panel with worker health visualization and tests (@Dicklesworthstone)
- 13ffd23: Add RCH passthrough to DCG checks (@Dicklesworthstone)
- a68deb7: Add RenderSummary and kernel global wrapper tests (@Dicklesworthstone)
- d11c5c3: Add TUI dashboard panels pure helper tests (@Dicklesworthstone)
- 5ed3162: Add agent extractFloat/extractInt/calculateConfidence branch tests (99.6%) (@Dicklesworthstone)
- e41bc39: Add agentmail + assignment branch tests (isValidTransition 100%, UnmarshalJSON 100%) (@Dicklesworthstone)
- 03091ac: Add agents/profiles + alerts/generator branch tests (99.0%, 77.1%) (@Dicklesworthstone)
- a3dfb2c: Add assignment Save and GetAll branch tests (83.9%→86.3%) (@Dicklesworthstone)
- d50bcff: Add branch tests: normalizeLanguage fallback, normalizeModel sonnet-3.5, sanitizeValue default (@Dicklesworthstone)
- 07a41fd: Add branch tests: semantic Plain theme, ScoreAssignment bonus, animation effects, badge truncation (@Dicklesworthstone)
- c3b7dc3: Add bundle AddDirectory and verifyTarGz branch tests (59.2%→86.6%) (@Dicklesworthstone)
- 255e621: Add bv triage accessor tests via cache priming (44.4%→50.5%) (@Dicklesworthstone)
- dd42152: Add cass FilterResults + hooks config pure function tests (@Dicklesworthstone)
- 4c8ac8d: Add caut/models and tutorial/animations branch tests (@Dicklesworthstone)
- ca7f728: Add checkpoint + panels branch tests (shortHash, shouldPulse, redactSecrets 100%) (@Dicklesworthstone)
- 7127f5e: Add checkpoint Capturer method and export helper tests (56.8% → 57.5%) (@Dicklesworthstone)
- 7a8702a: Add cli+context pure function branch coverage tests (@Dicklesworthstone)
- d973439: Add comprehensive tests for serve, handoff, and bv packages (@Dicklesworthstone)
- 23f2b5c: Add concurrent multi-session robot send+ack stress test (bd-1680n) (@Dicklesworthstone)
- 1a57917: Add config/lint validator branch tests (8 functions → 100%) (@Dicklesworthstone)
- 87f9598: Add config/lint/robot branch tests (9 functions → 100%) (@Dicklesworthstone)
- a29ef15: Add configurable CASS binary path, optional session in diff cmd, complete config JSON dump, and pure-Go TOON encoder fallback (@Dicklesworthstone)
- 42ab224: Add context package branch coverage tests (@Dicklesworthstone)
- e6284b2: Add context rotation and watcher option builder tests (@Dicklesworthstone)
- 010893c: Add context/pending rotation store tests (55.7% → 61.5%) (@Dicklesworthstone)
- 6b13a94: Add dashboard layout pure function tests (45.5% → 48.7%) (@Dicklesworthstone)
- c3a9d0e: Add doctor safety defaults (@Dicklesworthstone)
- 86fd745: Add encryption library (bd-z7ses) (@Dicklesworthstone)
- 778b374: Add ensemble estimate test (@Dicklesworthstone)
- 4ace659: Add ensemble export/import tests and privacy docs (@Dicklesworthstone)
- a22343a: Add ensemble output cache and loader tests (86.0% → 87.2%) (@Dicklesworthstone)
- 8cfc95c: Add ensemble provenance tracker and index tests (84.2% → 86.0%) (@Dicklesworthstone)
- 68a9d5d: Add ensemble pure function branch tests (@Dicklesworthstone)
- fcf0088: Add ensemble validation/budget/ui branch coverage tests (@Dicklesworthstone)
- 36242a3: Add events emitter/redact branch tests (@Dicklesworthstone)
- 4bfb5c3: Add events logger branch coverage tests (@Dicklesworthstone)
- 8643b61: Add git worktree tests and expand CLI/tools test coverage (@Dicklesworthstone)
- ceb52e4: Add global wrapper tests: tracker, context/pending, scheduler (@Dicklesworthstone)
- 8386278: Add handoff, swarm, and events branch coverage tests (@Dicklesworthstone)
- e5340ff: Add hooks config loader and Manager lifecycle tests (44.6%→67.1%) (@Dicklesworthstone)
- af38f41: Add hooks/LoadCommandHooksFromTOML parse error tests (@Dicklesworthstone)
- 4dba6b9: Add hooks/buildEnvironment multi-byte truncation test (@Dicklesworthstone)
- 3977ac8: Add httptest-based agentmail tool method tests (48.8%→80.6%) (@Dicklesworthstone)
- 49a8af7: Add mapPTClassification and GetRedactionConfig tests (@Dicklesworthstone)
- af8720d: Add output/Truncate branch coverage tests (@Dicklesworthstone)
- af2f68f: Add output/dashboard/robot pure function branch tests (@Dicklesworthstone)
- 3a5e835: Add palette list helper + bv renderFullTriage tests (@Dicklesworthstone)
- 98ec8e9: Add policy show E2E tests (bd-1uxkn) (@Dicklesworthstone)
- 30dc428: Add profiler, supportbundle, and privacy manager tests (@Dicklesworthstone)
- 83c1f59: Add ratelimit cooldown, templates helpers, and lint Disable tests (@Dicklesworthstone)
- 7c9374d: Add recovery/export branch tests (GetInjectionForType, getAgentColor, getStateColor 100%) (@Dicklesworthstone)
- 94f9e2d: Add robot GIIL fetch wrapper (@Dicklesworthstone)
- 6c87710: Add robot pure function tests (45.5% → 46.3%) (@Dicklesworthstone)
- b974a30: Add robot ru_sync pure function branch tests (@Dicklesworthstone)
- ec8ddf1: Add scanner FormatImpactReport + bv compact triage branch tests (@Dicklesworthstone)
- 37476ab: Add scanner dedup/config pure function tests (56.7% → 64.5%) (@Dicklesworthstone)
- 5d28c2c: Add scheduler pure function tests (71.3% → 81.6%) (@Dicklesworthstone)
- 863b222: Add serve safety + icons env detection tests (@Dicklesworthstone)
- 20a9172: Add startup config/LazyValue.Reset and resilience manifest tests (@Dicklesworthstone)
- 6efba9f: Add state/timeline compression and lifecycle tests (70.5% → 73.5%) (@Dicklesworthstone)
- 78db016: Add summary/coordinator/cass pure function branch tests (bd-24ljk) (@Dicklesworthstone)
- 9a50706: Add swarm E2E discovery tests and redaction config (@Dicklesworthstone)
- 6e5cfd7: Add swarm account rotator pure function tests (68.6% → 70.8%) (@Dicklesworthstone)
- 54bb9c8: Add templates and assignment branch tests (@Dicklesworthstone)
- 793ecd1: Add tui/components insertTitleIntoBorder branch tests (@Dicklesworthstone)
- 50063b8: Add tui/dashboard pure render function tests (48.9%→53.3%) (@Dicklesworthstone)
- 399b754: Add tui/styles branch tests for ShimmerProgressBar, MiniBar (@Dicklesworthstone)
- 8447a49: Add util branch tests for ExtractNewOutput, Truncate, dirs (@Dicklesworthstone)
- a704718: Add util/updater/tui-styles branch tests (5 functions improved) (@Dicklesworthstone)
- fead53a: Add webhook/watcher/workflow branch tests (7 functions → 100%) (@Dicklesworthstone)
- e161d68: Add xf integration config (close bd-3id8q) (@Dicklesworthstone)
- d9f74ae: Cap adaptive delay to prevent int64 overflow in RecordRateLimit (@Dicklesworthstone)
- 481e4be: Close bd-1zrjo: JSON/TOON robot output wrapper (@Dicklesworthstone)
- 41e0bbd: Close bd-2l72h (@Dicklesworthstone)
- 15c4c96: Close bd-77bxi: document TOON subprocess integration (@Dicklesworthstone)
- 3b51ca0: Docs: TOON robot format alias (close bd-6s038) (@Dicklesworthstone)
- b3294d6: Expand auth module with Claude handling and restart tests (@Dicklesworthstone)
- 6de8ea5: Expand context history tests (@Dicklesworthstone)
- 99738c3: Expand unit test coverage for CLI triage, JSON output, and verbosity (@Dicklesworthstone)
- 2c840dd: Extend context monitor tests (@Dicklesworthstone)
- 290155a: Fix DefaultProjectsBase to use ~/ntm_Dev instead of /tmp on Linux (@Dicklesworthstone)
- e6c5210: Fix build error, nil pointer dereferences, signal handler leaks, and silent data loss (@Dicklesworthstone)
- 1b98f23: Fix label validation consistency and context test panic (@Dicklesworthstone)
- 8eae8cb: Fix unchecked write errors in WebSocket/SSE handlers and add panic recovery to job execution (@Dicklesworthstone)
- 6abd3ec: Fix worktree prefix match and spawn prompt (@Dicklesworthstone)
- 384c73d: Implement mail comms UI (@Dicklesworthstone)
- 2806c09: Implement robot bead/proxy status commands and close scheduler/proxy beads (@Dicklesworthstone)
- 83ad6fe: Improve E2E test logging and diagnostics (@Dicklesworthstone)
- 79a6079: Improve history batch write atomicity and fix pipeline executor error handling and state snapshot locking (@Dicklesworthstone)
- 879d86c: Move agent identity files to XDG-compliant persistent paths (@Dicklesworthstone)
- dca2e74: Resolve beads conflict (@Dicklesworthstone)
- 12c1185: Rewrite support-bundle command with zip-based archive and structured manifest (@Dicklesworthstone)
- 9503d72: Sanitize corrupted rate_limits.json state on load (@Dicklesworthstone)
- 659ef06: Surface assignment and BV triage state through checkpoint restore (bd-32ck) (@Dicklesworthstone)
- b61a648: Sync beads issue tracker (@Dicklesworthstone)
- 985b0bc: Sync beads issue tracker (@Dicklesworthstone)
- ef98dd1: Sync beads issue tracker (@Dicklesworthstone)
- b2eda46: Sync beads issue tracker (@Dicklesworthstone)
- 6a1f576: Sync beads issue tracker (@Dicklesworthstone)
- c660164: Sync concurrent changes (@Dicklesworthstone)
- 7571c92: Update beads (@Dicklesworthstone)
- 275868d: Update beads (@Dicklesworthstone)
- d0c6bcf: Update beads (@Dicklesworthstone)
- 968cc37: Update beads (@Dicklesworthstone)
- f301795: Update beads (@Dicklesworthstone)
- 8d63b74: Update beads (@Dicklesworthstone)
- 20d21f6: Update beads (@Dicklesworthstone)
- d0cf777: Update beads (@Dicklesworthstone)
- efa16d2: Update beads (@Dicklesworthstone)
- 96c7fa6: Update beads (@Dicklesworthstone)
- 158436b: Update beads migration hint timestamp (@Dicklesworthstone)
- 3014273: Update default Codex model to gpt-5.3-codex (@Dicklesworthstone)
- 604cd69: Update issue tracker: mark bd-1680n (multi-session E2E stress tests) as in-progress (@Dicklesworthstone)
- d411270: Update scoring retention, ensemble timebox, safety E2E (@Dicklesworthstone)
- 6f9e108: Update sessions UI and system changes (@Dicklesworthstone)
- 9d92da9: bd-1680n: stabilize multi-session robot send+ack stress test (@Dicklesworthstone)
- 1caaaf1: bd-a7wm: add local agent performance monitoring (@Dicklesworthstone)
- a1ef6c6: beads: add follow-up for network panel tests (bd-275yi) (@Dicklesworthstone)
- 238b0a7: beads: close bd-1r4jb; annotate pane_streamer cancel (@Dicklesworthstone)
- 407608f: beads: close bd-64v8u (@Dicklesworthstone)
- d0a01b1: beads: close bd-o3j23 (@Dicklesworthstone)
- 1084d66: beads: sync issues.jsonl (@Dicklesworthstone)
- 76033db: chore(agent): remove unused ccSpinnerPastPatterns (@Dicklesworthstone)
- add393b: chore(beads): add PID-liveness and E2E test sub-issues for resilience monitor epic (@Dicklesworthstone)
- 5b6f47b: chore(beads): add bd-3ntwe analytics coverage task to issue tracker (@Dicklesworthstone)
- a49fe6b: chore(beads): add issue tracking beads for follow-up work (@Dicklesworthstone)
- 5b76445: chore(beads): add test timeout bug (@Dicklesworthstone)
- 716f78f: chore(beads): assign pagination agent hints task to StormyHarbor (@Dicklesworthstone)
- 8fed229: chore(beads): bump .local_version from 0.43.0 to 0.49.3 (@Dicklesworthstone)
- 82b615e: chore(beads): bump local_version to 0.50.3 and add migration hint (@Dicklesworthstone)
- f98740d: chore(beads): close --label feature epic and all sub-tasks (@Dicklesworthstone)
- 97b5de9: chore(beads): close Unit Test Coverage Sprint (bd-3csz3) (@Dicklesworthstone)
- 605797c: chore(beads): close all remaining beads — full backlog clearance (@Dicklesworthstone)
- 25e494b: chore(beads): close bd-1nie1 robot unit tests (41.8%→44.9%) (@Dicklesworthstone)
- a60bf71: chore(beads): close bd-1yk7e after Ollama fallback landing (@Dicklesworthstone)
- dc15768: chore(beads): close bd-2cn2n (UBS findings investigation) (@Dicklesworthstone)
- b2c5359: chore(beads): close bd-2xdjb after effectiveness scoring test coverage (@Dicklesworthstone)
- fe4be66: chore(beads): close bd-327kd after CLI test coverage for agent_spec + expandPromptTemplate (@Dicklesworthstone)
- 0f9ab02: chore(beads): close bd-3cu02.1,.2,.3,.4,.13 (label feature implemented) (@Dicklesworthstone)
- 6d8901f: chore(beads): close bd-3o46v after MS component test coverage landing (@Dicklesworthstone)
- e81963a: chore(beads): close bd-3ooxy (e2e safety tests completed) (@Dicklesworthstone)
- 7066116: chore(beads): close bd-972v context-inject implementation complete (@Dicklesworthstone)
- 83a963b: chore(beads): compact and re-sort issue tracker JSONL (@Dicklesworthstone)
- 04316f8: chore(beads): enhance bead descriptions with implementation plans (@Dicklesworthstone)
- ee385c9: chore(beads): mark ensemble sharing, agent naming, and robot verbosity tasks as in_progress (@Dicklesworthstone)
- ec8d51c: chore(beads): sync and reorder issues.jsonl (@Dicklesworthstone)
- 0d5222c: chore(beads): sync issue tracker state (@Dicklesworthstone)
- eebc5b9: chore(beads): sync issue tracker state (@Dicklesworthstone)
- d0e26aa: chore(beads): sync issue tracker state (@Dicklesworthstone)
- 997892b: chore(beads): sync issue tracker state (@Dicklesworthstone)
- 4736d18: chore(beads): sync issue tracker state (@Dicklesworthstone)
- 525e90f: chore(beads): sync issue tracker state (@Dicklesworthstone)
- bfa2870: chore(beads): sync issue tracker state (@Dicklesworthstone)
- 4b014a9: chore(beads): sync issue tracker state (@Dicklesworthstone)
- 030a369: chore(beads): sync issue tracker state (@Dicklesworthstone)
- 943813f: chore(beads): sync issue tracker state (@Dicklesworthstone)
- 6333d5d: chore(beads): sync issue tracker state (@Dicklesworthstone)
- 6c688f7: chore(beads): sync issue tracker state (@Dicklesworthstone)
- 36003f2: chore(beads): sync issue tracker state (@Dicklesworthstone)
- e643ec5: chore(beads): sync issue tracker state (@Dicklesworthstone)
- 496e2ed: chore(beads): sync issue tracker state (@Dicklesworthstone)
- 46b4433: chore(beads): sync issue tracker state (@Dicklesworthstone)
- 56ad933: chore(beads): sync issue tracker state — 13 issues updated (@Dicklesworthstone)
- 7b7093a: chore(beads): sync issue tracker state — add serve and Ollama test beads (@Dicklesworthstone)
- 27d2ac9: chore(beads): sync issue tracking state (@Dicklesworthstone)
- 92377c9: chore(beads): sync updates (@Dicklesworthstone)
- 8861d9b: chore(beads): sync updates (@Dicklesworthstone)
- 6580248: chore(beads): update bead descriptions with comprehensive specs and test plans (@Dicklesworthstone)
- 64e472b: chore(beads): update issue bd-yf34 status to in_progress (@Dicklesworthstone)
- 7685c04: chore(beads): update issue tracker status (@Dicklesworthstone)
- e5cfa57: chore(beads): update issue tracker status (@Dicklesworthstone)
- dbdb5e4: chore(beads): update issue tracker status (@Dicklesworthstone)
- c93ae47: chore(beads): update issue tracker status (@Dicklesworthstone)
- cb0b78c: chore(beads): update issue tracker status (@Dicklesworthstone)
- c6a2a4a: chore(beads): update migration hint timestamp (@Dicklesworthstone)
- f605898: chore(beads): update migration hint timestamp (@Dicklesworthstone)
- 825b731: chore(beads): update migration hint timestamp (@Dicklesworthstone)
- 94c7d5a: chore(beads): update migration hint timestamp (@Dicklesworthstone)
- 17e5014: chore(beads): update migration hint timestamp (@Dicklesworthstone)
- 105be6e: chore(beads): update migration hint timestamp (@Dicklesworthstone)
- 396fa73: chore(deps): update Go dependencies to latest versions (@Dicklesworthstone)
- 5871f06: chore(gitignore): exclude Go test coverage profile artifacts (@Dicklesworthstone)
- d2402bc: cli: add --marching-orders and wire robot xf-search (bd-2lodn, bd-7ijsy) (@Dicklesworthstone)
- 5c92c1a: cli: add session profiles for reusable spawn configs (bd-29kr) (@Dicklesworthstone)
- 3f68916: cli: add unit tests for pure helper functions (bd-2jc9t) (@Dicklesworthstone)
- 208df08: config+spawn: add per-agent-type default prompts (bd-2ywo) (@Dicklesworthstone)
- f139a30: config: add integrations.proxy (bd-1oapz) (@Dicklesworthstone)
- 92a1f5e: config: add prompts ResolveForType tests (@Dicklesworthstone)
- e3dfbd6: context/scheduler: add rotator pending + batch operation tests (bd-27dtv) (@Dicklesworthstone)
- 92dac59: dashboard: add rano network activity panel (bd-3c6zq) (@Dicklesworthstone)
- 1fd9b81: deps: time out version checks (bd-ed8k7) (@Dicklesworthstone)
- 2fba04f: fix cm daemon health probing and caam active account selection (@Dicklesworthstone)
- 94be18a: fix(context-inject): block path escapes and align pane errors (@Dicklesworthstone)
- a3ad5c4: fix(resilience,checkpoint): Start(nil) safety + idempotence (bd-1xuou, bd-19vcl) (@Dicklesworthstone)
- 2d7e9bf: fix(tmux,palette): improve Codex prompt handling and reduce flickering (@Dicklesworthstone)
- 27a006c: fix(webhook,state): harden timeline + webhook dispatch (@Dicklesworthstone)
- 3b56eb6: harden caam switch response validation (@Dicklesworthstone)
- e0f3f27: harden cm health fallback and make caam providers deterministic (@Dicklesworthstone)
- 23ec10d: ntm: add cross-session robot send+ack e2e test (ntm-lmto) (@Dicklesworthstone)
- b9e4db5: ntm: session persist e2e + robot/tool robustness (ntm-tvn2, bd-3gy8r, bd-1td3z) (@Dicklesworthstone)
- ff81e0d: panels: expand rano network panel tests from 2 to 23 (bd-275yi) (@Dicklesworthstone)
- 12c4c0b: refactor(tmux,watcher): use stopCh for cancellation (@Dicklesworthstone)
- fde7828: refactor(util): extract ExpandPath to shared utility function (@Dicklesworthstone)
- f04b6cd: refactor: migrate golangci-lint config to v2 schema format (@Dicklesworthstone)
- b565b8b: robot: add progress summary to status and dashboard (bd-1qct) (@Dicklesworthstone)
- 077512a: robot: add unit tests for TOON encoder pure functions (bd-2qkra) (@Dicklesworthstone)
- 5157309: robot: handle agent mail lock contention in status views (@Dicklesworthstone)
- 777a171: robot: register auto-restart-stuck in schema, capabilities, and docs (bd-297ol) (@Dicklesworthstone)
- 0d2c450: send: add --base-prompt and --base-prompt-file flags (bd-3ejl) (@Dicklesworthstone)
- 0f9351b: send: add --priority-order for batch prompts (bd-2wzs) (@Dicklesworthstone)
- 2c6aac9: send: add --randomize and --seed (bd-h3ha) (@Dicklesworthstone)
- e2ced3a: state: add comprehensive ensemble store tests (bd-17kn3) (@Dicklesworthstone)
- a8deef5: test(agent): add Cursor/Windsurf/Aider/Ollama coverage (79.8%→97.7%) (@Dicklesworthstone)
- 57c7d6b: test(agentmail): cover JSON parsing types (@Dicklesworthstone)
- 3700cd6: test(approval): add pure function and edge case tests (bd-1u5g) (@Dicklesworthstone)
- 881689a: test(archive): add ExpandPath tests to archiver_test.go (@Dicklesworthstone)
- 91bd199: test(assign): add 17 coverage tests for effectiveness scoring and ranking (bd-2xdjb) (@Dicklesworthstone)
- 144dea8: test(assign,config): improve unit test coverage for parsing and validation (@Dicklesworthstone)
- a171739: test(audit): add audit logger tests (@Dicklesworthstone)
- a5e8982: test(auth): expand detection and orchestrator coverage (@Dicklesworthstone)
- ab55961: test(bundle): add AddError and FileCount tests (@Dicklesworthstone)
- 9fa37ef: test(cass): add FlexTime.UnmarshalJSON coverage (@Dicklesworthstone)
- de7d93c: test(checkpoint): add 34 coverage tests for import/export/integrity edge cases (bd-1i3eb) (@Dicklesworthstone)
- 5756872: test(checkpoint,context): improve export zip and compaction trigger coverage (bd-6cd0b) (@Dicklesworthstone)
- 76ba7f9: test(cli): add 25 tests for ValidateModelAlias, ResolveModel, expandPromptTemplate (bd-327kd) (@Dicklesworthstone)
- 81da6ae: test(cli): add health.go pure function tests (@Dicklesworthstone)
- 060fa80: test(cli): add passesFilter unit tests (bd-2vzhz) (@Dicklesworthstone)
- 9b498a9: test(cli): add swarm.go pure function tests (@Dicklesworthstone)
- 76abe18: test(cli): add unit tests for activity formatting functions (@Dicklesworthstone)
- 5ecc23f: test(cli): add unit tests for filterPanesForBatch batch pane filtering (@Dicklesworthstone)
- 557a938: test(cli): add workflows.go pure function tests (@Dicklesworthstone)
- 3b53dfd: test(cli): coverage boost — resolveAgentName, looksLikeAgentName, parseMessageIDs, renderTempBar, renderTags, valueOrDefault, formatHandoffMarkdown (@Dicklesworthstone)
- 2dd8d3c: test(cli,health): coverage boost — assignment logic, detectErrors branches (@Dicklesworthstone)
- 50e87cc: test(cli,lint): coverage boost — generateAssignmentsEnhanced, LintWithRedaction, getConfigInt (@Dicklesworthstone)
- 8f918f2: test(cli,lint): coverage boost — mail, personas, handoff helpers + lint branches (@Dicklesworthstone)
- c24b7bd: test(codeblock): add DetectLanguage function tests (@Dicklesworthstone)
- c97ffc8: test(config): add validation, rotation, and pacing coverage (73.5%→76.0%) (@Dicklesworthstone)
- 29cf7c0: test(config): coverage boost — Validate, ProcessTriage, MergeConfig, mergeStringList (@Dicklesworthstone)
- 76509f1: test(config,ensemble): eliminate all 0% functions in config and ensemble packages (bd-1fjt9) (@Dicklesworthstone)
- d82c070: test(config,state): add tests for config.Diff and state.ListExpiredPendingApprovals (bd-17guh) (@Dicklesworthstone)
- f8a83b0: test(context): add 22 coverage tests for MS skill injection in pack.go (bd-3o46v) (@Dicklesworthstone)
- f31efe9: test(context,checkpoint): improve coverage for context monitor, handoff trigger, and manifest (bd-3b1uf) (@Dicklesworthstone)
- 4930bcc: test(coordinator): add conflict formatting, digest markdown, status mapping, and quality monitoring tests (@Dicklesworthstone)
- 0851ec9: test(coordinator): add emitEvent bus event and channel tests (@Dicklesworthstone)
- a1fef85: test(coordinator): expand assign-branches test coverage (@Dicklesworthstone)
- 80103a3: test(coordinator): improve emitEvent, strategy selection, quality scoring coverage (bd-w975m) (@Dicklesworthstone)
- e65b8c9: test(dcg): add DCG check tests (@Dicklesworthstone)
- 4a93516: test(e2e): add AccountRotator caam integration tests (@Dicklesworthstone)
- b13b74b: test(e2e): add archive creation and retrieval E2E tests (@Dicklesworthstone)
- ba4b186: test(e2e): add audit log system E2E tests (@Dicklesworthstone)
- b278712: test(e2e): add cleanup workflow end-to-end tests (@Dicklesworthstone)
- 58c9df6: test(e2e): add comprehensive E2E test script for --label feature (bd-3cu02.10) (@Dicklesworthstone)
- f0c7e2f: test(e2e): add comprehensive ensemble UX E2E tests (@Dicklesworthstone)
- 6d93f99: test(e2e): add comprehensive staggered spawn and prompt delivery tests (@Dicklesworthstone)
- d4bfd99: test(e2e): add cost tracking E2E tests (bd-1wy6) (@Dicklesworthstone)
- 46b851c: test(e2e): add effectiveness scoring E2E tests (bd-dgag) (@Dicklesworthstone)
- c172fdb: test(e2e): add handoff workflow E2E tests (bd-5z3e) (@Dicklesworthstone)
- 184f787: test(e2e): add hooks, safety uninstall, and webhook E2E tests (@Dicklesworthstone)
- ee98ba3: test(e2e): add master integration test Go implementation (@Dicklesworthstone)
- 781cf3e: test(e2e): add master integration test suite (@Dicklesworthstone)
- 8be55cd: test(e2e): add policy automation and policy edit E2E tests (@Dicklesworthstone)
- 0ffe9c6: test(e2e): add policy show E2E tests for JSON output (@Dicklesworthstone)
- 32b251e: test(e2e): add robot verbosity/short-keys/pagination end-to-end tests (@Dicklesworthstone)
- 05520b1: test(e2e): add safety blocked command E2E test (bd-ublgd) (@Dicklesworthstone)
- 06f338c: test(e2e): add safety profiles E2E tests (standard/safe/paranoid) (@Dicklesworthstone)
- 006b0a9: test(e2e): add safety status/check end-to-end tests (@Dicklesworthstone)
- 489b992: test(e2e): add staggered spawn and prompt delivery E2E test (@Dicklesworthstone)
- 76868e7: test(e2e): add time-boxed ensemble execution E2E tests (@Dicklesworthstone)
- 7ac419f: test(e2e): add timeline E2E tests for bd-18akj (@Dicklesworthstone)
- 7499dc2: test(e2e): major expansion of integration master test suite (@Dicklesworthstone)
- c7e5dca: test(encryption): add comprehensive unit tests for AES-GCM library (bd-1uiu4) (@Dicklesworthstone)
- 3c30f40: test(ensemble): add UX enhancement coverage (@Dicklesworthstone)
- 300a395: test(ensemble): add pure function tests for tokenize, jaccardSimilarity, uniqueStrings (@Dicklesworthstone)
- 212b13d: test(handoff): improve writer + types coverage, push handoff 86.9% → 88.4% (bd-gce7j) (@Dicklesworthstone)
- f9e93de: test(health): detectErrors coverage boost — connection, generic, crash, auth branches (@Dicklesworthstone)
- 50e5421: test(label): comprehensive unit tests for label feature (bd-3cu02.9) (@Dicklesworthstone)
- 6237762: test(metrics): add 11 DB persistence tests, push coverage 75.8% → 93.4% (bd-3ivmn) (@Dicklesworthstone)
- acc8a36: test(notify,resilience,serve): improve coverage for partial-coverage functions (bd-3b1uf) (@Dicklesworthstone)
- 9b6c0a0: test(output): add 30+ tests for 0% coverage functions, push package from 80.3% to 86.8% (bd-32jrj) (@Dicklesworthstone)
- 0195db8: test(pipeline): add comprehensive executor and loop tests with mock detector (@Dicklesworthstone)
- 5111b43: test(pipeline): add condition logical op and parser validation tests (@Dicklesworthstone)
- 88bcd09: test(pipeline): add dependency graph validation and resume tests (@Dicklesworthstone)
- c01747a: test(pipeline): add pipeline cancel, status, state update, dry run, and list tests (@Dicklesworthstone)
- b2c8309: test(pipeline): additional executor and variable tests (@Dicklesworthstone)
- 32a12ec: test(pipeline): improve test coverage to ~80% (@Dicklesworthstone)
- cf09398: test(pipeline/robot): add dry-run workflow, notification, variable, and synthesis tests (@Dicklesworthstone)
- 90d9f8f: test(policy): expand default policy coverage (@Dicklesworthstone)
- 579fd97: test(robot): add 30+ edge case tests for proxy_status, watch_bead, ru_sync, and robot helpers (bd-r77ee) (@Dicklesworthstone)
- fac60e9: test(robot): add filterWaitPanes unit tests (bd-2vzhz) (@Dicklesworthstone)
- e3d2c50: test(robot): add pagination large-payload and verbosity profile tests (bd-3pa8p) (@Dicklesworthstone)
- 4b16fd1: test(robot): add pure function tests for ensemble/dashboard/sync helpers (@Dicklesworthstone)
- 59389dd: test(robot): add unit tests for pure functions (bd-1nie1) (@Dicklesworthstone)
- f43119e: test(scanner): add bridge.go pure function tests (@Dicklesworthstone)
- 93275d8: test(scanner): expand truncate edge cases for full coverage (@Dicklesworthstone)
- 9d3d595: test(scoring): add tracker coverage tests for prune, auto-fields, error paths (bd-1u5g) (@Dicklesworthstone)
- 7291f9f: test(serve): add 15 handler integration tests covering 7 previously-0% functions (bd-159zu) (@Dicklesworthstone)
- be8d1db: test(serve): add 17 tests for pure store functions (ScannerStore, JobStore, MemoryStore, WSClient) (bd-1wjx7) (@Dicklesworthstone)
- 29bd37c: test(serve): add 2545-line handler coverage test suite for HTTP serve endpoints (@Dicklesworthstone)
- 07c199b: test(serve): add OpenAPI spec generation and handler tests, push GenerateOpenAPISpec 22.5% → 100% (@Dicklesworthstone)
- 243e07c: test(serve): add branch coverage tests for handlers and middleware (58.7%→61.5%) (@Dicklesworthstone)
- 1cc65fc: test(serve): add toJSONMap and isLoopbackHost tests (@Dicklesworthstone)
- cfb54a5: test(serve): add unit tests for ScannerStore, JobStore, and WSClient (@Dicklesworthstone)
- d0c8ba2: test(serve): batch 10+11 handler branch tests (JWKS, WS, audit, checkpoint, pane) (@Dicklesworthstone)
- 0a392c1: test(serve): batch 12 — scanner run/status, audit query filters, idempotency store (71.9%→73.0%) (@Dicklesworthstone)
- 989c193: test(serve): batch 13 — CASS search/preview, bead handlers, daemon control (73.0%→73.7%) (@Dicklesworthstone)
- 33388f5: test(serve): batch 14 — CASS full paths, bead CRUD, memory daemon start (73.7%→74.4%) (@Dicklesworthstone)
- 2f0b315: test(serve): batch 15 — safety, mail, reservation handler branches (74.5%→77.2%) (@Dicklesworthstone)
- ece79f2: test(serve): batch 16 — account DependencyMissing, force-release, CASS/memory (77.2%→78.0%) (@Dicklesworthstone)
- 2f53cdf: test(serve): batch 17 — bead success paths, session/agent/output valid-ID paths (78.0%→78.5%) (@Dicklesworthstone)
- dda1552: test(serve): batch 18 — pane title, agent activity/health, history, wait, policy (78.0%→78.5%*) (@Dicklesworthstone)
- 6acbfa3: test(serve): batch 19 — bead CRUD, policy, git sync, openapi TLS, safety check, redact branches (@Dicklesworthstone)
- 713f9ca: test(serve): batch 20 — WS client, policy validate, checkpoint, bead deps, utility tests (@Dicklesworthstone)
- 8066c6b: test(serve): batch 21 — approval request/approve/deny flows, pipeline list, publishApprovalEvent (@Dicklesworthstone)
- eb6b93e: test(serve): batch 22 — OIDC validation branches, JWKS cache, CASS real tools, approval expired (@Dicklesworthstone)
- 7cc5f23: test(serve): batch 23 — WS origin validation, account quota, safety blocked, agent interrupt/restart (@Dicklesworthstone)
- d2754bc: test(serve): batch 24 — policy validate file-based, checkpoint export/rollback/delete, safety install/uninstall (@Dicklesworthstone)
- 9ecdbf6: test(serve): batch 25 — checkpoint list/get/rollback branches, export POST flags (@Dicklesworthstone)
- 34ce497: test(serve): batch 26 — session/agent missing-param validation, verify checkpoint success (@Dicklesworthstone)
- 035b811: test(serve): batch 27 import/restore/SSE/export branch tests (80.7->80.8%) (@Dicklesworthstone)
- b8a26c9: test(serve): batch 28 broadcast overflow, SSE no-flusher, RedactJSON ModeOff, audit both paths (80.8->81.0%) (@Dicklesworthstone)
- 2411723: test(serve): batch 29 full git rollback integration, no_git rollback, tar.gz export (81.0->81.1%) (@Dicklesworthstone)
- 69b513b: test(serve): batch 30 git rollback with patch, clean repo, export POST tar.gz (81.1->81.3%) (@Dicklesworthstone)
- 573cefb: test(serve): batch 31 — WSEventStore, AuditStore, OpenAPI, Pipeline, RBAC branch tests (81.1→81.6%) (@Dicklesworthstone)
- 178d1ad: test(serve): batch 32 — pipeline GET/Cancel/Resume, discoverTemplates, safety install (81.6→81.8%) (@Dicklesworthstone)
- e64704d: test(serve): batch 33 — pipeline resume/exec validation, job cancel, safety status (81.8→81.9%) (@Dicklesworthstone)
- 710b9db: test(serve): batch 34 — policy reset errors, approval SLB/expired, blocked truncation (@Dicklesworthstone)
- 572e1bd: test(serve): batch 35 — LoadOrDefault errors, approval RBAC, blocked read error (@Dicklesworthstone)
- 320928d: test(serve): batch 36 — JobStore.Update unknown ID, RecordDropped min count, uninstall Remove errors, automation/policy error branches (@Dicklesworthstone)
- 28e7a23: test(serve): batch 37 — audit store error branches, AuditMiddleware RBAC/error, safety install/uninstall branches (@Dicklesworthstone)
- 17f2896: test(serve): batch 38 — WSEventStore DB errors, RBAC, finalize, sendPong (@Dicklesworthstone)
- 67231c3: test(serve): batch 7 — WSEventStore cleanup/DB fallback, matchTopic, memory daemon tests (67.6%→68.1%) (@Dicklesworthstone)
- c2af56c: test(serve): batch 8 — scanner pagination/filter, memory daemon start/stop/context, audit store (68.1%→68.8%) (@Dicklesworthstone)
- b38d73a: test(serve): batch 9 — mail/reservation client-unavailable + memory daemon branches (68.8%→71.2%) (@Dicklesworthstone)
- b36a878: test(serve): fifth batch — checkpoint/rollback/import/export branch tests (65.5%→66.9%) (@Dicklesworthstone)
- cf92849: test(serve): fourth batch — wait/pipeline/jobs/daemon branch tests (63.9%→65.5%) (@Dicklesworthstone)
- 8c8f468: test(serve): improve coverage for ValidateConfig, checkWSOrigin, extractAuthClaims (bd-1j1a5) (@Dicklesworthstone)
- d1a578b: test(serve): improve coverage for middleware, JWT parsing, RSA, response helpers (bd-umusf) (@Dicklesworthstone)
- 7996336: test(serve): second batch of handler branch tests (61.5%→62.3%) (@Dicklesworthstone)
- c742f92: test(serve): sixth batch — accounts/auto-rotate/CASS/checkpoint branch tests (66.9%→67.6%) (@Dicklesworthstone)
- fcc4277: test(serve): third batch — context/route/beads/pane/agent branch tests (62.3%→63.9%) (@Dicklesworthstone)
- 6d49cdc: test(session): add coverage tests for prompt history, note store, and session lifecycle (@Dicklesworthstone)
- aff9dcf: test(state): add 15+ timeline tests, push coverage up (bd-3vtci) (@Dicklesworthstone)
- 0e47a22: test(state): add TimelineState.String() unit test (@Dicklesworthstone)
- c41fa9a: test(state,scheduler,tiers): cover remaining 0% functions across 3 packages (bd-1fjt9) (@Dicklesworthstone)
- ed0d3b0: test(tmux): add pure function tests for FormatPaneName, needsBufferSend, stripTags (@Dicklesworthstone)
- 8835981: test(tools): expand extractRCHInnerCommand edge case coverage (@Dicklesworthstone)
- 5ec174f: test(tui): expand ensemble synthesis coverage (@Dicklesworthstone)
- b45de36: test(tui): fix mode code expectation (@Dicklesworthstone)
- fc85539: test(tui/dashboard): add env helper coverage (@Dicklesworthstone)
- a4ee02e: test(webhook): coverage boost — toWebhookEvent branches, classifySeverity, discordColorForSeverity (@Dicklesworthstone)
- 99fb811: test(webui): add E2E tests for Web UI with chromedp (@Dicklesworthstone)
- e03db7f: test+refactor(robot): add auto-restart-stuck unit tests and improve health CLI output (@Dicklesworthstone)
- 94c9780: tmux: drop ubs ignore comments (@Dicklesworthstone)
- 7ffead5: tmux: silence ubs cancel warnings (bd-30amm) (@Dicklesworthstone)
- af14ed5: tools: add unit tests for proxy.go pure parsing functions (bd-7bown) (@Dicklesworthstone)
- 452838c: tools: enhance xf health checks (bd-1pl3t) (@Dicklesworthstone)
- b501f51: tui: add ensemble modes overlay (bd-2yge5) (@Dicklesworthstone)
Full Changelog: v1.7.0...v1.8.0
Container Image: ghcr.io/dicklesworthstone/ntm:v1.8.0