v1.10.9
langgenius/difyv1.10.9Jul 18, 2026by github-actions[bot]
AI Summary
A maintenance release for Agent Deck focusing on fleet management, UI improvements, and CLI enhancements.
Key Highlights
- Fleet fan-out feature to launch parented children and track completions.
- New 'session cleanup' command to purge dead/stale sessions.
- UI enhancements: draggable dividers, in-attach scrollback pager, and copy visible pane text.
- CLI support for `--message-file` to read input from a file or stdin.
New Features
- Fleet fan-out launch with `--parent` flag.
- Discord mentions listen mode.
- Declarative groups in config.toml.
- Hooks injection at turn start.
- UI features: pin-cycle hotkey, preview-below orientation, compact relative-time units.
Full Release Notes
## Agent Deck v1.10.9 Terminal session manager for AI coding agents. ### Installation **Homebrew (recommended):** ```bash brew install asheshgoplani/tap/agent-deck ``` **Quick Install:** ```bash curl -fsSL https://raw.githubusercontent.com/asheshgoplani/agent-deck/main/install.sh | bash ``` **Go Install:** ```bash go install github.com/asheshgoplani/agent-deck/cmd/agent-deck@v1.10.9 ``` ## 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