Files
mnote/.codex/reasonix-tasks/2026-05-21-batch-d-worker-a-resource-open-resolver.md
T

2.4 KiB

Reasonix Batch D Worker A:资源打开 resolver 小收敛

Project root: /mnt/Data1T/mnote

背景

P1 阶段仍有 5-26 Resource Open Resolver Convergence Checklist 未完成。当前重点不是重写 resolver,而是最小化收敛 layout.rs 中正文附件与 FileTree local Office 打开的重复分支。

事实源:

  • design/01-tree-first-graph-kernel/process/1-8-mvp-post-process-execution-order-v1.md
  • design/01-tree-first-graph-kernel/process/1-11-batch-d-p1-small-tail-execution-checklist-v1.md
  • design/05-editor-mainline/process/5-26-resource-open-resolver-convergence-checklist-v1.md

Ownership

你可以修改:

  • rust/crates/mnote-web/src/ssr/pages/layout.rs
  • scripts/task463-onlyoffice-resolver-smoke.js
  • design/05-editor-mainline/process/5-26-resource-open-resolver-convergence-checklist-v1.md

不要修改:

  • rust/crates/mnote-web/src/routes/web_shell.rs
  • rust/crates/mnote-web/src/routes/onlyoffice.rs
  • ACP / Hermes 相关文件
  • Markdown parser / local_folder_source

你不是独自在代码库中工作。不要回滚、覆盖、格式化或清理其他 worker 的改动。不要提交 git。

任务

  1. 审查这些函数的重复判断:
    • buildLocalOnlyOfficeOpenUrl
    • openConvexAssetFromFileTree
    • openEditorAttachmentDetail
    • openEditorAttachmentNewWindow
    • openEditorAttachmentEditTab
  2. 如果可以安全实现,提炼一个最小 helper,例如 openLocalOfficeFileInActiveTab(detail, mode) 或等价命名,用于正文附件 弹窗编辑 和 FileTree edit-mode active tab 的 local Office 打开。
  3. 保持当前已验证行为:
    • 正文附件 弹窗编辑 进入 main resource tab,不弹新浏览器窗口。
    • 正文附件 新窗口编辑 进入浏览器新窗口。
    • FileTree edit-mode active tab 继续可用。
    • md/text/code 继续走 tiptap / 内建编辑器,不改成 OnlyOffice。
  4. 更新 5-26 执行记录。只有真实代码和验证完成的项才打勾。
  5. 如现有 task463 不能覆盖分流,请补最小断言。

验证

至少运行:

cd /mnt/Data1T/mnote/rust
cargo test -p mnote-web sidebar_tree_runtime_opens_office_assets_through_resource_shell -- --test-threads=1

以及:

cd /mnt/Data1T/mnote
node scripts/task463-onlyoffice-resolver-smoke.js

最终回复格式

  • 修改文件列表
  • 收敛了哪些重复分支
  • 运行过的命令和结果
  • 未完成项/风险