@furongjun1999/dsh-memory 0.6.1 → 0.7.0

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 (48) hide show
  1. package/README.md +48 -18
  2. package/docs/README.md +1 -0
  3. package/docs/eval//345/207/272/350/264/247/351/235/242/345/206/222/347/203/237_/350/277/233/350/264/247/351/227/250/347/246/201_v1.0.md +460 -0
  4. package/docs/eval//345/217/221/345/270/20308_/350/207/252/350/277/255/344/273/243/344/270/216/347/235/241/347/234/240_/345/233/276/346/243/200/347/264/242/350/267/257/344/270/216/346/235/203/351/207/215_v1.0.md +97 -0
  5. package/docs/eval//345/275/222/344/270/200/345/261/202/347/274/272/347/234/201/347/277/273/345/205/263_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +458 -0
  6. package/docs/hive//346/243/200/347/264/242/347/256/227/346/263/225/345/217/243/345/276/204/345/257/271/347/205/247_v0.1.md +136 -11
  7. package/docs/hive//346/243/200/347/264/242/350/267/257/345/276/204/344/270/216/350/256/244/347/237/245/347/273/223/346/236/204/345/245/221/347/272/246_v0.1.md +32 -2
  8. package/docs/mdcg/README/350/257/246/347/273/206/347/211/210_v0.4.10.md +88 -0
  9. package/docs/mdcg//345/212/237/350/203/275/350/260/203/347/224/250/346/230/240/345/260/204/350/241/250_v0.1.md +40 -40
  10. package/docs/mdcg//345/217/221/345/270/203/351/227/250/347/246/201/351/223/276_v0.1.md +47 -11
  11. package/docs/mdcg//347/235/241/347/234/240/345/221/250/346/234/237_/350/277/220/347/273/264/345/211/215/346/217/220/344/270/216/347/273/264/346/212/244/346/214/207/345/215/227_v1.0.md +183 -0
  12. package/docs/plans//347/235/241/347/234/240/344/270/216/350/207/252/350/277/255/344/273/243_/345/212/237/350/203/275/344/274/230/345/214/226/350/256/276/350/256/241_v0.4.md +547 -0
  13. package/md_cg/bench_e2e_locomo_qa.py +11 -4
  14. package/md_cg/chain.py +47 -0
  15. package/md_cg/freshness.py +511 -0
  16. package/md_cg/generation.py +409 -0
  17. package/md_cg/hotcache.py +4 -1
  18. package/md_cg/mcp_server.py +128 -19
  19. package/md_cg/mdcg.py +509 -22
  20. package/md_cg/mdcos.py +203 -22
  21. package/md_cg/nodefile.py +74 -1
  22. package/md_cg/semantic/canonical.py +22 -0
  23. package/md_cg/semantic/unify.py +73 -22
  24. package/md_cg/semantic/unify_fixture.json +25 -0
  25. package/md_cg/sleep.py +1297 -0
  26. package/md_cg/sustain.py +146 -9
  27. package/md_cg/test_auto_defaults.py +424 -0
  28. package/md_cg/test_boundary_hit.py +410 -0
  29. package/md_cg/test_en_pipeline.py +22 -13
  30. package/md_cg/test_generation_guard.py +352 -0
  31. package/md_cg/test_h4_sustain_snapshot.py +14 -4
  32. package/md_cg/test_n212_n213_n224_generation_gates.py +14 -8
  33. package/md_cg/test_n230_dirty_replay.py +375 -0
  34. package/md_cg/test_p2_six_elements.py +463 -0
  35. package/md_cg/test_p3_legacy_closure.py +433 -0
  36. package/md_cg/test_p4_freshness.py +680 -0
  37. package/md_cg/test_p8_subgraph_chain.py +14 -1
  38. package/md_cg/test_rank_parity_score_mode.py +6 -0
  39. package/md_cg/test_semantic_canonical.py +5 -3
  40. package/md_cg/test_sleep.py +611 -0
  41. package/md_cg/test_sleep_p1.py +784 -0
  42. package/md_cg/test_time_core_lint.py +968 -0
  43. package/md_cg/test_unify_default_off.py +701 -0
  44. package/md_cg/test_unify_scope.py +182 -0
  45. package/md_cg/whitebox_kb/aeis_core/time_core.py +8 -0
  46. package/package.json +3 -2
  47. package/skills/plugin.json +1 -1
  48. package/utf8_boot.py +237 -0
@@ -179,7 +179,20 @@ def main():
179
179
  for items in (dmeta.get("provenance") or {}).values():
180
180
  for p in items:
181
181
  dpaths.add(p.get("path"))
