solopup-memory 0.0.0-stage → 0.21.0-beta.2

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.
Files changed (152) hide show
  1. package/CHANGELOG.md +453 -0
  2. package/COMPATIBILITY.md +155 -0
  3. package/LICENSE +21 -0
  4. package/README.en.md +62 -0
  5. package/README.md +105 -2
  6. package/RELEASE.md +43 -0
  7. package/SECURITY.md +73 -0
  8. package/accept.mjs +18 -0
  9. package/belief-revision.mjs +48 -0
  10. package/candidates.mjs +355 -0
  11. package/capture-diagnostics.mjs +77 -0
  12. package/capture-evidence.mjs +49 -0
  13. package/capture-inputs.mjs +171 -0
  14. package/capture-jobs.mjs +195 -0
  15. package/capture-llm.mjs +299 -0
  16. package/capture-projections.mjs +7 -0
  17. package/capture-revision.mjs +13 -0
  18. package/capture-source-aliases.mjs +20 -0
  19. package/capture-submission.mjs +75 -0
  20. package/capture-validation-contract.mjs +30 -0
  21. package/capture-validation-job.mjs +43 -0
  22. package/capture-validation.mjs +112 -0
  23. package/capture.mjs +109 -0
  24. package/context-history.mjs +123 -0
  25. package/control-schema.mjs +18 -0
  26. package/cordis.patch.yml +3 -0
  27. package/corpus/capture-contract-v25.json +59 -0
  28. package/corpus/external-labeled.json +187 -0
  29. package/corpus/holdout-v2.json +217 -0
  30. package/corpus/holdout-v3.json +145 -0
  31. package/corpus/injections.json +699 -0
  32. package/corpus/legacy-self-excluding-dev36.json +7 -0
  33. package/corpus/legacy-summary-v15.json +12 -0
  34. package/episodes.mjs +130 -0
  35. package/eval/mechanical-table.mjs +470 -0
  36. package/eval/paired-analysis.mjs +47 -0
  37. package/eval/run-eval.mjs +493 -0
  38. package/field-lineage.mjs +62 -0
  39. package/fixture-host.mjs +96 -0
  40. package/host-services.mjs +8 -0
  41. package/icon.svg +1 -0
  42. package/index.mjs +2931 -0
  43. package/locale/en.json +6 -0
  44. package/locale/zh.json +6 -0
  45. package/managed-access.mjs +182 -0
  46. package/managed-activation.mjs +36 -0
  47. package/managed-hooks.mjs +110 -0
  48. package/managed-logs.mjs +34 -0
  49. package/managed-policy.mjs +296 -0
  50. package/meaning.mjs +117 -0
  51. package/memory-policy.mjs +18 -0
  52. package/memory-protocol.mjs +21 -0
  53. package/memory-rule-policy.mjs +11 -0
  54. package/memory-scope-policy.mjs +7 -0
  55. package/native-write-validation.mjs +45 -0
  56. package/package.json +206 -4
  57. package/plugin-config.mjs +34 -0
  58. package/project-stores.mjs +222 -0
  59. package/publication.mjs +92 -0
  60. package/restoration-lock.mjs +9 -0
  61. package/restore.mjs +173 -0
  62. package/retrieval.mjs +43 -0
  63. package/revision-admission.mjs +6 -0
  64. package/runtime-startup.mjs +36 -0
  65. package/scripts/backup.mjs +15 -0
  66. package/scripts/candidates.mjs +46 -0
  67. package/scripts/capture-jobs.mjs +41 -0
  68. package/scripts/control.mjs +25 -0
  69. package/scripts/patch.mjs +152 -0
  70. package/scripts/probe-env.mjs +8 -0
  71. package/scripts/probe-load.mjs +88 -0
  72. package/scripts/probe-package.mjs +104 -0
  73. package/scripts/projects.mjs +19 -0
  74. package/scripts/verify.mjs +81 -0
  75. package/security.mjs +489 -0
  76. package/service-readiness.mjs +34 -0
  77. package/snapshots.mjs +76 -0
  78. package/source-identity.mjs +29 -0
  79. package/source-record.mjs +59 -0
  80. package/source-retirement.mjs +76 -0
  81. package/store-lock-guard.mjs +4 -0
  82. package/test-adversarial.mjs +331 -0
  83. package/test-belief-revision.mjs +166 -0
  84. package/test-candidates.mjs +147 -0
  85. package/test-capture-diagnostics.mjs +98 -0
  86. package/test-capture-field-lineage.mjs +63 -0
  87. package/test-capture-inputs.mjs +271 -0
  88. package/test-capture-jobs.mjs +301 -0
  89. package/test-capture-projections.mjs +78 -0
  90. package/test-capture-revision.mjs +77 -0
  91. package/test-capture-submission.mjs +68 -0
  92. package/test-capture-validation-flow.mjs +47 -0
  93. package/test-capture-validation-job.mjs +76 -0
  94. package/test-capture-validation-lineage.mjs +40 -0
  95. package/test-capture-validation.mjs +84 -0
  96. package/test-capture.mjs +808 -0
  97. package/test-compaction-compat.mjs +307 -0
  98. package/test-compat.mjs +126 -0
  99. package/test-concurrency.mjs +204 -0
  100. package/test-conflict.mjs +133 -0
  101. package/test-context-history.mjs +105 -0
  102. package/test-control-schema.mjs +26 -0
  103. package/test-episodes.mjs +157 -0
  104. package/test-explicit-memory.mjs +43 -0
  105. package/test-field-lineage.mjs +105 -0
  106. package/test-history.mjs +305 -0
  107. package/test-inline-summary.mjs +52 -0
  108. package/test-legacy-source-identity.mjs +46 -0
  109. package/test-links.mjs +245 -0
  110. package/test-managed-access.mjs +114 -0
  111. package/test-managed-activation.mjs +93 -0
  112. package/test-meaning.mjs +178 -0
  113. package/test-native-service-lifecycle.mjs +25 -0
  114. package/test-native-write-validation.mjs +154 -0
  115. package/test-packaging.mjs +102 -0
  116. package/test-paired-analysis.mjs +26 -0
  117. package/test-patch.mjs +218 -0
  118. package/test-plugin-contract.mjs +118 -0
  119. package/test-project-stores.mjs +228 -0
  120. package/test-publication.mjs +145 -0
  121. package/test-restore.mjs +127 -0
  122. package/test-retrieval.mjs +75 -0
  123. package/test-revision-admission.mjs +23 -0
  124. package/test-rule-admission.mjs +52 -0
  125. package/test-runtime-startup.mjs +68 -0
  126. package/test-schema.mjs +187 -0
  127. package/test-security.mjs +448 -0
  128. package/test-service-readiness.mjs +50 -0
  129. package/test-smell.mjs +201 -0
  130. package/test-snapshots.mjs +58 -0
  131. package/test-source-completeness.mjs +44 -0
  132. package/test-source-key.mjs +17 -0
  133. package/test-source-retirement.mjs +83 -0
  134. package/test-status-both.mjs +42 -0
  135. package/test-supersede.mjs +216 -0
  136. package/test-text-admission.mjs +82 -0
  137. package/test-tool-inputs.mjs +13 -0
  138. package/test-tool-observations.mjs +124 -0
  139. package/test-tool-write-guard.mjs +23 -0
  140. package/test-tool-write-lifecycle.mjs +52 -0
  141. package/test-usability.mjs +588 -0
  142. package/test-validation-source-refs.mjs +27 -0
  143. package/test-validation-transition-context.mjs +41 -0
  144. package/test-withdrawal-archives.mjs +156 -0
  145. package/test-withdrawal.mjs +167 -0
  146. package/test.mjs +515 -0
  147. package/tool-inputs.mjs +68 -0
  148. package/tool-observations.mjs +115 -0
  149. package/validation-transition-context.mjs +30 -0
  150. package/version.mjs +5 -0
  151. package/withdrawal.mjs +155 -0
  152. package/worker-write.mjs +13 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,453 @@
