@furongjun1999/dsh-memory 0.7.0 → 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.
Files changed (65) hide show
  1. package/README.md +7 -6
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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 +25 -25
  18. 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
  19. 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
  20. package/md_cg/admission.py +718 -0
  21. package/md_cg/autonomy_modes.py +642 -0
  22. package/md_cg/consistency.py +133 -8
  23. package/md_cg/forgetting.py +38 -6
  24. package/md_cg/freshness.py +17 -1
  25. package/md_cg/lifecycle.py +30 -2
  26. package/md_cg/mcp_server.py +63 -7
  27. package/md_cg/mdcg.py +85 -17
  28. package/md_cg/mdcos.py +666 -16
  29. package/md_cg/protect.py +79 -4
  30. package/md_cg/provenance.py +1 -1
  31. package/md_cg/review_cli.py +31 -2
  32. package/md_cg/rollback.py +411 -0
  33. package/md_cg/rollback_cli.py +104 -0
  34. package/md_cg/stg.py +400 -50
  35. package/md_cg/stgidx.py +281 -0
  36. package/md_cg/test_autonomy_admission.py +1098 -0
  37. package/md_cg/test_autonomy_modes.py +1972 -0
  38. package/md_cg/test_b1_auto_id_multiproc.py +7 -0
  39. package/md_cg/test_b1b2_write_face.py +7 -0
  40. package/md_cg/test_b3_merge_keeps_content.py +7 -0
  41. package/md_cg/test_cons200_scan_selection.py +791 -0
  42. package/md_cg/test_i50a_half_dup_defer.py +408 -0
  43. package/md_cg/test_i50b_defer_to_review_queue.py +545 -0
  44. package/md_cg/test_i50c_meta_passthrough.py +608 -0
  45. package/md_cg/test_i50d_importance_source.py +531 -0
  46. package/md_cg/test_i50e_readside_protection.py +656 -0
  47. package/md_cg/test_issue39_utf8_stdio.py +9 -1
  48. package/md_cg/test_issue52_scan_condition_first.py +677 -0
  49. package/md_cg/test_linkref.py +7 -0
  50. package/md_cg/test_mode_parity.py +1393 -0
  51. package/md_cg/test_mutation_rollback.py +805 -0
  52. package/md_cg/test_n204_n205_n226_n227_n228_n229_exit_gates.py +1 -1
  53. package/md_cg/test_n214_n215_n221_n222_write_face_gates.py +7 -0
  54. package/md_cg/test_p2_mcp.py +8 -0
  55. package/md_cg/test_p9_forget_protect.py +7 -0
  56. package/md_cg/test_p9c_dedup_hints.py +7 -0
  57. package/md_cg/test_policy_required_ccg.py +5 -1
  58. package/md_cg/test_protocol.py +7 -0
  59. package/md_cg/test_stgidx_index_parity.py +1020 -0
  60. package/md_cg/test_writelimit.py +36 -9
  61. package/md_cg/test_writepipe.py +5 -2
  62. package/md_cg/weights.py +15 -1
  63. package/md_cg/writepipe.py +101 -2
  64. package/package.json +1 -1
  65. package/skills/plugin.json +1 -1
@@ -16,7 +16,7 @@
16
16
  ③ N226 `md_cg/provenance.py:427`(`_node_digest` 直读 cg.index)+`539-543`:
17
17
  `cg(op="edges", expand_nodes=true)` 的端点摘要与边拓扑零可见性闸,两端都
18
18
  不可见的边照返回、`aggregates.sample` 亦回 `child->parent`(同库同身份的
19
- `stg.timeline` stg.py:133/172 早已接线 `_readable`——本处是漏网出口)。
19
+ `stg.timeline` stg.py:144/238 早已接线 `_readable`——本处是漏网出口)。
20
20
  ④ N227 `md_cg/evolution.py:265/332` × `mdcos.py:3261`(health_os 挂
21
21
  evolution.summary)× `mcp_server.py:3071-3072/2125/3288-3292`:演化台账
22
22
  (`_evolution/ledger.md`)出口无可见性/身份闸,且工具面粗粒度 op 映射
@@ -98,6 +98,13 @@ for _k in ("MDCG_TOKEN", "MDCG_TENANT", "MDCG_CLEARANCE", "MDCG_SESSION",
98
98
  "PYTHONIOENCODING", "PYTHONUTF8"):
99
99
  os.environ.pop(_k, None)
100
100
 
101
+ # 三档自治批次②(2026-10-02)**夹具隔离**:本守卫考的不是档位面(档位守卫 =
102
+ # md_cg/test_autonomy_modes.py),故显式置 full 档——回到改动前「动作直落」的
103
+ # 行为,使本文件的断言意图(合并/覆写/软删真的发生)逐条不变;env 键名从唯一
104
+ # 真源表取(本文件不构成第二处字面量)。
105
+ from . import autonomy_modes as _autonomy_modes # noqa: E402
106
+ os.environ[_autonomy_modes.AUTONOMY_ENV_KEYS["mode"]] = "full"
107
+
101
108
  from . import forgetting, mcp_server, protect, scrub, tokens, writelimit # noqa: E402
102
109
  from .datapath import aux_root # noqa: E402
103
110
  from .mdcos import MdCGSecure # noqa: E402
@@ -12,6 +12,14 @@ import subprocess
12
12
  import sys
13
13
  import tempfile
14
14
 
15
+ # 三档自治批次②(2026-10-02)**夹具隔离**:本守卫考的不是档位面(档位守卫 =
16
+ # md_cg/test_autonomy_modes.py),故显式置 full 档——回到改动前「动作直落」的
17
+ # 行为(本套的 forget/restore/review_decide 用例都假定软删真的发生),使断言
18
+ # 意图逐条不变。子进程继承本进程 environ,故被拉起的 MCP server 同档。
19
+ # env 键名从唯一真源表取(本文件不构成第二处字面量)。
20
+ from md_cg import autonomy_modes as _autonomy_modes
21
+ os.environ[_autonomy_modes.AUTONOMY_ENV_KEYS["mode"]] = "full"
22
+
15
23
  PASS = FAIL = 0
16
24
  FAILS = []
17
25
 
@@ -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")
@@ -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