@crazyhappyone/dsh-tui 0.1.0-alpha.54 → 0.1.0-alpha.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/README.md +15 -17
- package/README.zh.md +15 -17
- package/dist/index.js +1823 -1575
- package/dist/schedule.js +121 -1179
- package/dist/zen-proxy.js +1 -1
- package/package.json +48 -40
- package/src/launcher.js +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.0-alpha.55 — 2026-10-26
|
|
4
|
+
|
|
5
|
+
Prerelease for DSH `0.2.1-rc.3`; npm channel: `next`.
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Admit the supported 0.2.1 prereleases in npm peer resolution; the previous range rejected rc.3 during an ordinary local install.
|
|
10
|
+
- Follow the official rc.3 release: pin runtime dependencies, source-launch defaults and the isolated validation lock to commit `1f81c047fc48fa190a683e469daa699857e9afe8`. The model picker continues to consume DSH's model registry, including the official API-key route's dynamic catalog. Official presets are unchanged.
|
|
11
|
+
- Preserve split ANSI/UTF-8 sequences across writes; coordinate transcript, caret, selection and notifications through a bounded output queue with slow-sink and failure recovery.
|
|
12
|
+
- Limit long-draft rendering to the visible window while retaining the entire draft. Reuse grapheme/line indexes, localize generation animation and invalidate runtime snapshots by dependency.
|
|
13
|
+
- Prepare exact history tails before background indexing, merge active presentation requests before expensive projection, and retire obsolete derived caches.
|
|
14
|
+
- CI and publishing now validate current sources in an isolated DSH clone, reject empty/incomplete test collection, and bind the packed artifact to source, dependency, toolchain and bundle hashes.
|
|
15
|
+
|
|
16
|
+
### Verification and upgrade
|
|
17
|
+
|
|
18
|
+
See [rc.3 verification](docs/upstream-rc3-2026-10-26.md) for the current checks and [output/performance evidence](openspec/changes/harden-tui-output-and-incremental-performance/verification.md) for the earlier implementation acceptance. Offline tests and synthetic PTYs do not establish live authentication or the original user's terminal-specific root cause.
|
|
19
|
+
|
|
20
|
+
Update with `npm install --global @deepseek-ai/dsh@0.2.1-rc.3 @crazyhappyone/dsh-tui@next`, then restart. Source mode uses `dsh-tui update`. The official profile, settings and credential services remain authoritative; no migration is required.
|
|
21
|
+
|
|
22
|
+
### 中文变更说明
|
|
23
|
+
|
|
24
|
+
- 跟进 DSH rc.3,统一运行时依赖、源码启动默认 tag 和隔离验证锁;模型列表继续通过官方服务读取,四份官方预设保持一致。
|
|
25
|
+
- 修复 ANSI/UTF-8 跨块输出,协调正文、光标、选区和通知写入,增加有界背压与失败恢复。
|
|
26
|
+
- 长草稿仅绘制可见窗口,保留完整发送内容;复用字素/行索引,局部更新生成动画,按依赖失效快照。
|
|
27
|
+
- 历史优先准备精确尾部,再分批索引;合并活动展示请求,回收过期派生缓存。
|
|
28
|
+
- CI 与发布使用同一完整验证链及产物来源证明。升级引擎与插件后重启;无需迁移配置。
|
|
29
|
+
|
|
30
|
+
[Full comparison](https://github.com/zhangyang-crazy-one/dsh-tui/compare/v0.1.0-alpha.54...v0.1.0-alpha.55)
|
|
31
|
+
|
|
3
32
|
## 0.1.0-alpha.53 — 2026-10-22
|
|
4
33
|
|
|
5
34
|
Prerelease for DSH `0.2.1-rc.2`; npm channel: `next`.
|
package/README.md
CHANGED
|
@@ -15,9 +15,9 @@ English | [中文](README.zh.md)
|
|
|
15
15
|
|
|
16
16
|
`@crazyhappyone/dsh-tui` is a terminal interface for DeepSeek Harness (dsh), shipped as a dsh **plugin bundle** plus a `dsh-tui` launcher. The package declares `dsh.bundle`, so dsh installs it into a profile like any other plugin; the launcher only automates that install and boots the profile. This repository owns the plugin sources (`tui/`, `tui-render/`). DSH continues to own agents, sessions, tools, persistence, providers, permissions, and profile assembly.
|
|
17
17
|
|
|
18
|
-
## Release 0.1.0-alpha.
|
|
18
|
+
## Release 0.1.0-alpha.55
|
|
19
19
|
|
|
20
|
-
This prerelease targets DSH `0.2.1-rc.
|
|
20
|
+
This prerelease targets DSH `0.2.1-rc.3`. It hardens split terminal output and slow-output recovery, bounds long-draft rendering, and incrementally prepares chat history. CI and npm publishing now share a source-bound build, test and package-verification chain. See the [changelog](CHANGELOG.md#010-alpha55--2026-10-26) and [verification](docs/upstream-rc3-2026-10-26.md).
|
|
21
21
|
|
|
22
22
|
```sh
|
|
23
23
|
npm install --global @crazyhappyone/dsh-tui@next
|
|
@@ -35,7 +35,7 @@ In `/settings`, Tab / Shift+Tab switches categories and restores each category's
|
|
|
35
35
|
|
|
36
36
|
## Table of Contents
|
|
37
37
|
|
|
38
|
-
- [Release and upgrade](#release-010-
|
|
38
|
+
- [Release and upgrade](#release-010-alpha55)
|
|
39
39
|
- [Changelog](CHANGELOG.md)
|
|
40
40
|
- [Terminal capabilities](#terminal-capabilities)
|
|
41
41
|
- [Screenshots](#screenshots)
|
|
@@ -75,7 +75,7 @@ The unscoped `dsh-tui` package belongs to another maintainer. This project publi
|
|
|
75
75
|
Install the official engine and the TUI launcher globally:
|
|
76
76
|
|
|
77
77
|
```text
|
|
78
|
-
npm install --global @deepseek-ai/dsh
|
|
78
|
+
npm install --global @deepseek-ai/dsh@0.2.1-rc.3
|
|
79
79
|
npm install --global @crazyhappyone/dsh-tui@next
|
|
80
80
|
dsh-tui probe
|
|
81
81
|
dsh-tui
|
|
@@ -92,7 +92,7 @@ Installing as a bundle matters in dsh 0.2: `/settings` edits are written to the
|
|
|
92
92
|
|
|
93
93
|
Detection checks an absolute `DSH_BIN` override, PATH, npm and pnpm global packages, then packages resolvable from the working directory and launcher directory. Each probe subprocess has a ten-second timeout, which covers a cold first start. A broken explicit `DSH_BIN` is reported without selecting another installation. Package bin entries run through the launcher's Node executable.
|
|
94
94
|
|
|
95
|
-
The bundle targets the dsh `0.2` release line (built against `0.2.1-rc.
|
|
95
|
+
The bundle targets the dsh `0.2` release line (built and tested against `0.2.1-rc.3`). The package declares `@deepseek-ai/dsh` `>=0.2.0-rc.2 <0.3.0 || ^0.2.1-0` as an optional peer, so dsh's own plugin compatibility check covers manual installs, and the launcher refuses another engine line with the exact install command; `DSH_TUI_SKIP_ENGINE_CHECK=1` bypasses the launcher check.
|
|
96
96
|
|
|
97
97
|
### Mode B: Source Mode (Developer / Debugging)
|
|
98
98
|
To debug or hack on TUI or DSH source directly:
|
|
@@ -142,13 +142,13 @@ dsh-tui update
|
|
|
142
142
|
<a id="configure-the-source-runtime"></a>
|
|
143
143
|
## Configure the source runtime
|
|
144
144
|
|
|
145
|
-
The defaults use the official public repository at tag `dsh-v0.2.1-rc.
|
|
145
|
+
The defaults use the official public repository at tag `dsh-v0.2.1-rc.3`. Source mode links this bundle into the existing `deepseek-tui` profile and preserves its user patch. Missing Typert runtime artifacts are generated with the upstream generator before boot. The source CLI runs through `pnpm exec node`, avoiding the `predsh` hook that reinstalls the entire workspace on every launch.
|
|
146
146
|
|
|
147
147
|
| Environment variable | Default | Purpose |
|
|
148
148
|
|---|---|---|
|
|
149
149
|
| `DSH_TUI_RUNTIME_DIR` | `~/.local/share/dsh-tui/runtime` | Dedicated clone used only by the launcher |
|
|
150
150
|
| `DSH_TUI_SOURCE_URL` | `https://github.com/deepseek-ai/deepseek-harness.git` | Git remote cloned and fetched by `update` |
|
|
151
|
-
| `DSH_TUI_SOURCE_REF` | `dsh-v0.2.1-rc.
|
|
151
|
+
| `DSH_TUI_SOURCE_REF` | `dsh-v0.2.1-rc.3` | Branch or ref fetched by `update` |
|
|
152
152
|
| `DSH_TUI_PNPM` | `pnpm` | pnpm executable used for install and launch |
|
|
153
153
|
|
|
154
154
|
Values must be non-empty, and the runtime directory must be absolute. The launcher refuses a symbolic-link runtime path and an existing directory that is not a Git checkout. Child commands receive argument arrays without shell interpolation.
|
|
@@ -242,18 +242,16 @@ The proxy listens on `127.0.0.1:4097` only; add `- id: zen-proxy` with
|
|
|
242
242
|
|
|
243
243
|
`tui/` and `tui-render/` compile against an upstream dsh checkout at the tag named by `COMPATIBLE_DSH_VERSION` in `src/launcher.js`:
|
|
244
244
|
|
|
245
|
-
```
|
|
246
|
-
git clone --branch dsh-v0.2.1-rc.
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
npm run dev:setup # same DSH_SOURCE override; build types and link editor dependencies
|
|
251
|
-
npm run typecheck # strict checks for sources and tests
|
|
245
|
+
```sh
|
|
246
|
+
git clone --branch dsh-v0.2.1-rc.3 https://github.com/deepseek-ai/deepseek-harness ../deepseek-harness
|
|
247
|
+
# Activate the pnpm version declared in that checkout's packageManager.
|
|
248
|
+
DSH_SOURCE=../deepseek-harness npm run validate
|
|
249
|
+
npm run verify:artifact
|
|
252
250
|
```
|
|
253
251
|
|
|
254
|
-
`
|
|
252
|
+
`DSH_SOURCE` is a read-only clone source. Validation creates an owned temporary DSH workspace, mounts the current plugin sources, installs the pinned lock, builds dependency declarations and native modules, checks four TypeScript projects, builds five bundles, runs root and complete TUI tests, and imports all five entrypoints from the packed tarball. The provenance file binds the source, DSH commit, toolchain, bundles and tarball.
|
|
255
253
|
|
|
256
|
-
|
|
254
|
+
For incremental work, `npm run build`, `npm run typecheck` and `npm run test:tui` use the same isolated preparation. `npm run dev:setup` prepares editor dependencies while preserving existing links. Run full validation after source changes and before release.
|
|
257
255
|
|
|
258
256
|
-----
|
|
259
257
|
|
|
@@ -276,7 +274,7 @@ The equivalent npm website settings are organization or user `zhangyang-crazy-on
|
|
|
276
274
|
For each release, bump `package.json`, merge the change after CI passes, then create a GitHub Release whose tag matches the package version:
|
|
277
275
|
|
|
278
276
|
```text
|
|
279
|
-
gh release create v0.1.0-alpha.
|
|
277
|
+
gh release create v0.1.0-alpha.55 --prerelease --notes-file docs/releases/v0.1.0-alpha.55.md
|
|
280
278
|
```
|
|
281
279
|
|
|
282
280
|
The `Publish npm` workflow runs tests and packed-package verification again before publishing. Do not rerun an old release tag: npm versions are immutable. Promotion to stable is a new version and a non-prerelease GitHub Release.
|
package/README.zh.md
CHANGED
|
@@ -15,9 +15,9 @@ kind: "package-group"
|
|
|
15
15
|
|
|
16
16
|
`@crazyhappyone/dsh-tui` 是 DeepSeek Harness(dsh)的终端界面,以 dsh **插件 bundle** 加 `dsh-tui` launcher 的形式发布。包声明了 `dsh.bundle`,因此 dsh 会像安装其他插件一样把它装进 profile;launcher 只负责自动完成这一安装并启动 profile。本仓库拥有插件源码(`tui/`、`tui-render/`)。Agent、会话、工具、持久化、provider、权限与 profile 组装仍由 DSH 拥有。
|
|
17
17
|
|
|
18
|
-
## 0.1.0-alpha.
|
|
18
|
+
## 0.1.0-alpha.55 版本
|
|
19
19
|
|
|
20
|
-
本预发布版面向 DSH `0.2.1-rc.
|
|
20
|
+
本预发布版面向 DSH `0.2.1-rc.3`,修复跨块终端输出边界与慢输出恢复,限制长草稿绘制范围,并增量准备聊天历史。CI 与 npm 发布共用绑定源码的构建、测试及打包验证链。详见 [changelog](CHANGELOG.md#010-alpha55--2026-10-26) 和[验证记录](docs/upstream-rc3-2026-10-26.md)。
|
|
21
21
|
|
|
22
22
|
```sh
|
|
23
23
|
npm install --global @crazyhappyone/dsh-tui@next
|
|
@@ -35,7 +35,7 @@ dsh-tui
|
|
|
35
35
|
|
|
36
36
|
## 目录
|
|
37
37
|
|
|
38
|
-
- [版本与升级](#010-
|
|
38
|
+
- [版本与升级](#010-alpha55-版本)
|
|
39
39
|
- [Changelog](CHANGELOG.md)
|
|
40
40
|
- [终端能力](#终端能力)
|
|
41
41
|
- [截图](#screenshots)
|
|
@@ -75,7 +75,7 @@ dsh-tui
|
|
|
75
75
|
全局安装官方引擎与 TUI launcher:
|
|
76
76
|
|
|
77
77
|
```text
|
|
78
|
-
npm install --global @deepseek-ai/dsh
|
|
78
|
+
npm install --global @deepseek-ai/dsh@0.2.1-rc.3
|
|
79
79
|
npm install --global @crazyhappyone/dsh-tui@next
|
|
80
80
|
dsh-tui probe
|
|
81
81
|
dsh-tui
|
|
@@ -92,7 +92,7 @@ dsh --profile deepseek-tui
|
|
|
92
92
|
|
|
93
93
|
探测顺序为绝对路径 `DSH_BIN`、PATH、npm/pnpm 全局包、工作目录和 launcher 目录可解析的本地包;每个探测子进程限时十秒,以覆盖冷启动。显式 `DSH_BIN` 失败时不会选择其他安装。包内 bin 使用 launcher 的 Node 执行。
|
|
94
94
|
|
|
95
|
-
本 bundle 面向 dsh `0.2` 发布线(基于 `0.2.1-rc.
|
|
95
|
+
本 bundle 面向 dsh `0.2` 发布线(基于 `0.2.1-rc.3` 构建和测试)。包把 `@deepseek-ai/dsh` `>=0.2.0-rc.2 <0.3.0 || ^0.2.1-0` 声明为可选 peer,因此手动安装时由 dsh 自身的插件兼容性检查把关;launcher 会拒绝其他引擎发布线并给出确切的安装命令,设置 `DSH_TUI_SKIP_ENGINE_CHECK=1` 可跳过 launcher 的检查。
|
|
96
96
|
|
|
97
97
|
### 模式 B:源码模式(开发者调试)
|
|
98
98
|
若需对 TUI 或 DSH 底层代码进行修改与调试:
|
|
@@ -142,13 +142,13 @@ dsh-tui update
|
|
|
142
142
|
<a id="configure-the-source-runtime"></a>
|
|
143
143
|
## 配置源码运行时
|
|
144
144
|
|
|
145
|
-
默认使用官方公开仓库的 `dsh-v0.2.1-rc.
|
|
145
|
+
默认使用官方公开仓库的 `dsh-v0.2.1-rc.3` tag。源码模式会将本插件链接到现有 `deepseek-tui` profile,保留用户 patch;缺少 Typert 运行时产物时先调用上游生成器。随后通过 `pnpm exec node` 启动源码 CLI,不运行每次都会安装整个工作区的 `predsh` 钩子。
|
|
146
146
|
|
|
147
147
|
| 环境变量 | 默认值 | 用途 |
|
|
148
148
|
|---|---|---|
|
|
149
149
|
| `DSH_TUI_RUNTIME_DIR` | `~/.local/share/dsh-tui/runtime` | 仅供 launcher 使用的专用 clone |
|
|
150
150
|
| `DSH_TUI_SOURCE_URL` | `https://github.com/deepseek-ai/deepseek-harness.git` | `update` clone 和 fetch 的 Git remote |
|
|
151
|
-
| `DSH_TUI_SOURCE_REF` | `dsh-v0.2.1-rc.
|
|
151
|
+
| `DSH_TUI_SOURCE_REF` | `dsh-v0.2.1-rc.3` | `update` fetch 的 branch 或 ref |
|
|
152
152
|
| `DSH_TUI_PNPM` | `pnpm` | 安装和启动所用的 pnpm executable |
|
|
153
153
|
|
|
154
154
|
所有值都不得为空,运行时目录必须是绝对路径。Launcher 会拒绝 symbolic-link runtime path,也会拒绝不是 Git checkout 的现有目录。Child command 接收参数数组,不使用 shell interpolation。
|
|
@@ -241,18 +241,16 @@ attribution `User-Agent`。
|
|
|
241
241
|
|
|
242
242
|
`tui/` 与 `tui-render/` 基于上游 dsh checkout 编译,版本为 `src/launcher.js` 中 `COMPATIBLE_DSH_VERSION` 指定的 tag:
|
|
243
243
|
|
|
244
|
-
```
|
|
245
|
-
git clone --branch dsh-v0.2.1-rc.
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
npm run dev:setup # 同样支持 DSH_SOURCE;生成类型声明并链接编辑器依赖
|
|
250
|
-
npm run typecheck # 严格检查源码和测试
|
|
244
|
+
```sh
|
|
245
|
+
git clone --branch dsh-v0.2.1-rc.3 https://github.com/deepseek-ai/deepseek-harness ../deepseek-harness
|
|
246
|
+
# 启用该 checkout 的 packageManager 声明的 pnpm 版本。
|
|
247
|
+
DSH_SOURCE=../deepseek-harness npm run validate
|
|
248
|
+
npm run verify:artifact
|
|
251
249
|
```
|
|
252
250
|
|
|
253
|
-
`
|
|
251
|
+
`DSH_SOURCE` 仅用作只读 clone 来源。验证会创建工具拥有的临时 DSH 工作区,挂载当前插件源码、安装固定锁文件、生成依赖声明与原生模块,检查四个 TypeScript 项目、构建五个 bundle、执行根目录和完整 TUI 测试,再从实际 tarball 导入五个入口。provenance 文件绑定源码、DSH commit、工具链、bundle 与 tarball。
|
|
254
252
|
|
|
255
|
-
|
|
253
|
+
增量开发可运行 `npm run build`、`npm run typecheck` 和 `npm run test:tui`,共用上述隔离准备;`npm run dev:setup` 准备编辑器依赖并保留已有链接。源码变化后及发布前执行完整验证。
|
|
256
254
|
|
|
257
255
|
-----
|
|
258
256
|
|
|
@@ -275,7 +273,7 @@ npx --yes npm@11 trust github @crazyhappyone/dsh-tui \
|
|
|
275
273
|
每次发布时,先提升 `package.json` 版本,等待 CI 通过并合并,然后创建 tag 与 package version 一致的 GitHub Release:
|
|
276
274
|
|
|
277
275
|
```text
|
|
278
|
-
gh release create v0.1.0-alpha.
|
|
276
|
+
gh release create v0.1.0-alpha.55 --prerelease --notes-file docs/releases/v0.1.0-alpha.55.md
|
|
279
277
|
```
|
|
280
278
|
|
|
281
279
|
`Publish npm` workflow 会在发布前再次运行测试与 packed-package 验证。不要重新运行旧的 release tag:npm version 不可覆盖。提升到 stable 必须使用新版本并发布 non-prerelease GitHub Release。
|