dsh-openwrite 0.2.10 → 0.2.12

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/README.md CHANGED
@@ -29,7 +29,16 @@
29
29
 
30
30
  ## 快速安装
31
31
 
32
- **0.2.9 标准插件包**兼容 dsh **0.1.2-rc.1**。可下载版本、三平台验收结果和 SHA-256 以 [GitHub Release](https://github.com/LiPu-jpg/Openwrite/releases/latest) 附件为准;验收方法见 [发布验收](docs/RELEASE_ACCEPTANCE.md)。默认使用 npm `latest` 渠道;商城所需的精确预览版兼容性、验证范围和安装限制见 [DSH STORE 接入](docs/DSH_STORE.md)。
32
+ **0.2.12 标准插件包**兼容精确 dsh 版本 **0.1.2-rc.1 / 0.1.5-alpha.1 / 0.2.0-rc.2**。0.2.0-rc.2 已完成 Web 客户端启动验证,Windows Electron 桌面端恢复链路尚未实机复测。可下载版本、各平台验收结果和 SHA-256 以 [GitHub Release](https://github.com/LiPu-jpg/Openwrite/releases/latest) 附件为准;验收方法见 [发布验收](docs/RELEASE_ACCEPTANCE.md)。默认使用 npm `latest` 渠道;商城所需的精确预览版兼容性、验证范围和安装限制见 [DSH STORE 接入](docs/DSH_STORE.md)。
33
+
34
+ npm 包和对应 GitHub Release 使用同一份验收产物。也可安装精确版本的 Release 包:
35
+
36
+ **0.2.12 正在进行发布验收,npm `latest` 当前仍为 0.2.11。** 0.2.11 不包含 #50–#54 的进入工作台和连续审读修复;请以已发布 Release 的版本和附件为准。
37
+
38
+ ```sh
39
+ dsh plugin --profile web add -w https://github.com/LiPu-jpg/Openwrite/releases/download/v0.2.11/dsh-openwrite-0.2.11.tgz
40
+ dsh web
41
+ ```
33
42
 
34
43
  已有匹配版本 dsh 的用户执行:
35
44
 
@@ -55,6 +64,16 @@ dsh web
55
64
 
56
65
  具体的源码安装、升级、迁移和卸载见 [安装指南](docs/INSTALL.md)。
57
66
 
67
+ ### dsh 0.2 桌面端升级
68
+
69
+ `0.2.12` 进一步修复 [#50](https://github.com/LiPu-jpg/Openwrite/issues/50)、[#51](https://github.com/LiPu-jpg/Openwrite/issues/51)、[#52](https://github.com/LiPu-jpg/Openwrite/issues/52) 的预设注册、导航、工作台挂载和 DoG 接口。连续审读按内容修订刷新,避免轮询闪烁([#54](https://github.com/LiPu-jpg/Openwrite/issues/54))。
70
+
71
+ `0.2.11` 修复 [#45](https://github.com/LiPu-jpg/Openwrite/issues/45),适配精确宿主版本 `0.2.0-rc.2`:工作台兼容新的 turn-tail list 槽位,DoG 调试面板使用新的 `sessionStatus`;根包和所有子包的兼容声明同步更新。已验证 0.2.0-rc.2 的 Web 客户端启动、OpenWrite 入口、DoG 面板及其他插件共存;Windows Electron 桌面端恢复链路尚未实机复测。
72
+
73
+ **`dsh-openwrite@0.2.10` 不包含这项修复,请升级到 `0.2.11`。** 不要通过给旧子包授权来代替升级:`dsh-openwrite` 的版本豁免不会覆盖 `@dsh-novel/studio-panel@<ver>` 和 `@dsh-external/dsh-dog@<ver>`,而旧客户端在 0.2.0-rc.2 上激活失败可能触发桌面端的 profile 恢复。
74
+
75
+ 若已发生恢复,先关闭桌面端并备份当前 profile,再从自己的 `cordis.patch.yml.bak-*` 备份恢复 patch,同时恢复原 `package.json` 的 `dsh.profile.bundles` 列表。安装包和作品目录通常仍在;不要用出厂模板覆盖其他插件配置。详细排查见 [安装指南](docs/INSTALL.md#dsh-02-客户端兼容排查)。
76
+
58
77
  ## 开始使用
59
78
 
60
79
  1. 执行 `dsh web`,打开它给出的浏览器地址,点击侧栏 **OpenWrite**。等待环境就绪后,选择作品目录。
@@ -130,3 +149,5 @@ conductor/ 连续写章、评审与修订编排
130
149
 
131
150
  项目采用 [Apache-2.0](LICENSE)。`oh-story-*` 技能和随包编辑器保留各自目录中的原有许可证。
132
151
  Logo 基于 OpenWrite `native-core` 分支,已调整深浅主题配色;基于 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness),图谱集成使用 [dsh-dog](https://github.com/Fun10165/dsh-dog)。
152
+
153
+ 生态目录:[dsh-TUI](https://github.com/ccch1mneyyy/dsh-TUI) · [社区插件市场](https://dshtui.com/plugins/)。OpenWrite 当前面向 DeepSeek Harness 的 `web` profile,使用 `dsh web` 打开创作工作台;尚未验证 dsh-TUI 界面兼容性。
package/cordis.patch.yml CHANGED
@@ -1,3 +1,12 @@
1
+ # 0.2's carrier-neutral Connection does not require webServer itself, but its
2
+ # custom RPC channel registrar reads that service from its declaring context.
3
+ # OpenWrite targets Web/Desktop, where the carrier is present; declare it here
4
+ # so authenticated DoG RPC channels can register without changing transport.
5
+ - id: connection
6
+ inject:
7
+ - webRuntime
8
+ - webServer
9
+
1
10
  - insert:
2
11
  - id: openwrite-bundle
3
12
  name: dsh-openwrite
package/docs/INSTALL.md CHANGED
@@ -29,6 +29,10 @@ Git 是可选的作品归档能力。未安装 Git 或 Git 初始化失败时,
29
29
 
30
30
  dsh 对话模型在宿主中配置。小说生成、评审与测试模型在「任务 → 模型」配置;安装健康检查不调用这些模型。
31
31
 
32
+ 托管模式的模型档案、路由和凭据读取 `$DSH_HOME/openwrite/state/config/`,不读取独立 Core 的 `~/.config/openwrite/`。优先使用上述界面配置;需要迁移时先停机、备份该目录,再核对「模型 → 路由」指向的档案 ID。新建自定义名称的档案后请核对路由,不能只改文件名。不要将配置或凭据提交进作品仓库。
33
+
34
+ 0.2.12 的连接测试与生成请求使用同一个已配置的输出 token 上限,推理模型可在该额度内完成思考并返回正文。连接测试会发起真实模型请求;安装与自动验收使用替身,不产生模型费用。
35
+
32
36
  ## 安装影响
33
37
 
34
38
  本轮原生验收覆盖 macOS 15、Ubuntu 和 Windows GitHub 原生运行器。
@@ -113,6 +117,30 @@ bridge 的高级 `mode: external` / `baseUrl` 配置继续支持外部 Core,
113
117
 
114
118
  反馈请提供宿主版本、系统与架构、Release 版本、安装阶段及脱敏错误。来源、许可证和校验值见 Release 附件及包内 `release/`。不要提交 API Key、浏览器登录 URL 或作品全文。
115
119
 
120
+ ## dsh 0.2 客户端兼容排查
121
+
122
+ `dsh-openwrite@0.2.10` 的旧工作台按 0.1 接口构建,不能通过版本豁免获得 0.2.0-rc.2 的客户端兼容性。根包豁免不覆盖内嵌子包:`@dsh-novel/studio-panel@<ver>`、`@dsh-external/dsh-dog@<ver>` 各自经过宿主版本检查。优先升级到包含 #45 修复的包;修复后的精确 `0.2.0-rc.2` 声明覆盖根包和所有子包,不需要手工编辑 `compatibility.json`。
123
+
124
+ 本修复同时处理 `conversation.chat.turnTail` 从 chain 到 list 的变化,以及 `uiSession.pendingInteractions` 到 `uiSession.sessionStatus` 的变化。客户端初始化或延迟槽位注册失败时,插件回滚对应注册并在浏览器控制台输出 `[OpenWrite/Studio]` / `[OpenWrite/DoG]` 和原始异常,避免让这类插件初始化异常升级为宿主 web boot 失败。此修复不更改桌面端自身的 profile 恢复策略。
125
+
126
+ 如果旧版本已经触发桌面端恢复,关闭桌面端后备份整个 profile,找到恢复前的 `cordis.patch.yml.bak-*`,恢复 patch 和原 `package.json` 中的 `dsh.profile.bundles`。这两项需一起核对,才能重新加载其他插件。保留已安装依赖和作品目录,不要用空 profile 替换完整配置。
127
+
128
+ 开发者可在锁定依赖和构建完成后运行真实客户端启动检查:
129
+
130
+ ```sh
131
+ npm run test:client-boot
132
+ node scripts/client-boot-smoke.mjs --host-cli=/absolute/path/to/dsh-0.2.0-rc.2/node_modules/@deepseek-ai/dsh/lib/bin.js
133
+ node scripts/client-boot-smoke.mjs dsh-openwrite-<version>.tgz --host-cli=/absolute/path/to/dsh-0.2.0-rc.2/node_modules/@deepseek-ai/dsh/lib/bin.js
134
+ ```
135
+
136
+ 脚本需要 Playwright Chromium,创建临时 Web profile,检查无豁免版本闸门、两个客户端加载、真实预设选择、会话导航、三个工作台页签出现和创作视图激活、DoG 面板及其他插件共存,后端就绪与未初始化响应由测试夹具提供,不准备 Python 环境、不调用模型;实际安装与后端动作由独立发布验收覆盖。它验证 Web 客户端兼容性;Windows Electron 的原生启动和恢复流程仍须在对应平台完成发布验收。
137
+
138
+ ## 0.2.12 的预设与审读修复
139
+
140
+ 0.2.11 仅补齐了客户端启动与版本声明,仍存在 #50–#52 的预设注册和导航断点。0.2.12 在新宿主中注册同一份版本化预设,并保留旧宿主的目录副本;不要通过内联手工补丁或版本豁免替代升级。升级不重绑已有会话的预设,新的作品入口使用对应版本的预设。
141
+
142
+ 连续审读在后台工作区轮询和任务失效时保持正文与滚动位置,仅在章节身份/顺序/修订变化或手动刷新时重载。重载期间保留上次正文,失败时显示错误。切换作品会清空旧作品的阅读状态。
143
+
116
144
  ## 作品信息与推理模型预算
117
145
 
118
146
  在「任务 → 导入与导出 → 编辑作品信息」填写或修改书名、作者署名和语言。旧作品也可补齐作者,无需手工编辑配置文件。保存冲突时保留输入;请取消编辑并重新载入最新信息后再修改。未填写作者仍不能进行交付导出。`novel_project_init` 也支持可选 `author` 与 `language`。
@@ -6,6 +6,34 @@
6
6
 
7
7
  新建作品的验收请求最多等待 60 秒(原为 15 秒),保留成功耗时和失败诊断;不重试写请求,超时仍失败。此调整容纳慢速运行器,不代表初始化耗时问题已被修复。
8
8
 
9
+ ## 0.2.12(待发布)
10
+
11
+ 本版修复 #50–#52 的 0.2 宿主兼容问题及 #54 阅读模式刷新闪烁,纳入 #53 的导航和会话作用域改动,并保留旧宿主的预设插件。
12
+
13
+ - Core 5.8.3:模型连接测试使用所选配置的输出预算;108 项 Core 回归通过。
14
+ - 本地 297 项组件测试、50 项 DoG 测试通过。三代精确宿主的浏览器流程纳入正式发布门禁:选择目录、预设选择、会话导航、工作台标签、点击创作后实际渲染、DoG 面板与插件共存。该客户端检查使用后端就绪及未初始化响应替身;原生后端安装和作品初始化由独立平台任务验证。
15
+ - 完整 CI 及唯一产物校验通过后才发布。Windows Electron 桌面端尚未实机复测,真实模型验证未运行。
16
+
17
+ ## 0.2.11
18
+
19
+ [Release](https://github.com/LiPu-jpg/Openwrite/releases/tag/v0.2.11) 使用 [完整 CI](https://github.com/LiPu-jpg/Openwrite/actions/runs/37012171411) 验收的同一份包,来源提交为 39454dbcd14ea672c6d9fa25eddea26f8ea71591,SHA-256 为 d11f2a3e9abbd0aaaaa42d5ffb4268e9c192f608236178a48cd112d09e03f1f9。六组原生平台、源码安装及精确 alpha 宿主验收均通过;对该产物另完成精确 0.2.0-rc.2 Web 客户端启动验证。npm `dsh-openwrite@0.2.11` 和 GitHub Release 均已发布,`latest` 已更新到 0.2.11;从公共 npm registry 重新下载后,SHA-256 与上述 Release 包一致。
20
+
21
+ - 修复 #45 的子包兼容声明和两个客户端 API 差异,增加初始化异常隔离、回滚与错误诊断;包含 #44 的 minimap CSS 修复。
22
+ - 精确 `0.2.0-rc.2` Web 宿主已验证两个客户端激活、工作台入口、DoG 面板和其他插件共存,无需版本豁免。
23
+ - Core 仍为 5.8.2 / contract 1。正式发布直接使用本版本完整 CI 验收通过的同一份产物,SHA-256、来源提交和原生平台结果以 Release 附件为准。
24
+ - Windows Electron 桌面端启动及恢复链路尚未实机复测;宿主恢复策略未修改,已被重置的 profile 需要从备份恢复。真实模型验证未运行。
25
+
26
+ ## 0.2.10
27
+
28
+ [Release](https://github.com/LiPu-jpg/Openwrite/releases/tag/v0.2.10) 使用 [主分支 CI](https://github.com/LiPu-jpg/Openwrite/actions/runs/34836925547) 验收的同一份包,来源提交为 9108038699f64613f66a3fea21dfdb3841881d25,SHA-256 为 09f80826dd4ec72ba0f968feb978257f792033dab6f428dc6f09ab38e8b62f64。npm `dsh-openwrite@0.2.10` 已发布,`latest` 已更新;从公共 npm registry 重新下载后,SHA-256 与上述 Release 包一致。
29
+
30
+ - 修复 #36:初始化支持 author / language;已有作品可在「任务 → 导入与导出 → 编辑作品信息」补齐出版元数据,保存经过认证、Workspace、revision 与原子写入保护。
31
+ - 修复 #37:写作的五个调用点使用所选模型配置的输出预算,移除固定小预算覆盖;推理模型仍需配置足够额度,不自动增加付费重试。
32
+ - 修复 #38:会话头部隐藏 idle 保存状态,编辑器内显示「尚未载入正文」。
33
+ - Core 5.8.2 / contract 1,来源 native-core 833c66407a780283bdb7f901540322a9b549ee1d;依赖声明不变。
34
+ - 原生 Linux/macOS arm64/macOS x64/Windows Node 24、Linux Node 22.19/26、源码安装及精确 alpha 宿主全部通过。浏览器验收包含作者信息保存后重新读取,后端覆盖未认证请求和过期 revision。
35
+ - Core 54 项回归、前端 291 项组件测试通过。真实模型测试 not-run,不计入通过;预算替身测试覆盖三个配置额度下的五个调用点。
36
+
9
37
  ## 0.2.9
10
38
 
11
39
  [Release](https://github.com/LiPu-jpg/Openwrite/releases/tag/v0.2.9) 与 npm dsh-openwrite@0.2.9 使用 [主分支 CI](https://github.com/LiPu-jpg/Openwrite/actions/runs/34532531326) 验收过的同一份包;来源提交为 8ecada040db2c3ddf699d7a5bc1ddd86336b88fe,SHA-256 为 2a885d03f931505432b78424922c63e7ac75c70a10ab57b7c7503d059af7b627。npm 下载后再次核对一致。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-openwrite",
3
- "version": "0.2.10",
3
+ "version": "0.2.12",
4
4
  "description": "OpenWrite 长篇小说领域后端接入 DeepSeek Harness:统一创作 Agent 预设 + 原生创作工作台",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -22,13 +22,13 @@
22
22
  "test:profiles": "node scripts/profile-smoke.mjs",
23
23
  "prepare": "node scripts/prepare.mjs",
24
24
  "test:managed": "node --test packages/openwrite-bridge/scripts/managed-runtime.test.mjs packages/openwrite-bridge/scripts/tool-policy.test.mjs",
25
- "test:release": "node scripts/release-smoke.mjs"
25
+ "test:release": "node scripts/release-smoke.mjs",
26
+ "test:client-boot": "node scripts/client-boot-smoke.mjs"
26
27
  },
27
28
  "license": "Apache-2.0",
28
29
  "devDependencies": {
29
30
  "@deepseek-ai/cordis-plugin-include": "1.0.7",
30
- "@deepseek-ai/dsh": "0.1.2-rc.1",
31
- "js-yaml": "4.3.1"
31
+ "@deepseek-ai/dsh": "0.1.2-rc.1"
32
32
  },
33
33
  "engines": {
34
34
  "node": ">=22.19.0"
@@ -54,20 +54,23 @@
54
54
  "displayName": "小说创作(OpenWrite)",
55
55
  "pluginType": "suite",
56
56
  "compatibility": {
57
- "dsh": "0.1.2-rc.1 || 0.1.5-alpha.1",
57
+ "dsh": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.2.0-rc.2",
58
58
  "profiles": [
59
- "web"
59
+ "web",
60
+ "desktop"
60
61
  ],
61
62
  "dshReleases": {
62
63
  "0.1.2-rc.1": "compatible",
63
64
  "0.1.3-alpha.1": "unknown",
64
65
  "0.1.3-alpha.2": "unknown",
65
- "0.1.5-alpha.1": "compatible"
66
+ "0.1.5-alpha.1": "compatible",
67
+ "0.2.0-rc.2": "compatible"
66
68
  }
67
69
  }
68
70
  },
69
71
  "files": [
70
72
  "plugin.mjs",
73
+ "preset-definition.mjs",
71
74
  "plugin.d.ts",
72
75
  "cordis.patch.yml",
73
76
  "packages/studio-panel/vendor",
@@ -105,13 +108,14 @@
105
108
  "ajv-formats": "^3.0.1",
106
109
  "fflate": "0.8.2",
107
110
  "proper-lockfile": "4.1.2",
108
- "tar": "7.5.7"
111
+ "tar": "7.5.7",
112
+ "js-yaml": "4.3.1"
109
113
  },
110
114
  "peerDependencies": {
111
- "@deepseek-ai/cordis": "4.0.2",
112
- "@deepseek-ai/dsh-home-paths": "0.1.2-rc.1 || 0.1.5-alpha.1",
113
- "@deepseek-ai/dsh-settings": "0.1.2-rc.1 || 0.1.5-alpha.1",
114
- "@deepseek-ai/dsh-tools": "0.1.2-rc.1 || 0.1.5-alpha.1"
115
+ "@deepseek-ai/cordis": "4.0.2 || ~4.0.4",
116
+ "@deepseek-ai/dsh-home-paths": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.2.0-rc.2",
117
+ "@deepseek-ai/dsh-settings": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.2.0-rc.2",
118
+ "@deepseek-ai/dsh-tools": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.2.0-rc.2"
115
119
  },
116
120
  "bin": {
117
121
  "openwrite-maintenance": "scripts/maintenance.mjs"
@@ -26,6 +26,14 @@
26
26
  "dsh": {
27
27
  "bundle": {
28
28
  "patch": "./cordis.patch.yml"
29
+ },
30
+ "compatibility": {
31
+ "dsh": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.2.0-rc.2",
32
+ "dshReleases": {
33
+ "0.1.2-rc.1": "compatible",
34
+ "0.1.5-alpha.1": "compatible",
35
+ "0.2.0-rc.2": "compatible"
36
+ }
29
37
  }
30
38
  },
31
39
  "dependencies": {
@@ -35,10 +43,10 @@
35
43
  "tar": "7.5.7"
36
44
  },
37
45
  "peerDependencies": {
38
- "@deepseek-ai/cordis": "4.0.2",
39
- "@deepseek-ai/dsh-host-webserver": "0.1.2-rc.1",
40
- "@deepseek-ai/dsh-tools": "0.1.2-rc.1",
41
- "@deepseek-ai/dsh-workspace": "0.1.2-rc.1"
46
+ "@deepseek-ai/cordis": "4.0.2 || ~4.0.4",
47
+ "@deepseek-ai/dsh-host-webserver": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.2.0-rc.2",
48
+ "@deepseek-ai/dsh-tools": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.2.0-rc.2",
49
+ "@deepseek-ai/dsh-workspace": "0.1.2-rc.1 || 0.1.5-alpha.1 || 0.2.0-rc.2"
42
50
  },
43
51
  "peerDependenciesMeta": {
44
52
  "@deepseek-ai/dsh-host-webserver": {