182
- check("默认检索路不含 chain(不改变既有基线)", "chain" not in dpaths, str(sorted(dpaths)))
182
+ # P3-causal(2026-10-01):chain 路按裁定 9「全进默认检索」**进缺省集**
183
+ # ——本条断言随口径反转(原断言「默认检索路不含 chain」是 P3 之前的基线,
184
+ # 逐字留档于此)。反转后仍可判的两件事:①缺省调用确实走到 chain 路;
185
+ # ②显式不含 chain 时该路不出现(分路开关保留)。
186
+ check("默认检索路**含** chain(P3:进缺省集;原断言为「不含」)",
187
+ "chain" in dpaths, str(sorted(dpaths)))
188
+ _xr, xmeta = cg.search_rrf(
189
+ "数据库在运行", k=8,
190
+ paths=("lexical", "bucket", "entity", "graph"))
191
+ xpaths = {p.get("path")
192
+ for items in (xmeta.get("provenance") or {}).values()
193
+ for p in items}
194
+ check("显式不含 chain 时该路不出现(分路开关保留)",
195
+ "chain" not in xpaths, str(sorted(xpaths)))
183
196
 
184
197
  check("公开 API:subgraph_expand/flatten/validate/roots",
185
198
  all(hasattr(cg, n) for n in ("subgraph_expand", "subgraph_flatten",
@@ -9,6 +9,12 @@
9
9
  MDCG_UNIFY_QUERY=0 6/10 9/10 6/10 1
10
10
  Python 侧切 jaccard 10/10 10/10 10/10 0
11
11
 
12
+ 上表是 CH-1 修复**前**的实测留档;其中「缺省(修前)」一行当时 = 归一层**默认开**。
13
+ 2026-09-30 归一层缺省翻关后,本守卫的**缺省态**断言实测**不变**(G1/G1b:缺省态
14
+ 即 10/10 · 10/10 · 10/10、rc=0;`--dataset` 口径缺省态亦由 8/10 变为 10/10,见
15
+ `docs/hive/检索算法口径对照_v0.1.md` §五.2)——翻缺省动的是归一层开关,不是本
16
+ harness 的打分口径接线,故本件期望读数无需改动。
17
+
12
18
  两侧**产品缺省本就不同**(Python `md_cg/mdcg.py:SCORE_MODE` 缺省 `legacy`;
13
19
  Rust `Cfg.jaccard` / `EngineConfig::default().jaccard` 缺省 `true`=jaccard),
14
20
  而修前的 harness 两侧都不钉口径 ⇒ 长期拿两套词法公式互相比较,三条 DIFF 全是
@@ -209,7 +209,8 @@ def t_en_unified(tmp):
209
209
  # 本段只测**语义摘要路**:显式关掉统一归一层(MDCG_UNIFY_QUERY=0),
210
210
  # 否则英文 query 会被归一成中文原子、经词法路命中 gold,语义路的增量
211
211
  # 与它的负证都会被掩盖(2026-09-24 修复:旧写法把两个开关混在一起,
212
- # 归一默认转正后该负证恒红)。
212
+ # 归一默认转正后该负证恒红)。2026-09-30 缺省翻为关后本行仍**显式**写 0
213
+ # ——不靠缺省,免得下次动缺省时本段的隔离前提又静默改名。
213
214
  os.environ["MDCG_SEMANTIC"] = "1"
214
215
  os.environ["MDCG_UNIFY_QUERY"] = "0"
215
216
  res, _m = cg.search_rrf("Did you eat horse meat today?", k=5,
@@ -222,12 +223,13 @@ def t_en_unified(tmp):
222
223
  paths=("lexical",), judge=False, record=False)
223
224
  top1 = res[0][0]["id"] if res else None
224
225
  ok(top1 != "gold", "语义路与归一路全关:英文原题不命中 gold(词法零交集)")
225
- # 归一层默认开启时的口径(2026-09-23 拍板转正):同一 query 经归一即命中
226
+ # 归一层**显式开启**(MDCG_UNIFY_QUERY=1)时的口径:同一 query 经归一即命中
227
+ # (缺省自 2026-09-30 起为**关**,故本段必须显式设 1 才有归一路)。
226
228
  os.environ["MDCG_UNIFY_QUERY"] = "1"
227
229
  res_u, _mu = cg.search_rrf("Did you eat horse meat today?", k=5,
228
230
  paths=("lexical",), judge=False, record=False)
229
231
  ok(res_u and res_u[0][0]["id"] == "gold",
230
- "归一层默认开(MDCG_UNIFY_QUERY=1):英文原题归一后命中 gold: %r"
232
+ "归一层显式开(MDCG_UNIFY_QUERY=1):英文原题归一后命中 gold: %r"
231
233
  % [r[0]["id"] for r in res_u[:2]])
232
234
  os.environ.pop("MDCG_UNIFY_QUERY", None)
233
235
  finally: