dshseek

seek://news/dsh-tui-v0-20-0

dsh-TUI 0.20.0: Validation Line at 0.2.2-rc.2, Notifications Cover the Waiting States (Nov 12, 2026)

Nov 12, 2026release#release #dsh-tui #plugins← All news

TL;DR

Per the releases API, dsh-TUI v0.20.0 was published at 16:31 UTC on 2026-11-12, and npm's latest tag took 0.20.0 ten minutes later. Per its Chinese-language notes, the validated DSH line moves to 0.2.2-rc.2 while rc.1 and older stay in contract, system notifications now cover waiting approvals, questions and plan reviews, and unified Edit/Write diffs render as git hunks.

Six days after 0.19.0 comes the release that moves the validation line again: per the releases API (fetched 2026-11-12), dsh-TUI v0.20.0 was published at 16:31:57 UTC on November 12 with no pre-release flag, and per the npm registry the dist-tag latest took 0.20.0 at 16:41:56 UTC — dsh-TUI 0.19.0: Validation Line at 0.2.2-rc.1, One /update Aligns Three Layers (Nov 6, 2026) covered the previous step, which had moved the line to rc.1. The notes carry the same two-part shape as the line’s recent releases: hand-written Chinese sections and a generated What’s Changed list, twelve items this time, marked as generated from the configuration in .github/release.yml at v0.20.0.

The validation line moves to 0.2.2-rc.2

Per the notes, the main adaptation line moves to DSH 0.2.2-rc.2 while the peer range keeps 0.2.2-rc.1, 0.2.1-rc.5 and the older validated lines — users who stayed on the previous line can install this version directly — and versions outside the contract get a drift warning. The adaptation rides two PRs by @Lucas2011wastaken: #1951, opened 04:32 UTC and merged 08:50 UTC on release day, and #1959, opened 14:29 and merged 15:30, about an hour before the release published.

What rc.2 changes for a TUI, per the notes: Agent Teams are built into dsh-base and switch per session, with members as named subagents — the same named, multi-level collaboration DSH 0.2.2-rc.2: Worktree Review, Named SubAgents, DeepSeek Search by Default (Nov 11, 2026) recorded among that release’s new features; account notifications move to the new notification API, with server-side text cards, display and close receipts, expiry and language refresh; Search/Fetch settings split into separate fields; and the subagent catalog reaches v3, each subagent carrying a name and a description. The notes state the compatibility approach directly: the two host generations are probed by shape rather than gated by version, and old hosts keep the original bundle, the old settings form and the old bonus API.

Notifications cover the waiting states

The release’s own highlight heading, in the notes’ Chinese text, reads 通知覆盖所有等待状态 — notifications cover all waiting states. Per the notes, previously only task completion sent a system notification; now waiting tool approvals, waiting questions and plan reviews also remind, and the same 通知 switch manages all four kinds — /settings → 对话: taskNotifications defaults to unfocused, notifying only when unfocused, with always and off available. Approval bodies carry the session name, the tool name and the reason; question and plan-review bodies carry only the first question’s title and text, not the options, the details or the whole plan. The notes state the boundary just as plainly: these bodies come from the model or the host, stripped of ANSI, whitespace-collapsed and length-capped, but no desensitization is promised. Background sessions’ and subagents’ approvals and questions go to the panel without a toast, and plan review is the one kind that does not yield to an external notification plugin, because external plugins map only approvals and ordinary questions. The three PRs — #1929, #1930 and #1931 — were all opened and merged on 2026-11-10 by @Lucas2011wastaken, between 06:33 and 08:41 UTC per the PR records.

jumpBack, and a diff that renders like git

