github asheshgoplani/agent-deck v1.16.11

2 hours ago

Agent Deck v1.16.11

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/agent-deck@v1.16.11

Changelog

  • 06f72a1 Apply suggestion from @boyvinall
  • d70c283 Exempt __complete from the generic help-consent test
  • 4cfca95 Final polish: CHANGELOG creds-refresh credit, dependabot-automerge lint test, wire CI
  • ad32437 Fix NewShellWindow default window-size to match session-creation default
  • 7c4d6d2 Fix TestToolIconColor_RegistryMatchesLegacySwitch: add muse to legacy expectation table
  • bd01c51 Fix startFastDeathWatcher test call signature after carry/2279 param addition
  • 954011f Honor queued remote cancellations
  • eaf3c55 Honor queued remote cancellations
  • ba82953 Make Discord typing best effort
  • dc9ce3e Merge PR #2047 into local integration
  • bd79ce7 Merge PR #2095 into local integration
  • 3a468da Merge PR #2141 into local integration
  • 6d703d7 Merge PR #2142 into local integration
  • 7294bc9 Merge PR #2146 into local integration
  • fae07a2 Merge PR #2149 into local integration
  • 9aa9d06 Merge PR #2150 into local integration
  • ae249a8 Merge PR #2186 into local integration
  • 3307d50 Merge PR #2190 into local integration
  • dbc6e5c Merge PR #2192 into local integration
  • ce3d64e Merge PR #2206 into local integration
  • e5c4f7c Merge PR #2207 into local integration
  • 00dbe19 Merge PR #2208 into local integration
  • 366f544 Merge PR #2227 into local integration
  • ef3c452 Merge PR #2256 into local integration
  • 373ad7c Merge PR #2272 into local integration
  • 7cbf113 Merge PR #2273 into local integration
  • d05d588 Merge PR #2274 into local integration
  • 637829f Merge PR #2275 (updated head f7f4548) into local integration
  • c21db86 Merge PR #2275 into local integration
  • f1eb2f5 Merge PR #2277 into local integration
  • d79bf27 Merge PR #2280 into local integration
  • 4a68f16 Merge PR #2287 into local integration
  • dcfb6d3 Merge PR #2288 (212ff3b): nonblocking remote polling + SSH cleanup
  • edc52e5 Merge PR #2290 into local integration
  • 3898261 Merge PR #2291 (fbd1537): remote update --from-build
  • efe11a5 Merge PR #2298 into local integration
  • 9028f66 Merge carry-e/2100 (0a5f127): #2100 socket-send transport rebased onto e, Codex acceptance fence kept
  • f5eb7b4 Merge carry-e/2118 (5429c17): #2118 rebased onto e (settings-panel/home.go conflicts resolved there)
  • 97f0265 Merge carry-e/2224 (e8b1d76): #2224 rebased onto e (Codex completion-turn preservation)
  • 76f26f6 Merge carry/2051 into local integration
  • 1e7a602 Merge carry/2052 (own PR, rebased onto release/v1.16.11-rehearsal)
  • 82f0422 Merge carry/2057 into local integration
  • 561da2e Merge carry/2072 into local integration
  • c277c29 Merge carry/2085 into local integration
  • 6fcdcc6 Merge carry/2111 into local integration
  • 121a6cf Merge carry/2120 into local integration
  • ed3adb7 Merge carry/2145 into local integration
  • c61c430 Merge carry/2154 into local integration
  • 612f375 Merge carry/2207 (fcc8850): restore bare-array remote sessions --json default, add --with-errors
  • f91a351 Merge carry/2229 into local integration
  • f3a4a14 Merge carry/2230 into local integration
  • 44858a8 Merge carry/2279 (rebased head e03b2ed) into local integration
  • 586f48b Merge carry/2289 (d9ea2cb): runtime health metrics, rebased onto #2290
  • a1b567b Merge feat/remote-version-preview into local integration
  • f9099dc Merge fix/issue-2025 into local integration
  • 548a851 Merge fix/issue-2185 (e538e6e): classify open AskUserQuestion/permission menus as interactive-menu substate
  • 454ec45 Merge fix/issue-2202 into local integration
  • 279c45e Merge fix/switch-stale-destination into local integration
  • 096e4ad Preserve remote session JSON errors
  • 1cf17bf Preserve remote session JSON errors
  • a64433e Regenerate golden TUI fixtures for the muse builtin tool
  • 61d692c Revert "Merge carry-e/2224 (e8b1d76): #2224 rebased onto e (Codex completion-turn preservation)"
  • 05c1a8c Revert "Merge carry/2230 into local integration"
  • 7d3e9c5 Update cmd/agent-deck/completion_cmd_test.go
  • 5a9c1d6 changelog: note #2091 in rc.3
  • 525919d changelog: note #2102/#1892 in rc.3
  • 03797cf changelog: note #2299 in rc.3
  • 6e9c5e6 chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1
  • cbd584d chore(release): fold rc.2 branches
  • 26265b7 chore(release): fold rc.4 content
  • d08c432 chore(release): fold rc.5 content
  • f9f82bc chore(release): fold rc.6 content
  • 6ecbc26 chore(release): v1.16.11
  • 26eff81 chore(release): v1.16.11 changelog
  • 36a1580 chore(send): probe only under --wait, drop the dead gate wrapper
  • aa00ef7 chore(tasks): mark the preview-scale plan done
  • 0e348cd chore(web): bump sw cache, record group parity rows, refresh baselines
  • 8266d43 ci(deps): auto-merge Dependabot patch and minor bumps on green CI
  • 805694a ci(go-test): name failing tests and flake status in the job summary
  • 08757d3 ci(hooks): keep the undo red proof independent of the search golden
  • 7f358d8 ci(hooks): warm the cleanup image from every checkout it tests
  • c3d40a1 ci(lighthouse): recalibrate total-byte-weight budget to 387000
  • 1a96a45 ci(python-compat): run the stage report tests
  • 09974c4 ci(runtime-health): anchor the perf red recipe by content, not history
  • e9c2f5d ci(stalled-notify): reconcile against the live PR head and all gating runs
  • 19cb5f9 ci(structure): advisory sentrux delta on PRs
  • 152c642 ci(workflows): surface PRs stuck in action_required
  • 6229af3 ci: apply container VCS setting to the checker invocation too
  • fdefdc4 ci: clear the release eval gate and the non-required checks after v1.16.11 (#2305)
  • 61066e1 ci: distinguish fleet measurement failures from advisory regressions
  • 3a17e38 ci: support disposable Docker checks across runner ownership
  • 272c3a5 docs(omp): advertise TUI fork support
  • a75f202 docs(results): rc.5 verification report
  • b48bb18 docs(results): rc.6 verification report
  • 0795b5c docs(send): describe what verifyPromptConsumedAfterLaunch actually checks
  • 4d798c2 docs(skills): describe Codex project support
  • c163aa0 docs(skills): refresh agent-deck/fleet/session-share against v1.16.11-rc.2, add evals
  • 96140df docs(tui): give the copy keys their own home and reconcile the shortcut reference
  • c23ce6f docs(ui): describe explicit embedded session selection
  • 3fdae93 docs(ui): scope explicit selection to embedded pane switching
  • 2a023a5 feat(cli): add --primary window targeting to session output and send-keys
  • 1b6136a feat(cli): add bash, zsh, and fish completion scripts
  • 6b451e5 feat(cli): expose codex_session_id and resolved_codex_home in JSON output
  • eb26bbf feat(conductor): add pi as a supported conductor agent runtime
  • 15ef629 feat(conductor): record per-PR stage timestamps as JSONL
  • e710abf feat(conductor): ship the GitHub event watcher as an opt-in daemon
  • aa57898 feat(config): add send_transport key
  • 16a0ce6 feat(config): directory-local .agent-deck/config.toml overrides for [worktree]
  • 2fbfb5b feat(ctxinspect): session context — measure a session's fixed startup overhead
  • b0dba68 feat(health): per-session event journal and session metrics
  • 4d9ff2c feat(hooks): wire the accounts usage feed into every slot's statusLine
  • e2fa154 feat(inbox): inspect unresolved records without consuming them
  • 4d00418 feat(inbox): manage dead-letter records from CLI and TUI
  • 7168f13 feat(inbox): manage dead-letter records from CLI and TUI
  • 6fc5255 feat(omp): add OMPSettings config, command/env-file overrides, icon
  • 293ff43 feat(omp): add omp command builder and launch/restart dispatch
  • 55f9ebd feat(omp): add omp session forking
  • 3906602 feat(omp): register .omp/skills as omp's project skills directory
  • 92104bb feat(omp): register Oh My Pi tool detection and status patterns
  • 271d1b5 feat(omp): wire omp into TUI icon/color/setup-wizard/visibility surfaces
  • 80a1c49 feat(pi): consume hook status for pi sessions and add pi-hooks installer
  • de9b285 feat(quota): add the Z.ai/GLM provider and agent-deck usage --refresh
  • ca45db4 feat(quota): report Claude subscription quota via agent-deck usage
  • db47aa4 feat(remote): show remote agent-deck version and live stats in the preview panel
  • 3d35dc6 feat(send): deliver to Claude targets over the messaging socket
  • 8fe8a9b feat(send): report --wait on a busy socket target as explicitly unverified
  • 7295141 feat(session): alternate-session toggle and MRU walk (#2058)
  • 307f8c2 feat(session): cap agent-boundary output
  • 80cf775 feat(session): context-level controls (none/primer/full) and session primer inspection
  • fc72fa2 feat(ui): add accounts field to remote preview panel and header
  • ed64702 feat(ui): add embedded terminal layout
  • 3def49f feat(ui): configurable sidebar density for the embedded layout
  • f55d409 feat(ui): fzf-style fuzzy path suggestions in session and group dialogs
  • d633cc5 feat(ui): kill tmux windows from session sub-tabs with d
  • 97e9092 feat(ui): make remote preview panel and header content configurable
  • af611d4 feat(ui): opt-in ssh field (who is connected over SSH) for preview and header
  • 0e02d24 feat(ui): source tool icon and color from the tool registry
  • f529968 feat(ui,cmd): golden-frame test and CLI parity for kill-window confirm
  • a1e0a3f feat(web): add selectedGroupSignal with mutually exclusive setters
  • 0c5b431 feat(web): compute group status breakdown
  • ddd901e feat(web): derive new-session defaults from group context
  • ac0cb3f feat(web): derive sidebar rows from lifted filter and collapse signals
  • 67285a1 feat(web): give a selected group a URL
  • 63718f1 feat(web): navigate group headers and collapse them from the keyboard
  • b18bef4 feat(web): project group defaultPath, name and level into the client model
  • c834e81 feat(web): select groups from the sidebar, chevron owns collapse
  • 0d8787c feat(web): ship group defaultPath in the menu snapshot
  • d09b559 feat(web): show group stats in the main area when a group is selected
  • 31a4841 feat: add an isolated functional build check suite
  • 6ec836d feat: add isolated synthetic fleet performance suite and baseline
  • 48573a1 feat: add local runtime health metrics and budgets
  • b4b17f2 feat: add local runtime health metrics and budgets
  • 212deb8 feat: add muse code cli as builtin tool with resume support
  • bb213d5 feat: install verified local builds on remotes
  • a84dd31 feat: negotiate remote creation fields and forward dialog options
  • 78f8c3e feat: switch account and harness for remote deck sessions
  • f04e685 fix(#1981): bound consecutive heartbeat skips + tighten picker detector
  • c5217c5 fix(#2080 review): anchor picker detection on the last footer in scrollback
  • fa3fb29 fix(#2080 review): gate heartbeat on hook-driven busy/interactive state
  • f8bb30d fix(attach): dismiss tmux's config-error view so the attach pane is live
  • 8b95356 fix(build): share truncateCell after main rebase
  • d440f6c fix(ci): apply maintainer's review-hold revisions to structure advisory (#2148)
  • 369a561 fix(cli): accept "shell" as an alias for a plain shell session
  • 2ce180b fix(cli): confirm before reconciling a session that is still running
  • 9a78188 fix(cli): defer to non-TTY refusal instead of shadowing it
  • ac626d0 fix(cli): list --json prints [] when there are no sessions
  • 90a3c61 fix(cli): notify-daemon and remote add still mutate on bare trailing help
  • 47de41e fix(cli): overview names its reconciliation line and lists a small inventory
  • a80dc9e fix(cli): refuse to open the TUI for an unrecognized command on a non-TTY
  • 6e4d891 fix(cli): remote sessions --json prints [] instead of null for zero sessions
  • 0ee2428 fix(cli): treat bare trailing help as help for creds-refresh (#2025)
  • ee7bd31 fix(cli): validate --group/--select before the no-TTY gate, not after
  • c2ecfb1 fix(cmd): release the embedded terminal on every exit, and say what Enter does
  • 2b6dd82 fix(cmd): structured JSON on session window close refusals
  • 178314a fix(cmd): wait for terminal restoration on concurrent exits
  • c04fac6 fix(codex): recover from an empty hook status file and log a refusal
  • bc7709b fix(conductor): correlate late Codex replies
  • a2b4156 fix(conductor): make shared AGENTS.md agent-neutral for codex/pi collision
  • 8f9d1f8 fix(conductor): recognise the v1.10.x migration generation too
  • 58b597f fix(conductor): release waits and migrate guidance
  • 5d3193a fix(conductor): retain edits across generated template migration
  • 844dbc1 fix(config): bound dir-local worktree values to their own file, not the shared workspace boundary (#2093 P1 round 3)
  • de230c2 fix(config): bound untrusted dir-local worktree location/template (P1)
  • 98a4d1d fix(context): flag over-limit readings, mark inferred windows, fail closed on the conductor /clear (#2026)
  • 6e4b084 fix(context-levels): correct precedence docs, add config/CLI reference, gate remote session primer on older controllers
  • 36e902c fix(ctxinspect): address adversarial review findings
  • 6c790f6 fix(ctxinspect): reject available-with-cost by its real contract, name the drifted file, rename the footer
  • 17b5466 fix(dead-letter): hash raw scanner bytes for purge/retry matching
  • ddcad7d fix(dead-letter): hash raw scanner bytes for purge/retry matching
  • 7036b6d fix(dead-letter): reconcile carry/2230's DeadLetterRecord with #2111's (#2062)
  • 345cbcd fix(deadletter): exclude _unowned from purge; add --json to retry/purge
  • 01216e5 fix(done): accept CLAUDE_CONFIG_DIR, account slots and worker-scratch as transcript roots
  • de9e52d fix(done): accept conductor and group config dirs as transcript roots
  • 5266ae7 fix(hooks): handler checks the installed Stop form before draining
  • 6fc6fd4 fix(hooks): lossless settings.json rewrite, pin only known install dirs, read-only status
  • eff1983 fix(hooks): pin Claude hooks to the installing binary; status reports PATH shadow and version mismatch
  • 87e668c fix(hooks): pin a stable binary path, self-heal stale entries, keep draining marker-less Stop hooks
  • bdd44a4 fix(hooks): usage feed wrapper never fails closed; refuse slots it cannot wire
  • 9ae3e6a fix(inbox): finish discarding an oversized line across buffer refills
  • 0c8dc33 fix(inbox): take the producers' flock in the drain and every sweep; keep _unowned out of the TTL sweep
  • bc6f58a fix(inbox): tolerate corrupt and oversized JSONL records (#2057)
  • 7563cba fix(launch): cover the --no-wait verifier's own truncation blind spot (#2079)
  • eafc6bd fix(launch): pre-accept Claude Code's folder-trust dialog on launch
  • 365d3df fix(launch): report spawn death instead of paste-buffer error when pane died
  • eb3ccb9 fix(lint): clear the golangci findings on the release branch
  • 769d1eb fix(lint): mark the two remaining os.Environ pass-throughs
  • db9111a fix(notifier): deliver to any registered parent; child_removed is log-only; inbox drain exit 4 only with --strict
  • ffb0efd fix(notifier): nudge subprocess timeout covers the send lock wait
  • e547f25 fix(notifier): re-probe the parent's status in the wake-nudge idle gate
  • d87b48e fix(omp): add omp to Settings dropdown, Tool Visibility Panel, and New Session preset list
  • b9acf59 fix(omp): add omp to Web UI Skills pane tool-support list
  • 88ced0a fix(omp): close verification gaps
  • 790882a fix(omp): close web-UI picker gap, sync fork-support docs, fix doc comment, add approval-mode test
  • a48d524 fix(omp): complete readiness and model support
  • 9a9810d fix(omp): honor CLI fork and configured command
  • 7a76fe7 fix(omp): implement OptionsPanel interface on OMPOptionsPanel
  • 6294826 fix(omp): sync docs-table test and golden frames with rc.6
  • 9d12c91 fix(omp): unify fork capability gates
  • a0a94a6 fix(omp): wire native --append-system-prompt identity injection, regen stale goldens
  • d575e8f fix(output): preserve UTF-8 through ANSI stripping
  • f449379 fix(pi): route every hook-status gate through the registry; order pi's emit
  • 8a4f866 fix(procowner): close the review holds on the #1873 receipt: identity-checked walk, pidfd signals, fail-closed unverified spawns, deterministic tests
  • 27ad3b9 fix(procowner): refuse rather than raw-kill after a failed pin; mark a live pane whose pid is unreadable; enforce the receipt handshake in tests
  • b357170 fix(release): merge fixups for the rc.8 composition
  • ce17746 fix(remote): close review gaps in poll lifecycle and TUI state
  • 2ff44c9 fix(remote): forward 'session context' through the remote passthrough allowlist
  • fdaeded fix(remote): forward skill detach and skill attached
  • 43250cd fix(remote): honest version/stats labels when builds differ but release matches
  • fcc8850 fix(remote): keep remote sessions --json a bare array by default
  • f7c649e fix(remote): keep polling and SSH cleanup nonblocking
  • 87cf89e fix(remote): preserve cancellation context and fetch invariants
  • ae1ccc7 fix(remote): preserve legacy creation on older remotes
  • 3f166a1 fix(remote): preserve legacy creation on older remotes
  • f7f4548 fix(remote): refuse legacy multi-repo before creation
  • d870e41 fix(restart): import the transcript from another config dir instead of launching --session-id blank (#2269) (#2)
  • 6ec849a fix(send): address turn delivery review findings
  • 38a097d fix(send): bind wait and stream output to turn identity
  • b3ca5e9 fix(send): compare paste marker with hard line breaks, not line count (rc.3 P1)
  • 3599655 fix(send): consult the hook busy status before interrupt recovery
  • 3cba92c fix(send): count trailing paste-marker breaks; guard session send (rc.4 item 4)
  • c14ae7a fix(send): detect a truncated launch --message-file paste before submitting it
  • 13da96d fix(send): make the busy probe tri-state and read the hook-driven status
  • 053b2e6 fix(send): make the socket transport opt-in, defaulting to tmux
  • 5b52496 fix(send): recognise the queue placeholder as the composer element; keep empty attributed replies (#2273 round 2)
  • a290bcc fix(send): refuse a truncated transcript instead of replaying from offset 0
  • dc54fde fix(send): report a queued delivery on token movement and bind --wait/--stream to the turn (#1978, #2043 round 2)
  • e86b715 fix(send): report a socket write as unacknowledged, not submitted
  • e70571e fix(send): report queued only on Claude's acknowledgement; harden turn identity and stream boundary; attribute bridge replies (#2273 review)
  • 0e605eb fix(send): require the startup-window prompt to persist before typing
  • 435b8ca fix(send): resolve the socket target per instance, not per session ID
  • afe7e0b fix(send): restart the startup-prompt run when a poll cannot see the pane
  • 114ab24 fix(send): serialize concurrent sends to one target with a per-target lock
  • 0a5f127 fix(send): tag every socket --wait as unverified, including the idle path
  • 8355459 fix(send): three-outcome delivery verdicts; never "NOT delivered" without evidence (#1793)
  • 6dd1f7e fix(session): a wrapper owns the pane, so type no export line into it
  • 7fdd7a4 fix(session): address round-two output findings
  • 9541716 fix(session): bound distinct pending turns
  • 66f8973 fix(session): close ownership review gaps
  • 2837fd4 fix(session): consult hook completion before classifying a vanished pane as error
  • 6c179d9 fix(session): decide "tool not found" in the pane and prepend only safe dirs
  • 859d861 fix(session): decouple session-event journal writes from the daemon hot loop
  • c9d327a fix(session): document the output budget, bound the read log, keep ASCII fast
  • 1af3f4b fix(session): don't let #2303's own-file gate block /clear rollover recovery
  • 7e97a4c fix(session): find Codex turns beyond output tail
  • 7862c88 fix(session): give plain shell sessions the agent-deck environment and identity file
  • c5bc21e fix(session): hand the attribution goroutine its logger and prober
  • 920dcae fix(session): harden legacy Codex identity hydration
  • 85d0448 fix(session): hydrate legacy Codex identity before send
  • 600fca8 fix(session): journal session send --wait --json/--stream after their own verdict
  • d3f4c08 fix(session): journal session send after its verdict, not before
  • 46a478f fix(session): let a replacement take the replaced row's group slot
  • 931f02e fix(session): make the pending-turn bound correct and observable
  • 35366ce fix(session): make the receipt CAS cross-process and cancellation authoritative
  • 3b24991 fix(session): normalize Codex lock timeout
  • 4af87a4 fix(session): own wrapped process trees with a spawn-time receipt (#1873)
  • a887905 fix(session): persist restart to owning profile
  • 2d1ef04 fix(session): persist restart to owning profile
  • 5d6197d fix(session): preserve Codex turn identity for deduplication
  • ff2f239 fix(session): preserve Muse resume IDs as literal arguments
  • e8b1d76 fix(session): preserve distinct Codex completion turns
  • 67c4b27 fix(session): prevent cross-session transcript fallback
  • e14a0f2 fix(session): put the user's bin dirs on every spawned session's PATH
  • f98e5b2 fix(session): rebase the #1873 ownership receipt onto v1.16.9 and prove the pane-loss contract end to end
  • 53162d3 fix(session): reload the resolved profile before computing cross-profile order
  • 01f01df fix(session): retain every distinct completion turn
  • 3b5fb75 fix(session): retain watcher lifecycle tracking
  • e03b2ed fix(session): skip accepted-turn poll on non-wait Codex sends
  • b0f017e fix(session): skip bare -c when no transcript exists for continue mode (#2301)
  • 9a91c74 fix(session): stop leaking unrelated transcripts into session output
  • f6fe4df fix(session): stop misreporting a user turn's string content as a parse gap
  • a008861 fix(session): treat an indeterminate session probe as unknown, not absent, when the pane pid is unreadable
  • dcf6dc5 fix(session,health): bound the Claude project dir lookup; report append close errors
  • 409ea44 fix(status): accurate lights and substates for the six audit defects (A–F)
  • b9deda0 fix(status): round-2 review findings on the status-light fixes
  • d618882 fix(status): round-3 review findings on the status-light fixes
  • 0c4b9e9 fix(status): round-4 review findings on the status-light fixes
  • d5665f1 fix(status): stop hook-less codex sessions sticking at running in fresh processes
  • da653c1 fix(switch): persist account atomically, archive stale destinations, unblock retries after a failed journal
  • 7ffc6d7 fix(sysinfo): run who under LC_ALL=C
  • 4aeb699 fix(test): rename ctxinspect assistantLine helper to avoid collision after rebase
  • 007ba33 fix(test): update health.Start call sites for the binaryVersion param
  • 4836da5 fix(test): use testutil.IsolateHome/IsolateTmuxSocket in ctxinspect TestMains
  • e40fca9 fix(tmux): apply aggressive-resize to windows opened by hand (#2259)
  • 7bf7851 fix(tmux): apply the window policy to hand-opened windows without shadowing user hooks (#2259)
  • b998b15 fix(tmux): assert the pane's own cwd instead of trusting the server's (#2214)
  • 98511b3 fix(tmux): bound pane respawn mutation
  • f34e539 fix(tmux): bound stalled startup handover
  • 16d7243 fix(tmux): bound the viewers cache, honour [tmux.options] on every attach path
  • a5c2426 fix(tmux): cd-assert before the pane-cwd guard on the shell-tool path (#2214)
  • 4567802 fix(tmux): detect pi 'Working' banner as busy in headless status probes
  • e538e6e fix(tmux): distinguish an open interactive menu from idle-at-empty-prompt
  • 9906634 fix(tmux): make last-window kill guard atomic and bounded
  • 25fdff6 fix(tmux): recover startup timeout status safely
  • 042e8a3 fix(tmux): retain sizing policy for Deck shell windows
  • 4ceb119 fix(tmux): scope startup timeout to pane generation
  • 90947f7 fix(tmux): shared attach follows the active viewer; viewers indicator
  • abf3255 fix(tmux): validate timeout generation on return
  • e6308f1 fix(tmux): validate window policy overrides, respect a foreign hook slot, add tmux-hooks uninstall (#2259)
  • 9ca1125 fix(ui): activate every embedded row by mouse, and page by drawn height
  • b7a7539 fix(ui): address embedded terminal review feedback
  • 12dd480 fix(ui): adopt upstream VT hyperlink correction
  • ee82b4f fix(ui): align embedded navigation with rendered state
  • 7de71ab fix(ui): apply a saved embedded_terminal change at the next launch
  • 069b529 fix(ui): cap OSC 52 clipboard payloads before decoding
  • 5429c17 fix(ui): correct settingsCount after carry-e/2118 rebase conflict
  • 87dd407 fix(ui): discard unread input after embedded writer failure
  • d286e20 fix(ui): fit the remote preview stats block to the pane; scalable accounts table
  • 0c37e63 fix(ui): force UTF-8 on the embedded tmux client
  • cb31325 fix(ui): forward embedded terminal OSC 52 selections to the host clipboard
  • d0323a4 fix(ui): give remote-group header rows a width budget (finding 12)
  • ee518d1 fix(ui): keep keys typed while the embedded client connects, off the router lock
  • 4c2f8a7 fix(ui): keep the remote's error record when a dialog-created session dies at spawn
  • 4f4cd31 fix(ui): keep the sidebar viewport still while the cursor moves up
  • 9fdead7 fix(ui): kill-window confirm re-verifies tmux window identity at confirm
  • 3a70761 fix(ui): legacy remote's New Session dialog offers all built-in tools
  • ff24b1c fix(ui): make the split divider grabbable, and stop it sticking
  • 609dd85 fix(ui): never re-prompt for hooks a CLI install already made
  • d9936fc fix(ui): preserve custom tool identity and command override during quick-create (#2199)
  • 87d9827 fix(ui): preserve custom tool identity in quickCreateSession (#2199)
  • 0d4c1c9 fix(ui): preserve raw input across embedded attach generations
  • 37748ac fix(ui): preview clauses never overflow a continuation line; single-line fields share the row budget
  • c84a405 fix(ui): recheck embedded input failure after raw reads
  • 70e5760 fix(ui): refuse to kill a session's last window
  • 8e535e2 fix(ui): repair 9 rendering defects from the 2026-09-18 live UI audit
  • 78addcb fix(ui): resize the embedded PTY when dashboard chrome changes
  • 5eb1a33 fix(ui): resolve executable command in quickCreateSessionAt for custom/cursor default tools (#2199)
  • 2704bc1 fix(ui): strip ANSI before curated-footer key/label substring checks
  • bee821f fix(ui): unblock terminal replies before waiting for output
  • 7f5deed fix(ui): width-aware header layout, never truncate a field mid-text
  • fb76a47 fix(ui): wire ToolColor into GetToolStyle, the actual row-render path (#2136)
  • a5cdff9 fix(ui): wrap the Verify tab's measured-figure block instead of clipping it
  • 7fb056c fix(ui,tmux): refresh the whole window cache after a kill, not just the killed row
  • cece464 fix(ui,tmux,cmd): bind kill-window to the cached row's window id; CLI needs --yes
  • ef731c8 fix(usage): bare statusLine wrapper passes AGENTDECK_PROFILE through untouched
  • 8bdf330 fix(web): add the stopped status chip, bucket chip matching
  • a4c80de fix(web): address PR #2047 maintainer review
  • 86e8333 fix(web): block shortcuts behind overlays, guard archived request order
  • 72f3346 fix(web): close final-review gaps in group-selection parity
  • bf95903 fix(web): cold group/session links render, drop the Tab focus trap
  • 5bfbf1f fix(web): create sessions in the selected group, prefilled from its context
  • 9bda350 fix(web): drop the group panel's create button, match TUI's Name field
  • db2bc70 fix(web): group panel shows archived sessions, matching the TUI
  • 3b95ee2 fix(web): group stats panel status dots are invisible (no matching CSS rule)
  • bdca321 fix(web): preserve SSE retries after network loss
  • d55909a fix(web): recover closed SSE streams after outages
  • 47cbffa fix(web): size the shell by the measured viewport so iOS keeps the tab bar and the keyboard clear
  • 52b6231 fix: address PR review comments on shell completion
  • fbe4276 fix: address review feedback on muse builtin detection, resume, and discovery
  • ef53722 fix: aggregate counts, remote model seeding, and outdated-flag audit findings
  • 0167ec8 fix: allow remote health reports and validate page size
  • 48f3aca fix: allow remote health reports and validate page size
  • 6574d29 fix: count ownership probes and verify hydrated status budgets
  • 46eb059 fix: count ownership probes and verify hydrated status budgets
  • 2d4d386 fix: defer targeted hook cleanup outside TUI deletion handlers
  • 2a7d439 fix: derive remote message file parsing from creation flags
  • 0cb1f95 fix: follow build environment policy and align summary golden
  • ff1ad56 fix: gate heartbeat sends on open picker or unsent composer draft
  • e9c087b fix: guard remote creation state and roll back failed startup queries
  • a18007f fix: health/doctor session_count on the tracked set, drop orphaned comment
  • b96aa6b fix: keep Codex ownership refresh outside status locks
  • 67060e5 fix: keep Codex ownership refresh outside status locks
  • c624e27 fix: keep Codex web status in sync
  • af24dc2 fix: lint (gosec index shape, unused test helper)
  • f234a14 fix: make remote creation argument bounds explicit
  • 51895de fix: mark-unread (u) no longer reverts to gray on the next reload
  • f771de8 fix: nil yolo inherits global config, tmux detection executable-only
  • bf88f7a fix: order undo restart after deferred hook cleanup
  • d2f295f fix: preserve edits during generated asset publication
  • f2e32da fix: prevent multi-client tmux clipping
  • b788589 fix: prune orphan hook artifacts and bound kqueue watcher descriptors
  • 8cdd330 fix: read current creation registry snapshots without initialization
  • 6670ed7 fix: reject incomplete functional membership responses
  • f49623c fix: report the committed source archive on a recovery-required switch failure
  • f7c02f5 fix: require live completion truth and atomic asset migration
  • 654d874 fix: require valid cleanup evidence and removed completion panes
  • 142fbcd fix: resolve #2301 transcript check across account slots, protect header badge from base-stats overflow
  • fbd1537 fix: retain fresh remote probes when cache writes fail
  • 4f6b512 fix: run automatic hook pruning once per data root
  • e329e61 fix: session move migrates history across a --group config-dir boundary (#2086 follow-up)
  • 3a6ee82 fix: session start acknowledges remain-on-exit sessions that died fast (#2202)
  • 1fcc3d9 fix: session-list title width priority (#2201) and session move history migration (#2086)
  • 0037be5 fix: share Codex ownership scans across status passes
  • fab0431 fix: simplify creation parsing and load the remote catalog in tests
  • e1945dc fix: support atomic generated migration on Darwin
  • 14a85ea fix: sustained health footer warning, remote drain help text, sample binary version, identity skills hint
  • a091eac fix: use fixture path helper and enable measured Linux baseline comparison
  • c077791 fix: validate remote switch selectors, refuse missing target harness before any mutation, report source archive exactly
  • f8d66e3 merge: fix/final-polish-20260918 into rc.6
  • 386dc18 merge: fix/issue-verify-gaps-r2-20260918 into rc.5
  • 9cf0702 merge: fix/messaging-20260918 into rc.5
  • b4912db merge: fix/remote-attach-20260918 into rc.6
  • acf7245 merge: fix/remote-spawn-20260918 into rc.5
  • 9961390 merge: fix/small-followups-20260918 into rc.5
  • 44ce30c merge: fold PR #2078 into rc.3 (send: startup-window prompt must persist)
  • 481ae47 merge: fold PR #2078 into rc.3 (send: startup-window prompt must persist)
  • 7521699 merge: fold PR #2103 into rc.3 (web settings visual baseline, #2056)
  • e7bfba0 merge: fold PR #2103 into rc.3 (web settings visual baseline, #2056)
  • 108e45d merge: fold PR #2144 into rc.3 (conductor stage timestamps JSONL)
  • 2bef123 merge: fold PR #2144 into rc.3 (conductor stage timestamps JSONL)
  • b31caa3 merge: fold PR #2211 into rc.3 (mark-unread)
  • 8c56992 merge: fold PR #2211 into rc.3 (mark-unread)
  • 2188e4a merge: fold PR #2217 into rc.3 (launch: report spawn death; fixes #2215)
  • 4dc4252 merge: fold PR #2225 into rc.3 (docs skills)
  • 5a91562 merge: fold PR #2225 into rc.3 (docs skills)
  • 162fa2a merge: fold PR #2248 into rc.3 (web iOS viewport)
  • 29c9ffb merge: fold PR #2248 into rc.3 (web iOS viewport)
  • fd7eefb merge: fold PR #2257 into rc.3 (--primary window targeting)
  • 45410dc merge: fold PR #2257 into rc.3 (--primary window targeting)
  • c7d2eff merge: fold PR #2282 into rc.3 (deps upload-artifact)
  • c238f00 merge: fold PR #2292 into rc.3 (functional check suite)
  • d925b32 merge: fold PR #2293 into rc.3 (fleet perf suite + baseline)
  • d6bc1d0 merge: fold PR #2294 into rc.3 (group activity aggregation)
  • e58d6a6 merge: fold PR #2294 into rc.3 (group activity aggregation)
  • 6832c73 merge: fold PR #2300 into rc.3 (replacement takes the replaced row's group slot)
  • 4f71960 merge: fold PR #2300 into rc.3 (replacement takes the replaced row's group slot)
  • 54c45d3 merge: fold carry/2070 into rc.3 (#2070)
  • 5c28c73 merge: fold carry/2080 into rc.3 (#2080, closes #1981)
  • a513a47 merge: fold carry/2147 (web panes/feature routes registry, closes #2137)
  • 08a4437 merge: fold docs/skills-refresh-20260918 (skills + evals against v1.16.11-rc.2)
  • 978b64f merge: fold feat/session-metrics
  • ba6fce7 merge: fold fix/2102-launch-trust-seed into rc.3 (fixes #2102, #1892)
  • ba65e79 merge: fold fix/issue-2079 into rc.3 (#2079)
  • 718e7ec merge: fold fix/issue-2091 into rc.3 (#2091)
  • 5e2fbe9 merge: fold fix/issue-verify-gaps-20260918 (#2025, #2136, #2301, #2062 help pin, tests for #1892 #2185 #2223, header layout)
  • ce57d09 merge: fold fix/launch-truncation-20260918 (P1 paste marker regression, rc.3)
  • a7b7dd3 merge: fold fix/session-output-identity-2299 into rc.3 (#2299)
  • 758c0a6 merge: fold fix/status-lights-20260917 into rc.3 (status lights A-F, hook-lag, substate_detail)
  • 8efef81 merge: fold fix/tmux-server-cwd-2214 into rc.3 (#2214)
  • 1272467 perf(conductor): delete polling turns
  • 359cdec perf: aggregate group activity before walking ancestors
  • 090c1b7 refactor(cmd): simplify session window close CLI
  • 993aab4 refactor(health): share journal validation and nullable formatting helpers
  • 68c606f refactor(messaging): fold duplicated lock and env-prefix helpers
  • 020cd49 refactor(session): name the local prelude test, compute the shell export gate once
  • 0fb08d2 refactor(web): register panes and feature routes in one table each
  • b5bd358 refactor: extract PasteTruncationCheck shared by launch and session-send guards
  • b71a272 refactor: simplify #2214/#2062/#2148 changes (code-simplifier pass)
  • cb57007 release: v1.16.11 (#2304)
  • 61321b2 test(cli): pin inbox dead-letter help to the actually-wired surface (#2062)
  • 57ba1fc test(conductor): bind migration fingerprints to recovered source
  • 46a1a9c test(conductor): exercise the real Discord on_message for best-effort typing (#2205)
  • a5d648b test(conductor): pin migration recognition against the templates that shipped
  • 9f93016 test(conductor): typing failure no longer aborts Discord reply path
  • 80b340d test(ctxfixture): add a codex, unanchored fixture case
  • cd517c9 test(eval): give the embedded evaluator a title that fits the compact rail
  • 56da969 test(eval): keep the Hermes hooks prompt out of the embedded and classic evaluators
  • f32feca test(eval): parse tmux client widths with printable separators
  • 626b111 test(inbox): follow the collapseTurnRetries rename in pre-existing tests
  • 49f276a test(inbox): remove the #2062 not-wired gap detector, retry/purge now land
  • a734c09 test(omp): scope session-dir host-path check past identity injection
  • 18be841 test(remote): make shutdown regression observations race safe
  • e7566d0 test(session): compile identity boundary assertion
  • 10a2a21 test(session): cover completion-scoped fallback edges
  • 1c5e774 test(session): document and verify Muse trust policy controls
  • 638ba7f test(session): give each Codex signal path a positive control
  • 0997779 test(session): locate Claude matrix transcript
  • 617b15f test(session): reproduce distinct completion loss
  • 3382e84 test(tmux): verify respawn mutex release
  • 364f31e test(ui): deterministic clipboard cancellation, bounded VT waits, remote-row notes
  • cee6c62 test(ui): document RemoteSession inapplicability for quickCreateSession (#2199)
  • 3de0ff3 test(ui): exercise production embedded UTF-8 request construction
  • 3c6a30a test(ui): give every kill-window test its own tmux socket
  • 6d835da test(ui): join decoder input before closing its pipe
  • 9a8ae82 test(ui): pin the rc.3 dialog flow for a remote spawn death
  • 5b744a2 test(ui): regenerate New Session goldens for the merged pill layout and omp harness
  • 0f8d750 test(ui): require explicit embedded switcher choices
  • c1c3695 test(ui): update hook-cleanup golden frame for the search box fix
  • 4d8b3c2 test(ui): verify embedded UTF-8 on the updated contributor head
  • 8c2a7d7 test(ui): verify review fixes and hyperlink rendering
  • 991ae1e test(web): add keyboard-only guard for n-prefills-from-focused-group
  • d70c208 test(web): baselines from the CI platform, not macOS
  • 209ee4b test(web): refresh settings drawer visual baseline (#2056)
  • a50015d test(web): regenerate shortcuts-dialog baselines on the real browser

Full Changelog: v1.16.10...v1.16.11

Don't miss a new agent-deck release

NewReleases is sending notifications on new releases.