Files
mnote/bugs/04-tree-domain/done/4-53-workspace-object-identity-matrix-gap-v1.md
T
lix-2026 1882db7681 收口 MNote P0 P1 P2 审查尾项
- 归档 OnlyOffice live bridge、Page AI、mindmap、design governance 与相关 bug 条目
- 补齐 MinerU OCR 后端 runtime 合同与 smoke/test 基线
- 收口 ChatOnly/Doubao、ObjectIdentity、Page Aggregate compat 与 runtime owner 文档口径

验证:
- cargo test --manifest-path rust/Cargo.toml -p mnote-web local_ocr -- --test-threads=1
- cargo test --manifest-path rust/Cargo.toml -p mnote-web onlyoffice_bridge -- --test-threads=1
- git diff --check
- git diff --cached --check
- codegraph index . --force && codegraph status .
- codegraph sync . && codegraph status .
2026-06-01 09:29:12 +08:00

2.0 KiB
Raw Blame History

4-53 WorkspacePath / ObjectIdentity 浏览器矩阵缺口

状态

  • 状态:done
  • Owner04-tree-domain / 05-editor-mainline runtime identity
  • 发现时间:2026-06-01
  • 修复时间:2026-06-01

现象

P1 WorkspacePath / ObjectIdentity 已有底层协议与部分 smoke,但缺少一个单独覆盖 page .md、directory、raw file、mindmap、OnlyOffice 的浏览器矩阵。FileTree row、Resource Tab、OpenEditorsSnapshot、URL resourceTab 和 active tab identity 如果各自拼身份,后续 raw resource / mindmap / Office target 容易继续退化为“当前页”语义。

根因

已有 smoke 分散覆盖 copy-id、resource tab、mindmap 和 Office,但没有把统一 ObjectWorkspacePath 当作运行时消费合同统一断言。local folder 目录行还缺少 local-dir:* 的稳定 documentId fallbackresource tab 在部分本地资源打开路径下也缺少 sourceKind / rootUri fallback。

修复

  • rust/crates/mnote-web/browser/filetree-runtime.js
    • readWorkspacePathFromRow() 为 folder / index 行合成 local-dir:{relativePath}
    • fileTreeRowDocumentId() 允许读取 data-owner-document-id,用于资源行 owner page 对齐。
  • rust/crates/mnote-web/browser/document-resource-tab-runtime.js
    • 在 URL 参数缺失时,从 body dataset 或 FileTree row workspacePath 兜底读取 sourceKind / rootUri
  • scripts/task524-workspace-object-identity-matrix-smoke.js
    • 新增 browser smoke,覆盖 page .md、directory、raw text、mindmap、OnlyOffice 的 FileTree row workspacePath、OpenEditorsSnapshot、URL resourceTab、active tab identity 对齐。

验收

  • node --check rust/crates/mnote-web/browser/document-resource-tab-runtime.js
  • node --check rust/crates/mnote-web/browser/filetree-runtime.js
  • node --check scripts/task524-workspace-object-identity-matrix-smoke.js
  • MNOTE_UI_BASE_URL=http://127.0.0.1:3301 node scripts/task524-workspace-object-identity-matrix-smoke.js