Skip to content

agent-deck

v1.10.9 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-agent ai-agents ai-coding-assistant aider bubble-tea claude-code
+11 more
cli codex developer-tools discord gemini-cli go mcp productivity session-manager tmux tui

Affected surfaces

crypto_tls breaking_upgrade

ReleasePort's take

Moderate signal
editorial:auto 8d

The 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 summary

Broad release touches ui, session, tmux, and deps.

Changes in this release

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

Track agent-deck

Get notified when new releases ship.

Sign up free

About agent-deck

Terminal session manager for AI coding agents. One TUI for Claude, Gemini, OpenCode, Codex, and more.

All releases →

Related context

Beta — feedback welcome: [email protected]