Releases: ccch1mneyyy/dsh-TUI
Release list
v0.8.2 — 思考折叠 · 长会话性能 · 渲染修复
思考体验
- thinkingFold:默认 2-3 行动态预览(恒定 3 行不跳高),/settings 可切"展开至轮末"
- 折叠提前到答案首 token / 工具调用——上翻不再有未折叠残影
- 历史思考查看:Ctrl+T 轨迹视图 Inspector 全文
性能(长会话越聊越卡 → 根治)
- 流式延迟 p95:124/208/217ms → ~11ms 全平坦(175/700/2333 行会话),>50ms 停顿 46 → 0
- 恢复大会话回放事件 -99%(4.5MB 会话 115,855 → 1,445 个事件)
- ink 行渲染三层修复:CharCache LRU、裁剪早退、CellRun 打包重放;挂载窗口钳制到终端视口
渲染修复
- 鲸鱼 logo / 表格 / 转录行滚动重复:收缩落位改锚定重绘,scrollback 原件不再被整帧重印,历史全程保全(不再依赖 3J 擦除)
- Ctrl+O 快速连按乱码 / 底栏重复:翻转时视口重锚,scrollback 零累积
- 恢复会话预置历史丢失:首帧全量上屏(回走差一错 + 合并渲染窗口丢行)
其它
- 恢复 #294 移除的已加载上下文面板:Ctrl+P 展开/收起
- 三路子代理审计修复 10 项:live 思考重建重复、NaN damage 毒化、anchoredPad 生命周期等
Full Changelog: v0.8.1...v0.8.2
v0.8.1 — /update 修复与上游 rc.7 对齐
修复
/update(#307 / #284 / #183 复燃)
- 死锁地板:拒绝把 0.7.0–0.7.1 设为安装目标——该区间代码层硬注入
tuiWorkspaces,旧全局启动器 patch 下启动即永久 pending(「更新后无法启动」的实体);--latest兜底装完后同样终点检查 - 镜像双检:配置 registry 之外并行查 npmjs 官方 latest,滞后时明确提示(装成 0.7.3 而非 0.8.0 的根因)
- 盖戳时机:
DSH_TUI_UPDATED_FROM改在 pnpm 运行前读取,消除每次成功更新后的「版本未变化」误报 - 重启输入接管:/update 手递手前完全卸载旧进程 stdin——不再与重启的 TUI 抢键盘(输入全死 / 按三次才响应)
activity/status 日志污染(#153 复发)
挂载点强制 publish: false\:旧全局 patch 的显式 publish: true` 不再能盖在已更新的 profile 上污染共享会话日志。
上游 0.1.0-rc.6 → rc.7
- 消除 23 条 upstream drift 启动警告
- 根治 npm 11.17 arborist 安装崩溃(
Cannot read properties of null (reading 'children')):peer 范围与树上版本不再跨 rc 线分裂。此前临时解:--legacy-peer-deps
渲染
流式长输出单槽前缀缓存(长文本卡顿)、sticky 回溯保护与单向 clamp(滚动空白段)。
已知问题
- 流式输出时向上翻页的残影重复(鲸鱼 logo 重复渲染)尚未根治,下版本继续
升级与恢复
npm i -g @deepseek-harness-tui/dsh-tui@latest
dsh plugin --profile dsh-tui add @deepseek-harness-tui/dsh-tui@latest已因「启动死锁」无法进入 TUI 的安装,同样跑上面两条命令即可恢复(全局启动器与 profile 两份拷贝必须一起对齐)。
v0.8.0 — 双栏 diff 与设置屏
亮点
- 双栏 diff 视图(#245):宽屏 old/new 对照、词级高亮、窄屏自动回退统一式
- diff 语法高亮 + 工具卡衬底(#246):cli-highlight 按扩展名着色,全套颜色主题可覆盖
- diff 布局自定义(#249):/settings 里 auto/split/unified 三档可选,live 生效;含 #250 评审全量修复
- /settings 插件设置屏(#238 by @CikeSeven):插件声明式设置区块
- /debug-prompt(#243 by @fantastyprimary)、/skills 命令(#232)
修复
v0.7.3
修复与改进
- update:Windows 首次升级崩 pnpm 临时目录竞态时自动重试;升级后校验版本,半更新态给出明确修复指引(#225)
- skills:技能命令改走内核 /name 手势路径——
/pptx 做演示的参数不再被吞,与 web 端同一架构;无内核边界的组合保留直接注入兜底 - spinner:工作行显示真实上传 token 数(↑ input+cache)(#230)
- 社区修复:IME 预编辑锚定(#206)、Windows 批量按键与 Termy 输入(#208/#211)、JediTerm 渲染错乱(#221)、非 ASCII 主目录 cpSync 崩溃(#227)、问卷长列表窗口化(#229)、profile 框架包双实例根治(#207/#226)、unseen 计数上报(#224)等
v0.7.2 — 会话浏览器 + 梁神模式 + 启动死锁修复
新增
- 会话浏览器(#175):
/resume从八行选择器升级为全屏浏览器——按 header 分类(对话 / 回溯分支 / 子 agent 运行)、实时搜索、子运行折叠、空会话计数与清理、Tab 预览会话结尾;定界读取 + revision 索引,50 个会话与 5 个会话打开一样快 - 梁神模式(#192):
/preset新增liangshen——首轮请求保持 Minimal 双工具锚定,首次工具调用后开放完整目录,压缩后重新锚定;随包安装到用户 preset 根目录(与已有同名目录冲突时保留用户目录)
修复
- 启动死锁(#183, #194):tuiWorkspaces 移出代码层硬 inject——启动器与 profile 版本错位时降级为本地工作区运行时;反向错位由启动器明确拦截并给出对齐命令
- Text 的
backgroundColor支持原始颜色值(#166, #177) - 窄终端下「已加载上下文」摘要单行截断,不再与 Ctrl+T 提示穿插(#167, #178)
工程
v0.7.1 — 技能直调 + CLI 启动参数
v0.7.0 — 全屏会话轨迹、双语全量覆盖、合规清扫
亮点
- 全屏会话轨迹(#171,演进 #80):
Ctrl+T进备用屏——航迹波形、轮次账本、随光标检视、热点耗时排名;附带两个缩放重排修复 - 中英双语全量覆盖:字典审计 + 57 个新条目 + 硬编码 UI 文案清零;README/docs 双向同步(#164)
- /provider 向导(#132)、/theme auto 跟随系统(#133)、工作区切换 + 图片附件(#152)、Ctrl+V 跨平台剪贴板(#134)、Ctrl+X 外部编辑器(#136)
- 修复:DEP0190 启动警告(#148)、resume 后 {{model}} 组装报错(#155)、叠加 web profile 时 provider 冲突让位(#98 部分)、Windows Shift+Enter(#147)
- 合规:原移植模块全部 clean-room 重写
- 工程:CI 语言钉死 deterministic;lib/ 改为构建时生成(#173)
自 v0.6.1 起共 68+ 个提交。完整变更见 commit 历史。
v0.6.1
v0.6.1 Release Notes
fix
- fix(deps): dsh-working-activity ^0.2.4——类型注册根治未知事件连环炸 by @ccch1mneyyy in #119
dsh-working-activity 0.2.4 registers its activity/status session-event type into every reachable copy of KNOWN_SESSION_EVENT_TYPES at load (dual anchors: the plugin tree and the CLI tree — upgrade windows can load two physical dsh-session copies, and strict validators only consult their own). In processes mounting the plugin, logs carrying activity events now pass resume seed validation and persistence loads outright: new logs no longer need the compat repair's ignorable marking, and old unmarked logs pass too. The 0.5.1 repair and 0.6.0 tolerant title reader stay in place as defense-in-depth for consumers that do not mount the plugin.
Full Changelog: v0.6.0...v0.6.1
v0.6.0
v0.6.0 Release Notes
feat
- feat(session): /resume 选择器标题宽容读取 + /rename 手动改名 by @ccch1mneyyy in #118
The /resume picker now titles every session correctly: titles are read tolerantly straight from the session log (the strict persistence.load path used to throw on unmarked third-party event types like working-activity's activity/status, degrading those rows to the cwd basename). The last session/title event wins, so the new /rename command — which appends a session/title record to the live session — overrides the first-prompt auto title in both the status line and the picker.
Full Changelog: v0.5.3...v0.6.0
v0.5.3
v0.5.3 Release Notes
feat
- feat(i18n): 斜杠命令描述接入 i18n,随 /lang 中英切换(#41)by @FUSU123fusu in #95
- feat(keys): macOS 下 Ctrl 快捷键适配 Cmd(⌘)by @xyhuangjia in #97
- feat(interaction): plan review 决策面板 + 工具审批面板(对齐 CC)by @benjamin59cooper7581-afk in #100
fix
- fix(render): thinking spinner 残影——text-default emoji 量宽 2 实画 1(issue #72)by @wusai2333 in #101
- fix(compat): resume 修复保留 zstd 帧布局——不再把整份日志合并成单帧 by @ccch1mneyyy in #117
This release ships four community PRs: slash-command descriptions now follow the /lang switch with registry fallback for external commands, macOS shortcuts adapt Ctrl modifiers to Cmd, plan review gains a decision panel and tool calls a Claude Code-style approval prompt, and the thinking spinner no longer leaves residue from emoji width miscounting. It also fixes a v0.5.1 regression where the resume compat repair re-encoded session logs as a single zstd frame, violating the backend's header-frame invariant and emptying the /resume picker; the repair now preserves frame boundaries 1:1.
Full Changelog: v0.5.2...v0.5.3