@furongjun1999/dsh-memory 0.6.1 → 0.7.1
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 +49 -18
- package/docs/README.md +1 -0
- package/docs/eval/cons200_/345/206/262/347/252/201/346/243/200/346/265/213/351/200/211/351/235/242_/345/256/236/346/226/275/350/256/260/345/275/225_v1.0.md +223 -0
- package/docs/eval/cons200_/345/206/262/347/252/201/346/243/200/346/265/213/351/200/211/351/235/242_/345/256/236/346/226/275/350/256/260/345/275/225_v1.1.md +340 -0
- package/docs/eval/issue50_/345/205/203/346/225/260/346/215/256/351/200/217/344/274/240/344/270/216/345/205/234/345/272/225_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +437 -0
- package/docs/eval/issue50_/345/215/212/351/207/215/345/244/215/345/276/205/345/256/232/345/244/215/346/240/270_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +488 -0
- package/docs/eval/issue50_/345/276/205/345/256/232/345/244/215/346/240/270/345/205/245/351/230/237_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +428 -0
- package/docs/eval/issue50_/350/257/273/351/235/242/344/277/235/346/212/244/345/217/252/350/256/244/346/230/276/345/274/217/346/235/245/346/272/220_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +271 -0
- package/docs/eval/issue50_/351/207/215/350/246/201/345/272/246/345/220/214/346/272/220/344/270/216/344/277/235/346/212/244/350/257/255/344/271/211_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +306 -0
- package/docs/eval/issue51_/344/270/200/351/224/256/345/256/211/350/243/205/345/244/261/350/264/245_/345/275/222/345/261/236/345/210/244/345/256/232_v1.0.md +58 -0
- package/docs/eval/issue52_/346/235/241/344/273/266/345/205/210/350/241/214/344/270/216/346/210/252/346/226/255/345/217/257/350/247/202/346/265/213_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +360 -0
- package/docs/eval//344/270/211/346/241/243/350/207/252/346/262/273_/346/255/245/351/252/244/342/221/241/346/241/243/344/275/215/345/215/225/344/270/200/345/205/245/345/217/243_/350/220/275/347/240/201/350/256/260/345/275/225_v1.0.md +651 -0
- package/docs/eval//344/270/211/346/241/243/350/207/252/346/262/273_/346/255/245/351/252/244/342/221/242/345/217/230/346/233/264/345/215/225/344/270/216/345/233/236/346/273/232/345/216/237/350/257/255_/350/220/275/347/240/201/350/256/260/345/275/225_v1.0.md +439 -0
- package/docs/eval//344/270/211/346/241/243/350/207/252/346/262/273_/346/255/245/351/252/244/342/221/243/345/207/206/345/205/245/350/257/273/346/225/260_/350/220/275/347/240/201/350/256/260/345/275/225_v1.0.md +1337 -0
- package/docs/eval//344/270/211/346/241/243/350/207/252/346/262/273_/346/255/245/351/252/244/342/221/244/346/224/266/345/256/230/344/270/216/345/205/250/351/223/276/351/252/214/346/224/266_/350/220/275/347/240/201/350/256/260/345/275/225_v1.0.md +1817 -0
- 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
- 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
- package/docs/eval//345/217/221/345/270/20309_/346/243/200/347/264/242/351/235/242/344/270/211/346/211/271/346/224/266/345/217/243_v1.0.md +66 -0
- 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
- package/docs/eval//347/254/2543/345/261/202stg/347/273/223/346/236/204/347/264/242/345/274/225_/345/256/236/346/226/275/350/256/260/345/275/225_v1.0.md +250 -0
- 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
- 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
- package/docs/mdcg/README/350/257/246/347/273/206/347/211/210_v0.4.10.md +88 -0
- 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
- package/docs/mdcg//345/217/221/345/270/203/351/227/250/347/246/201/351/223/276_v0.1.md +47 -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
- package/docs/plans/stg/346/235/241/344/273/266/345/214/226/344/270/216/347/273/223/346/236/204/347/264/242/345/274/225_/350/256/276/350/256/241_v0.1.md +124 -0
- 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
- package/docs/plans//350/256/260/345/277/206/350/207/252/345/244/204/347/220/206/344/270/211/346/241/243/350/207/252/346/262/273_/350/256/276/350/256/241_v0.2.md +207 -0
- package/md_cg/admission.py +718 -0
- package/md_cg/autonomy_modes.py +642 -0
- package/md_cg/bench_e2e_locomo_qa.py +11 -4
- package/md_cg/chain.py +47 -0
- package/md_cg/consistency.py +133 -8
- package/md_cg/forgetting.py +38 -6
- package/md_cg/freshness.py +527 -0
- package/md_cg/generation.py +409 -0
- package/md_cg/hotcache.py +4 -1
- package/md_cg/lifecycle.py +30 -2
- package/md_cg/mcp_server.py +191 -26
- package/md_cg/mdcg.py +594 -39
- package/md_cg/mdcos.py +869 -38
- package/md_cg/nodefile.py +74 -1
- package/md_cg/protect.py +79 -4
- package/md_cg/provenance.py +1 -1
- package/md_cg/review_cli.py +31 -2
- package/md_cg/rollback.py +411 -0
- package/md_cg/rollback_cli.py +104 -0
- package/md_cg/semantic/canonical.py +22 -0
- package/md_cg/semantic/unify.py +73 -22
- package/md_cg/semantic/unify_fixture.json +25 -0
- package/md_cg/sleep.py +1297 -0
- package/md_cg/stg.py +400 -50
- package/md_cg/stgidx.py +281 -0
- package/md_cg/sustain.py +146 -9
- package/md_cg/test_auto_defaults.py +424 -0
- package/md_cg/test_autonomy_admission.py +1098 -0
- package/md_cg/test_autonomy_modes.py +1972 -0
- package/md_cg/test_b1_auto_id_multiproc.py +7 -0
- package/md_cg/test_b1b2_write_face.py +7 -0
- package/md_cg/test_b3_merge_keeps_content.py +7 -0
- package/md_cg/test_boundary_hit.py +410 -0
- package/md_cg/test_cons200_scan_selection.py +791 -0
- package/md_cg/test_en_pipeline.py +22 -13
- package/md_cg/test_generation_guard.py +352 -0
- package/md_cg/test_h4_sustain_snapshot.py +14 -4
- package/md_cg/test_i50a_half_dup_defer.py +408 -0
- package/md_cg/test_i50b_defer_to_review_queue.py +545 -0
- package/md_cg/test_i50c_meta_passthrough.py +608 -0
- package/md_cg/test_i50d_importance_source.py +531 -0
- package/md_cg/test_i50e_readside_protection.py +656 -0
- package/md_cg/test_issue39_utf8_stdio.py +9 -1
- package/md_cg/test_issue52_scan_condition_first.py +677 -0
- package/md_cg/test_linkref.py +7 -0
- package/md_cg/test_mode_parity.py +1393 -0
- package/md_cg/test_mutation_rollback.py +805 -0
- package/md_cg/test_n204_n205_n226_n227_n228_n229_exit_gates.py +1 -1
- package/md_cg/test_n212_n213_n224_generation_gates.py +14 -8
- package/md_cg/test_n214_n215_n221_n222_write_face_gates.py +7 -0
- package/md_cg/test_n230_dirty_replay.py +375 -0
- package/md_cg/test_p2_mcp.py +8 -0
- package/md_cg/test_p2_six_elements.py +463 -0
- package/md_cg/test_p3_legacy_closure.py +433 -0
- package/md_cg/test_p4_freshness.py +680 -0
- package/md_cg/test_p8_subgraph_chain.py +14 -1
- package/md_cg/test_p9_forget_protect.py +7 -0
- package/md_cg/test_p9c_dedup_hints.py +7 -0
- package/md_cg/test_policy_required_ccg.py +5 -1
- package/md_cg/test_protocol.py +7 -0
- package/md_cg/test_rank_parity_score_mode.py +6 -0
- package/md_cg/test_semantic_canonical.py +5 -3
- package/md_cg/test_sleep.py +611 -0
- package/md_cg/test_sleep_p1.py +784 -0
- package/md_cg/test_stgidx_index_parity.py +1020 -0
- package/md_cg/test_time_core_lint.py +968 -0
- package/md_cg/test_unify_default_off.py +701 -0
- package/md_cg/test_unify_scope.py +182 -0
- package/md_cg/test_writelimit.py +36 -9
- package/md_cg/test_writepipe.py +5 -2
- package/md_cg/weights.py +15 -1
- package/md_cg/whitebox_kb/aeis_core/time_core.py +8 -0
- package/md_cg/writepipe.py +101 -2
- package/package.json +3 -2
- package/skills/plugin.json +1 -1
- 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
|
-
|
|
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",
|
|
@@ -19,6 +19,13 @@ from __future__ import annotations
|
|
|
19
19
|
import os
|
|
20
20
|
import tempfile
|
|
21
21
|
|
|
22
|
+
# 三档自治批次②(2026-10-02)**夹具隔离**:本守卫考的不是档位面(档位守卫 =
|
|
23
|
+
# md_cg/test_autonomy_modes.py),故显式置 full 档——回到改动前「动作直落」的
|
|
24
|
+
# 行为,使本文件的断言意图(合并/覆写/软删真的发生)逐条不变;env 键名从唯一
|
|
25
|
+
# 真源表取(本文件不构成第二处字面量)。
|
|
26
|
+
from . import autonomy_modes as _autonomy_modes # noqa: E402
|
|
27
|
+
os.environ[_autonomy_modes.AUTONOMY_ENV_KEYS["mode"]] = "full"
|
|
28
|
+
|
|
22
29
|
from .mdcos import MdCGOS
|
|
23
30
|
from . import forgetting, protect
|
|
24
31
|
|
|
@@ -44,6 +44,13 @@ import shutil
|
|
|
44
44
|
import tempfile
|
|
45
45
|
import traceback
|
|
46
46
|
|
|
47
|
+
# 三档自治批次②(2026-10-02)**夹具隔离**:本守卫考的不是档位面(档位守卫 =
|
|
48
|
+
# md_cg/test_autonomy_modes.py),故显式置 full 档——回到改动前「动作直落」的
|
|
49
|
+
# 行为,使本文件的断言意图(合并/覆写/软删真的发生)逐条不变;env 键名从唯一
|
|
50
|
+
# 真源表取(本文件不构成第二处字面量)。
|
|
51
|
+
from . import autonomy_modes as _autonomy_modes # noqa: E402
|
|
52
|
+
os.environ[_autonomy_modes.AUTONOMY_ENV_KEYS["mode"]] = "full"
|
|
53
|
+
|
|
47
54
|
from . import forgetting, writepipe
|
|
48
55
|
from .mdcos import MdCGOS, MdCGSecure
|
|
49
56
|
from .security import Principal
|
|
@@ -106,8 +106,12 @@ _BASELINE_MUTATIONS = {
|
|
|
106
106
|
}
|
|
107
107
|
# 假包里转发到真仓 md_cg.<name> 的模块。**必须覆盖基线源出现的全部相对 import**
|
|
108
108
|
# (含函数内延迟导入)——缺登记即 SHIM-MISS fail-closed,不许靠「那条路径没跑到」侥幸绿着。
|
|
109
|
+
# autonomy_modes(2026-10-02 补,三档自治批次②):writepipe.py 新增链尾档位闸
|
|
110
|
+
# `_gate_autonomy`,其函数内 `from . import autonomy_modes as _am` 被本文件的
|
|
111
|
+
# AST 相对-import 扫描命中——不登记则假包缺模块(SHIM-MISS 红,容器栈一实测)。
|
|
109
112
|
_SHIMS = ("twophase", "trust", "linkref", "mcp_server", "mdcg", "forgetting",
|
|
110
|
-
"units", "coldverify", "hotcache", "hyperedge", "nodefile"
|
|
113
|
+
"units", "coldverify", "hotcache", "hyperedge", "nodefile",
|
|
114
|
+
"autonomy_modes")
|
|
111
115
|
_SHIM_TPL = ("import md_cg.%s as _m\n"
|
|
112
116
|
"globals().update({k: v for k, v in vars(_m).items()\n"
|
|
113
117
|
" if not k.startswith('__')})\n")
|
package/md_cg/test_protocol.py
CHANGED
|
@@ -26,6 +26,13 @@ import tempfile
|
|
|
26
26
|
|
|
27
27
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
28
28
|
|
|
29
|
+
# 三档自治批次②(2026-10-02)**夹具隔离**:本守卫考的不是档位面(档位守卫 =
|
|
30
|
+
# md_cg/test_autonomy_modes.py),故显式置 full 档——回到改动前「动作直落」的
|
|
31
|
+
# 行为,使本文件的断言意图(合并/覆写/软删真的发生)逐条不变;env 键名从唯一
|
|
32
|
+
# 真源表取(本文件不构成第二处字面量)。
|
|
33
|
+
from . import autonomy_modes as _autonomy_modes # noqa: E402
|
|
34
|
+
os.environ[_autonomy_modes.AUTONOMY_ENV_KEYS["mode"]] = "full"
|
|
35
|
+
|
|
29
36
|
from md_cg import conformance
|
|
30
37
|
from md_cg import mcp_server as M
|
|
31
38
|
from md_cg import protocol as P
|
|
@@ -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
|
-
#
|
|
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
|
-
"
|
|
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:
|