@furongjun1999/dsh-memory 0.7.0 → 0.7.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/README.md +8 -6
- package/codebuddy/CODEBUDDY.md +5 -5
- 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/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/217/221/345/270/20310_/350/257/273/351/235/242/346/215/237/345/235/217UTF8/345/256/266/346/227/217/346/224/266/345/217/243_v1.0.md +71 -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/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
- 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//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/docs//345/267/245/344/275/234/347/272/252/345/276/213_/350/256/244/347/237/245/345/233/276/346/235/241/347/233/256_v1.1.json +4 -4
- package/md_cg/admission.py +718 -0
- package/md_cg/autonomy_modes.py +642 -0
- package/md_cg/bench6_arms.py +10 -6
- package/md_cg/census.py +2 -1
- package/md_cg/consistency.py +133 -8
- package/md_cg/forgetting.py +38 -6
- package/md_cg/freshness.py +17 -1
- package/md_cg/lifecycle.py +30 -2
- package/md_cg/mcp_server.py +63 -7
- package/md_cg/mdcg.py +157 -31
- package/md_cg/mdcos.py +675 -19
- package/md_cg/mreview/locate.py +1 -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 +420 -0
- package/md_cg/rollback_cli.py +104 -0
- package/md_cg/routing.py +10 -1
- package/md_cg/stg.py +400 -50
- package/md_cg/stgidx.py +281 -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_cons200_scan_selection.py +791 -0
- package/md_cg/test_corrupt_utf8_read_surfaces.py +451 -0
- package/md_cg/test_generation_guard.py +15 -9
- package/md_cg/test_health_corrupt_utf8.py +37 -0
- 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_index_crossprocess_reload.py +39 -24
- 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_issue53_cipher_health_hash.py +385 -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_n214_n215_n221_n222_write_face_gates.py +7 -0
- package/md_cg/test_p2_mcp.py +8 -0
- 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_stgidx_index_parity.py +1020 -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/writepipe.py +101 -2
- package/package.json +1 -1
- package/skills/plugin.json +1 -1
- package/zcode/AGENTS.md +5 -5
|
@@ -262,30 +262,45 @@ def main():
|
|
|
262
262
|
a4.close()
|
|
263
263
|
|
|
264
264
|
# ---------- ⑥ 性能粗测:无跨进程写入时逐读开销 ----------
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
265
|
+
# 并行豁免 + 3 轮中位数(2026-10-03 外部报告核验新增):
|
|
266
|
+
# · 并行全量下 CPU 争抢使本断言假红(报告机器实测 on 242.0µs / off 35.6µs,
|
|
267
|
+
# 单独跑 3 次 41~42µs 全 PASS——接线态是 syscall 密集面,争抢长尾远重于
|
|
268
|
+
# 空转桩态)⇒ 并行时**明示豁免**(run_tests 经 MDCG_RUN_TESTS_PARALLEL
|
|
269
|
+
# 传信号;串行(--jobs 1,含 CI)照测——语义断言不受本豁免影响);
|
|
270
|
+
# · 串行下采样改 3 轮取中位(抗偶发长尾),阈值口径不变(仍防真回归)。
|
|
271
|
+
_parallel = os.environ.get("MDCG_RUN_TESTS_PARALLEL") == "1"
|
|
272
|
+
if _parallel:
|
|
273
|
+
print("\n【⑥】性能粗测(无跨进程写入,接线态 vs 重载桩空转态)")
|
|
274
|
+
print(" [SKIP] 性能上界断言(并行豁免):CPU 争抢下本断言假红(外部报告"
|
|
275
|
+
"实测 on 242.0µs vs off 35.6µs;单跑 41~42µs)——串行(--jobs 1,含 CI)照测")
|
|
276
|
+
else:
|
|
277
|
+
print("\n【⑥】性能粗测(无跨进程写入,接线态 vs 重载桩空转态;3 轮取中位)")
|
|
278
|
+
N = 300
|
|
279
|
+
a2c = MdCGSecure(root3, principal=_principal())
|
|
280
|
+
|
|
281
|
+
def _probe():
|
|
282
|
+
for _ in range(5):
|
|
283
|
+
a2c.get("own_0")
|
|
284
|
+
t0 = time.perf_counter()
|
|
285
|
+
for _ in range(N):
|
|
286
|
+
a2c.get("own_0")
|
|
287
|
+
return (time.perf_counter() - t0) / N * 1e6
|
|
288
|
+
|
|
289
|
+
on_runs = [_probe() for _ in range(3)]
|
|
290
|
+
orig = a2c._maybe_reload_index
|
|
291
|
+
a2c._maybe_reload_index = lambda: False
|
|
292
|
+
off_runs = [_probe() for _ in range(3)]
|
|
293
|
+
a2c._maybe_reload_index = orig
|
|
294
|
+
a2c.close()
|
|
295
|
+
t_on = sorted(on_runs)[1]
|
|
296
|
+
t_off = sorted(off_runs)[1]
|
|
297
|
+
print(" 接线态 %.1f µs/读(3 轮 %s)· 桩空转态 %.1f µs/读(3 轮 %s)· 增幅 %.1f%%"
|
|
298
|
+
% (t_on, "/".join("%.1f" % v for v in on_runs),
|
|
299
|
+
t_off, "/".join("%.1f" % v for v in off_runs),
|
|
300
|
+
(t_on - t_off) / max(t_off, 1e-9) * 100))
|
|
301
|
+
check("性能上界:接线态(3 轮中位)≤ 桩空转态(3 轮中位)×3 + 30µs(中位抗长尾)",
|
|
302
|
+
t_on <= t_off * 3 + 30.0,
|
|
303
|
+
"on=%.1f off=%.1f" % (t_on, t_off))
|
|
289
304
|
finally:
|
|
290
305
|
for r_ in roots:
|
|
291
306
|
shutil.rmtree(r_, ignore_errors=True)
|
|
@@ -241,9 +241,17 @@ def _pool_listing() -> list | None:
|
|
|
241
241
|
|
|
242
242
|
c5 的自证面:成功趟前后各取一次,清单必须逐字节一致——守卫的池是 HIVE_JOBS_DIR
|
|
243
243
|
指针指向的临时目录,在役池不该因本守卫增减任何一项。
|
|
244
|
+
**排除在役 serve 的心跳产物**(`_serve*`:`_serve.json` / `_serve.log` /
|
|
245
|
+
`_serve.tmp<pid>`——与 `scripts/test_utf8_boot_guard.py::_pool_listing` 同口径,
|
|
246
|
+
该处 2026-10-01 已按同一归因修复):心跳的原子写协议是 tmp→rename,
|
|
247
|
+
`_serve.tmp<pid>` 存续窗口实测约 0.35s、占空比约一半(2026-10-02 探针 45s/448
|
|
248
|
+
采样:含 `_serve*` 口径变化 62 次,排除后 0 次)——不排除则两个采样点之间必被
|
|
249
|
+
闪现命中而假红(全量实测随机红,两次跑一红一绿)。排除后其余任何新增(含意外
|
|
250
|
+
落池)照旧判违规——判据强度不变。
|
|
244
251
|
"""
|
|
245
252
|
try:
|
|
246
|
-
return sorted(os.listdir(os.path.join(ROOT, "hive", "jobs"))
|
|
253
|
+
return sorted(n for n in os.listdir(os.path.join(ROOT, "hive", "jobs"))
|
|
254
|
+
if not n.startswith("_serve"))
|
|
247
255
|
except OSError:
|
|
248
256
|
return None
|
|
249
257
|
|