Skip to content

ntm

v1.7.0 Maintenance

This release keeps dependencies and maintenance posture current for teams operating this tool.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ai-agents cli developer-tools go tmux

Summary

AI summary

Broad release touches @Dicklesworthstone, Others, Quick Install ```bash, and e2e.

Full changelog

NTM v1.7.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/[email protected]

Shell Integration

Add to your shell rc file:

eval "$(ntm init zsh)"   # for zsh
eval "$(ntm init bash)"  # for bash
eval "$(ntm init fish)"  # for fish

Changelog

Features

  • d878a1bb337e5eb923488d76b01bb1dd04bf10d3: feat(agent): add Ollama as a recognized agent type (@Dicklesworthstone)
  • d0d66550c0cba6514787591a555e9828f2cdc64b: feat(bundle): add support bundle manifest schema and verification (bd-2rk09) (@Dicklesworthstone)
  • d4de89798ddf4523bffb5c947ad80b41baccf0b9: feat(cli): add ntm preflight command for prompt validation (@Dicklesworthstone)
  • 9fdffd563f489995beab9fc302e6089caf8532a4: feat(cli): add ntm support-bundle command (bd-1a542) (@Dicklesworthstone)
  • 067669286ff242e50c3c7e15ef71912404c95973: feat(cli): add shell completions for ensemble commands (@Dicklesworthstone)
  • 5e785692f13b2b3779c24310efc6a9a67b60b22d: feat(cli): integrate redaction engine with send command (@Dicklesworthstone)
  • e28ff3361a25e0911f3268c22d443310c50b05bd: feat(cli): redact agent mail send (bd-3a7yx) (@Dicklesworthstone)
  • c30f97169bf4c63c67ea33eff8577a14bb9a83f5: feat(cli): redact copy/save outputs (bd-1kbjc) (@Dicklesworthstone)
  • 8ff4a2146701b1aba667e9e85bb0d39990a72561: feat(dashboard): smart animation with adaptive tick rate (fixes #32) (@Dicklesworthstone)
  • 2c0e53c8b122fe119e8b19e65654704fde51bbe7: feat(e2e): add E2E tests for ntm activity and metrics commands (@Dicklesworthstone)
  • b86b558ba049bb4604c14793678858df230c058e: feat(e2e): add E2E tests for ntm checkpoint and rollback (@Dicklesworthstone)
  • eeb67b4250b46aea866378e47f31914ecfb0d64b: feat(e2e): add E2E tests for ntm config validate command (@Dicklesworthstone)
  • a8377fa502a824c532a668758f6011abece3f914: feat(e2e): add E2E tests for ntm doctor command (@Dicklesworthstone)
  • 6a4ff1717d1005119829590d2dfa65821303ff15: feat(e2e): add E2E tests for ntm init workflow (@Dicklesworthstone)
  • b91845d589245268c74c13dc90e522910d015714: feat(e2e): add E2E tests for ntm logs and history commands (@Dicklesworthstone)
  • 6728136cc9a8670e2b06dc2481b87c79707a63f8: feat(e2e): add E2E tests for ntm summary and profiles commands (@Dicklesworthstone)
  • 519831d938c2fb6fbf3375a9aa1ea6e724064200: feat(e2e): add E2E tests for ntm watch and robot-monitor (@Dicklesworthstone)
  • fb15a119f13ad4ed870ed2cb906cda7404c97d11: feat(e2e): add comprehensive E2E tests for ntm git operations (@Dicklesworthstone)
  • 9a6c45c52022c6349b18044420b51434ea5fc1c0: feat(e2e): add comprehensive E2E tests for ntm guards (@Dicklesworthstone)
  • 5145d947bc8d6cadf08a1062d70daf3ebb3c0e66: feat(events): publish coordinator state transitions (bd-2c8y) (@Dicklesworthstone)
  • 26ca5d3f13f46b5a247c4f2dfaf579927afe34d4: feat(history): regex search + history replay (bd-zrxb) (@Dicklesworthstone)
  • 34476836ae8268d5f4d81710e36d9a57285cf8de: feat(lint): add main Linter orchestrator with PII detection (@Dicklesworthstone)
  • 8c8427fe55c57fe9698f7d8a8e68a23ecdaa0b76: feat(lint): add prompt linting types for preflight system (@Dicklesworthstone)
  • 61df05f533feb7e4f8884d49d96f0cfbe19e640a: feat(lint): implement core lint rules and checkers (@Dicklesworthstone)
  • 577f9bbda061d2f7845e926b8654a2a9515c6e22: feat(privacy): add privacy mode spec + config/flags (bd-2u3tv) (@Dicklesworthstone)
  • d270fb720678916abdc21cc1eebb4825441fc730: feat(privacy): implement privacy mode gating for persistence (bd-26364) (@Dicklesworthstone)
  • 5c50070d02216aaeef03dfc50b193e6d2073060e: feat(quota): Add unit tests for provider-specific usage/status parsers (@Dicklesworthstone)
  • 64892e0bd7df3a2727a96df4a95d670548363c5a: feat(redaction): add config + flags plumbing (bd-20xv1) (@Dicklesworthstone)
  • b5d45e209faaa87ec6175863c79ca4b87d7268c5: feat(redaction): add redaction middleware for REST/WS and persistence (@Dicklesworthstone)
  • 31077ebe9b7ac99077318ecc1e4705cd366f1e58: feat(robot): add swarm orchestration snapshot to system state output (@Dicklesworthstone)
  • 8ca6ed70ce5719be892975d7110a50e3519e546c: feat(robot): dcg check preflight (bd-297mu) (@Dicklesworthstone)
  • 27a91f02a0e8cfe53fcdc8dd9bb773b169ebe49c: feat(robot): integrate redaction engine with send-and-ack API (@Dicklesworthstone)
  • f626ef6880b965eae1f1cdc1e4ec16b6b53859c3: feat(safety): add profiles + robot support bundle flag (@Dicklesworthstone)
  • 39c07c4ff571638cca643a75b3f8bf6c3cf5634a: feat(status): add context usage and token count to AgentStatus (@Dicklesworthstone)
  • 5f80f0aadad93fe5a7a94f8a55ed3e921a8c728c: feat(status): propagate context usage metrics through status pipeline (@Dicklesworthstone)
  • 07f72754b08b72ac2608a5cfabf68240a49ccd67: feat(supportbundle): add manifest schema for support bundle indexing (@Dicklesworthstone)
  • ef8ade8696998fddbfb4f12258acebb46a5b19a6: feat(tests): add pure-function tests for dashboard helpers (@Dicklesworthstone)
  • 492053a47a13c8ca24dc607958653a0e84ed7498: feat(tests): add pure-function tests for dashboard panels (@Dicklesworthstone)
  • dc9d90c1b9191fe7b9b1bd8880acc7f554cf16ce: feat(tui): cost panel + scrub tests (bd-2px8 bd-1twa4) (@Dicklesworthstone)
  • fc44ca70bf4f7517b5b978d3b975b926692d801e: feat(tui): enhance history panel with filtering, copy, and replay (@Dicklesworthstone)
  • a68067d22d84d2faec10fb94e8115ffd23045183: feat(watcher): Recursive remove support + E2E and watcher tests (@Dicklesworthstone)
  • 6b1b1070ae0121e84373c4bb23120334a6993a75: feat(webhook): add built-in formatters for Slack, Discord, and Teams (@Dicklesworthstone)
  • 82c361c949983db20032e31a02c847124893deba: feat: DCG consult + CAAM rotator updates (bd-1cltc, bd-3d4i9) (@Dicklesworthstone)
  • 44dd7434245b07ffa9023254f9daffe520f3b8d8: feat: add agent type hints to parser and multi-window session restore (@Dicklesworthstone)
  • 47870a1c24af076ccd85c97ce663d46e4ae8290d: feat: add e2e tests for ntm doctor command (@Dicklesworthstone)
  • 0f7447fbfab3cd9c90e44061d8dff119929f5fb6: feat: add e2e tests for ntm grep command (@Dicklesworthstone)
  • ce3f4e98e02c197210573d08a6923ae581592ceb: feat: add safety redaction system and fix Codex web search flag (@Dicklesworthstone)
  • 35e29651bd576bc85bcd2a034d9e9b45419f404c: feat: ntm scrub + redact outbound notifications/webhooks (@Dicklesworthstone)
  • 602fe8abb2c42b0332986e875e568658a8dd8a49: feat: use MCP resource view for listing file reservations (@Dicklesworthstone)

Bug Fixes

  • ce579ab3dd4477745a85a3eb3d7281e46a985191: fix(am): add http client timeout to HealthCheck for consistency (@Dicklesworthstone)
  • 340d5b8163c98bc4d87fc90c0a95d224c7f00b02: fix(checkpoint): Prevent panic on short git hashes + supervisor tests (@Dicklesworthstone)
  • 758c8e0959a0a13459bac3e0a39d50a393c11f20: fix(coordinator): handle wildcard suffixes in ** glob patterns (@Dicklesworthstone)
  • 709a77a7eef18381843243d2fda0cba3e9b11476: fix(coordinator): support ** wildcard suffix patterns (@Dicklesworthstone)
  • c55d636151175f52acd567f14d49e67b949abd77: fix(e2e): correct supportsCommand to actually run the command (@Dicklesworthstone)
  • b48002cd8f6b955845e2212f1d3049df5ba6eb4e: fix(e2e): fix monitor test flag detection and help text assertion (@Dicklesworthstone)
  • 481b63a9b297344c2acd4849d4658b1f4cea2dda: fix(e2e): update synthetic secrets to match redaction patterns (@Dicklesworthstone)
  • 1d0398e7a2ad24c7c9da796cad3aaf86002fee8e: fix(redaction): --allow-secret should downgrade block to warn, not disable scanning (@Dicklesworthstone)
  • 4b08734f7eae43db8f2c02cb8f4f8de1c7ef264f: fix(redaction): improve overlap deduplication with priority-first sorting (@Dicklesworthstone)
  • b10afee4ef21cd48f38282dbd91d0b7273408e52: fix(robot): use descriptive names for empty test case values (@Dicklesworthstone)
  • 0ac248fde159e661ae8db83cca5439914f4a8bc5: fix(serve): make Content-Type check case-insensitive per RFC 2616 (@Dicklesworthstone)
  • 548eab10f4dea7e244349bd30c4a581608e63e65: fix(spawn): avoid IsJSONOutput in signal goroutine (@Dicklesworthstone)
  • 8b8af4aadaa22a7e75c771c68657335cedd8b82e: fix(status): idle prompts take priority over historical errors (@Dicklesworthstone)
  • d206aa6fee6e289fa7f2933921b4c1c2dfd1deb8: fix(status): invert context remaining to context usage percentage (@Dicklesworthstone)
  • 07838f34577fc618dbbca573ec7d72582e5532fe: fix(supervisor): add proper HTTP client timeouts for health checks (@Dicklesworthstone)
  • 291e9e6ab7292cf1c3cf46c589d0455727748f90: fix(supervisor): use correct health endpoints for Agent Mail (@Dicklesworthstone)
  • a76634b17961d8957232b13230fda0a2a332d769: fix(swarm): bug fixes from code review (@Dicklesworthstone)
  • 459176b43d478679ed244884d8c8e27d1f4f7de1: fix(tmux): buffer-based paste for Gemini multi-line prompts (bd-2od5.3.4) (@Dicklesworthstone)
  • 44f4a124c8468803b47eeba1b99eb30c88370c1e: fix(tmux): use unique buffer names to prevent race conditions (@Dicklesworthstone)
  • e9142bf9013bf7470ba1f2d34f75b7e5eb1362d8: fix(tui): align NTM_REDUCE_MOTION parsing with styles.reducedMotionEnabled() (@Dicklesworthstone)
  • d728f66b3b28c65710853f1adc077c8706b9576d: fix(windows): add stub for createFIFO on Windows (@Dicklesworthstone)
  • 9a73d3a80c7923e5feb501ad45244d6e80012e38: fix: checkpoint JSON + ensemble redundancy (bd-es4x7) (@Dicklesworthstone)
  • 7f5b872e73ebe2ae74316d9cfd1690c7dd54afab: fix: handle bv not installed case in drift detection tests (@Dicklesworthstone)
  • 541d8a4918cb3ede63d65c6afd1f1432a9105648: fix: multiple bug fixes from deep code review (@Dicklesworthstone)
  • 2f9cb9679fa1ed1ccf4fd11e751f0fa49a8546b2: fix: respect --json flag in palette subcommand (@Dicklesworthstone)
  • 86750a77ba98ce6ec9b672d141d6918114c19fe4: fix: update mail tests to use FlexTime wrapper for CreatedTS (@Dicklesworthstone)

Performance

  • a96d43161be48d1ef8a154b1b6828aeec3579134: perf(coordinator): reduce lock contention during agent state updates (@Dicklesworthstone)

Documentation

  • 6370bc68bba845e5b28735e6cef1b7e3247307da: docs(redaction): update spec and improve redaction implementation (@Dicklesworthstone)

Others

  • 3ac08e00b3330db17aab3efbf82f4fb4cdf3486b: Add E2E test for unlock --all flag (@Dicklesworthstone)
  • 2ac8c44ee821b0de80ddea006e2f3d1646367698: Add comprehensive conflict detection tests (@Dicklesworthstone)
  • 1826969568261f21bf5d7de0ee15884720c430aa: Add comprehensive unit tests for tracker package coverage (@Dicklesworthstone)
  • 64de8d9e9756e08e8019c2b63ed9795a3b06b496: Add configurable help verbosity for CLI and TUI dashboard (@Dicklesworthstone)
  • 942a97be5d3405a807f69d1052d4d1657414fc84: Add cross-process lock for parallel tmux test execution (@Dicklesworthstone)
  • bb006f66bcd69be2888ce680ce42fbaea7cdb88f: Add edge case tests for acknowledgment detection (@Dicklesworthstone)
  • 16ee8f8696d1806abd6dc6f8d15cd22028765849: Add unit tests for min() and findOverlap() helpers (@Dicklesworthstone)
  • b3d2cf902a969a8e40bfa1fb36ac472abfe280d6: Close bd-2ibgg (@Dicklesworthstone)
  • 4b29e6217fa1f694b568ed7a87fff3249d66d89a: Close bd-2jyec (beads dependency cycle) (@Dicklesworthstone)
  • 8cb5ea68736e5b7109fbcb5c8bf3b809d7f9dbb1: Close bd-2pgo6 (@Dicklesworthstone)
  • 5827862e02a46cbfadd25e6e53b3a63bf7013034: Close bd-3sha (dashboard help verbosity) (@Dicklesworthstone)
  • 9a0f1565aac0e4ae9e6db816863c94d1e1806080: Close bd-3vfhb (@Dicklesworthstone)
  • 9cc8436d544bcabae2503f55412372b119145240: Close bd-mthe9; add internal/tools adapter tests (@Dicklesworthstone)
  • d6a20d2229a494ff5c9c883903d43cee94ae6f0a: Close bd-rqg47 (@Dicklesworthstone)
  • 3064d384c953a1d307106584eb4852433d77ea29: Fix lock/unlock E2E test to verify per-agent reservation state (@Dicklesworthstone)
  • 92775de8aef29c5a9747108a293621518a9d1b3c: Fix swarm pane targeting base indices (bd-1mx4h) (@Dicklesworthstone)
  • 7c985984cbc4d5957b5f700486a2b73804c1b0ce: Fix swarm plan pane index mapping (bd-32ju2) (@Dicklesworthstone)
  • 33093c604b9410b95d12d3e94f9409f4c784f55c: Rename err to unmarshalErr in ListReservations to avoid shadowing (@Dicklesworthstone)
  • 621237c1b572dcc772d02757189f727865b089f0: Rename err variables in lock_unlock_test to avoid shadowing (@Dicklesworthstone)
  • 90f36f6202c96ccf4933bf6c835ddb30e8d60d3b: Strengthen test assertions and coverage across test suites (@Dicklesworthstone)
  • f59ad98fbec70c56b7258c2923d5b088f9088b71: Sync beads issue tracker state (@Dicklesworthstone)
  • fd7e1e7f585a2f3bbf99f674da496cd2a31260e5: Update beads (@Dicklesworthstone)
  • 19277445000e0d50989d45827a2eed29fa612d5b: Update beads: close bd-2c8y (@Dicklesworthstone)
  • f4927282075d6ef65d76f8a77c03eefc2a8eead3: Update beads: close bd-3q3u (@Dicklesworthstone)
  • 341697ccfe43c5039ab6dc0b6f290a2da480360d: Update beads: close bd-3qk5a (@Dicklesworthstone)
  • 88afccfff0d3aa5ef2867b472fa2561c2ae1c6ef: Update dashboard layout tests for help verbosity changes (@Dicklesworthstone)
  • 3e0a4b96b0374876a46524fb1f6f6ec75840f07d: Update tests for help verbosity and fix robot test assertions (@Dicklesworthstone)
  • d7a285f3ca50f7f19df3e38e03c804f61f6e5af3: agentmail: filter ListReservations client-side (@Dicklesworthstone)
  • 52890369cacb1f7bedf1304a06b69fb0653c114b: bd-1wvl6: Fresh-eyes fixes for locks/reservations (@Dicklesworthstone)
  • 543434d24b07efa739a56de4e78063ee9a74eba1: bd-2c8y: webhook bus bridge + event emitter (@Dicklesworthstone)
  • d94e3f907b3cf9ed5ddff89d28cd592adcc4bda9: bd-3qk5a: enforce privacy/redaction for prompt persistence (@Dicklesworthstone)
  • 24d06408c6bc0b4526c4e8e1c1eb543f6b4a4d5a: bd-852e: spawn --local/--ollama (Ollama) agents (@Dicklesworthstone)
  • aefeaaac9be7473933e859acd13bd6ceccd617f0: beads: claim bd-297mu (@Dicklesworthstone)
  • cff22d878d4833a788766c576c4cee3696ebd71e: beads: close bd-297mu (@Dicklesworthstone)
  • 80d906878e16da46cdd5ba3a984fe3a44e5ff8ce: beads: close bd-2vm8z (@Dicklesworthstone)
  • 4cf038d2879e651617a97d1fc3e3dd108eb85076: beads: close bd-32ju2 (@Dicklesworthstone)
  • 95ee71d2fb8df3ae28b93ea8d1fc43507963fd96: beads: close bd-3cdsi (@Dicklesworthstone)
  • 29f520f993ba4b2643aad9ebeb2aaaced349a8b1: beads: close bd-3vkzo (@Dicklesworthstone)
  • 87a806d8d90af544fcc6ade5d3c0a07f0eb811d6: beads: close bd-f8ikz (@Dicklesworthstone)
  • c37c769b8a6fcd744450ceb6490b70de9d991854: beads: close bd-kjihq (@Dicklesworthstone)
  • 3d745559d34098209f76538793ab8214833fc168: beads: close bd-ubhl (@Dicklesworthstone)
  • f53e7304497ccf7a1d549c4bb75a155e5637bbcc: beads: privacy/redaction + support bundle + prompt preflight (@Dicklesworthstone)
  • 89e6a211456726335b4334bbfac0ef4b69f77581: beads: refine privacy/safety plan (E2E harness + support bundle deps) (@Dicklesworthstone)
  • a73e8c6b2dd231a92a1a5124cdca649c74e5113c: beads: refine privacy/safety plan (tests + deps) (@Dicklesworthstone)
  • 689446761b5b7b77b730a85a90464e4757eea008: beads: sync (@Dicklesworthstone)
  • 986cf920fbfb314174ab05565c52311ae92a8c23: beads: sync (@Dicklesworthstone)
  • 79f2445bc3139dcc8bcb0a89ca094e314a9f277a: beads: sync (@Dicklesworthstone)
  • 8761f9fd3bfd2fa7899b3a7b450743c082249333: beads: sync issues export (@Dicklesworthstone)
  • 6c169104a21335f39802d674c5faf7bdeaf85a84: beads: sync issues export (@Dicklesworthstone)
  • eefec613d81d2808adabd4577b2bff081f5c2060: beads: sync issues export (@Dicklesworthstone)
  • 7fed2bdc17e8aa90b28127d512317eba98cb4ab9: beads: sync issues export (@Dicklesworthstone)
  • 6d26fd4110d3042ebde02b5c115e2bde6de6f97b: beads: sync updates; add e2e lock tests (@Dicklesworthstone)
  • 24372eef764c312f75e0162f7b8f1905f09deea2: chore(beads): Close bd-ubhl E2E init workflow tests (@Dicklesworthstone)
  • 86cbcf517c5e7a4293f4a9c2afa13a13c24fece6: chore(beads): close bd-19t9x (@Dicklesworthstone)
  • 0f53fc62d155fe56e9055e122c1468b777354f87: chore(beads): close bd-1fvt7 (@Dicklesworthstone)
  • d36707141befb5276023da08c43068241d7d9e59: chore(beads): close bd-20xv1 - redaction config complete (@Dicklesworthstone)
  • 4ac8012357b8e045fb117f7cdaee71814e2b3987: chore(beads): close bd-2foqi + bd-in4ac; start bd-3sl0s (@Dicklesworthstone)
  • 6a7cf77727b91c74996ae46e0de13cec09ca200f: chore(beads): close bd-2oc4s - tests complete (@Dicklesworthstone)
  • f121fe305a545d64e8b59600acf1e29300e760cb: chore(beads): close bd-32ie0 (@Dicklesworthstone)
  • aa281f1816490a8a47df507973a4ecfefc371377: chore(beads): close bd-349x (@Dicklesworthstone)
  • 390f9860280cb0d8f6b316616449a6c8fa399cb8: chore(beads): mark bd-349x in progress (@Dicklesworthstone)
  • c4602ded23a38948ab0243aaa2ce0e4af833cc19: chore(beads): mark bd-oqlqm in progress (@Dicklesworthstone)
  • 88e3716a05ce7124d7511cde85b99cac88a549a7: chore(beads): start bd-ktyql (@Dicklesworthstone)
  • 41772608b571b5315930caed7621d7e7c3354d98: chore(beads): sync (@Dicklesworthstone)
  • 422a0a3d33f1509643c865fbd3042be870044bfd: chore(beads): sync (@Dicklesworthstone)
  • dea575b20183da3397d1dafcf79743639006ef1b: chore(beads): sync (@Dicklesworthstone)
  • dd4aa8c0bc1cbf70c08fb89d710f5e1be38e4b78: chore(beads): sync issue state (@Dicklesworthstone)
  • d259edd12543aaef6c1f17aaecfe6380e6b84316: chore(beads): sync issue tracker state (@Dicklesworthstone)
  • 50b1de462f17a74907baf921166b69b101d2b2b1: chore(beads): sync issue tracker state (@Dicklesworthstone)
  • 419945cd5ce26ae611f62864e4495af58445cbb8: chore(beads): sync issue tracker state (@Dicklesworthstone)
  • 9bc122e293f5c06f83d7aef3d868725d03435c05: chore(beads): sync issue tracker state (@Dicklesworthstone)
  • 6601c75a9c1087aad22e0c0ebc6080dce767f416: chore(beads): sync issue tracker state (@Dicklesworthstone)
  • fd113276e603f9cb33c4dd8b394c2f8a4d13859b: chore(beads): sync issue tracker state (@Dicklesworthstone)
  • 7215f47fdb8c24a79e093e5617f40dec6d7fd887: chore(beads): sync issue tracker state (@Dicklesworthstone)
  • 33b30f37705c5df0bab4358bc4300b8b58e11a41: chore(beads): sync issue tracker state (@Dicklesworthstone)
  • 9bcb74a72014077333db5a5dbb902c73369c1d53: chore(beads): update issue bd-1x9x8 status to in_progress (@Dicklesworthstone)
  • da03a18ad98f28649bf9adee4db131e91ec22ce7: cli(send): add --dry-run preview (@Dicklesworthstone)
  • 4696ad9f5b7b6b5aa21e494d7d609ec7d0f7d519: cli: stabilize send smart-route test (bd-1l4tx) (@Dicklesworthstone)
  • ee6f6888796a47e87d7df54419c6256fda08deb3: config/handoff: validate redaction + truncate bounds (bd-20xv1 bd-765vk bd-1d8qk) (@Dicklesworthstone)
  • de99ecf0cefd34d8b1b12c33829641804b9f0933: config: normalize safety profile on load (@Dicklesworthstone)
  • 33bb61965335ab14ad8627d33a595878fe7deae5: feat(support-bundle): add privacy mode enforcement (bd-2yi1i) (@Dicklesworthstone)
  • 937bfed39b55b27d8b18598f5e1a27e186331ab8: redaction: internal/redaction engine (bd-2eph9) (@Dicklesworthstone)
  • 4861307e5c31710934ae2cf7992e30e73869d046: refactor(e2e): rename history types to avoid conflicts with other tests (@Dicklesworthstone)
  • 8a9cc788972673ee75f3ae99d58d9d376acf258a: refactor(redaction): avoid push-protection false positives on pattern constants (@Dicklesworthstone)
  • 7da45affd94f8b450431d166fbd26b2ab40d35d6: refactor(test): consolidate send redaction tests into single test function (@Dicklesworthstone)
  • a679909813b012f849ce4525d511d8da0b8b5946: refactor: continue stderr to slog migration in archive, checkpoint, scanner (@Dicklesworthstone)
  • 07c00e9499a4553a282467ddedc67121f742f8f5: refactor: migrate duration utility deprecation warning to slog (@Dicklesworthstone)
  • bc699e0b1ae6ccd882058ad5ca4ead2669ae7561: refactor: migrate events and persona modules to structured slog logging (@Dicklesworthstone)
  • 374b57658c7d9abfc773bf390f27d3896645fe44: refactor: migrate warning output from stderr to structured slog logging (@Dicklesworthstone)
  • 682133515c9c8f1a34e463e21aa893d2f354aab4: refactor: use slog for assignment store recovery (@Dicklesworthstone)
  • 148ff930d34ef2ae23256b1094a755113b148ac8: refactor: use slog for checkpoint/scanner warnings (@Dicklesworthstone)
  • b383d1ab8e9f7ec40732d5b1713cff7e75ba8a3c: send: dry-run safety + batch interrupt fixes (bd-3ffb) (@Dicklesworthstone)
  • 0fe57f512b617d8a4147c811548dc1792fe47e4c: serve(ws): allow tool topic namespaces (@Dicklesworthstone)
  • e569e345d996e2ddd28d450cefb987d6962452d5: serve: extract hint from details (@Dicklesworthstone)
  • 46536c4b9d42a6280986ea8e3395729b401b054b: serve: improve accounts endpoint logging (@Dicklesworthstone)
  • c795e2053f6d9de01562a843e42d0ebf5c8a3ea3: serve: publish WS events for mail/reservations/pipeline/approvals (bd-1kq4p) (@Dicklesworthstone)
  • 29fcb6decd5ed35c2d2dabc2d5c49cfaf75e59f0: style(e2e): complete privacy test logging standardization (@Dicklesworthstone)
  • 3f5c8ad600fcd30417f57c656679b87c02fcb057: style(e2e): standardize privacy test logging to E2E format (@Dicklesworthstone)
  • 972b9cb9d81fae668e6f066cfb15ae9f37318345: style(lint): fix struct field alignment in tests (@Dicklesworthstone)
  • 842ab817313d3ccb58b321318c5a67db7095fe6b: swarm: add --auto-rotate-accounts (bd-3ixg4) (@Dicklesworthstone)
  • 54b3153ee700b2297afe8a62c2aed5cb608faf4a: swarm: implement graceful shutdown support (bd-20q09) (@Dicklesworthstone)
  • ceb89752d8d66fabba7dd8825528290f3bd32814: swarm: inject initial prompt (--prompt) (@Dicklesworthstone)
  • d0338bab5bfd9f5bd19f0a0b1fac0346bfa46724: swarm: orchestrator + status health (bd-3uda9) (@Dicklesworthstone)
  • f8a866a117adf63d045de440b8fa209939a8a367: swarm: persist account rotation history (bd-2b0eb) (@Dicklesworthstone)
  • 6a2ea1ee40a1118b8980d723232b37a870b1bf6b: test(agentmail): Add unit tests for FlexTime, ReservationConflict, FetchInbox (@Dicklesworthstone)
  • e82e93d7aa53eac8e69ba985c3adf1f93568e6d1: test(archive): add pure-function tests improving coverage to 68% (@Dicklesworthstone)
  • d328eeca318d6bf8d10b70f0de13652f5163a38f: test(bundle): add comprehensive unit tests for generator (bd-2hj9x) (@Dicklesworthstone)
  • bb3945b55a247dca41b95e562a7b42d6bcfbade1: test(cli): add installGitHooks unit tests (@Dicklesworthstone)
  • 535ecb0b2317424c38a861ce38e48fc9da65a267: test(cli): add preflight unit tests (bd-3cq2w) (@Dicklesworthstone)
  • c0dbaa0ce7ed1739e3efc5f53cde3cc3970bba35: test(cli): add spawn command test coverage (@Dicklesworthstone)
  • bf47e0d734a6545de46f4844d50c459e1177d17e: test(cli): add unit tests for redaction config/flag precedence (@Dicklesworthstone)
  • a317a51167197bcca2a21e1086aef03e89b98249: test(cli): expand preflight tests (bd-2yws9) (@Dicklesworthstone)
  • f72a47cf6502784868130a31a532b980cd0f8ae8: test(cli): init recovery scenarios (bd-6fek) (@Dicklesworthstone)
  • 09850d6d22c4e9d5587ddfaccfa24bbc6d5deea2: test(completion): add tests for edge cases and error paths (@Dicklesworthstone)
  • 22f5e5a831c688b7b74b69e6bcbf262156e38970: test(config): cover safety profile normalization (@Dicklesworthstone)
  • c849c59487b64c400eaa9ae031fb306becc62242: test(e2e): Add version-aware guards and helpers for init tests (@Dicklesworthstone)
  • bb636e9f6912d284cef8836ef0a18be66926bae3: test(e2e): add comprehensive E2E tests for copy command (@Dicklesworthstone)
  • 4e3266fc5a7bdf7a697b0119a67dc7ba4865a87c: test(e2e): add comprehensive E2E tests for hooks command (@Dicklesworthstone)
  • 3b5a9fbe32d586a8fc624a18b75e876543972aff: test(e2e): add diff command tests (@Dicklesworthstone)
  • 01428b3e2e60f51d961376b0828bd3dcfd4f765b: test(e2e): add plugins list coverage (bd-o2dl4) (@Dicklesworthstone)
  • f880636e7d8fb4fc7437a1d5ef4b300ac57dcabc: test(e2e): add privacy mode E2E tests (bd-3vnmq) (@Dicklesworthstone)
  • aa0a3eca3702122bd69a7cd90ec46a93bc0c93e8: test(e2e): add quota and upgrade command tests (@Dicklesworthstone)
  • b16f30972941af7dddc0771e8096a59e4b38b18e: test(e2e): add redaction E2E test suite (@Dicklesworthstone)
  • 71f343bda0466ea4434b466a3eff51454883dc27: test(e2e): add scan command (UBS) tests (@Dicklesworthstone)
  • ba1291f49fa81a1be0b81df802854bcf182d6b04: test(e2e): cover ensemble CLI json + tier gating (bd-3vkzo) (@Dicklesworthstone)
  • a04ed1622b3df4167b4bbbe4596b871847387a8d: test(e2e): persona/memory + recipes/kernel; verify redaction persistence (@Dicklesworthstone)
  • b9fdefac1b72a287d74ccbdf874a895ba3f378ca: test(e2e): policy enforcement (bd-10n4m) (@Dicklesworthstone)
  • 9db15b1a1125ac70bd3d5c329bd4ab0ec447308b: test(e2e): preflight E2E + ollama spawn parsing (bd-2foqi, bd-852e) (@Dicklesworthstone)
  • 4093a23c3ed1cf2618906c66768638cf7270e12b: test(e2e): robot env/diagnose + history replay; harden swarm stop (@Dicklesworthstone)
  • 81c97f02209799e1fea8f0cc7d2fa7c08c210ac7: test(e2e): swarm orchestration; close bd-u4cfd (@Dicklesworthstone)
  • b405f3b8183e40f45e3b3476b628c3927fc13b3e: test(e2e): work + workflows (bd-12nj9) (@Dicklesworthstone)
  • c7995086d893cd84f12c90321b33bac1194e15b7: test(events): add comprehensive tests for logger replay and query functions (@Dicklesworthstone)
  • be9b6c5138f457187eb4bfb20a197f113797a50f: test(handoff): add pure-function tests improving coverage to 83.8% (@Dicklesworthstone)
  • 97cf330574299fba26c031c1c5f4b314349182c0: test(lint): add comprehensive unit tests for lint package (@Dicklesworthstone)
  • 8e1858a3dbac80201319ceaf9315f275e28d0c00: test(rano): add tests for PID map functions and edge cases (@Dicklesworthstone)
  • 2acdc56e9003930b4ef2816b90912f765e733ab0: test(redaction): add comprehensive test coverage for redaction modes (@Dicklesworthstone)
  • e6375826458e3edeaac6f55874ed4385f0af0bb0: test(redaction): add fuzz tests for redaction engine (@Dicklesworthstone)
  • cfc526dcb14cd21596724d79a469654b88511133: test(redaction): add performance benchmarks for redaction engine (@Dicklesworthstone)
  • 211844ff30d69e539f8bce4331864b438a29348d: test(redaction): add tests for overlapping matches and deduplication (@Dicklesworthstone)
  • fd0707a27f8cb6bfc8b525924598ab3cf5e8d75b: test(robot): improve getNewContent coverage to 92.3% (@Dicklesworthstone)
  • 30a6be1b67ad5ff1ed6cef002eca066d4246ab72: test(robot): improve test coverage for pure functions (@Dicklesworthstone)
  • 7ed9718cde38073f3ca56582a5244320ff95b1db: test(send): UBS err-shadow cleanup (bd-3anr4) (@Dicklesworthstone)
  • 3c7c14fb8803fb550a757b8ae6e4df8d2735dba2: test(serve): add case-insensitivity tests for Content-Type detection (@Dicklesworthstone)
  • 64ebc586902a84b40a013c07d429753063975655: test(serve): cover account rotation endpoints (@Dicklesworthstone)
  • 59f4384d5f80302c40084b2137b571f0ad5d8cc9: test(swarm): comprehensive AutoRespawner integration tests (bd-2oc4s) (@Dicklesworthstone)
  • ff1cb4092a3803648a0a45d0f5f4d9a4e036bf13: test(tmux): add tests for pure parsing functions (@Dicklesworthstone)
  • 21e2d8a03fd4c429e5fe5d6f3dbb9c8d59859beb: test(webhook): ensure redaction in slack/template payloads (@Dicklesworthstone)
  • 0a06b3d3d4651b8090461bd8b119fa87be1b5790: tmux: retry SetPaneTitle for transient panes (@Dicklesworthstone)
  • 98527c62dfef1b6100bdac3f59fbb2f7cdb578c4: tmux: treat missing server as empty panes (@Dicklesworthstone)

Full Changelog: https://github.com/Dicklesworthstone/ntm/compare/v1.6.0...v1.7.0

Container Image: ghcr.io/dicklesworthstone/ntm:v1.7.0

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track ntm

Get notified when new releases ship.

Sign up free

About ntm

Named Tmux Manager — spawn, tile, and coordinate multiple AI coding agents (Claude, Codex, Gemini) across tmux panes with a TUI command palette.

All releases →

Beta — feedback welcome: [email protected]