dsh-novel-write-engine 0.2.5 → 0.2.7
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 +53 -5
- package/README.md +404 -983
- package/briefs/P2.md +1 -1
- package/briefs/P3.md +2 -0
- package/briefs/P6.md +1 -1
- package/briefs/P8.md +5 -5
- package/lib/client.js +134 -17
- package/lib/index.d.ts +176 -2
- package/lib/index.js +888 -268
- package/lib/types/client/dto.d.ts +13 -0
- package/lib/types/client/viewmodel.d.ts +24 -1
- package/lib/types/constants.d.ts +1 -1
- package/lib/types/panel-contract.d.ts +125 -0
- package/lib/types/types.d.ts +15 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,53 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.7
|
|
4
|
+
|
|
5
|
+
0.2.7 是通用性与发布边界版本,不改工具、阶段、门控、schema 或规则阈值。
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- **产品面去具体项目化**:`novel_brief P8` 的示例、`state_delta` 错误提示、规则注释和 `CHANGELOG` 中的历史验收段落不再引用具体书稿的人物、地点、货币或道具,统一使用 `角色甲`、`地点甲`、`资源名`、`代币` 一类中性占位。
|
|
10
|
+
- **测试夹具中立化**:单元与集成测试改用合成人物、地点、资源,不再依赖某一本书的专有名词;资源正负号、实体锚点、PG-05、锁细节、数字事实等判定语义保持不变。
|
|
11
|
+
- **文档收口**:当前分支只保留 `docs/tools.md`、`docs/states.md`、`docs/rulepack.md` 三份维护文档与 `CHANGELOG`/`DESIGN`/`PLAN`;历史版本方案与验收稿留在对应发布 tag,不再复制进 `main`。
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- **三题材归档矩阵**:新增 `tests/generality.spec.ts`,用玄幻修仙、都市现代、西方奇幻三组互不相关的原创文本各跑一遍 `init → P1 → P2 → P3 → P4 → P6 → P8 → archive`,并断言题材持久化与章节推进。
|
|
16
|
+
- **发布面隐私守卫**:`tests/privacy.spec.ts` 扫描 `src / briefs / skills / presets / rulepacks / docs` 与根文档,阻止真实项目名、人物名和宿主绝对路径进入随包内容;同时断言扫描目标存在,避免目录缺失时空跑通过。
|
|
17
|
+
|
|
18
|
+
### Tests
|
|
19
|
+
|
|
20
|
+
- 91 个测试文件 / 910 项测试全绿;覆盖率 93.51 / 89.13 / 98.12 / 93.51,逐文件门禁通过。
|
|
21
|
+
- typecheck、lint、build、validate:rulepack、check:pack(26 files)、check:artifacts、check:install(26 packages)、check:preset(13 packages)、check:host、check:crash、check:hygiene(156 files)、test:isolated(62 源文件)全过。
|
|
22
|
+
|
|
23
|
+
### Migration
|
|
24
|
+
|
|
25
|
+
- 无 schema、工具、阶段、门控、导出或配置键变更;升级后不需要迁移项目文件。
|
|
26
|
+
- 面板教程版本更新到 0.2.7,旧标签页刷新即可。
|
|
27
|
+
- 历史版本的内部方案与验收稿不再随 `main` 分发;需要溯源时使用对应发布 tag 或 Release 快照。
|
|
28
|
+
|
|
29
|
+
## 0.2.6
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- **语义证据配对**:`novel_check` 失败项新增 `conflicts`(`duplicate`/`same_sentence`/`interval_overlap`,带 `other_id`、重叠原文/字数/比例、段落、句子),submission 错误的 message 汇总最多五条配对;aborted journal 写紧凑 blocking,失败后仍可审计。句边界统一由 `domain/text.ts` 的 `splitSentenceSpans` 提供,支持 `…` 与英文句点。
|
|
34
|
+
- **world 实体锚点**:`summary.new_element_anchors` 支持 `name + anchors`;PG-05 与新世界实体归档共用 `entity-anchors.ts`,新 ledger 持久化 `anchors`,旧数据无 anchors 继续按 name 回退。
|
|
35
|
+
- **panel v6**:`summary.bookData` 增加身份/蓝图、当前章卡与 metrics、世界/人物/关系/伏笔/时间线、15 维质量、节奏、逐章 effort、outline drift、state_errors/pending/damaged 区分;`quality` 明确区分全书 `average` 与 `last_ten_average`。
|
|
36
|
+
- **pipeline 恢复**:`novel_restore { paths: ["state/pipeline.yaml"], txid }` 可从有效备份恢复损坏 pipeline;status/doctor 报 `PIPELINE_UNREADABLE`,普通写操作在恢复前 fail-closed。
|
|
37
|
+
- **回归**:summary-only 的 PG-01 旁路只对紧接的 P6 check 生效;outline restore 复用归档卷守卫;PG-05 对 null world row 不再崩溃;PG-09 重复句匹配所有段落。
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- `resources:null` 不再被当成空对象;summary-only 不再静默吞掉 `issues`/`proof`;rulepack 递归 unknown-key 覆盖 `reader_intrusion`/`god_view`、`genres.*`、`water_words.scene_thresholds`。
|
|
42
|
+
- 面板 `pending` 不再丢失,活跃章详情改读 `pipeline.draft.summary`,`revisionLabel` 用本章 revise 轮次,samples/attempts 不再倒挂,章节行补齐 dialogue ratio 与 archived_at,教程版本升至 0.2.6。
|
|
43
|
+
- 测试与 docs 移除真实项目正文,新增覆盖 docs 的隐私扫描;工具数固定 28 并断言全集;R7 识别 `skipIf`;panel v6 从真实 engine 快照集成验证。
|
|
44
|
+
|
|
45
|
+
### Migration
|
|
46
|
+
|
|
47
|
+
- check/world/summary 新字段均为 additive;旧文档可读,不自动迁移 anchors。
|
|
48
|
+
- 面板 v6 与 v5 不混用;旧标签页显示刷新。
|
|
49
|
+
- 工具 28、操作 32、语义项 5、门控 13、导出 6 均不变。
|
|
50
|
+
|
|
3
51
|
## 0.2.5
|
|
4
52
|
|
|
5
53
|
### Fixed
|
|
@@ -27,7 +75,7 @@
|
|
|
27
75
|
- archive 遇到旧 `summary.new_elements` 与 ledger 冲突时按新规则成功并给 warning;不会回写旧 ledger。
|
|
28
76
|
- summary-only 是新增调用模式,旧 content/patch 修订语义不变。
|
|
29
77
|
- `strict_explicit` 若曾被外部写入,仍可被读取;新的公共写入必须改用 `strict`。
|
|
30
|
-
-
|
|
78
|
+
- 详细验收与真实项目/模型证据保留在 0.2.5 发布快照中。
|
|
31
79
|
|
|
32
80
|
## 0.2.4
|
|
33
81
|
|
|
@@ -71,7 +119,7 @@
|
|
|
71
119
|
|
|
72
120
|
- 新增 0.2.3 报表回填、quality 样本/attempts、briefs 按章、brief replay、ready_to_archive 直接修订、P5 hash、doctor legacy、面板分组/advisory/legacy、`projects --prune` 与 advisory 去重测试。
|
|
73
121
|
- 质量:78 个测试文件 / 836 项测试全绿;覆盖率 94.12 / 89.28 / 97.96 / 94.12,逐文件门禁通过;typecheck、lint、build、pack、artifacts、install、preset、host、crash、hygiene、isolated、rulepack 全过。
|
|
74
|
-
- 真实模型:`agnes-2.5-flash`(275 字 / 6 段)与 `agnes-3.0-flash`(373 字 / 8 段)在临时项目完成 P1→P8、归档、report/doctor/panel v5、六种导出、reopen 与重新归档;P1/P2/P3 真实,P4/P6
|
|
122
|
+
- 真实模型:`agnes-2.5-flash`(275 字 / 6 段)与 `agnes-3.0-flash`(373 字 / 8 段)在临时项目完成 P1→P8、归档、report/doctor/panel v5、六种导出、reopen 与重新归档;P1/P2/P3 真实,P4/P6 确定性夹具。
|
|
75
123
|
- 版本升 0.2.3;`REMOTE_VERSION` 4 → 5;工具 28、服务操作 32、核心工具 10、门控 13、语义项 5、导出 6 均不变。
|
|
76
124
|
|
|
77
125
|
## 0.2.2
|
|
@@ -107,7 +155,7 @@
|
|
|
107
155
|
|
|
108
156
|
- 新增会话绑定、选择矩阵、并发绑定、扫描封顶、扫描单条写失败、命令、面板 v4、只读 resume/panel、damaged 绑定、符号链接根、工作区优先级、可见加载竞态、事务 root 删除、完整卷与剪贴板测试;README/DESIGN/docs/tools/面板教程与错误码同步。
|
|
109
157
|
- 版本升 0.2.2;`REMOTE_VERSION` 3 → 4;工具 28、服务操作 32、核心工具 10、门控 13、语义项 5、导出 6 均不变。
|
|
110
|
-
- 质量:77 个测试文件 / 772 项测试全绿;覆盖率 93.87 / 89.15 / 97.89 / 93.87,高于 0.2.1 基线;typecheck、lint、isolated、build、pack、artifacts、install、preset、host、crash、hygiene 全过。真实模型两条 P1→P8
|
|
158
|
+
- 质量:77 个测试文件 / 772 项测试全绿;覆盖率 93.87 / 89.15 / 97.89 / 93.87,高于 0.2.1 基线;typecheck、lint、isolated、build、pack、artifacts、install、preset、host、crash、hygiene 全过。真实模型两条 P1→P8 链路通过。
|
|
111
159
|
|
|
112
160
|
## 0.2.1
|
|
113
161
|
|
|
@@ -123,7 +171,7 @@
|
|
|
123
171
|
- **伏笔标签与锚点**:`title` 可保留可读短语,新增 `anchor` 作为正文逐字校验证据,且至少 8 个字符(单字锚点不再能绕过);无 anchor 时仍要求 title 出现在正文;P8 brief 给出规则和示例。
|
|
124
172
|
- **质量门禁分层**:`check.machine.violations` 只放 blocker,advisory 放 `machine.advisories`;`acknowledge` 只接受本次 advisory code。新增 `DIALOGUE_RATIO`、`NUMERIC_CONTRADICTION` 与 `NUMERIC_FACT_MISMATCH`;数字矛盾因无法判定主语固定为 advisory,数字事实只匹配“别名+数字+声明单位”的相邻写法;worldbook 支持声明式 `facts`,并进入计数、brief 上下文、搜索与 P6 检查。
|
|
125
173
|
- **初始化与角色**:空 author/description 返回 warning;角色 role 从显式值、P1 计划、worldbook、narrator 推导,不再一律 extra;`insight` 的 cast/维度排序改用稳定 code-unit 比较。
|
|
126
|
-
- **真实模型**:`agnes-2.5-flash` 与 `agnes-3.0-flash` 在临时项目完成 P1→P8、归档、report/doctor/panel、六种导出、`novel_reopen` 与重新归档;P3 366 / 490 字,P2/P3 叙述者分别继承 P1
|
|
174
|
+
- **真实模型**:`agnes-2.5-flash` 与 `agnes-3.0-flash` 在临时项目完成 P1→P8、归档、report/doctor/panel、六种导出、`novel_reopen` 与重新归档;P3 366 / 490 字,P2/P3 叙述者分别继承 P1 的角色甲/角色乙;2.5 的 564 字在更早 600 字目标下被 PG-03 真实拒绝,本次 76 字由驱动脚本 300 字下限拦截(未进引擎)。
|
|
127
175
|
- **发布前回归收口**:无 target 时 status/stats/panel 的 null 覆盖显示不再伪装 100%;report 对重复评审去重;novel_state pipeline 返回合并后的 briefs、briefs 查询保留 0.2.0 pipeline.briefs 回退;restore review/check 重算 blocking;archive 把 P2 计划纳入事务哈希,reopen 拒绝归档后被改动的计划;doctor 只推荐活动章可恢复备份;amend/rollback 不再用旧 revision 缓存吞掉外部改动;worldbook entries 计入 facts。
|
|
128
176
|
- 版本升 0.2.1;panel payload v3;工具 27 → 28(新增 `novel_restore`),服务操作 31 → 32;文档、教程、任务书与测试同步。
|
|
129
177
|
- 质量:72 个测试文件 / 667 条测试;覆盖率 93.86 / 89.04 / 97.81 / 93.86;per-file 门禁通过。
|
|
@@ -151,7 +199,7 @@
|
|
|
151
199
|
- 状态与日志恢复修复:replay 缓存按 revision 失效(export 按内容键跨无关 revision 幂等);损坏的 `archive-digests.json` 从 chapter index 重建且不再拖垮 journal;缺失 journal fail-closed;尾部撕裂日志只裁剪最后一个无换行片段;崩溃前 pending 的 staging 目录清理;写临时文件失败清理 `.tmp`;worldbook `updated_at` 稳定;search 包含活动草稿并按 gate 段落口径编号;report/doctor 暴露损坏评审;reopen 拒绝覆盖归档后的 amend;规划写拒绝 projectError;卷迁移自动推导归档卡卷;时间线角色类型校验;文本 diff 可脱离项目;admin plan_chapter 不再注入非法默认值;stats 命令补齐新增字段。
|
|
152
200
|
- 持久化与观测修复:卷范围重排时归档卡按新区间推导卷号;`novel_amend` 保护归档索引的标题/场景/字数/评语/摘要/评分/状态等派生事实;4 位章节文件名纳入孤立正文与归档卡校验;journal 只含 lock-reclaim/空文件时 fail-closed,stale lock 不再隐藏 journal 诊断;备份先写入 staging 再原子移入 backups,崩溃不再留下不可回收目录;PG-09 引用与 check 文档先窄化再落盘;hand-edited outline 可省略 nullable 归档字段;`novel_plan_chapter` 的 target_words 不再硬编码 2000–3000 且工具 schema 补齐必填;`/novel admin` 透传 warnings/replayed;volume-only Markdown 大纲可回导;面板/命令的 next reason 中文化;docs 的 report 字段、PG-13 码、工具计数与 P4 版本同步。
|
|
153
201
|
- 发布前回归修复:`novel_plan_chapter` 的必填字段在工具 schema 与服务端重新对齐;`check:host` 改为先 build,再断言宿主声明全部 27 个工具,并校验预设名与面板空态/结构;README 文档链接改为 GitHub 绝对地址,修正 `toolsMode`、`novel_panel`、六种导出与工具计数等文档漂移;事务 abort 行追加前修复撕裂日志尾;同 pid 但非 live nonce 的锁按 stale 读取,不再伪装成活跃 writer;journal 对账与 `auditHistory` 在读取期间出现 writer 时丢弃半提交误报;lock reclaim 仅在原锁确实被移除时写审计行。
|
|
154
|
-
- 真实模型验证:`agnes-2.5-flash` 与 `agnes-3.0-flash` 在发布前最终构建的临时项目完成单章 P1→P8、归档、report/doctor/search/panel、六种导出、`novel_reopen` 与重新归档;P3 分别 931 字 / 898 字,均通过 P6,重开后无 state_errors
|
|
202
|
+
- 真实模型验证:`agnes-2.5-flash` 与 `agnes-3.0-flash` 在发布前最终构建的临时项目完成单章 P1→P8、归档、report/doctor/search/panel、六种导出、`novel_reopen` 与重新归档;P3 分别 931 字 / 898 字,均通过 P6,重开后无 state_errors。
|
|
155
203
|
- 质量:新增 `tests/book-020.spec.ts`、`tests/book-domain.spec.ts`、`tests/insight-020.spec.ts`、`tests/coverage-020.spec.ts`、`tests/review-probe-020.spec.ts`、`tests/second-review-020.spec.ts` 与 `tests/third-review-020.spec.ts`;当前 71 个测试文件 / 625 条测试;覆盖率 93.94 / 89.16 / 98.02 / 93.94;门禁为全局 statements/lines/functions 90、branches 89,engine 90/85、commands 85、client 85、viewmodel 95,新增 `engine/book.ts`/`engine/insight.ts` 的 lines/statements/functions ≥95、branches ≥93。
|
|
156
204
|
|
|
157
205
|
## 0.1.3
|