@theseus-whale/dsh-continuity 0.0.0-stage → 4.12.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.
- package/INSTALL.md +25 -0
- package/PANEL.md +92 -0
- package/README.md +286 -2
- package/RELEASE-NOTES.md +732 -0
- package/bin/bc-acceptance-full.mjs +91 -0
- package/bin/bc-acceptance-tight.mjs +66 -0
- package/bin/bc-acceptance.mjs +22 -0
- package/bin/bc-add-keywords.mjs +21 -0
- package/bin/bc-demo.mjs +47 -0
- package/bin/bc-expand-hint.mjs +179 -0
- package/bin/bc-ingest-index.mjs +35 -0
- package/bin/bc-ingest.mjs +31 -0
- package/bin/bc-label-demo.mjs +18 -0
- package/bin/bc-relabel.mjs +150 -0
- package/bin/bc-sessionize.mjs +59 -0
- package/bin/coref_pipeline.py +47 -0
- package/bin/coref_service.py +57 -0
- package/bin/debug_ckip.py +16 -0
- package/bin/debug_ner_zh.py +18 -0
- package/bin/doctor.mjs +275 -0
- package/bin/en_ner_error_audit.py +33 -0
- package/bin/eval-label-rules.mjs +342 -0
- package/bin/export-turns.py +68 -0
- package/bin/extract-user-paragraph.mjs +14 -0
- package/bin/extraction-composite-smoke.mjs +28 -0
- package/bin/extraction-latency.mjs +58 -0
- package/bin/extraction-user-smoke.mjs +28 -0
- package/bin/extraction_service.py +164 -0
- package/bin/facet-active-experiment.mjs +110 -0
- package/bin/facet-covid.mjs +8 -0
- package/bin/facet-curve.mjs +27 -0
- package/bin/facet-embedding-train.mjs +20 -0
- package/bin/facet-embedding-validate.mjs +83 -0
- package/bin/facet-eval-roleplay.mjs +42 -0
- package/bin/facet-eval.mjs +38 -0
- package/bin/facet-fold.mjs +31 -0
- package/bin/facet-load.mjs +16 -0
- package/bin/facet-mlp-scan.mjs +45 -0
- package/bin/facet-mvp.mjs +34 -0
- package/bin/facet-online-experiments.mjs +78 -0
- package/bin/facet-online-race.mjs +99 -0
- package/bin/facet-online-validate.mjs +51 -0
- package/bin/facet-panel.mjs +22 -0
- package/bin/facet-passage.mjs +41 -0
- package/bin/facet-random-validate.mjs +48 -0
- package/bin/facet-roleplay.mjs +33 -0
- package/bin/facet-scan.mjs +56 -0
- package/bin/facet-segment.mjs +34 -0
- package/bin/facet-train.mjs +19 -0
- package/bin/facet-validate.mjs +103 -0
- package/bin/facet-zeroshot.mjs +14 -0
- package/bin/install-templates.mjs +72 -0
- package/bin/memory-bench.mjs +53 -0
- package/bin/memory-build-summary.mjs +43 -0
- package/bin/memory-build-vector.mjs +31 -0
- package/bin/memory-build.mjs +41 -0
- package/bin/memory-calibration.mjs +70 -0
- package/bin/memory-closed-loop.mjs +119 -0
- package/bin/memory-dry-run.mjs +70 -0
- package/bin/memory-eval.mjs +104 -0
- package/bin/memory-event-alias-test.mjs +89 -0
- package/bin/memory-extraction-bench.mjs +58 -0
- package/bin/memory-load-gate-replay.mjs +137 -0
- package/bin/memory-loop-test.mjs +90 -0
- package/bin/memory-pre-turn-harness.mjs +63 -0
- package/bin/memory-query.mjs +39 -0
- package/bin/memory-replay-hints.mjs +84 -0
- package/bin/memory-scale.mjs +58 -0
- package/bin/memory-scenario-test.mjs +146 -0
- package/bin/memory-user-loop.mjs +95 -0
- package/bin/ner_bench_tiny_zh.py +59 -0
- package/bin/ner_bench_zh.py +60 -0
- package/bin/ner_conll_en.py +139 -0
- package/bin/ner_direct_en.py +123 -0
- package/bin/ner_direct_zh.py +100 -0
- package/bin/ner_pipeline.py +208 -0
- package/bin/noise-selfcheck.mjs +50 -0
- package/bin/pack-integrity.mjs +47 -0
- package/bin/panel-check.mjs +57 -0
- package/bin/plugin-integrity.mjs +74 -0
- package/bin/preview-live.mjs +13 -0
- package/bin/public-install-check.mjs +222 -0
- package/bin/relabel-apply.mjs +272 -0
- package/bin/relabel-dry-run.mjs +381 -0
- package/bin/relik_pipeline.py +39 -0
- package/bin/relik_service.py +52 -0
- package/bin/srl_pipeline.py +55 -0
- package/bin/srl_service.py +68 -0
- package/bin/summary-index.mjs +151 -0
- package/bin/summary-query.mjs +79 -0
- package/bin/vec-check.mjs +27 -0
- package/bin/zh_ner_error_audit.py +36 -0
- package/bin/zh_ner_slot_eval.py +38 -0
- package/client.js +760 -0
- package/cordis.patch.yml +378 -0
- package/docs/API-NOTES.md +1743 -0
- package/docs/ARCHITECTURE.md +355 -0
- package/docs/CACHE.md +253 -0
- package/docs/CONDUCT.md +30 -0
- package/docs/CREATOR-HANDOFF.md +102 -0
- package/docs/EXPERIMENT.md +136 -0
- package/docs/FACET-MVP-REPORT.md +473 -0
- package/docs/GUIDE-0.4.66.md +195 -0
- package/docs/GUIDE.md +127 -0
- package/docs/MECHANISM.md +243 -0
- package/docs/NEW-INSTANCE-HANDOFF.md +219 -0
- package/docs/README.md +37 -0
- package/docs/SESSION-LAYOUT.md +151 -0
- package/docs/history-map.md +249 -0
- package/docs/relabel-migration-wiring.md +366 -0
- package/guides/00-READ-FIRST.md +206 -0
- package/guides/01-INSTALL.md +207 -0
- package/guides/02-TABLES.md +225 -0
- package/guides/03-AUDIT.md +201 -0
- package/guides/04-REBUILD.md +306 -0
- package/guides/05-FIRST-RUN.md +191 -0
- package/guides/06-EMBEDDING.md +146 -0
- package/guides/07-PTC-AND-ASSETS.md +221 -0
- package/icon.svg +7 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/models/README.md +13 -0
- package/models/Xenova/bge-small-zh-v1.5/config.json +31 -0
- package/models/Xenova/bge-small-zh-v1.5/onnx/model_quantized.onnx +0 -0
- package/models/Xenova/bge-small-zh-v1.5/tokenizer.json +21278 -0
- package/models/Xenova/bge-small-zh-v1.5/tokenizer_config.json +15 -0
- package/package.json +139 -4
- package/src/asset-tool.mjs +237 -0
- package/src/assets.mjs +244 -0
- package/src/backfill.mjs +74 -0
- package/src/backup.mjs +80 -0
- package/src/deadend.mjs +95 -0
- package/src/deleted-store.mjs +35 -0
- package/src/engine.mjs +3831 -0
- package/src/facets/classifier.mjs +146 -0
- package/src/facets/embedding-service.mjs +53 -0
- package/src/facets/embedding-worker.mjs +27 -0
- package/src/facets/embedding.mjs +163 -0
- package/src/facets/extract.mjs +80 -0
- package/src/facets/fold-plan.mjs +84 -0
- package/src/facets/hybrid.mjs +29 -0
- package/src/facets/index.mjs +113 -0
- package/src/facets/linear-probe.mjs +43 -0
- package/src/facets/load.mjs +37 -0
- package/src/facets/mlp-probe.mjs +54 -0
- package/src/facets/mlp-service.mjs +53 -0
- package/src/facets/mlp-worker.mjs +26 -0
- package/src/facets/online-knn.mjs +58 -0
- package/src/facets/online-models.mjs +227 -0
- package/src/facets/panel-state.mjs +23 -0
- package/src/facets/panel.mjs +73 -0
- package/src/facets/random.mjs +26 -0
- package/src/facets/scanner.mjs +35 -0
- package/src/facets/schema.mjs +75 -0
- package/src/facets/seed-examples.mjs +58 -0
- package/src/facets/sensitivity.mjs +98 -0
- package/src/facets/service.mjs +53 -0
- package/src/facets/store.mjs +39 -0
- package/src/facets/worker.mjs +23 -0
- package/src/folds-store.mjs +109 -0
- package/src/groups.mjs +167 -0
- package/src/handoff-tool.mjs +51 -0
- package/src/handoff.mjs +127 -0
- package/src/index.mjs +649 -0
- package/src/inject-policy.mjs +17 -0
- package/src/learning.mjs +88 -0
- package/src/memory/alias-proposal.mjs +40 -0
- package/src/memory/bc-audit.mjs +245 -0
- package/src/memory/bc-index-updater.mjs +404 -0
- package/src/memory/bc-index.mjs +48 -0
- package/src/memory/bc-label.mjs +220 -0
- package/src/memory/bc-panel-state.mjs +107 -0
- package/src/memory/bc-pre-step.mjs +463 -0
- package/src/memory/bc-recall.mjs +470 -0
- package/src/memory/bc-shift.mjs +123 -0
- package/src/memory/bc-store.mjs +41 -0
- package/src/memory/bm25.mjs +112 -0
- package/src/memory/calibration.mjs +54 -0
- package/src/memory/chatter.mjs +29 -0
- package/src/memory/cmap-file.mjs +107 -0
- package/src/memory/concepts-file.mjs +41 -0
- package/src/memory/coref-slots.mjs +40 -0
- package/src/memory/event-alias-ledger.mjs +87 -0
- package/src/memory/event-log.mjs +95 -0
- package/src/memory/event-model.mjs +132 -0
- package/src/memory/event-segmenter.mjs +36 -0
- package/src/memory/event-summary-tree.mjs +122 -0
- package/src/memory/extraction-adapter.mjs +76 -0
- package/src/memory/extraction-composite.mjs +75 -0
- package/src/memory/extraction-core.mjs +76 -0
- package/src/memory/extraction-pre-step.mjs +161 -0
- package/src/memory/extraction-provider.mjs +300 -0
- package/src/memory/extraction-score.mjs +36 -0
- package/src/memory/facet-stabilizer.mjs +59 -0
- package/src/memory/history-map.mjs +139 -0
- package/src/memory/language-router.mjs +30 -0
- package/src/memory/load-gate.mjs +161 -0
- package/src/memory/mechanical-note.mjs +104 -0
- package/src/memory/onboarding.mjs +163 -0
- package/src/memory/persona.mjs +78 -0
- package/src/memory/planner.mjs +249 -0
- package/src/memory/pre-turn.mjs +80 -0
- package/src/memory/query-aliases.mjs +39 -0
- package/src/memory/recall-cue.mjs +43 -0
- package/src/memory/recall.mjs +65 -0
- package/src/memory/referent-candidates.mjs +55 -0
- package/src/memory/referent-ledger.mjs +86 -0
- package/src/memory/relabel-migrate.mjs +376 -0
- package/src/memory/relik-adapter.mjs +25 -0
- package/src/memory/special-keywords.mjs +60 -0
- package/src/memory/structured-adapters.mjs +75 -0
- package/src/memory/summary-index.mjs +335 -0
- package/src/memory/summary-tree.mjs +110 -0
- package/src/memory/term-extractor.mjs +44 -0
- package/src/memory/tokenize.mjs +9 -0
- package/src/memory/vector-index.mjs +54 -0
- package/src/memory/window-summary.mjs +133 -0
- package/src/mood.mjs +133 -0
- package/src/peer-tool.mjs +63 -0
- package/src/peer.mjs +144 -0
- package/src/policy.mjs +170 -0
- package/src/preflight.mjs +113 -0
- package/src/provenance.mjs +94 -0
- package/src/range.mjs +75 -0
- package/src/recall-exact-tool.mjs +267 -0
- package/src/recall-tool.mjs +521 -0
- package/src/recheck.mjs +99 -0
- package/src/save-start.mjs +29 -0
- package/src/session-guard.mjs +140 -0
- package/src/session-log-tool.mjs +322 -0
- package/src/session-log.mjs +606 -0
- package/src/skills.mjs +111 -0
- package/src/split-range.mjs +115 -0
- package/src/state.mjs +198 -0
- package/src/t0.mjs +149 -0
- package/src/tag-confirm.mjs +78 -0
- package/src/tag-detect.mjs +42 -0
- package/src/tag-maintenance.mjs +285 -0
- package/src/tag-reject.mjs +73 -0
- package/src/tags-store.mjs +94 -0
- package/src/tags.mjs +692 -0
- package/src/threads-backend.mjs +26 -0
- package/src/threads-core.mjs +1887 -0
- package/src/threads-store.mjs +207 -0
- package/src/threads-tool.mjs +522 -0
- package/src/threads.mjs +929 -0
- package/src/tool-preview.mjs +427 -0
- package/src/topic.mjs +63 -0
- package/src/training.mjs +75 -0
- package/src/turn-tag.mjs +62 -0
- package/src/user-turn.mjs +39 -0
- package/templates/cmap.md +11 -0
- package/templates/concepts.md +12 -0
- package/templates/habits.md +40 -0
- package/templates/keywords.md +6 -0
- package/templates/rebuild.md +134 -0
- package/templates/rules-safe.md +184 -0
- package/templates/rules.md +177 -0
package/RELEASE-NOTES.md
ADDED
|
@@ -0,0 +1,732 @@
|
|
|
1
|
+
# 发行说明 — 4.12.2
|
|
2
|
+
|
|
3
|
+
## 水位恢复 + maxPerBatch high-protect(4.12.2)
|
|
4
|
+
|
|
5
|
+
4.12.2 恢复 4.12.0 水位,只把 `maxPerBatch` 放到 high−protect;native LLM summary 不变。
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
setpoint 0.76
|
|
9
|
+
high 0.76
|
|
10
|
+
low 0.38
|
|
11
|
+
emergency 0.85 -> 0.62
|
|
12
|
+
protect 0.20
|
|
13
|
+
maxPerBatch 443843
|
|
14
|
+
minAction 24000
|
|
15
|
+
mechanicalNote false
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
`443843 = (0.76 - 0.20) × 792,576 = 443,842.56`。
|
|
19
|
+
|
|
20
|
+
band-high 实际 budget:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
min(est - low, 443843)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
正常 high 折约 `602,358 - 301,179 = 301,179`;overshoot 也不会被 cap 截成二次小折。target 仍是 low,不会折进 protect 尾。
|
|
27
|
+
|
|
28
|
+
`protectCalibration` 不再显式关闭,回到 4.12.0 默认。
|
|
29
|
+
`recall_exact` / `recall` / ABCK / gist / history-map 不变。
|
|
30
|
+
|
|
31
|
+
# 发行说明 — 4.12.1
|
|
32
|
+
|
|
33
|
+
## 阈值调整,保留 native LLM summary(4.12.1)
|
|
34
|
+
|
|
35
|
+
4.12.1 基于 4.12.0,只改折叠阈值;不启用 mechanical note。
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
setpoint 0.80
|
|
39
|
+
high 0.80
|
|
40
|
+
low 0.40
|
|
41
|
+
emergency 0.90 -> 0.66
|
|
42
|
+
protect 0.16
|
|
43
|
+
maxPerBatch 507249
|
|
44
|
+
minAction 24000
|
|
45
|
+
protectCalibration false
|
|
46
|
+
mechanicalNote false
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`507249 = (0.80 - 0.16) × 792,576`,覆盖 high-protect。
|
|
50
|
+
band-high 实际 budget:
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
min(est - low, 507249)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
正常 high 折约 317,030;overshoot 也不会被 cap 截成二次小折。target 仍是 low,不会折进 protect 尾。
|
|
57
|
+
|
|
58
|
+
`recall_exact` / `recall` / ABCK / gist / history-map 不变。
|
|
59
|
+
4.13.x 的 mechanical note 保留为实验代码,4.12.1 不启用。
|
|
60
|
+
|
|
61
|
+
# 发行说明 — 4.13.3
|
|
62
|
+
|
|
63
|
+
## maxPerBatch 覆盖 high-protect(4.13.3)
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
high .80
|
|
67
|
+
low .40
|
|
68
|
+
protect .16
|
|
69
|
+
maxPerBatch 507249
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
`507249 = (0.80 - 0.16) × 792,576 = 507,248.64`。
|
|
73
|
+
|
|
74
|
+
原因:
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
折叠不一定正好在 high 线上开始,会有 overshoot
|
|
78
|
+
cap 若只到 high-low(317k),overshoot 时会被 cap 成更高落点
|
|
79
|
+
放宽到 high-protect 后,band-high 仍以 low 为 target,但不会被 cap 截断
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
实际 budget:
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
min(est - low, maxPerBatch)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
正常高线:
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
min(634,061 - 317,030, 507,249) = 317,030
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
overshoot 时:
|
|
95
|
+
|
|
96
|
+
```text
|
|
97
|
+
est 700,000 -> budget 382,970,仍 < 507,249
|
|
98
|
+
-> 一次折到 low,不会留下二次小折
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
注意:maxPerBatch 放宽不会把 target 改到 protect;target 仍是 low。
|
|
102
|
+
|
|
103
|
+
# 发行说明 — 4.13.2
|
|
104
|
+
|
|
105
|
+
## maxPerBatch 覆盖 high-low(4.13.2)
|
|
106
|
+
|
|
107
|
+
```text
|
|
108
|
+
setpoint 0.80
|
|
109
|
+
high 0.80
|
|
110
|
+
low 0.40
|
|
111
|
+
emergency 0.90 -> 0.66
|
|
112
|
+
protect 0.16
|
|
113
|
+
maxPerBatch 320000
|
|
114
|
+
minAction 24000
|
|
115
|
+
protectCalibration false
|
|
116
|
+
mechanicalNote 32k
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
`maxPerBatch 320,000` 覆盖 high-low 的 `317,030`。
|
|
120
|
+
|
|
121
|
+
实际 band-high budget:
|
|
122
|
+
|
|
123
|
+
```text
|
|
124
|
+
min(est - low, maxPerBatch)
|
|
125
|
+
= min(634,061 - 317,030, 320,000)
|
|
126
|
+
= 317,030
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
所以一次 high 折叠目标落点是 low .40,不是 320k 满额折。
|
|
130
|
+
`maxPerBatch` 只是上限,不是每次都按上限抽。
|
|
131
|
+
|
|
132
|
+
# 发行说明 — 4.13.1
|
|
133
|
+
|
|
134
|
+
## 阈值调整(4.13.1)
|
|
135
|
+
|
|
136
|
+
```text
|
|
137
|
+
setpoint 0.80
|
|
138
|
+
high 0.80
|
|
139
|
+
low 0.40
|
|
140
|
+
emergency 0.90 -> 0.66
|
|
141
|
+
protect 0.16
|
|
142
|
+
maxPerBatch 190000
|
|
143
|
+
minAction 24000
|
|
144
|
+
protectCalibration false
|
|
145
|
+
mechanicalNote 32k
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
目的:把 high-low 的间隔拉开,同时保证一次 band-high 不直接折穿 low。
|
|
149
|
+
|
|
150
|
+
```text
|
|
151
|
+
W−O 792,576
|
|
152
|
+
high-low gap 317,030
|
|
153
|
+
maxPerBatch 190,000 = 60% gap
|
|
154
|
+
high fold 后仍剩约 127k 到 low
|
|
155
|
+
|
|
156
|
+
emergency .90 = 713,318
|
|
157
|
+
emergencyTo .66 = 523,100
|
|
158
|
+
emergency drop = 190,218 ≈ maxPerBatch
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
`low .40` 是下界目标/方向,不是一次 band-high 必须到达的落点;`maxPerBatch 190k` 的意图是分次折,high 后约 56%,下一次再触发才继续。
|
|
162
|
+
|
|
163
|
+
其余不变:recall_exact / recall / ABCK / gist / history-map / mechanical note 逻辑。
|
|
164
|
+
|
|
165
|
+
# 发行说明 — 4.13.0
|
|
166
|
+
|
|
167
|
+
## 机械摘要 trial(4.13.0)
|
|
168
|
+
|
|
169
|
+
4.13.0 是独立试验线;4.12.0 冻结,不覆盖其 tgz。
|
|
170
|
+
|
|
171
|
+
```text
|
|
172
|
+
protect .16
|
|
173
|
+
low .40
|
|
174
|
+
high .76(不变)
|
|
175
|
+
mechanical note 32k
|
|
176
|
+
protectCalibration false
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
`protectCalibration: false` 是“完整 protect”的一部分:否则 calibration 会把 .16 抬到 .20。
|
|
180
|
+
`protect` 是硬地板;floor 高于 low 目标时允许 protectBinds,停在 floor,不强行压到 low。
|
|
181
|
+
|
|
182
|
+
fold 的 summary 不再调用 LLM,而由 `src/memory/mechanical-note.mjs` 机械渲染:
|
|
183
|
+
|
|
184
|
+
```text
|
|
185
|
+
保留 user 文本、tool call、tool receipt
|
|
186
|
+
不保留 assistant 正文、reasoning、系统注入
|
|
187
|
+
32k token cap;超了从更早条目裁
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
预算:
|
|
191
|
+
|
|
192
|
+
```text
|
|
193
|
+
baseline 约 150k + protect .16 约 127k + note 32k ≈ 309k
|
|
194
|
+
low .40 约 317k
|
|
195
|
+
余量约 7.7k
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
不涉及:
|
|
199
|
+
|
|
200
|
+
```text
|
|
201
|
+
recall_exact
|
|
202
|
+
recall / ABCK / gist
|
|
203
|
+
history-map
|
|
204
|
+
high / emergency
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
测试:
|
|
208
|
+
|
|
209
|
+
```text
|
|
210
|
+
mechanical-note 2 pass
|
|
211
|
+
recall-exact 2 pass
|
|
212
|
+
现有 summary/history-map 测试继续通过
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
# 发行说明 — 4.12.0
|
|
216
|
+
|
|
217
|
+
## recall_exact 并入主包(4.12.0)
|
|
218
|
+
|
|
219
|
+
以前 `recall_exact` 是独立的 `@local/recall-exact-shadow`;4.12.0 起并入 `dsh-continuity`:
|
|
220
|
+
|
|
221
|
+
```text
|
|
222
|
+
src/recall-exact-tool.mjs
|
|
223
|
+
index.mjs 全局注册
|
|
224
|
+
不再依赖 @local
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
能力:
|
|
228
|
+
|
|
229
|
+
```text
|
|
230
|
+
字面搜索,独立于 recall 的语义路径
|
|
231
|
+
只搜 user + assistant text
|
|
232
|
+
排除 reasoning / tool-call / 注入文本
|
|
233
|
+
ASCII 边界 [0-9A-Za-z],中文子串
|
|
234
|
+
返回 totalTurns / totalIntervals / shown / turnShare
|
|
235
|
+
只读、不排序、不写
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
用法:
|
|
239
|
+
|
|
240
|
+
```text
|
|
241
|
+
recall_exact({ query: "0.2.17" })
|
|
242
|
+
recall_exact({ query: "stage19", since: 2200 })
|
|
243
|
+
recall_exact({ query: "coo-read-side", near: 2300, window: 20 })
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
升级时请移除旧的 `@local/recall-exact-shadow`,避免同名工具。
|
|
247
|
+
|
|
248
|
+
## 中间层收敛到 native summary(4.12.0)
|
|
249
|
+
|
|
250
|
+
```text
|
|
251
|
+
默认中间层 = DSH native checkpoint
|
|
252
|
+
fold 仍由 compactIfNeeded 触发
|
|
253
|
+
LLM 写 summary,旧 summary 下次折入
|
|
254
|
+
history-map 默认 off
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
`history-map` 只保留为实验档:
|
|
258
|
+
|
|
259
|
+
```text
|
|
260
|
+
~/.dsh/continuity/history-map-mode
|
|
261
|
+
off 默认
|
|
262
|
+
observe 只写 probe
|
|
263
|
+
auto 实验注入
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
详见 `docs/history-map.md`。
|
|
267
|
+
|
|
268
|
+
## summary-index / window 工具(4.12.0)
|
|
269
|
+
|
|
270
|
+
```text
|
|
271
|
+
bin/summary-index.mjs
|
|
272
|
+
bin/summary-query.mjs
|
|
273
|
+
src/memory/window-summary.mjs
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
`--extract-pending` 可在有 pending window 时生成抽取式摘要;默认不自动跑。
|
|
277
|
+
|
|
278
|
+
## 验证(4.12.0)
|
|
279
|
+
|
|
280
|
+
```text
|
|
281
|
+
recall-exact 单测 2 pass
|
|
282
|
+
history-map / summary-index / window-summary 既有测试继续通过
|
|
283
|
+
0b raw 88k 事件性能:首次 67ms,缓存 13ms
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
# 发行说明 — 4.11.36
|
|
287
|
+
|
|
288
|
+
## 宽度策略调整(4.11.36)
|
|
289
|
+
|
|
290
|
+
high .76 / low .38 / emergency .85 / emergencyTo .62 / protect .20;band-high 预算 120,472,maxPerBatch 190k 不咬;emergency drop 182,292 也在 190k 内。
|
|
291
|
+
|
|
292
|
+
## 包/源一致性自检(4.11.36)
|
|
293
|
+
|
|
294
|
+
重打安全增量(4.11.34 包漏了 noop)。新增 bin/pack-integrity.mjs:pack 后比对 tgz 内关键文件与 dev 树 sha,不一致直接失败。测试仍不随包。
|
|
295
|
+
|
|
296
|
+
## 安全增量(4.11.36)
|
|
297
|
+
|
|
298
|
+
全表 labelStamp 已是当前值 -> noop 0 行、删 marker;任一 stale -> 全量。原因:self-LOO 逐行跳过会让 baseline 偏。附实测 3–5 分钟。
|
|
299
|
+
|
|
300
|
+
## relabel 词表路径修正(4.11.36)
|
|
301
|
+
|
|
302
|
+
hook 的 relabel 改用 sessionFile(sessionId, concepts.md),不再用 persona/global 回退;测试夹具改为生产同构路径并断言 conceptsFile/indexFile。规则加“夹具目录必须与生产同构”。
|
|
303
|
+
|
|
304
|
+
## relabel 覆盖前置检查(4.11.36)
|
|
305
|
+
|
|
306
|
+
打标前先比事件推出的 turn 集合与 index turn 集合;缺任一 turn 直接 abort read-not-covering,带 events/turns/missing 数字,不再白烧 CPU。修复 bc-pre-step 日志代码的 fs 命名导入;规则加“留痕代码 catch 至少 console.error”。
|
|
307
|
+
|
|
308
|
+
## relabel 失败留痕(4.11.36)
|
|
309
|
+
|
|
310
|
+
relabel-log.jsonl 记录 start/log/result/error;失败写回 marker.attempts/lastError;内部 log 同时 console+文件。用于定位首轮迁移秒退。
|
|
311
|
+
|
|
312
|
+
## relabel 启动钩子(4.11.36)
|
|
313
|
+
|
|
314
|
+
只接 marker 触发,不自动打 marker;无 marker 路径不变。每进程每 session 只尝试一次,abort 后恢复普通索引、marker 保留。
|
|
315
|
+
|
|
316
|
+
## updater gate / labelStamp(4.11.36)
|
|
317
|
+
|
|
318
|
+
仍不接线。updater 增加 whenIdle/isRunning/pendingCount、gate 命中不写盘不推进 state、pending 合并、labelStamp;pre-step 建共享 gate 与 conceptsFile;round-trip 守卫覆盖 labelStamp/terms/topicMinScore。
|
|
319
|
+
|
|
320
|
+
## dry-run 支持 v2 baseline(4.11.36)
|
|
321
|
+
|
|
322
|
+
relabel-dry-run 支持 {version:2,topics,workflows},workflow 也建 baseline 并传入 labelChunked;不再对 v2 静默退回 LOO。
|
|
323
|
+
|
|
324
|
+
## 面板 A 表实算 + 健康分布(4.11.36)
|
|
325
|
+
|
|
326
|
+
bc-panel-state 给 aLabels 加 turns=index 实算;client A 概念区显示“轮数=索引实算”,不再把 concepts 第三列当轮数。rules 增加健康分布观察目标。
|
|
327
|
+
|
|
328
|
+
## 混淆对加区分词(4.11.36)
|
|
329
|
+
|
|
330
|
+
根 rules 增加:只给混淆对加区分词,不整表加宽;人工非空标注 <30 条只比方向,不合并/重构。
|
|
331
|
+
|
|
332
|
+
## workflow eval(4.11.36)
|
|
333
|
+
|
|
334
|
+
eval-label-rules 支持 workflowLabel,输出 workflow precision/recall/exact/any-hit/漏/多/top-2;baseline 支持 v2 topics/workflows。无 BOM。
|
|
335
|
+
|
|
336
|
+
## workflow baseline 与 0 条出口(4.11.36)
|
|
337
|
+
|
|
338
|
+
baseline v2 拆分 topics/workflows;workflow 用 centered>=.02 且 lead>=.02,不达标 workflow:[],不再固定占两席;旧 v1 baseline 自动迁移 topics。
|
|
339
|
+
|
|
340
|
+
## cmap 接线(4.11.36)
|
|
341
|
+
|
|
342
|
+
bc-pre-step 两处 createIndexUpdater 都传 cmapFile: cmapPath;updater 不再默认读全局 ~/.dsh/continuity/cmap.md,缺 cmapFile 时跳过 terms 并记一次 cmap-file-missing。旧行不回填。
|
|
343
|
+
|
|
344
|
+
## C map terms 写盘(4.11.36)
|
|
345
|
+
|
|
346
|
+
bc-index-updater 从 cmap.md 读 term,text/keywords 命中即写入 record.terms;旧记录不回填。修复 C 清单恒空、C 高亮不亮。
|
|
347
|
+
|
|
348
|
+
## topicMinScore 持久化(4.11.36)
|
|
349
|
+
|
|
350
|
+
toPointer 之前漏了 topicMinScore,导致 labeler/updater 有值但写盘被过滤。现已加入 pointer,测试覆盖 roundtrip。旧行不回填,需 relabel 时补。
|
|
351
|
+
|
|
352
|
+
## eval baseline 缺失修复(4.11.36)
|
|
353
|
+
|
|
354
|
+
eval-label-rules 把缺失 baseline 记为 NaN 而非 0,再以已知 topic 全局均值回填;空 baseline 则 raw-bootstrap。输入与 baseline 读取去 BOM。避免缺失项 centered=raw 通吃。
|
|
355
|
+
|
|
356
|
+
## baseline 缺失回退(4.11.36)
|
|
357
|
+
|
|
358
|
+
baseline 里没有的 topic 用 session 全局均值回退,不记 0;没有任何 baseline 样本时按 raw bootstrap、不做居中。避免新增 topic 因 0 基线获得偏置。eval-label-rules 同步。
|
|
359
|
+
|
|
360
|
+
## 评估脚本与 concepts 模板(4.11.36)
|
|
361
|
+
|
|
362
|
+
bin/eval-label-rules.mjs 随包发布;--baseline-file 同时接受扁平 {topic:mean} 和 {version,window,samples:{topic:[...]}}。private files 补 templates/concepts.md。
|
|
363
|
+
|
|
364
|
+
## topic baseline 居中(4.11.36)
|
|
365
|
+
|
|
366
|
+
bc-index-updater 新增 per-session bc-topic-baseline.json:记录最近 300 轮所有 topic raw score,centered=raw-滚动均值;判据 centered>=.02 且领先>=.02,否则 topic:[];当前轮不参与自己的 baseline,标完再更新。D 方案。
|
|
367
|
+
|
|
368
|
+
## A 表描述写法(4.11.36)
|
|
369
|
+
|
|
370
|
+
根 rules / rules-safe 增加:A 表描述用一句短句 + 4–6 个具体名词;具体名词优先于抽象词;改描述或加 topic 后用同一批 ≥30 轮固定样本复核 top-1/top-2/空值/margin,不达标回退。
|
|
371
|
+
|
|
372
|
+
## 用户输入补 turn / 去 reasoning(4.11.36)
|
|
373
|
+
|
|
374
|
+
bc-index-updater 从 turn/start、step/start 建 seq→turn 映射,给没有 data.turn 的 user/message 补 turn;打标文本只用 includeReasoning:false;同 turn 内用户在前、助手在后。修复 31 条样本 userChars=0、reasoning 占正文的问题。
|
|
375
|
+
|
|
376
|
+
## 分块打标 + 相对间隔(4.11.36)
|
|
377
|
+
|
|
378
|
+
bc-label 增加 labelChunked:600 字一块,最多 12 块,逐块算 concept 最高分;topic 需 >= topicMinScore 且领先第二名 >= topicMargin(.03),否则 topic:[]。bc-index-updater 改用 labelChunked;长轮次不再只按开头打分。
|
|
379
|
+
|
|
380
|
+
## topicMinScore(4.11.36)
|
|
381
|
+
|
|
382
|
+
bc-label 增加 topicMinScore 默认 0.33;topic 低于阈值返回空数组,不再 score>0 必选。topicMinScore 写入记录,便于一致率统计。topic 为空时 recall A标签/面板安全。
|
|
383
|
+
|
|
384
|
+
## workflow childSessionId 硬约束(4.11.36)
|
|
385
|
+
|
|
386
|
+
workflow 最终 return 不回传 childSessionId;必须让子读 DSH_SESSION_ID 并写入回执。subagent 至少给启动 agentId,workflow 连这个都没有。根规则、rules-safe、guide 07 已同步。
|
|
387
|
+
|
|
388
|
+
## PTC unresolved 细节(4.11.36)
|
|
389
|
+
|
|
390
|
+
guide 07 与根规则补上 unresolvedArtifacts 的实际形状 {source, reason:"not-a-file"},以及 artifactsResolved=false;避免新鱼以为 unresolved 是字符串。
|
|
391
|
+
|
|
392
|
+
## 指南编号修正(4.11.36)
|
|
393
|
+
|
|
394
|
+
06-EMBEDDING.md 已占用 06;PTC/子 agent/assets 指南改为 07-PTC-AND-ASSETS.md,README/00-READ-FIRST 同步。
|
|
395
|
+
|
|
396
|
+
## PTC / 子 agent / assets 说明书(4.11.36)
|
|
397
|
+
|
|
398
|
+
新增 guides/07-PTC-AND-ASSETS.md;根版 rules.md / rules-safe.md 增加 PTC/子 agent/assets 节:父 canonical、子用 DSH_SESSION_ID、ptc_handoff 回执与 artifact 复制、session_asset/child_asset 分工、大结果落 assets、旧 mime/seq 容忍、不要 backup→compact→restore 验资产。
|
|
399
|
+
|
|
400
|
+
## artifactSources mime(4.11.36)
|
|
401
|
+
|
|
402
|
+
ptc_handoff 的 artifactSources 每条现在带 mime,离线读 handoff.json 就能知道 png=image/png、txt=text/plain。
|
|
403
|
+
|
|
404
|
+
## PTC artifact mime/seq(4.11.36)
|
|
405
|
+
|
|
406
|
+
复制品按扩展名补 mime(png->image/png,txt->text/plain,json->application/json)。同一 handoff 内 handoff=baseSeq,artifacts=baseSeq+1..N,不再全部 seq=0,child_asset get 可按 seq 定位每个 artifact。
|
|
407
|
+
|
|
408
|
+
## PTC artifact 实体化(4.11.36)
|
|
409
|
+
|
|
410
|
+
ptc_handoff 不再只把 artifact 路径写进 envelope。存在的文件会复制到 assets/ptc/<run>/<child>/,带 sha256/bytes,envelope.artifacts 改为已注册相对路径;缺失文件记入 unresolvedArtifacts,artifactsResolved=false,不制造悬空指针。
|
|
411
|
+
|
|
412
|
+
## attachmentId 解析与父图恢复(4.11.36)
|
|
413
|
+
|
|
414
|
+
用户上传图片常以 attachmentId 存在,只有 name/mediaType/bytes,没有 path/data。assets 现在解析 .dsh/attachments/v1/objects/<sha>,写入 payload;session_asset get 对已折叠的 parent seq 也能从 raw session 现场恢复。已确认 seq 78456 的附件对象存在(422135 B)。
|
|
415
|
+
|
|
416
|
+
## 路径图片 + header=false 资产指针(4.11.36)
|
|
417
|
+
|
|
418
|
+
materializeRangeAssets / nonTextInfo 识别 data.content、data.summary、data.message.content;用户上传图片不再漏扫。provenance.header=false 时仍写入 asset-only 指针,避免资产落盘但不可见。
|
|
419
|
+
|
|
420
|
+
## 路径图片字节补全(4.11.36)
|
|
421
|
+
|
|
422
|
+
read_image 这类只给 name/path 的 image block,bytes 以前为 null,被 4MiB 闸当成非图片而换成 handle。现在 bytes 未知时用 fs.statSync(path).size 补全;仍超过 4MiB 才回 handle。
|
|
423
|
+
|
|
424
|
+
## Assets + PTC handoff(4.11.36)
|
|
425
|
+
|
|
426
|
+
新增 sessions/<id>/assets:fold 前把 image/file/audio/video 原样落盘,并写 index.jsonl。session_log 标记 [asset-parent ...];session_asset 取父资产;child_asset 取 PTC child artifact,并在 child session 仍可读时现场恢复未注册图片;ptc_handoff 把 child envelope 写成父可见 artifact。工具当前返回路径与元数据,不直接返回 image block。
|
|
427
|
+
|
|
428
|
+
## 图片尺寸闸(4.11.36)
|
|
429
|
+
|
|
430
|
+
MAX_INLINE_IMAGE_BYTES = 4 MiB。图片 bytes(attachment.size 或 base64 长度折算)≤4MiB 才保留;超过则回到 non-text handle 并保留原因。这样不依赖宿主 tokenMeter 对 image 的估算。
|
|
431
|
+
|
|
432
|
+
## 图片结果保留(4.11.36)
|
|
433
|
+
|
|
434
|
+
handleNonTextResults 跳过 image 工具结果;图片不再被替换成 text handle,直接进入模型上下文。file/audio/video 仍走原来的 handle。图片会占 context token,可能触发更高水位或 overflow;这是保留图片的代价。
|
|
435
|
+
|
|
436
|
+
## coo/peer 双角色兼容(4.11.36)
|
|
437
|
+
|
|
438
|
+
load-gate / event-alias-ledger / referent-ledger 同时接受 role/source 的 coo 与 peer;public 版不再把 coo 替换成 peer。pet bridge 传 coo 时行为保留,公共包仍保持 peer 命名。special keywords 默认空是 public 的故意隐私默认,K 表不受影响。
|
|
439
|
+
|
|
440
|
+
## 4.11.36 修正(4.10.0 作废)
|
|
441
|
+
|
|
442
|
+
4.10.0 的 public 包从 `publish/dsh-continuity-public` 打出,但该树 `src/engine.mjs` 仍是旧的 `warnOnce`(仍写 lastError)。4.11.36 已把 dev 的 engine 同步进 public 并重新打包。逐文件哈希:engine `8081CF81B0EC` 两侧一致;其余 14 个 src 差异为既有的 public 去个人化差异,不是行为漂移。
|
|
443
|
+
|
|
444
|
+
## Stable 首版(4.11.36)
|
|
445
|
+
|
|
446
|
+
相对 4.9.136:
|
|
447
|
+
|
|
448
|
+
```text
|
|
449
|
+
C 表 recall / 面板同时支持 terms ∪ keywords;turns:0 的 cmap 条目可见
|
|
450
|
+
首次 band-high 做 protect 校准(protect_source=calibration / protect_eff / B0)
|
|
451
|
+
drift 用 protect 距离 0.02 判定;afterTokens 只作 provisional
|
|
452
|
+
K-04 用 preBaselineTokens;budget 只约束被折的 surface
|
|
453
|
+
根版 rules 6.x:确认读取点 / 不可逆先停 / 探针 / 独立性 / 依据 / 存取 / 指针说明
|
|
454
|
+
warnOnce 不再写 lastError;tags.json 缺失只记 warn
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
安装见 `INSTALL.md` 或 `guides/01-INSTALL.md`。
|
|
458
|
+
|
|
459
|
+
## 根版四处收口(4.9.136)
|
|
460
|
+
|
|
461
|
+
§7 可改清单加 concepts.md / aliases.md;§3 写明 K/C 与 A 同路径 session 目录;§10 明确 ±3% × low×W;§9 peer_message 视为安装依赖而非必过。
|
|
462
|
+
|
|
463
|
+
## 读数来源五处修正(4.9.135)
|
|
464
|
+
|
|
465
|
+
rules.md:追忆点明 session_log get;K 立即生效、C/A 需 recall 工具重建;自检用当前 Web 端口;fold 稳定值读 state/context-log 的 context.estTokens;low/W 读 engine.policy.low 与 context.windowTokens。删除不存在的 nextRequest 字段。
|
|
466
|
+
|
|
467
|
+
## base rules persona-neutral(4.9.134)
|
|
468
|
+
|
|
469
|
+
撤回 6.7 Creator 入口;根版不再假设存在 Creator。rules-safe 的示例名/示例话题同步去个人化。其余六条与指针说明保留。
|
|
470
|
+
|
|
471
|
+
## base rules 补 8 条(4.9.133)
|
|
472
|
+
|
|
473
|
+
新增:确认读取点(四形态)、不可逆先停、卡住装探针、判断独立性、依据/痕迹、存与取、Creator 入口、指针不是缺全文;K-04 注明 preBaselineTokens。保护节后移,确认读取点前置。
|
|
474
|
+
|
|
475
|
+
## 面板 C 计数 keywords fallback(4.9.132)
|
|
476
|
+
|
|
477
|
+
bc-panel-state 的 C 计数改为 terms ∪ keywords,与 recall 对齐;cmap 里配置但暂时未命中的条目显示 turns:0,不再消失。
|
|
478
|
+
|
|
479
|
+
## C 表 keywords fallback(4.9.131)
|
|
480
|
+
|
|
481
|
+
C 分支不再只认 record.terms;候选集改为 terms ∪ keywords,terms 匹配排序靠前。cmap 写了但 terms 为空的用户词(折叠/流量/线头/重启等)现在能 via C 命中;literal fallback 保持不变。
|
|
482
|
+
|
|
483
|
+
## drift 判据 0.02(4.9.130)
|
|
484
|
+
|
|
485
|
+
不再用 |preBaseline−B0|>10%W;改为 |protect_suggested − protect_eff| ≥ 0.02 时一次性 suggestion。长期数据:baseline/surface 中位 0.519;.14 只在 baseline < 142,663 时保证 floor < low,六次采样有三次超过。
|
|
486
|
+
|
|
487
|
+
## 首次 band-high 校准(4.9.129)
|
|
488
|
+
|
|
489
|
+
B0 = 首次 band-high 的 preBaseline;protect_eff=clamp((low*W−B0−.01W)/W,.10,.20),同一 fold 立即用,session 内冻结。calibration 缺失才用 .14。drift >10%W 只给一次 suggestion,不改 policy;clamp .10 且 floor≥low 时同时报 low_min。
|
|
490
|
+
|
|
491
|
+
## K-04 验收条款(4.9.128)
|
|
492
|
+
|
|
493
|
+
templates/rules.md 与 guides/03 增加 fold 验收:瞬时值是 provisional,判据用下一次正常 pre-step 的稳定值;protectBinds 用 preBaseline;实际减少量可大于 budget(non-surface 前缀被一并带走)。
|
|
494
|
+
|
|
495
|
+
## baselinePerNode(4.9.127)
|
|
496
|
+
|
|
497
|
+
context-log 增加 baselinePerNode = baseline / nodeCount。节点数不变而 baselinePerNode 变 -> 估值/固定开销;两者同步 -> 新节点。文档同时改明:budget 只约束被折的 surface,non-surface 前缀可被一并带走,实际请求减少量可大于 budget。
|
|
498
|
+
|
|
499
|
+
## baseline nodeCount probe(4.9.126)
|
|
500
|
+
|
|
501
|
+
context-log 增加 nodeCount / nodeTokenSum / measurementBaseline。若 nodeCount 不变而 baseline 涨,是估值/相位;若 nodeCount 也涨,是新增内容。
|
|
502
|
+
|
|
503
|
+
## pre-fold baseline 判定(4.9.125)
|
|
504
|
+
|
|
505
|
+
```text
|
|
506
|
+
preBaselineTokens = 触发时 est − surface -> floor/protectBinds
|
|
507
|
+
afterBaselineTokens = 折后描述,不参与判定
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
实测 0b:pre 133,272 + .16W 126,812 = floor 260,084;after 263,723 = floor+3,639(切边)。4.9.124 的 context-log 只读白名单仍在。
|
|
511
|
+
|
|
512
|
+
## context-log 只读白名单(4.9.124)
|
|
513
|
+
|
|
514
|
+
`read` 可以打开 ~/.dsh/continuity/context-log.jsonl;写入和 shell 仍被拦。用于核对 est/surface/baseline 的相位差。
|
|
515
|
+
|
|
516
|
+
## 平衡切边的 afterTokens(4.9.123)
|
|
517
|
+
|
|
518
|
+
`afterTokens` 允许高于 floor;差额来自 tool-pair 对齐的结束边界,实测 +3,639。这是预期行为,不是测量错误。
|
|
519
|
+
|
|
520
|
+
## 平衡带 0.48/0.32(4.9.122)
|
|
521
|
+
|
|
522
|
+
```text
|
|
523
|
+
high 0.48 · low 0.32 · setpoint 0.48
|
|
524
|
+
emergency 0.65 · emergencyTo 0.42
|
|
525
|
+
protect 0.14 · maxPerBatch 190k · minAction 24k
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
0b 窗口:high 380k,low 254k,floor 约 244k(baseline 133k + protect .14),一次折约 127k。
|
|
529
|
+
4.9.120 的 protect .30 会把 floor 顶到约 356k,low 到不了,已作废,不要安装。
|
|
530
|
+
|
|
531
|
+
默认值是启发式,不是保证;真正的判据是每次 fold 的 `afterTokens` 对 `lowTargetTokens`。
|
|
532
|
+
baseline 在折叠前后可能大幅跳变(实测 133,272 → 71,450),所以“baseline 涨了”至少要两个采样点、且跨一次折叠才成立。
|
|
533
|
+
|
|
534
|
+
## 维护者访问(4.9.118)
|
|
535
|
+
|
|
536
|
+
```text
|
|
537
|
+
C:\Users\35794\.dsh\continuity/operator-sessions.json
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
显式列出的 session 可以跨 session 维护;未列出时仍按 persona/本 session 拦截。没有这个文件时,operator 行为不存在。
|
|
541
|
+
|
|
542
|
+
## 0.19 压缩带(4.9.117)
|
|
543
|
+
|
|
544
|
+
```text
|
|
545
|
+
high 0.455, low 0.34, protect 0.19, emergency 0.56, emergencyTo 0.36
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
0b 实测 363,543 tokens;新 floor 约 268k,目标约 269k。比 0.18/0.33 多保留约 8k 最近原文,比 0.20/0.35 少约 8k token。
|
|
549
|
+
|
|
550
|
+
## Token-saver 压缩带(4.9.116)
|
|
551
|
+
|
|
552
|
+
```text
|
|
553
|
+
high 0.455, low 0.34, emergency 0.56, emergencyTo 0.36
|
|
554
|
+
protect 0.19, maxPerBatch 140k, minAction 16k
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
0b 实测 363,543 tokens、baseline 117,816;旧 floor 约 355k,新 floor 约 268k。新带宽在 ~361k 触发,一次可把每轮输入向 ~269k 拉。代价是最近原文保护从 30% 降到 19%。
|
|
558
|
+
|
|
559
|
+
## vec 自检(4.9.115)
|
|
560
|
+
|
|
561
|
+
```text
|
|
562
|
+
guides/06-EMBEDDING.md 说明 pnpm 跳过 onnxruntime-node 时为什么 vec 为空
|
|
563
|
+
bin/vec-check.mjs 直接测试本地 embedding 是否返回 512 维有限向量
|
|
564
|
+
embedding.mjs 失败时给出 approve-builds/rebuild 提示
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
## 入口指引(4.9.114)
|
|
568
|
+
|
|
569
|
+
`guides/00-READ-FIRST.md` 现在直接用链接指向 01–05。交付 bundle 文件名会带 `(先读Read-First)`,让接收者先看到入口。
|
|
570
|
+
|
|
571
|
+
## 说明书改写(4.9.113)
|
|
572
|
+
|
|
573
|
+
guides/00–05 已从 checklist 改成“步骤 + 为什么 + 不做会怎样 + 如果……则会……”的说明文。
|
|
574
|
+
所有命令和路径保留,新增的是解释和失败例子。
|
|
575
|
+
|
|
576
|
+
## A 表维护(4.9.112)
|
|
577
|
+
|
|
578
|
+
```text
|
|
579
|
+
新 session 的 A 为空 -> B 也为空,这是正常初始状态
|
|
580
|
+
A 不会自动生成;需要实例/用户按 rules 维护 concepts.md
|
|
581
|
+
rules.md / rules-safe.md 已加入 A 表维护段
|
|
582
|
+
已有 session 不会自动重写自己的 rules.md
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
日期:2026-11-03
|
|
586
|
+
|
|
587
|
+
这一版把每个 session 的完整记忆集都放在本地:
|
|
588
|
+
A/C/K、rules、habits、B 索引、审计、提示全部在
|
|
589
|
+
`sessions/<sessionId>/` 下。新 session 从空 A/C/K 起,rules/habits 来自
|
|
590
|
+
插件根模板,不继承另一个 session 的词表或行为。
|
|
591
|
+
|
|
592
|
+
## 面板诊断
|
|
593
|
+
|
|
594
|
+
```text
|
|
595
|
+
PANEL.md 明确说明 A/B/C/K 是插件 UI
|
|
596
|
+
bin/panel-check.mjs 检查 client.js、dsh.client 和 host route
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
包内已包含 client.js;看不到 tab 时先按 PANEL.md 判断是 client 未加载还是宿主缺少 sidebarRight。
|
|
600
|
+
|
|
601
|
+
## 稀疏索引审计
|
|
602
|
+
|
|
603
|
+
`k` 现在上限为实际参与聚类的记录数:
|
|
604
|
+
|
|
605
|
+
```js
|
|
606
|
+
const k = Math.min(points.length, Math.max(20, Math.min(60, Math.round(points.length / 50))));
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
当导入/恢复的索引只有 1–19 条带 vec 的记录时,不再尝试选 20 个不同中心而卡死。
|
|
610
|
+
新增测试覆盖 1 / 5 / 19 条记录。
|
|
611
|
+
|
|
612
|
+
## 审计恢复与输入校验
|
|
613
|
+
|
|
614
|
+
```text
|
|
615
|
+
running:true 带 runningAt;超过 15 分钟视为 stale 并自动恢复
|
|
616
|
+
旧状态没有 runningAt 或 JSON null 也按空状态恢复
|
|
617
|
+
audit.lock 带 owner token;只释放自己的锁
|
|
618
|
+
stale 锁先 rename 到 quarantine,确认 token 后再删
|
|
619
|
+
拿到锁后重新检查 200 轮资格
|
|
620
|
+
未来 mtime 按 stale 处理
|
|
621
|
+
vec 必须是合法 base64、有限数、非零、维度一致
|
|
622
|
+
坏 vec 不再推进审计游标
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
新的 gate/peer 过滤同时接受旧 `[闸]` 前缀,避免 legacy notice 被误判;
|
|
626
|
+
tag-confirm/engine 的 legacy 选择器也接受 `[gate]/[peer]`。
|
|
627
|
+
|
|
628
|
+
## 按 session 的 dropped-ranges
|
|
629
|
+
|
|
630
|
+
`folds.json` 仍按 `sessions/<id>` 分键,`passes.jsonl` 仍保留 `sessionId` 字段;
|
|
631
|
+
`dropped-ranges.json` 改为:
|
|
632
|
+
|
|
633
|
+
```text
|
|
634
|
+
sessions/<sessionId>/dropped-ranges.json
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
每个文件只合并本 session 的 folds/passes。全局 `dropped-ranges.json` 不再写入,
|
|
638
|
+
因为不同 session 的 seq 空间不同源,合并没有意义。
|
|
639
|
+
|
|
640
|
+
`appendPassLog` 在写入后按 `pass.sessionId` 重建;宿主启动时也会对已有
|
|
641
|
+
passes/folds 做一次按 session 的重建。
|
|
642
|
+
|
|
643
|
+
## Session 布局
|
|
644
|
+
|
|
645
|
+
```text
|
|
646
|
+
~/.dsh/continuity/sessions/<sessionId>/
|
|
647
|
+
bc-index.jsonl
|
|
648
|
+
bc-index-state.json
|
|
649
|
+
audit-state.json
|
|
650
|
+
expand-hint.jsonl
|
|
651
|
+
concepts.md
|
|
652
|
+
cmap.md
|
|
653
|
+
keywords.md
|
|
654
|
+
aliases.md
|
|
655
|
+
rules.md <- templates/rules.md
|
|
656
|
+
habits.md <- templates/habits.md
|
|
657
|
+
rebuild.md
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
`docs/SESSION-LAYOUT.md` 是权威的路径/权限表。
|
|
661
|
+
|
|
662
|
+
## 守卫
|
|
663
|
+
|
|
664
|
+
`src/session-guard.mjs` 只检查带路径的参数:
|
|
665
|
+
|
|
666
|
+
```text
|
|
667
|
+
自己的 sessions/<id>/ 和 workspace -> 允许
|
|
668
|
+
另一个 session 的 continuity 文件 -> 拒绝
|
|
669
|
+
消息/文件正文 -> 不扫描
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
禁用 persona 仍保留普通 workspace 工具,只拒绝 continuity 路径。
|
|
673
|
+
|
|
674
|
+
这是 best-effort,不是 OS ACL。
|
|
675
|
+
|
|
676
|
+
## 词表热刷新
|
|
677
|
+
|
|
678
|
+
`concepts.md` / `cmap.md` 的 mtime 在每次 pre-step 检查;变化会重建该
|
|
679
|
+
session 的 labeler/cmap。`keywords.md` 在索引时读取,`aliases.md` 由 recall
|
|
680
|
+
每次读取。旧记录不自动重标。
|
|
681
|
+
|
|
682
|
+
## Preset
|
|
683
|
+
|
|
684
|
+
已启动的 session 不能切 preset:
|
|
685
|
+
|
|
686
|
+
```text
|
|
687
|
+
agentPresets.select -> agent-preset/locked
|
|
688
|
+
```
|
|
689
|
+
|
|
690
|
+
改 session header 来切 preset 不受支持,可能让 session 从列表消失。
|
|
691
|
+
不要这样做。
|
|
692
|
+
|
|
693
|
+
`standard` 保留原生 `compaction-basic` 80%;没有 continuity band 引擎,也没有
|
|
694
|
+
原生 `recall`/`session_log` 工具。
|
|
695
|
+
|
|
696
|
+
## 空 session 面板
|
|
697
|
+
|
|
698
|
+
A/B/C/K 四个 section 始终渲染。空表显示明确的空状态,不再整段消失。
|
|
699
|
+
|
|
700
|
+
## 经典说明
|
|
701
|
+
|
|
702
|
+
包内恢复经典编号说明:
|
|
703
|
+
|
|
704
|
+
```text
|
|
705
|
+
guides/00-READ-FIRST.md
|
|
706
|
+
guides/01-INSTALL.md
|
|
707
|
+
guides/02-TABLES.md
|
|
708
|
+
guides/03-AUDIT.md
|
|
709
|
+
guides/04-REBUILD.md
|
|
710
|
+
guides/05-FIRST-RUN.md
|
|
711
|
+
```
|
|
712
|
+
|
|
713
|
+
`04-REBUILD` 是九步重建流程,不是一键迁移;先备份、先 dry-run。
|
|
714
|
+
`bin/export-turns.py` 用于导出 turns。
|
|
715
|
+
|
|
716
|
+
实战状态:
|
|
717
|
+
|
|
718
|
+
```text
|
|
719
|
+
已验证:continuity preset 的 session,有真实历史
|
|
720
|
+
未验证:standard preset 的 session
|
|
721
|
+
```
|
|
722
|
+
|
|
723
|
+
## 验收
|
|
724
|
+
|
|
725
|
+
```text
|
|
726
|
+
npm test exit 0
|
|
727
|
+
npm run check exit 0
|
|
728
|
+
```
|
|
729
|
+
|
|
730
|
+
包内容:插件、全部 `docs/*.md`(现行/历史索引在 `docs/README.md`)、
|
|
731
|
+
`guides/00`–`05`、templates、bin、models、client。
|
|
732
|
+
不包含任何 session-specific 工具。
|