This release keeps dependencies and maintenance posture current for teams operating this tool.
✓ No known CVEs patched in this version
Topics
+11 more
Affected surfaces
ReleasePort's take
Moderate signalThe release upgrades the Go toolchain to version 1.25.12 to address CVE GO-2026-5856 in stdlib crypto/tls.
Why it matters: CVE GO-2026-5856 (severity 90) affects runtime; upgrading to Go 1.25.12 is required for all deployments using the affected library.
Summary
AI summaryBroad release touches ui, session, tmux, and deps.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Critical |
Bump Go toolchain to 1.25.12 for CVE GO-2026-5856 (stdlib crypto/tls) Bump Go toolchain to 1.25.12 for CVE GO-2026-5856 (stdlib crypto/tls) Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Breaking | High |
Stop global -p/--profile from shadowing a subcommand's -p flag Stop global -p/--profile from shadowing a subcommand's -p flag Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Feature | Medium |
Add 'session cleanup' command to purge dead or stale sessions Add 'session cleanup' command to purge dead or stale sessions Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Feature | Medium |
Introduce fleet fan‑out: launch parented child sessions and track completions Introduce fleet fan‑out: launch parented child sessions and track completions Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Feature | Medium |
Add 'session children --follow' JSONL event stream for fleet supervision Add 'session children --follow' JSONL event stream for fleet supervision Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Feature | Medium |
Add --message-file (path or '-' for stdin) option to launch, session start, and session send commands Add --message-file (path or '-' for stdin) option to launch, session start, and session send commands Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Feature | Medium |
Implement claim‑based polling deduplication for concurrent multi‑instance setups (opt‑in) Implement claim‑based polling deduplication for concurrent multi‑instance setups (opt‑in) Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Performance | Medium |
Cache group DefaultPath resolution to eliminate reload freeze in session handling Cache group DefaultPath resolution to eliminate reload freeze in session handling Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Performance | Medium |
Keep tmux liveness probes off the bubbletea goroutine to reduce UI thread contention Keep tmux liveness probes off the bubbletea goroutine to reduce UI thread contention Source: llm_adapter@2026-07-18 Confidence: high |
— |
| Bugfix | Medium |
Fix tmux send-keys with per-call deadline and process‑group kill to prevent hangs Fix tmux send-keys with per-call deadline and process‑group kill to prevent hangs Source: llm_adapter@2026-07-18 Confidence: high |
— |
Full changelog
Agent Deck v1.10.9
Terminal session manager for AI coding agents.
Installation
Homebrew (recommended):
brew install asheshgoplani/tap/agent-deck
Quick Install:
curl -fsSL https://raw.githubusercontent.com/asheshgoplani/agent-deck/main/install.sh | bash
Go Install:
go install github.com/asheshgoplani/agent-deck/cmd/[email protected]
Changelog
- 5786ff740cfb8f939ca7c5c7da1dffeb1ee12cdc Merge main into Codex approval command
- 6d41e7cd34dbe0d596de42ccdac30b9b0d914cce Merge main into Pi status fix
- 30221b77883f8039aac8cb26af1e2b0420944efe Merge main into UI test-worker fix
- f0dc8270c3af538e50504cb87d352a6bf1c180a8 Merge main into fix/issue-1595-copy-visible-pane
- f1a7f5b216948bf00caa3abb61274869a97cbb5d Merge main into last-activity fix
- 946e7f7b22fb57aa8b4552bc9dbe7fb5e9b4ab34 Merge main into relative-time feature
- 8968cb94348fec873bdbcb6754830c4502a918b4 Merge remote-tracking branch 'origin/main' into fix/ui-test-worker-leak
- f9b2a05f5a6bd27b426a3e33b36576bcbdb58898 Merge remote-tracking branch 'origin/main' into maintainer/1503
- 6b026c813b7bcc6ecb618ed6b6088c5c2f08ab9f Merge remote-tracking branch 'origin/main' into maintainer/validate-1560
- b4ae3120642bfd01fad7102ae9cd33c349d2b750 Merge remote-tracking branch 'origin/main' into maintainer/validate-1565
- a6302e3e2f0c8b12e480ae3fc64208217097aa78 Merge remote-tracking branch 'upstream/main' into maintainer/review-1603
- 8d8dcc4b1e3da6f00a10258d185283fd916d2524 Merge remote-tracking branch 'upstream/main' into maintainer/validate-1514
- 60eba47da50d65affedf5407e6128ad3a99b1eb2 Merge remote-tracking branch 'upstream/main' into maintainer/validate-1514
- 00c13198a995f5c0e476bd9e9c29aaf21f34bde3 Merge remote-tracking branch 'upstream/main' into maintainer/validate-1514
- cdad11b3a614f5d5f7f31d6d9740448f986ac166 Merge remote-tracking branch 'upstream/main' into maintainer/validate-1566
- 582ad4dee4af0fcc416a3efb70659e69d768e6ee Merge remote-tracking branch 'upstream/main' into perf/tui-liveness-freeze
- c770ce544a3efc47215cf6db31854834bf020ca9 Merge remote-tracking branch 'upstream/main' into perf/tui-liveness-freeze
- 3c4408917504a39ad443543ed044e4ae9cb5b0fc chore(deps): bump actions/attest-build-provenance (#1542)
- f253738a281074bf6057573a550366c743498cf8 chore(deps): bump actions/cache from 5 to 6 (#1543)
- 5d49a681a006c2334626165f27d60d6e60b6f419 chore(deps): bump actions/checkout from 6 to 7 (#1519)
- 905b767c9dfa0c8769bb41c090e723656db610a3 chore(deps): bump the go-minor-patch group with 2 updates (#1516)
- ed4a48561b5f2a86df6cf521ba5e8bf8fbda9dfe chore(deps): bump the go-minor-patch group with 3 updates (#1575)
- ce85b2327786ad54f5352c0827e6682d4d4f7f09 chore(deps): bump the go-minor-patch group with 5 updates (#1613)
- 0c3b7f328d9dda038755c14ccbe82462ffa06412 chore(lint): document tmux argv safety
- dfb1cf2af3a5e712e3a92694215282c81c5d878e chore(release): bump to v1.10.4, update CHANGELOG for #1518
- 80026f3eca00a1d4a013be11841492faa2fcab8f chore(release): bump to v1.10.5, update CHANGELOG for #1511
- 6b0edd9312c8d99696fa0a7a1b401afbe5e1d613 chore(release): bump to v1.10.6, update CHANGELOG for #1529 #1531
- 030a258a635e2b52e1067e878179af7abef9d924 chore(release): bump to v1.10.7, update CHANGELOG for #1541
- 0e114875880dd9fd4c1669509f9202917e47c0a8 chore(release): bump to v1.10.8, update CHANGELOG for #1548 #1545
- f70f19e04a44541792dfc871660bf80fd138a8ed chore(release): bump to v1.10.9, update CHANGELOG for #1544 #1532
- 59cca0e1b6e5109114160b46c2fb6929fa1cc5c2 chore(release): bump to v1.9.74
- c9089629fc34513717da8ce457bf86a2d26b025f chore(release): bump to v1.9.75
- 5e65b388e8c7feb8267c8abcd901d1ab8f5dcbfd chore(release): bump to v1.9.76
- d9b51e5995b9a236394a520ce9995397f3758c3a chore(security): bump Go toolchain to 1.25.12 for GO-2026-5856 (stdlib crypto/tls)
- 2af727923c9a741c765407149237747d9f5d68ae ci(release): notify via ntfy on release workflow failure (#1538)
- 5a481addab9297dc2821b52b5b795a8e511ce50b ci: green main after the upsert-only save merge and the toolchain bump (#1594)
- 40f4255d9fc350deb379a1fb7a5020e46922d315 docs(fleet): preflight checklist + independent (--no-parent) session guidance (#1572)
- 92f67c081e424ceeed0d4e04c7d7d8f0176813b4 docs(fleet): use --parent (not -p) for explicit child parenting (#1531)
- 905c41508912d82522fdc67f7eeac2348fec8516 feat(cli): --message-file (path or '-' for stdin) for launch, session start, session send (#1618)
- 1f18c787954222eefa5f1a6efcc0bce9b7c9eef5 feat(cli): add 'session cleanup' to purge dead, stale sessions (#1602)
- e2c1366a83815aa0ad26f04663e4e7ea26257039 feat(cli): fleet fan-out — launch parented children & track completions (#1518)
- e28dbbe0755009b7e43c8a495fc6f22d9d5a3de3 feat(cli): session children --follow — JSONL event stream for fleet supervision (#1619)
- 4a0bb20d1813ed05c2b1e84663868dab4a9cc35c feat(cursor): pre-seed workspace trust before session start
- 7944ba7fbec15309db8ebf569ccbc0baed15de39 feat(cursor): pre-seed workspace trust before session start (#1467)
- f750d09ae0fda48648a232457539d442393eeb9e feat(discord): add mentions_all_channels listen mode (#1493)
- f9b98bdab060ebfa9783237a6449605cb9698072 feat(discord): tag forwarded messages with channel context
- f496004f7db5c766caebeb25dabf5083a5462349 feat(focus): drive the running TUI
- 46453afd871e5a7c1362efa1e9ac9f859ee434fe feat(groups): declarative groups in config.toml (#1456)
- a3857351329c728ca0e0f73a88564411383e908b feat(groups): default new-group max_concurrent via [group_defaults] config (#1541)
- 2cf7ad7648cc96214c326a7ddcee6092cca8301c feat(hooks): conductor fleet snapshot injected at turn start (#1620)
- e65c75f8d30fdad6c2a44957c4235efac2b25383 feat(hooks): sync project_path from Claude Code /cd (#1557)
- c3b775e20fd1445f19b0a8730d401ae54168649c feat(mcp): add Codex management
- 87f6c2491989a9f6f7c1793f45a1676f369028b2 feat(sandbox): per-instance-scoped hook status bridge (#1500)
- 3eeb24cb566fc8e093c4b9ee14d591328f60b8da feat(send): session send --defer-if-busy — hold delivery until the target is turn-finished (#1578) (#1643)
- fa5a32c03aa97de6462891331aeb0feb77110597 feat(session): add archive and unarchive CLI commands
- 10189dfd90e3f43f219ed1b2ddb1bbaa6692cc30 feat(ui): add pin-cycle hotkey with stable selection (#1598)
- 65e42286e17fb57028c69603d2fcd1844efb1767 feat(ui): add preview-below orientation toggle for portrait terminals (#1626)
- 86d80d52e1b122d3cc324b0f5196781b940bd925 feat(ui): copy visible terminal pane text
- 007528cfc38fb70580461db136196689a9f34588 feat(ui): in-attach scrollback pager for the deck view (#1491) (#1629)
- 9cd3b8dfe2f74798f09cc0276605ff445b2cf250 feat(ui): make Sessions and Preview divider draggable
- cd9fdc9b0d77eee5be1157b8b2aa4cab394755a7 feat(ui): surface worktree setup-script failures in TUI (#1624)
- e048002776151bf07ec867bbd50d54f3a38b7aa1 feat(ui,web): compact compound relative-time units (TUI + web parity)
- 47ae459ef370b9b77110f446146dcf25006e95bf feat: add ',' hotkey to cycle session pin (top/bottom/off)
- 85dba80119b339f029c706882f5810517caee396 feat: add Codex session approve command
- f9d00c4dc6777783b1b5ab5bb9658421aebe93c3 feat: implementation split terminal next to agents session #1470
- ebecd80e4496b2a34759278f5275a71dd83ede38 feat: inject environment variables on session restart (#1621)
- d3ac809d97d9cea3b0c3f4f35d42aae89c5ced5a feat: per-group/per-conductor claude command, model, env, and default_path config (#1483)
- 10f0ee18bc8f5fc9d3e17165ae76677bb2c14db1 feat: pin protects sessions from auto/bulk stops (#1521)
- 7ab445259f32e261ba21c1c6598b5a174c3df698 feat: preseed Codex workspace trust on session launch
- 643cb511ffce2056cdbc53705b47fc269e9098bf fix(approve): keep Codex prompt verification fail-closed
- 740e5048191309cbd8ad83e382784e23f95dd2f3 fix(ci): align Go toolchain pins with go.mod
- 9ae8f1075e62eee69eaed2337373736dc74e71b0 fix(ci): align Go toolchain pins with go.mod (#1597)
- b32be9e24eda6ddd3b4db1f6f7ebe02d22340e1d fix(ci): force current toolchain for Lighthouse base build
- 5aa8a143bc4b5ec3c08b0cfeb3a3c8b359b5f59a fix(claude): group config_dir beats ambient CLAUDE_CONFIG_DIR (#1508) (#1637)
- 1941c645d66b1ec8466be9d3243d41f2bd198f3b fix(claude): resolve transcript path by session-id when project-dir name mismatches
- 5a492c7eeba84fb449196f6a97e8cb2ebcaf3d62 fix(cli): stop global -p/--profile from shadowing a subcommand's -p (#1529)
- c099b5835faba94cdcec1029b60d7a57718e429b fix(codewhale): add deepseek TUI readiness preset (#1577) (#1646)
- e24dda87e22302fe9a92d199813af7a700258933 fix(codex): add -n -P and a hard timeout to the lsof status probe (#1581) (#1632)
- 8d2480c1de6a8eff53f197cf7676e85df6c6af97 fix(codex): deliver the initial prompt as an argument instead of typing it (#1616)
- 14f713e21767d2d39a63fa5a0df54ef128991fcf fix(codex): gate subagent-thread rebinds and fork subagent bindings (#1622)
- 8c946b021861e40cfb062e145a925b2d96ce3d29 fix(conductor): default HeartbeatInterval to 15 for fresh conductors (#1511)
- 536cac37b04b25c76b6de23ee0aafed42d0b95b0 fix(conductor): stop bridge.py from spawning duplicate conductor sessions (#1609)
- f7ca6cfdc3bfb6a17d39528a8a6e7fd78d9ca402 fix(cursor): harden remote trust seeding
- 16db87efbafc28f3aaafba559b46f7dfbe0bcad1 fix(groups): preserve group create/rename/move across the save-abort reload race (#1585)
- 69d11f7538e19cef198532f44923cd5b6454d3ab fix(groups): reject rename when target path collides (#1556)
- 0c043099f33a3f867b2aad92cd4fec7f4c8219ac fix(groups): stop empty groups from vanishing via additive group saves (#1523)
- 52fd17a6040803221cd6e24fcd6ecbc5c1d77898 fix(loadout): integrate declarative group and conductor loadouts (#1606)
- 6eeaed7923444b663e679f63c49a2991d533370a fix(mcp): write .mcp.json with trailing newline and skip no-op rewrites (#1627) (#1636)
- 3628970363c2f245d4f17bfefcebaee82fa87a0e fix(output): EOF-anchored last-assistant extraction survives /compact oversized records (#1568) (#1640)
- abab54661cd87d5e2208de84d304694e10a56b77 fix(reviver): break reconnect storms on a wedged tmux server (#1579) (#1644)
- 69f3634b30996c61d85bc639eef25c0232b7fd2e fix(scrollback): don't hijack PageUp from alternate-screen apps (#1648)
- 1a8c8499a3ca9c7664b9045fb5258e9debeb13bb fix(session): deliver completions for parented conductor children
- f09e91482f89d751d553e0980b9bd04bc29df979 fix(session): grouped children use group config_dir over ambient env (#1532)
- 3b3871f51cb2847f039c6529c9cc0e4ec317dbba fix(session): prevent conversation loss when switching Claude accounts (#1549)
- b3d7f4ec60fc695de91e9f9e19d43eaacd227ae6 fix(session): restore idle-watcher safety net for archived orphan panes
- 4d3a898537d97534e9c960f56b9d62e227a2c873 fix(session): surface spawn/exec failures instead of bare "error" (#1580) (#1645)
- 81f511d15e4ac5873ef0682cc05e3bc56d8db225 fix(settings): persist "Sync Session Title" toggle to disk (#1562)
- 1145387c0059ecb71df9c8265c004e1f26da2b20 fix(statedb): announce targeted archive writes so a running TUI cannot clobber them (#1611)
- a9ea185d1f5ef63cbe4b544bbfc9812a31265e47 fix(statedb): preserve detected session-id keys on stale full-table saves (#1526)
- 0879ef3e654f3373e0f0545d947509828ae2f883 fix(status): improve TUI session status accuracy (#1544)
- ddccade08e7357074671d0c38de614078c46d40d fix(status): treat clean OpenCode /exit as stopped, not error (#1617) (#1634)
- d6f0d7bb9456a2fa16d27e23dbee9e00abe8a7e6 fix(storage): make routine saves upsert-only — stale TUI snapshots can no longer delete concurrent sessions (#1551)
- 92c29a22238257aec0b7961d6ca10f9fa42ee560 fix(switch-account): locate conversation across config dirs when account field is empty (#1571) (#1641)
- 4a3ae0080592aeb73a764d15c03ac924bc2fa33e fix(sysinfo): don't block TUI startup on a wedged netstat (#1548)
- 7672b1b2df77b68203f78317126e54ee4b7a368b fix(title-sync): ignore Claude's auto-derived session names (nameSource=derived) (#1545)
- d550d703d663abeb22ced2761b3fe11c29e93830 fix(tmux): bound cadence polls and reap orphaned tmux clients
- 982067bc6ef49b30d34293f39b445069a6822b8d fix(tmux): bound tmux send-keys with a per-call deadline + process-group kill
- 610695464e2e8d67db31e6e85586610049813205 fix(tmux): idempotent kill + socket-complete existence cache (#1517)
- 0d5f130eb0823f5e4ac379a5c197443c5b23fcd2 fix(tmux): integrate bounded send keys with poll deadlines
- 16ed0e57a0b719a061b31590b114d4a3230885f1 fix(tmux): let explicit user tmux config win over forced key options (#1625) (#1635)
- 77b9502db6b0479d482ca02586d4ea79d2072e9c fix(tmux): preserve liveness on probe errors
- f3a58b4540c8b50ce9d2151f4c6e08b06044d520 fix(tmux): reap orphaned control clients server-wide + close eval/test process leaks (#1486)
- b169223ec874819597b5b013145e8c47724ebfb7 fix(tmux): spawn pane commands as argv tokens, not a $SHELL-wrapped string (#1567) (#1639)
- d80b2b19a1c545b53cfb75128701e85b39757722 fix(tui): free group-create Tab and typed-path Enter (#1536) (#1630)
- ed15068486a603d74ccdf9eeab59fed003de2fc1 fix(tui): sink empty/archived-only groups below the view-mode divider (#1522)
- 23d3f8f4084fb204368566e961470c6665ef2156 fix(ui): accept numeric epoch zero in relative time
- ed73e0830494b3ae83a0f7ad783c83676dad367e fix(ui): guard MoveSessionToGroup against creating-session placeholder (#1540) (#1638)
- 58d5d4d0c3239878a5ec3812fba202505fdd2258 fix(ui): keep selection on session while cycling pin
- 4503c247e253e446f9c8e6d11c3a649648e259f6 fix(ui): nest remote sessions under their groups (#1553) (#1631)
- aeac000fc859c5a8c36eee5c4ac562969f23dd66 fix(ui): persist manual shift+up/down session order (#1582) (#1633)
- 7f86c59dea2457c33034a9fce6ab2eb83c802899 fix(ui): preserve lowercase h navigation for shell split
- 88edc2dd2ad05801b4ad055b712d2cc366142667 fix(ui): show real last-active time for inactive sessions, not TUI load time
- 5856c3befd846feba97b4b1af20012e4cfa0e0e6 fix(worktree): sweep transition-notifier state on worktree finish (#1576) (#1642)
- b6ab823f97cd33b963b1925f56880ab587816da3 fix: apply fixes
- e0cddd47f8ef21f12c501790473a6f4d1aa47c13 fix: claude title sync reverting locked renames (#1623)
- 9bbf544111aa4e42391ee3b7127fc78add4febeb fix: detect atuin pty-proxy and warn about TUI incompatibility
- 3c447041852022a6769759711ee384708c32be13 fix: manual rename reverts to folder default after a reload race (TitleLocked lost on reapply) (#1570)
- 157d2e6f137d95fe826e8b68e380b56b596942c3 fix: pi subagent status detection + running to waiting debounce fix
- efeae5b63a3b355fbb58f02fefc299dd63c31348 fix: preserve explicit session titles on creation (#1607) (#1610)
- 65f981b01971e05b4e9da493ac473048788b953f fix: reposition cursor after pin cycle + document RemoteSession gap
- 39659fa6fea72baf8f1d0503a314e3c753acc4cb fix: restart archived sessions from TUI (#1647)
- 0e5ae3109f415c6c0543cdbd2ef049efadb56d6d fix: restore correct v1.9.77 content (previous commit had placeholder text)
- 1c317aeaf8f5236ed02ee8a38032728b910d09b4 perf(session): cache group DefaultPath resolution to kill the reload freeze (#1601)
- 094911851987a50c5ff7782869b46efb4e6c6bb3 perf(ui): keep tmux liveness probes off the bubbletea goroutine
- 8f1ce7f0669309b0e0ad5e5d695e4eb34f58cc0e perf: opt-in claim-based polling dedup for concurrent multi-instance setups (#1612)
- f3b11d00ca551e2f6f4335ac6aefc991b330531b refactor(session): fork OpenCode via native --fork
- 8da7e36ddcdca2b490ff78f1bf9a25a5278a401c test(status): cover Pi subagent detection regressions
- b068d3c6794523dfd1f6596f38407d2a5949d42f test(title-sync): end-to-end guard — derived Claude name never clobbers the session title (#1574)
- 23814d752d5101550da9c6623f8b5345ca55f25f test(ui): disable eager Home workers under TestMain
- 6c02f6a185050185f46fadebc3c1a36933749400 test(ui): gate hook watchers with background workers
- 59fa6e1fb6112246b3569314f1f54bc3ce16d692 test(ui): hard os.Exit watchdog for orphaned ui.test
- f6b155bdbc8d171c0701770a5d3770f4a28c0d70 test(visual): re-baseline snapshots for Command Center nav (#1462), fix #1506 (#1507)
Full Changelog: https://github.com/asheshgoplani/agent-deck/compare/v1.9.73...v1.10.9
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
About agent-deck
Terminal session manager for AI coding agents. One TUI for Claude, Gemini, OpenCode, Codex, and more.
Beta — feedback welcome: [email protected]