Per the notes, jumpBack (PR #1675 by @baobaolaodie) answers a completion toast with a jump back to the pane that raised it. It lives in /settings → 对话, defaults to off, and targets Windows Terminal: before sending, a read-only probe must match exactly one pane or tab title for the target to be committed; on click, five conditions are re-verified — same pane, keyboard focus held, the title still carries the marker, the window is foreground, not minimized — and any failure means no action. Layouts that cannot be verified — non-Windows-Terminal terminals, suppressApplicationTitle, a target in an unselected tab — send ordinary toasts. With the switch on, each toast runs about half a second later, and the first may wait for the helper to compile once. Per the PR record, the PR was opened on 2026-10-21 and merged on 2026-11-08, four days before the release; the notes route the approval, question and plan-review wiring through #1929, #1930 and #1931.

The second rendering change: per the notes, unified Edit/Write diffs no longer spread the old and new full text; like git diff they show the changed hunks with three lines of context on each side (PR #1957). Line numbers come only from real offsets the backend states explicitly — without an offset there is no @@ header, and multiple hunks separate with ⋯. Terminals of 110 columns or more keep the default auto behavior, which is the two-column view, unchanged.

Behavior changes to watch

Per the notes, on rc.2 the Agent Teams switch is /team on and /team off [force], saved per root session and kept across restarts; turning off neither stops subagents nor deletes tasks, and with subagents still running, off prompts first. Old hosts keep /plugin enable|disable @deepseek-ai/dsh-experimental-agent-team-profile, with /team only reporting and hinting. rc.2 removed spawn_teammate and the Team-version control tools, unifying on the named subagent, subagent_fork, send_message, interrupt_agent and list_agents tools; old tool calls in old logs remain readable. Historical team sessions in the rc.2 projection carry no member snapshot, so the panel falls back to the task board or subagent view, and recovered subagent sessions without a live runtime owner no longer show team.

Two more boundaries the notes draw. External DSH notification plugins that are enabled and active take over task completion, approvals and questions — plan reviews stay in-house — and queued native toasts re-check before showing, dropping the ones whose switch is off, whose session has changed or whose request is already handled. And jumpBack depends on the native toast channel (notificationMethod = windows, which the local Windows auto already selects), verified on real hardware only on Windows Terminal 1.24; higher versions and other terminals degrade to ordinary toasts.

Node: per the notes, DSH 0.2.2 requires Node 24.9 or newer, while this package still declares ^22.19 || >=24 — running a 0.2.2 host on an older Node is an upstream-unsupported combination, and the notes say to check node -v before upgrading.

Fixes in the batch

Per the notes: the inline main screen no longer stops mid-terminal for a frame after resize and idle re-anchoring, with the frame tail flush to the bottom (#1936); frames taller than the viewport no longer leave a blank band between transcript and status bar after shrinking (#1924); truncate text is measured as one row at fractional widths, so the narrow-terminal status bar no longer gains six spurious blank rows (#1922). Live Compact’s spine-checkpoint partial summaries become visible in live, replay and the session tree, without mis-applying the full-compaction context-composition reset — the partial summary keeps its heuristic composition and does not treat summary size as a net increment (#1943); the notes say the plugin-side joint acceptance is tracked on the plugin repo. Account notification lifecycle: closing a card fences in-flight polls initiated before the close, late responses do not revive cards or double-report displayed, display is reported only after the card actually reaches the screen, a language change updates the original card, subagent and team attribution follows the live owner, recovered detached sessions do not fall back to guessing the parent queue, unpinned Search/Fetch keys follow the actually-read route, and old hosts and external kernels keep the original UA attribution (#1959). Notification delivery: queued toasts cancel when the switch is off, the session has switched, or the approval, question or plan review is already handled, and late responses after a close do not re-pop the card (#1929, #1930, #1931).

Stamps and authors

Per the PR records, six of the twelve changes merged on 2026-11-10, one on 11-08 (#1675, opened 2026-10-21), and five on release day itself: #1943 at 03:24 UTC, #1951 at 08:50, #1957 at 13:41, #1959 at 15:30 and #1964 — the release-prep PR — at 16:26, one minute before the release record’s created stamp. The twelve items come from four authors: @Lucas2011wastaken eight, @MomentDerek two, @baobaolaodie and @T-Auto one each. The notes carry no New Contributors section, and per this site’s search of the repo’s PR records none of the four is a first-time contributor. The dsh-TUI release page is authored by the repo’s github-actions bot, as in the line’s recent releases.

More in this series

Official references