edit | blame | history | raw

2026-06-26 MDH102 只读 API

用户目标

02-P/plan-progress.markdownP-20260626-m4c-handshake-coordination 领取 Mindraw 侧 MD-H1-02,完成只读 App state / live frame context API 垂直切片;只包括 state/context 读取、DTO、workingRevision、source Frame extractor、read-only facade 和单元 / smoke 证据;不做 lease、写入、mutation 或保存。

已完成事项

  • 新增 src/lib/mindrawAppReadApi.ts
  • mindrawGetCapabilities()
  • mindrawGetOpenDocumentState()
  • mindrawGetLiveFrameContext()
  • sha256: workingRevision
  • source Frame context extractor
  • read-only 错误码
  • 新增 src/lib/mindrawAppReadApi.test.ts,覆盖 8 个用例。
  • 新增 QA 证据:02-P/qa/mindraw-phase38-readonly-api-check.md
  • 余力准备 MD-H1-03 说明和测试清单:02-P/功能任务/document-lease-manager-implementation-notes.md
  • 更新 CODEGRAPH.mdINDEX.md02-P/plan-progress.markdown

关键决策

  • 本轮只做前端 read-only facade,不实现 loopback JSON-RPC transport / capability file。
  • active dirty document 的 workingRevision 使用 live editor snapshot。
  • dirty tab 的真实 diskRevision 暂不跟踪,返回 null 并带 DISK_REVISION_UNAVAILABLE_FOR_DIRTY_TAB warning。
  • facade 不调用 Tauri invoke,不触发保存、写入、lease 或 mutation。

验证结果

  • npm run test:run -- src/lib/mindrawAppReadApi.test.ts:1 个测试文件,8 个用例通过。
  • npm run test:run -- src/lib/mindrawAppReadApi.test.ts src/store/useStore.test.ts src/lib/excalidrawFile.test.ts:3 个测试文件,47 个用例通过。
  • npm run build:通过;仅有既有 Vite warning。
  • git diff --check -- ...:无输出。

文件变更

  • src/lib/mindrawAppReadApi.ts
  • src/lib/mindrawAppReadApi.test.ts
  • 02-P/qa/mindraw-phase38-readonly-api-check.md
  • 02-P/功能任务/document-lease-manager-implementation-notes.md
  • 02-P/plan-progress.markdown
  • CODEGRAPH.md
  • INDEX.md

剩余风险

  • 还没有进程外可调用 transport / capability file。
  • 多窗口、进程外 discovery、真实 m4c 调用尚未验证。
  • 非 active tab 当前使用 store content,而不是 active editor snapshot。
  • lease / mutation / 保存链路未实现。

下一步归属

  • MD-H1-03 是否派发由 PM 决定。
  • m4c 继续保持 dry-run-only adapter。
  • PM-H5-GATE 仍等待 lease / mutation 和联合 smoke 入口条件。