Skip to content

dsh-mneme v0.3.6 — 镜像债务建模

Choose a tag to compare

@Anans-Ivresse Anans-Ivresse released this 16 Aug 10:58
· 10 commits to main since this release

🩹 v0.3.6 — 镜像债务建模(audit peer 4 类阻断修复)

安全审计 peer 在 v0.3.2 复验中发现 4 类运行时阻断,已全部修复:

1. COMMIT→dirty 崩溃窗口

  • SQLite 提交后、markMirrorDirty 前进程退出 → DB=New/mirror=Old/dirty=false
  • 修复:recoverMirror 触发条件扩为 dirty || generation > applied_generation,desired/applied 不一致也能恢复

2. markMirrorDirty 自身失败

  • 镜像失败 + 状态写失败同时发生 → false-clean 终态
  • 修复:generation 债务模型——即使状态写失败,desired 与 applied 的差距仍可被下次 recover 捕获

3. 全局状态丢失

  • mirror_state 只有 id=main,无 generation/fence/CAS;双 worker 交织时一个成功清掉另一个未恢复故障
  • 修复markMirrorCleanForGeneration CAS/fence 语义(旧 gen 清新故障被拦截);type_status 逐 type 表达部分成功

4. health fail-open

  • /health 未鉴权 + 泄漏 last_error + 读失败返回 dirty=false
  • 修复:requireAuth 鉴权 + 脱敏错误码(no-space/permission/sync-failed)+ 读失败 fail-closed(status: unknown)

测试

  • 新增 14 个回归测试(test/mirror-generation.test.js):崩溃窗口 / 双 worker fence / 逐 type / health 脱敏 / 迁移幂等
  • 修复随包 mirror-dirty 测试旧断言(5 列→8 列)
  • 443 / 443 全绿