1
+ # Changelog
2
+
3
+ ## 0.21.0-beta.2 — explicit memory workflow
4
+
5
+ - Move model-facing memory instructions into a separate protocol context, available with an empty index and reporting scoped write-tool availability.
6
+ - Direct explicit durable-memory requests to the real tool in the same turn; distinguish recorded/duplicate, pending and rejected results. Personal statements remain claims; guesses are not promoted.
7
+ - Bind short automatic-capture source labels back to original message identities before the unchanged role and quotation checks.
8
+ - Preserve source validation, managed withdrawal, storage schemas and historical beta.1 evidence. This remains a public beta.
9
+
10
+ ## 0.21.0-beta.1 — SoloPup Memory public beta
11
+
12
+ - Publish the dev.45-derived plugin as SoloPup Memory (`solopup-memory`), with localized DSH metadata, executable ESM and a Git-compatible bundle.
13
+ - Preserve data/schema identities, source withdrawal controls and old snapshot compatibility; add the new package name to reviewed restore targets.
14
+ - Fix the legacy patch helper default path and fixtures in directories containing Unicode, spaces or URL metacharacters.
15
+ - Replace the old workstation-specific acceptance script with read-only official-profile/runtime checks.
16
+ - Document known natural-dialogue gaps explicitly; this is not a stable release or a comparative quality claim.
17
+
18
+ ## 0.21.0-dev.45 (desktop debugging candidate, not stable)
19
+
20
+ - Identify a withdrawal source by a verified session/message hash preimage. Unrelated legacy audit rows no longer block a new source across managed stores. Same-session missing lineage and unknown source identities still stop the operation.
21
+ - Discover exact preimages from validated registered source records or traceable audit entries for hash-only cleanup and interrupted-operation recovery. No new plaintext identity is persisted in the external coordinator.
22
+ - Add regression coverage for legacy data preservation, forged identities, conservative refusals, audit-only sources and both cleanup interruption boundaries. No storage schema change.
23
+
24
+ ## 0.21.0-dev.44 (engineering candidate, not stable)
25
+
26
+ - Refuse incomplete owner messages before automatic capture claims or model dispatch; never treat a cropped prefix as a complete source. Block durable reconstruction even when its old prefix hash matches.
27
+ - Preserve incomplete-source information through native history selection instead of silently omitting an earlier possible exception.
28
+ - Expose the bounded pre-dispatch refusal in memory status without inventing a model job. Keep source identities and historical reads compatible; old captured interpretations are not silently repaired.
29
+
30
+ ## 0.21.0-dev.43 (engineering candidate, not stable)
31
+
32
+ - Use short, code-bound references for required original owner quotes. Keep full citation coverage, checked extra sources and source limits; normalize only deeply identical duplicate bound quotes. Legacy quoted responses retain their original checks.
33
+ - Ask a separate task-restriction question before applicability review. For preferences, a reported task restriction without a stored task condition cannot be approved by seven generic supported votes; uncertainty remains unapproved. This is bounded model judgment, not proof of complete language understanding.
34
+ - Preserve historical data normalization and all new-write satisfiability/publication guards.
35
+ - Simplify installation, storage, backup and limits documentation; separate engineering results from real semantic acceptance.
36
+
37
+ ## 0.21.0-dev.39 (release engineering candidate, not stable)
38
+
39
+ - Reject self-excluding new meaning before native/model admission and on all publication paths; keep legacy normalization, identities and reads compatible. A model approval cannot override the structural check.
40
+ - Show bounded, code-owned proposed append/replacement effects to reviewers. Equal metadata is not content equivalence and does not reject independent information.
41
+ - Separate acquisition instructions from review votes. Distinguish compatible additions, explicit exclusions and soft preferences; review the whole displayed owner window for later corrections.
42
+ - Classify typed preparation refusals as admission rejection without disguising corrupt stored state or I/O as a normal refusal. Preserve root limits, failed trials and prior unknown requests.
43
+ - Carry forward live transaction identity checks and per-connection SQL compilation reuse with fresh state reads.
44
+
45
+ ## 0.21.0-dev.33 (in progress)
46
+
47
+ - Compile value revisions before native and automatic semantic validation. Keep scope, kind, conditions, exceptions and expiry tied to their original sources; keep the new value tied to its actual current owner, across sessions. Do not retain obsolete intermediate value roots.
48
+ - Recheck the exact parent under the publication lock. Reject changed metadata, unavailable targets, root overflow and stale publication; complete replacements require an explicit full-restatement path without inherited rights.
49
+ - Introduce source-ledger schema4 and history schema2 only when field inheritance occurs. Check target archive data capabilities before restoring a snapshot. Retain revocation protection, historical filtering and interrupted-publication recovery.
50
+ - Keep initial extraction errors, real semantic quality, actual-host behavior and comparative release acceptance separate from these local regression checks.
51
+
52
+ ## 0.21.0-dev.31 (development preview)
53
+
54
+ - Bind native validation to the public Cordis service-owning injection scope. Guard generation and disposal instead of comparing per-access context-bound proxies, which incorrectly blocked dev30 before any native validator stream in the actual host.
55
+ - Preserve cancellation on provider replacement and removal. Add a regression that reproduces the frozen dev30 failure with fresh proxies and proves the lifecycle-bound behavior independently of semantic-quality fixtures.
56
+
57
+ ## 0.21.0-dev.30 (development preview)
58
+
59
+ - Add a separate no-rewrite semantic gate before native memory_write publication, including checked execution observations. Return explicit recorded, duplicate, pending-review, rejected or not-applied outcomes; never render an unpublished proposal as recorded.
60
+ - Bind validation to the actual native call with a durable at-most-once claim. Use admitted same-project owner history only, preserve all accepted citations, and block publication after cancellation, disposal, route/scope/revision changes or source withdrawal.
61
+ - Reject incomplete long owner inputs instead of silently losing trailing conditions. Keep short native owner evidence distinct from the unchanged pending-inbox and automatic-extraction quote requirements. Do not guess a provider when the native route is absent.
62
+ - Keep acquisition and validation separate, following the existing pinned Codex extraction/consolidation and OpenClaw code-owned provenance choices. Semantic correctness and comparative superiority still require real, independent evaluation.
63
+
64
+ ## 0.21.0-dev.29 (in progress)
65
+
66
+ - Retain every current owner source cited by an accepted validation in the published provenance; preserve the three-source bound and full withdrawal lineage. Keep dev28 evidence unchanged.
67
+ - Reject definitively unsupported candidates without persisting them in the inference inbox; only uncertain new proposals remain pending, and unapproved replacements stay unapplied.
68
+ - Audit the parent/child invocation link before model dispatch. Export bounded failure-stage/category metadata, retry only typed local contention, and prevent late dispatch after asynchronous guard cancellation.
69
+
70
+ ## 0.21.0-dev.28 (in progress)
71
+
72
+ - Separate automatic candidate acquisition from a read-only accept/reject/uncertain validation task. Only approve unchanged, fully source-cited candidate identities; never execute model revisions from the validator.
73
+ - Persist a separate bounded validation invocation; preserve source/version/withdrawal guards and at-most-once behavior across observed errors, late output and process death. Keep compatible invocation/diagnostic schemas; validation child proposes zero memory entries.
74
+ - Keep unapproved new candidates non-injected; do not downgrade an unapproved replacement into a targetless append. Native-write semantic validation remains incomplete.
75
+ - Carry the reproduced duplicate/replacement and differing-detail guards from the dev.27 source experiment. Do not import its combined review/rewrite flow.
76
+ - Prefer a substantive parent capture status when a zero-entry validation child has the same completion millisecond.
77
+
78
+ ## 0.21.0-dev.26 (in progress)
79
+
80
+ - Normalize only deeply identical, exact-JSON text copies of one valid native submission; preserve strict rejection and aggregate response bounds.
81
+ - Expose bounded current structured records to source-grounded consolidation with explicit omissions and no new source authority; guard corrected publication with existing scope, quote, full-line and revision checks.
82
+ - Bind durable input configuration to the extractor contract, and prevent route/configuration/project changes from creating another invocation for the same owner-source window. Old unissued incompatible inputs fail closed; unresolved bound input stays bound.
83
+ - Clarify missing applicability terms and agent-proposed explanations across native and capture paths. Guidance is not semantic proof.
84
+
85
+ ## 0.21.0-dev.25 (in progress)
86
+
87
+ - Offer one data-only candidate submission tool through the public GenerateOptions.tools contract; validate canonical stream identity, completion, bounds and exact argument envelope. Keep strict text fallback and existing diagnostics. No unsupported format controls or automatic retry.
88
+ - Bind capture job identity to the system/tool contract fingerprint.
89
+ - Share durability and applicability guidance across native writes and background extraction; distinguish task-only restrictions, fact subjects and conditional preferences. This is guidance, not semantic verification.
90
+
91
+ ## 0.21.0-dev.24 (in progress)
92
+
93
+ - Require explicit epistemic meaning on new native memory writes and automatic extraction; keep legacy rows unclassified rather than inventing a type. Clarify personal/work facts as reported claims.
94
+ - Preserve conflicting duplicate interpretations as pending source-linked proposals, retaining the effective conditions and text. Report pending review without a false successful write or opaque write failure.
95
+ - Clarify relation source kinds and same-store target scopes. Retain admission guards and existing diagnostic schema for compatible readers.
96
+
97
+ ## 0.21.0-dev.23 (in progress)
98
+
99
+ - Add readonly memory_status scope=both with separate global/current-project snapshots, explicit unavailable state, and one global capture diagnostic. Preserve flat single-store outputs and write scopes.
100
+ - Clarify capture topic/scope/epistemic consistency and undecided hypotheses; retain independent admission guards.
101
+ - First public-release acceptance covers text memory; multimodal memory is deferred by user request.
102
+
103
+ ## 0.21.0-dev.22 (in progress)
104
+
105
+ - Add offline memory-domain backup verification and reviewed same-root restoration: external guard, quarantined prior data, latest control retention, invocation-state merge, source cleanup, receipts and resumable stages. Target archive verification binds SHA and a declared protocol; it does not install code or support arbitrary downgrade.
106
+ - Refuse active hosts/writers, pending publications, linked files, overlapping paths, changed sources and resource-limit violations.
107
+
108
+ ## 0.21.0-dev.21(开发预览)
109
+
110
+ - 修复非法候选被解析器过滤成空数组后,生产捕获仍看似成功的诊断盲区;非空原响应的过滤、有效候选截断、准入拒绝和发布失败分别计数,合法候选照常处理。
111
+ - 区分模型报告无候选与空正文/错误JSON/对象包裹数组;支持一个明确JSON围栏,拒绝从任意对象或说明中挖出[]。限制响应64 KiB和64个原候选,元数据不保存响应或用户正文。
112
+ - 有界诊断随终态作业保存,memory_status读取全局保留作业并标记旧版无细分信息、未决或损坏;不据此声称语义完整,也不重发未知调用。
113
+
114
+ ## 0.21.0-dev.20(开发预览)
115
+
116
+ - dev.19真实试点无法可靠获取传输层原生callId,反复猜测均被正确拒绝,最终达到执行上限而未完成冷查。新增只读memory_status(includeObservations=true)以公开可复制的真实引用,不降低写入校验或猜测映射。
117
+ - 发现列表只展示本会话、模型已见且当前仍匹配的外部工具结果,最多8条并受字节预算限制;不可用或已改写结果不返回为有效引用。
118
+ - 规范JSON参数指纹的键顺序/空白,避免重复读取因表面表示变化增加证据组。证据组仍不等于现实独立实验或概率。
119
+
120
+ ## 0.21.0-dev.19(开发预览)
121
+
122
+ - 原生工具结果引用绑定实际call/result事件、来源顺序、精确引用、模型请求可见内容及当前会话内容;与用户陈述区分,但不把工具成功视作世界事实已验证。
123
+ - 观察证书与来源、索引和历史共同发布,保留所有原请求根及两个执行事件根;撤回任一来源及恢复旧文件均受控制屏障约束,容量凭据保留5根。
124
+ - 错误结果只能保存诊断经历,未决或不可证明的结果不能成为成功证据;同参数/输出的重复读取不增加证据组。当前评估区分实际输出与用户陈述,行动仍为建议。
125
+ - 冷读取保留当时已核对输出的证书,不承诺当前原物真实性或连续重验;普通自动捕获继续仅用用户引文,不能自行伪造原生证书。
126
+
127
+ ## 0.21.0-dev.18(开发预览)
128
+
129
+ - dev.17真实试点合并信念时给出4条引用,超出既定3条上限,导致整条拒绝;后续观察还误用消息id作关系目标。明确公开这两项抽取契约,不降低来源验证,也不截断证据强行接受。
130
+ - 候选全部被准入拒绝时,捕获状态、审计和终态作业明确记录rejected及capture-all-rejected,区别于空数组的成功no-op。已有混合合法/拒绝候选仍分别处理,不误报文件发布故障。
131
+ - 保留dev.16/17原始失败及版本证据;针对原场景复测不作为未见质量验收。
132
+
133
+ ## 0.21.0-dev.17(开发预览)
134
+
135
+ - dev.16真实观察冲突试点把观测结果误标为reference,未建立支持/反对关系。明确存放主题type与认识类别meaning.kind不同;实际报告过的比较/测量结果仍是episode,未核实不能成为降为查证入口的理由。
136
+ - 同一信念的竞争解释与反证条件合并到该条,避免拆成假独立主张;抽取仍须引用实际目标,不用规则猜测语义或补造来源。
137
+ - 认识状态及行动建议的渲染明确给出revision.state/advice.action;memory_links说明其文本相似度导航不等于证据关系,完整来源身份通过memory_search核查。
138
+ - 保留dev.16的原始失败和正确保护,不改其评分;当前仍不提供独立核验或完整信念行动闭环。
139
+
140
+ ## 0.21.0-dev.16(开发预览)
141
+
142
+ - 新观察可用完整来源记录身份关联同库现行主张;只接受claim/episode的支持或反向陈述,拒绝对价值的事实证明、跨库/失效目标和递归派生关系。
143
+ - 当前检索与动态注入重新计算陈述支持、挑战和冲突;来源撤回、旧档恢复、过期与取代均重新求值。同根及传递共根记录合并计数,主张原来源的复述不能增加支持。
144
+ - 自动捕获接收带作用域的有界目标清单,目标身份不改写原索引行;关系和观察随原来源、当前投影及历史同事务发布。
145
+ - 不将陈述关系冒充独立查证或概率;反向报告引导核验,历史不套用当前结论,完整可信观测与行动反馈闭环仍待完成。
146
+
147
+ ## 0.21.0-dev.15(开发预览)
148
+
149
+ - 来源关联的本地历史档案与索引、细节和来源账本同事务发布;取代、移出现行索引、过期和压缩记录关闭区间,默认检索仍只查当前视图。
150
+ - memory_search增加history视图、库内atSequence与记录时间asOf,返回来源、时间、状态及覆盖范围。旧数据仅从实际观察起算,外部修改区间明确不确定;档案不自动注入为当前规则。
151
+ - 来源撤回同时清理档案,旧档案恢复仍由独立来源根阻断;单库1024条/2 MiB,回收已关闭记录并保留缺口水位。非法链接、校验损坏和未完成发布拒绝读取。
152
+ - 当前检索隐藏已过期索引及能关联来源的过期细节;历史视图仍能显式查看过期记录,不将其当作当前有效规则。
153
+
154
+ ## 0.21.0-dev.14(开发预览)
155
+
156
+ - dev.13真实例外试点的第三个候选把“尚未决定”误标为全局项目决定;原写入保护正确拒绝,但批次成为partial。现将同一范围约束提前到捕获准入与候选存储,明确审计为rejected,合法候选继续发布,不把无效候选当作文件写入故障。
157
+ - 保留类型约束和写入侧校验;没有把错误的全局决定改成可采纳。新增混合捕获回归,验证一条合法偏好与两条不合规则的候选被分别发布/拒绝。
158
+
159
+ ## 0.21.0-dev.13(开发预览)
160
+
161
+ - dev.12真实试点发现命题主体/核验状态被误抽成适用条件,引发不必要的用户反问;明确这些属于主张/认识状态,只有原话中的适用情境才进conditions/except。影响决策的事实类缺失条件优先建议查证证据与情境,不把用户当外部事实的默认真值来源。
162
+ - 用户明确持有的长期可推翻信念可作为有归属的explicit陈述保存,认识状态仍为tentative;区分“用户说持有此假设”和“模型从行为推测该人的偏好”。未明说的推断继续仅进候选;只在有持续价值时保留尚未核实的主张。
163
+
164
+ ## 0.21.0-dev.12(开发预览)
165
+
166
+ - meaning认识层与来源身份同事务存储,纳入记录身份核对;已采纳候选保留结构,撤回与取代沿用现有来源控制,不建立脱节的第二份语义库。
167
+ - 明确项目归属、适用条件及例外的不同含义;检索同步过滤索引与规范标记细节,未知条件不默认满足,ranked与exact均返回认识层说明。动态索引带认识层/条件标注并有预算省略提示。
168
+ - 事实主张保持reported,信念保持tentative,价值不成为事实或操作授权。依据下一决策是否受影响返回采用、核验、询问情境、实验提议或继续工作的建议,不自动执行。拒绝模型提供verified、confidence及授权字段。
169
+
170
+ ## 0.21.0-dev.11(开发预览)
171
+
172
+ - dev.10真实分批纠正试点能回答新值,但旧值仍作为独立有效条目注入。自动捕获现接受supersedes,并且必须精确绑定同范围抽取快照中的唯一完整旧行,禁止片段猜测及跨范围取代。
173
+ - 沿用既有版本闸和来源发布事务;推断仍只进候选,旧后台不能覆盖新版本。当前仍由模型判断纠正语义,不是完整条件执行器、事实核验或信念推理系统。
174
+
175
+ ## 0.21.0-dev.10(开发预览)
176
+
177
+ - 真实合成试点发现:跨项目的个人条件偏好被误存为当前项目规则,原项目冷召回正确但切换项目后丢失。修正抽取中的类型及归属说明,将项目边界与听众/场景条件分别处理。
178
+ - 摘要须保留条件、限制与例外;明确跨项目的个人约定可为global,仅本项目的决定继续限制为project。该变更是模型抽取规则,尚不等于结构化条件解释或完整信念更新。
179
+
180
+ ## 0.21.0-dev.9(开发预览)
181
+
182
+ - 封存dev.8诊断复现:查询服务缺失的回退捕获会发送已撤回原话,虽然未发布记忆。现把准入检查放在所有捕获路径的模型准备之前,并继续在发送前及返回后检查。
183
+ - 来源判定复用规范化根身份,覆盖不可见字符别名;已撤回批拒绝,独立新会话仍可捕获,不停用整个回退能力。
184
+ - 来源账本在模型返回期间损坏时,整批明确报错并保留现场;不在未知来源状态下继续逐候选发布。
185
+
186
+ ## 0.21.0-dev.8(开发预览)
187
+
188
+ - 默认加载在工具和捕获前检查来源控制;新空库自动启用,旧库提示审阅升级并暂停读取、写入及捕获,缺失/错配控制不静默重建。
189
+ - 首次使用空的规范项目目录时自动登记并继承既有来源屏障;已有内容或未知目录需审阅,不能靠切换项目绕过撤回。
190
+ - 状态工具区分受管、需升级和不可用,不用零条结果冒充空库;旧中断发布优先提示恢复。
191
+ - 捕获的去重索引在统一控制权内读取并过滤撤回内容;项目路径查询只读取控制元数据,不因无关全局正文中断而阻断已登记项目。
192
+ - 旧集成夹具改为显式完成真实审阅登记或提供合成来源,不关闭产品护栏;新增默认启用与拒绝场景。完整安装、升级回退、自然质量、信念与主动策略仍按独立证据验收。
193
+
194
+ ## 0.21.0-dev.7(开发预览)
195
+
196
+ - dev.6原生流程暴露恢复旧目录后无关写入清掉投影、却留下旧采纳状态的问题。已撤回来源不再参与新证据确认,普通写入先完成本库已授权的旧采纳撤回,再发布新内容。
197
+ - 新增完整旧采纳导入、清理、整库恢复、无关新写入、普通检索及续跑的联合回归。dev.6失败记录原样保留。
198
+
199
+ ## 0.21.0-dev.6(开发预览)
200
+
201
+ - 真实v0.20归档暴露旧采纳记录没有lineHash导致导入后拒读;仅用本次已审阅的候选ID、精确索引行指纹及记忆编号联合绑定,不改旧原库账本。
202
+ - 旧采纳身份分歧在登记前拒绝;未知恢复分支仍维持拒读,不由短编号猜测内容身份。
203
+ - dev.5归档及其原生/强退失败报告保留,不把机械回归通过改写成完整升级通过。
204
+
205
+ ## 0.21.0-dev.5(开发预览)
206
+
207
+ - 旧本地来源撤回可显式审阅导入;同一次登记原子提交全部来源屏障并覆盖所有登记库,保留本地合并指纹及原库内容。
208
+ - 新增本地control清单、预览/初始化、状态和续跑入口;项目目录须完整声明范围,活宿主、遗漏、链接、未完成迁移和过期预览均拒绝。
209
+ - 登记提交后绑定中断可经新预览修复,不重置已提交屏障;无效初始审阅不创建控制库。
210
+ - 候选CLI支持受管采纳的控制版本及撤回审阅。默认加载自动激活、控制搬迁、完整升级回退、自然质量与平台发布门槛仍待完成。
211
+
212
+ ## 0.21.0-dev.4(开发预览)
213
+
214
+ - 修复撤回等待期间无关有效写入使清理续跑停在旧版本审阅的问题;续跑在全局控制权内重新核对同一来源,继续保留无关记忆。
215
+ - 普通读取按全局撤回根核对当前来源记录,遮蔽恢复目录中此前未见的同根历史分支,续跑可重新清理。
216
+ - 两个回归场景加入产品测试;默认安装、旧策略导入、自然质量和完整分层系统仍未完成。
217
+
218
+ ## 0.21.0-dev.3(开发预览)
219
+
220
+ - 显式初始化的库接入独立SQLite控制、目录外绑定及统一读写所有权;普通检索、关系、状态、候选和捕获版本读取共同检查撤回状态。
221
+ - 局部锁之前取得跨库控制权,后台旧来源及陈旧捕获版本不得发布。来源撤回先发布全部已登记库的屏障,再进行可恢复清理;后续整库或Markdown恢复可再次清理。
222
+ - 新来源的人工采纳须核对控制版本,当前确认与旧根撤回分开;未知或被改动的撤回块在受管读取时明确拒绝。
223
+ - 旧项目迁移在同一控制权内完成复制、目的库登记及已有屏障继承,保留原文件并更新复制凭据。
224
+ - 默认安装激活、旧撤回策略导入、控制账本跨位置搬迁以及自然质量和平台发布验收仍待完成。此版不是公开稳定第一版。
225
+
226
+ ## 0.21.0-dev.2(开发预览)
227
+
228
+ - 分开限制待审推断与有效来源,解除持续写入因共享200条候选上限而提前停止的问题。
229
+ - 已退出当前索引的来源可自动压缩为不含正文的撤回凭据;来源根、旧内容指纹及带标记细节的位置指纹仍保留,索引/细节/凭据共同发布并可恢复。
230
+ - 来源撤回覆盖压缩后的历史记录及恢复出来的旧投影;凭据不能充当新的独立确认,显式新来源采纳与旧细节遮蔽分开处理。
231
+ - schema3的完整来源512条、历史凭据4096条、来源总量2 MiB,待审推断200条。维持既有文件安全读取上限,满时拒绝新发布并保留现行数据;memory_status新增容量与明确的账本故障状态。
232
+ - 未知主题归档、无法证明原索引身份的旧采纳记录保留全文;全局控制接线、更多遗忘边界、长期使用和公开验收仍按独立证据核对。
233
+
234
+ ## 0.21.0-dev.1(开发预览)
235
+
236
+ - 自动捕获的有效引文提取与显式工具共用来源发布协议,绑定已领取作业及通过核对的原消息;索引、细节和来源账本同事务发布。
237
+ - 保留 quoted-extraction 与 tool-context 两种来源身份,均不冒充独立人工确认;两种来源间的取代、来源撤回和旧投影遮蔽共用规则。
238
+ - 保持推断候选、未知调用不重发、旧schema2拒绝覆盖降级。全局协调器接线、200条来源容量回收、主题归档及公开安装平台门槛仍未完成。
239
+
240
+ ## 0.21.0-dev.0(开发预览)
241
+
242
+ - 显式工具写入绑定原生准入消息与调用,来源不明或会话不适格时拒绝写入。
243
+ - 工具背景来源使用schema2记录,和索引/带标记细节同事务发布;保留到期和取代的精确身份,来源撤回可清理旧细节。
244
+ - 工具背景不等于独立用户证词,不能通过候选采纳接口自动升级;来源有效的历史版本仅在明确版本关系字段中返回。
245
+ - 普通候选清理保留工具来源;不支持的主题归档明确阻断撤回,避免错误宣称清理完成。
246
+ - 尚未完成跨项目控制接线、全部遗忘出口、安装平台矩阵或竞品优势验证,不构成公开第一版。
247
+
248
+
249
+ ## 0.20.0 — 开发候选,2026-10-29
250
+
251
+ - 修复实际v0.19默认捕获虽成功但未建立来源引用队列的问题:sessionQuery启动时尚未活动,旧实现只查询一次。改为原生依赖子作用域跟随就绪/卸载,并在兼容上下文使用点重新查询;加载标记更新实际可用性。
252
+ - 服务晚就绪时仅恢复已观察原会话的未领取输入,保留来源/项目/配置核对;最多256个弱引用、恢复并行2个会话、每原会话每批2条,不扫描其他历史。服务撤回、替换和插件卸载会撤销旧代发送/发布资格,迟到清理不会影响新代,已领取输入不自动重发。
253
+ - 新增服务代次与完整捕获/恢复生命周期回归,保留默认允许空产出及源码/安装包验证。文档纠正旧的无效模型路由“静默降级”描述,实际自v0.18起加载期拒绝。
254
+ - 实际宿主、真实默认捕获及SIGKILL恢复另行记录;第一版及独立竞品优势仍未完成。
255
+
256
+ ## 0.19.0 — 开发候选,2026-10-29
257
+
258
+ - 修复项目路径slug可能碰撞共用库:新库使用完整项目根路径的SHA256标识,旧库未经审查不自动注入或分配给首位访问者,保留全局记忆与明确迁移提示。
259
+ - 新增只读项目检查、双版本审查后的旧库复制与显式中断恢复;保留原内容及候选/关系/撤回策略,拒绝覆盖目标或重复认领。活宿主与活迁移锁阻断应用;复制使用受限无链接普通文件、字节验证与有界树扫描。复制/认领/目录发布各阶段及真实SIGKILL恢复另有回归。
260
+ - 撤回日志新增明确硬链接拒绝,修正旧测试使用非法JSON而未真正验证硬链接分支的问题;改为有效JSON并断言具体拒绝原因。不把此改动当作全部通用读路径的硬链接/竞态问题已解决。
261
+ - 旧源保留副本、跨项目撤回、完整平台升级和竞品优势仍未完成;不迁移用户真实库。本版独立于冻结v0.15失败试点。
262
+
263
+ ## 0.18.0 — 开发候选,2026-10-29
264
+
265
+ - 对照DeepSeek官方插件指南补充`dsh.bundle.patch`及包内配置层,使标准bundle加载能激活插件;本地patch入口作为兼容开发方式保留,修正说明中的相对路径与SDK导入禁令表述。
266
+ - 导出同步Standard Schema V1配置验证,宿主加载及直接apply在注册前拒绝无效配置;默认值与可调范围明确,未知字段和不完整路由不再静默降级。可选服务优先使用公开的活动服务查询`ctx.get`。
267
+ - 修复插件卸载后捕获仍可能写入:取消等待、传播AbortSignal,并在请求前及每次发布前检查生命周期;忽略取消的供应商迟到结果不被接受。远端停止和未知调用结果仍不保证,不自动重发。
268
+ - 官方主干指南与本机宿主分别核对,不把主干文档当安装版本能力;完整验证与标准bundle实际宿主结果另存。独立核心试点仍固定v0.15.0。
269
+
270
+ ## 0.17.0 — 开发候选,2026-10-29
271
+
272
+ - 修复来源撤回只清理第一份轮转日志的缺口;扫描每类1至16号受管数字日志,单文件2 MiB、合计16 MiB上限,未知后缀、压缩归档、链接、坏行或超限时在修改前拒绝,避免漏删后报告成功。
273
+ - 发布恢复的闭合目标族扩展至受管数字日志,最多40文件;原有小规模日志继续兼容,路径和阶段文件限制保留。覆盖四类细节、32份归档、部分发布与真实SIGKILL恢复;不声称断电事务、跨项目或全部备份擦除。
274
+ - 保留实际v0.16包的合成前后对照;当前独立试点仍固定v0.15,不混入本版,也不据此宣称竞品优势。
275
+
276
+ ## 0.16.0 — 开发候选,2026-10-29
277
+
278
+ - 无主题细节的工具写入、自动捕获与本地采纳改用“索引摘要”标记,避免生成指向不存在文件的引用;有实际细节时保留主题引用,不创建占位文件或复制摘要来伪造细节。
279
+ - 原库不自动改写;格式别名重复保留已有条目及ID,候选再审核/撤回识别旧格式,遇到两种有效格式并存时拒绝歧义。新旧格式的取代关系、过期和来源撤回均保留。
280
+ - 旧索引的缺失主题引用在注入时诊断,仅检查文件属性和权限;新增10项回归及实际v0.15旧写入器生成的兼容夹具,补验自动捕获的有/无细节分流。独立试点继续固定使用v0.15.0,不把新候选混入既有试点。
281
+
282
+ ## 0.15.0 — 开发候选,2026-10-29
283
+
284
+ - 真实默认自动捕获已写入全局偏好,但新会话的默认项目检索连续漏查。memory_search 默认改为当前项目和全局联合检索,统一相关性排序及输出预算,命中标明作用域;不读其他项目,显式单库及写入等工具的默认行为保留。
285
+ - 新增联合检索的项目隔离、同名文件归属、统一排序/预算和未完成发布阻断回归。真实模型合成开发例与独立比较分开记录,不据此声称优于竞品。
286
+
287
+ ## 0.14.0 — 开发候选,2026-10-29
288
+
289
+ - 实际原生模型工具循环发现memory_write写入成功后,其结果携带undefined可选字段,被宿主判作非无损JSON;模型收到错误可能误导重试。首次、重复及取代写入改为仅在有值时返回可选字段。
290
+ - memory_links的两个可选版本链字段采用同一返回约定,避免无取代关系的正常查询被宿主拒绝。保留实际字段值、版本关系和存储格式,不对全部输出做宽松JSON强制转换。
291
+ - 新增六项工具结果回归,覆盖首次/重复/细节/取代写入、版本查询及六工具生命周期。原生宿主、安装包及受控历史维护结果另行记录;独立真实模型质量和公开发布目标仍未完成。
292
+
293
+ ## 0.13.0 — 开发候选,2026-10-29
294
+
295
+ - 捕获参数在宿主已绑定的模型能力回调内选择:支持off则关闭,普通模型省略,不支持off的模型保留宿主默认;流请求直接使用准备句柄控制值,避免强行覆盖导致拒绝。每次抽取仍只准备一次,不另查能力或通过失败重发试探。
296
+ - 准备期能力错误记录固定码,流期同名错误不冒充准备失败,异常正文不持久化;升级不自动重发旧失败或未决输入。新增错误码的旧版降级兼容及推理成本边界写入说明。
297
+ - 修复显式捕获provider/model被主会话模型覆盖的问题,原会话恢复及来源复查采用同一优先级;不完整或空白显式路由暂停捕获,六工具及已有注入保持。
298
+ - 源码、实际宿主与安装包证据另行记录;公开第一版及独立优势目标未完成。
299
+
300
+ ## 0.12.0 — 开发候选,2026-10-29
301
+
302
+ - 新增不复制正文的持久来源引用队列,原会话恢复时经宿主异步读平面核对消息/范围/配置后补跑未领取工作;子代理、种子和继承历史不准入。已领取或未知调用不重发,覆盖领取与绑定之间的中断窗口。
303
+ - 模型准备后发送前及发布前重新核对活动来源、撤回与版本;提供只读查看、双版本预览后终态引用清理,保留待处理和未决输入。原日志/队列无跨文件事务,压缩或来源不可用时不保证恢复;没有外部结果对账、自动模型重试/退避或全部旧会话扫描。
304
+ - 453项源码回归、隔离加载及既有评测/可用性检查通过;实际宿主中断恢复和安装包证据另行记录。第一版公开发布及独立优势目标未完成。
305
+
306
+ ## 0.11.0 — 开发候选,2026-10-29
307
+
308
+ - 真实隔离宿主复现:撤回后最新记忆视图虽已更新,旧运行时快照仍出现在同会话下一次模型请求中。新增按来源替换历史记忆节,保留其他插件、普通对话和原始日志;投影检查点仅存消息身份与序号。
309
+ - 步骤和请求边界清理旧节,发送前检查当前库;归因不明、渲染不一致、映射缺失、超限或替换失败时明确阻断。未清理普通对话/已形成摘要中的复述、远端缓存或所有备份,不宣称完整遗忘。
310
+ - 纠正“动态记忆不进入历史/不参与压缩”的旧说明;provider渲染单测不能证明真实宿主行为。公开发布及独立优势目标仍未完成。
311
+
312
+ ## 0.10.0 — 开发候选,2026-10-29
313
+
314
+ - 新增未决捕获的人工关闭入口:默认只读预览,显式应用需账本版本核对;状态为 abandoned,外部结果保持未知,不重发请求或回滚已写记忆。运行中有效租约不能关闭,旧结果不能借此恢复发布。
315
+ - 关闭的身份可按原容量策略老化,保留期间不重领;旧版插件遇到新状态会暂停自动捕获并保留现场,不能把关闭当作可安全重试。
316
+ - 修正安装包探针继承父环境的问题:打包、回归、安装及真实宿主均使用最小环境与临时 home/tmp,增加真实子进程凭据/加载钩子不继承检查。v0.9.0 报告中对该包探针“未继承凭据”的描述过强,已在开发证据中纠正。
317
+
318
+ ## 0.9.0 — 开发候选,2026-10-29
319
+
320
+ - 冷启动开发探针发现默认精确检索漏掉多数多词查询;默认改为 ranked,显式 exact 保留原子串定位。v0.8.0 不利结果与安装包保留,没有用新结果覆盖旧版本。
321
+ - 排序特征加入有限英文规则词形归并;不改原文或结构化标识符,不宣称完整词干分析。相同词形归并后只计一个词元,不能绕过两词元支持闸。
322
+ - 新增五项检索回归,含无中英词元时的 Unicode 字面定位,避免默认排序丢掉日文、韩文等原有精确命中。基线原有测试、实际宿主加载和跨进程开发合同单独保留,不计入本插件测试总数,也不视为独立留出或产品胜出。
323
+ - 源码加载探针改为最小全新配置,不复制私人 profile 或继承凭据;没有宿主时明确失败。加载检查等待包含版本和工具列表的最终标记,避免把预备 pid 标记当成就绪状态。
324
+ - 尚未部署桌面、运行付费模型比较或公开发布。自然工作流、任务续跑与独立客观优势验收继续进行。
325
+
326
+ ## 0.8.0 — 开发候选,2026-10-29
327
+
328
+ - 请求前持久化调用身份哈希和短租约;同快照在保留期间重开/并发不会重复领取,过期工作者输出拒绝。账本不含消息、提示词、模型路由或候选正文。
329
+ - 崩溃遗留和过期调用标为未决,不自动重发;本地诊断 CLI 默认只读,recover --apply 仅更新状态。256 条容量保留运行中/未决记录,账本损坏时暂停捕获但保留六工具与注入。
330
+ - 修复只有 AbortSignal 的软超时:不合作 provider 的准备与流等待现在有本地硬超时;迟到准备不再启动模型流。
331
+ - 修复新用户空列表配置安装后无效的 YAML,卸载可恢复原注释/空白;插件路径按标准 file URL 编码。增加真实离线打包与全新配置安装探针,内部研究、历史对话设计与个人路径记录不进入发布包。
332
+ - 增加锁前占用的明确错误码与最多三次本地写入重试,租约/版本变化和未知执行结果不重试,不重发模型请求;并发测试等待所有工作进程,避免清理掩盖初始错误。
333
+ - DSH 自带 Node v24.21.0 的回归、隔离加载、既有评测/可用性与实际安装包验证另行记录,不以单次通过代替压力复测。
334
+ - 这不是自动续跑队列;退避、原会话取证重建、重试和未决处置仍待实现。未部署桌面、未运行真实付费抽取、未公开发布。
335
+
336
+ ## 0.7.0 — 开发候选,2026-10-29
337
+
338
+ - 增加受管来源撤回:默认预览、双版本校验,索引/受管细节/候选/关联审计历史正文同一可恢复计划清理;不删除无关内容。
339
+ - 新采纳细节带候选标记;保留撤回内容哈希及块长度与哈希,防派生文件旧副本重新进入记忆输出;同根重入拒绝,新根复述进入复审,可显式重新确认。有效行另有独立采纳来源时拒绝自动删除。
340
+ - 旧自动摘要仅在消息级审计来源明确时支持;无标记旧细节、消息来源缺失、文件分歧或损坏均拒绝,避免假清除。
341
+ - 状态工具 recent 改为净化的操作元数据,并补齐输出 schema,避免旧审计正文经状态接口返回。
342
+ - 文件读取默认 512 KiB 不变,仅恢复计划中的已知日志允许上限 2 MiB,仍拒绝链接/非普通文件与超限;发布目标仍是固定白名单。
343
+ - DSH 自带 Node v24.21.0 下 375 项回归、隔离加载、既有评测与可用性门禁通过;新增 22 项测试。记录见 VERIFICATION-0.7.0.md。
344
+ - 第一版发布、完整备份/跨项目撤回、后台任务续跑和独立留出优势验证仍未完成;本轮未部署桌面或改真实记忆。
345
+
346
+ ## 0.6.0 — 开发候选,2026-10-29
347
+
348
+ - 候选采纳默认只预览,显式提交须带当前索引哈希与候选箱版本;过期审批、拒绝/撤回、跨范围候选被拒绝。
349
+ - 写入增加可恢复发布日志:固定目标白名单、受限阶段文件、前后内容哈希;索引/主题细节/候选状态中断后可 roll-forward。未恢复库暂不注入、检索或接受普通写入。
350
+ - 本地 candidates recover 默认核查,--apply 才恢复;外部编辑和阶段损坏保留现场。不自动覆盖冲突。
351
+ - 历史 insert/supersede 改到发布成功后记录,避免拒写也留下成功历史;恢复有独立审计,但历史/关系重建仍未完成。
352
+ - 新增 17 项专项测试,累计 353 项回归与隔离加载/评测/可用性门禁通过。桌面仍为 v0.4.1,尚未部署、发布或完成对比胜出验证。
353
+
354
+ ## 0.5.0 — 开发候选,2026-10-29
355
+
356
+ - inferred 候选从轮转审计移到独立 `.candidates.json`;审计只记候选 ID/状态,默认不注入、不自动采纳。
357
+ - 新增本地候选查看、拒绝、按来源撤回和默认 dry-run 清理;保留拒绝/撤回标记,阻断同候选或同来源改写重入。容量与标记数有界,损坏文件保留现场。
358
+ - 原子写临时文件改随机名与独占创建,写后 fsync,失败清理正文;新增可预测临时链接劫持回归。
359
+ - 候选功能和自动捕获接线已在隔离库测试;桌面仍为 v0.4.1,未迁移历史审计或部署候选。
360
+ - 该版不含候选采纳、有效记忆跨库撤回、完整事务和持久化作业恢复;不报告已达到发布门槛或胜过社区插件。
361
+
362
+ ## 0.4.3 — 开发候选,2026-10-29
363
+
364
+ - `memory_search` 新增可选 ranked 模式:中文双字与拉丁词元、按库区分度加权、弱单词召回闸、精确命中优先;exact 仍为默认,出口净化与大小上限保留。独立实现,无社区代码移植。
365
+ - 316 项本地回归与隔离加载/评测/可用性检查通过;桌面仍为 v0.4.1。
366
+ - 运行固定 topics-memory 源码的 29 项上游原有检索/净化测试,全部通过;独立 HOME/DSH_HOME,无依赖安装。
367
+ - 开发组件探针原精确模式 6/12,ranked 12/12,基线 10/12;p=0.25,非留出、非完整产品赛马,不支持优势声明。保留原始落后结果。
368
+
369
+ ## 0.4.2 — 开发候选,2026-10-29
370
+
371
+ - 后台自动捕获新增按库索引 SHA-256 版本检查:在写锁内拒绝基于旧索引的候选,同批次自身写入推进令牌,人工更改或删除后不能用旧令牌发布。
372
+ - 新增配对统计分析器:场景级精确符号检验,拒绝重复编号、不配对与缺失评分,不把同一场景复跑伪装成独立样本。
373
+ - 根据真实 v4 日志确认用户消息携带 data.source.kind=user,未知来源不再默认当用户,runtime-context 召回禁止进入用户证据窗口。
374
+ - 新增 8 项回归,累计 312 项;最终结果见 release/verify-0.4.2.txt。用户桌面仍为 v0.4.1,当前开发候选没有部署或发布。
375
+ - 固定 Codex、OpenClaw 原文快照与四套社区基线 commit;新增 RELEASE-V1.md,列出发布缺口和比较协议,未报告未经运行的优势。
376
+
377
+ ## 0.4.1 — 2026-10-29
378
+
379
+ - 真实 v0.4.0 捕获暴露 `capture-invalid-json` 后,核对宿主流协议发现旧 chunkText 会把 `reasoning-delta.text` 拼进最终答案;修为忽略推理片段与 block-end。
380
+ - 简短后台抽取显式关闭 reasoning;识别 finish 的 max-tokens/error/aborted,并区分空响应,均不当成功处理。
381
+ - 新增 3 项宿主流协议回归;真实负例复测结果单独记录。
382
+
383
+ ## 0.4.0 — 2026-10-29
384
+
385
+ - 自动捕获保留发言角色与消息定位,必须核对用户原话;写入审计附来源与哈希。
386
+ - 分开 `explicit` 和 `inferred`:后者只记候选审计,不作为有效长期记忆注入。
387
+ - 支持项目内条件偏好,缺失项目目录时拒绝项目候选;去重输入同时读取全局和项目索引。
388
+ - 提示词排除临时进度、助手完成声明及从单次任务归纳的长期习惯。
389
+ - 抽取输入默认限 24 KiB,调用前打码;错误码与最终 running 状态立即落盘,坏 JSON 不再伪装成空成功。
390
+ - 新增 18 项回归测试;完整结果见本轮 VERIFICATION 记录。
391
+ - 文档加入 Codex、三套 dsh 社区插件、OpenClaw 与 POMDP 的证据级别和渐进路线。未安装第三方插件,未迁移真实记忆。
392
+
393
+ ## 0.3.2 — 2026-10-28
394
+
395
+ - 自动捕获触发阈值 12 → 4 轮(先让它跑起来,再按真实质量调)
396
+ - 新增 `.capture-state.json`:记录「收到多少会话事件、算到第几轮、上次触发时间」。
397
+ 上一轮等了半天才发现根本没触发——可观测性不能省。
398
+ - 探测版探针证实:`listProviders()` 在 CLI 实例里为空,路由必须从会话 `request/header` 取
399
+
400
+
401
+ ## 0.3.1 — 2026-10-28
402
+
403
+ - 修:自动捕获拿不到模型路由。`listProviders()` 在 CLI 实例里为空(适配器按会话注册),
404
+ 改为从会话自身的 `request/header` 事件读 `provider`/`model`
405
+ - 修:`pickRoute` 忘了 await(`listProviders` 是 `@Remote` 异步方法)
406
+
407
+
408
+ ## 0.3.0 — 2026-10-28
409
+
410
+ 自动捕获:不用用户开口,系统自己记。
411
+
412
+ - 新增 `capture.mjs` / `capture-llm.mjs`:每 12 轮让宿主模型整理一次记忆,候选经既有写入闸入库
413
+ - 按类型分库:`user`/`feedback` → 全局库,`project` → 项目库
414
+ - `ctx.reflect.get('llm', false)` 取宿主模型服务(cordis 未声明 inject 时直接读会抛)
415
+ - 路由解析 `pickRoute()`:兼容 provider 列表的多种形状,拿不到就不猜
416
+ - 失败路径只写审计(`op:capture`),不影响主流程
417
+ - 加载痕迹里记录 `autoCapture` 状态,重启后可直接看出有没有生效
418
+ - 测试 274 → 283
419
+
420
+
421
+ ## 0.2.0 — 2026-10-25
422
+
423
+ 可用性版本:把「写入会撞墙」这个死路去掉。
424
+
425
+ - 新增 `memory_search`:在索引与主题文件里检索;索引被截断时仍能找回旧条目
426
+ - 新增 `memory_prune`:删过期、合并重复、压到上限(留 20 行余量)、轮转超大主题文件;默认 dry-run
427
+ - 新增 `memory_status`:条数/行数/字节/过期/重复组/主题文件大小的只读快照
428
+ - `memory_forget` 支持 `expired: true` 批量删过期
429
+ - 写入/配额/主题文件超限的错误信息改为给出**已存在**的下一步(`memory_prune`)
430
+ - 冲突检测改为提示(同一事实不同取值),不拦截
431
+ - 修:`checkIndexBudget` 的尾行 off-by-one(压到 300 行仍被拒)
432
+ - 修:`conflictSignature` 忽略占位符两侧空白(「26 集」与「26集」判成两条)
433
+ - 工具 `memory_compact` 改名 `memory_prune`,避免与宿主 `/compact`(对话压缩)混淆
434
+ - 新增 `test-compaction-compat.mjs`(13 项):验证与宿主对话压缩的四个接触面
435
+ - `memory_links` 输出有界(出边/入边各 10 条,另报总数),防止被宿主的工具结果修剪截断
436
+ - 修(严重):`memory_status` 的 output schema 用了 `additionalProperties: {type:'integer'}`,
437
+ 宿主注册时抛 `JsonSchemaError`,**整个插件静默不加载**。改成闭合对象。
438
+ - 新增 `test-schema.mjs`:把宿主的三条 schema 规则搬进测试(单元测试绕过注册校验,之前测不到)
439
+ - 新增 `scripts/probe-load.mjs`:隔离实例真加载探针,已接进 `verify.mjs`
440
+ - 加载痕迹改为**无条件写入**(之前藏在诊断开关后面,导致 A2 永远无法通过)
441
+ - 测试 226 → 274
442
+
443
+ ## 0.1.0 — 2026-10-25
444
+
445
+ 首个可用版本。
446
+
447
+ - 索引自动注入(provider 同步产出,绕过 `refreshContext` 覆盖问题)
448
+ - 按项目分库,项目根按 git / `.dsh-root` 向上查找
449
+ - `memory_write` / `memory_forget` / `memory_links` 三个工具,手写 schema(不依赖 defineTool)
450
+ - supersede 语义 + 历史链 + 内容寻址 id + 关系边继承
451
+ - 安全:框架定界符中和(含同形字/全角)、不可见字符剥离、凭据拒绝与打码、符号链接拒绝、0700/0600、跨进程锁、审计
452
+ - 生命周期:索引 200 行 / 25 KB、库配额 2 MB、过期标记 `(exp:YYYY-MM-DD)`
453
+ - 测试 226 项;评测框架(逃逸率消融、写入精确率、召回成本、fuzz、气味检测三套数据)