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

2.4 KiB
Raw Blame History

Batch C Worker AResource Open Resolver 最小收敛

项目根目录:/mnt/Data1T/mnote

你不是单独在代码库里工作,可能有其他 worker 并行执行。不要回滚、覆盖或格式化与你任务无关的文件;不要提交 git。

背景

Batch B 中 design/05-editor-mainline/process/5-26-resource-open-resolver-convergence-checklist-v1.md 仍未完成。当前重复判断主要涉及:

  • rust/crates/mnote-web/src/ssr/pages/layout.rs
    • buildLocalOnlyOfficeOpenUrl
    • openEditorAttachmentEditTab
    • openEditorAttachmentNewWindow
    • openConvexAssetFromFileTree
  • rust/crates/mnote-web/src/routes/web_shell.rs
    • resolveResourceOpen

本次优先只改 layout.rsscripts/task463-onlyoffice-resolver-smoke.js,不要大重构。

目标

  1. 审查正文附件和 FileTree asset 打开 office/resource 时的重复判断。
  2. 如果安全,抽出最小 helper,使正文附件“弹窗编辑”与 FileTree active tab 打开共用同一套 local Office URL 构造或打开目标判断。
  3. 保持现有行为:
    • 正文附件“弹窗编辑”进入主编辑器 resource tab。
    • 正文附件“新窗口编辑”进入浏览器新窗口。
    • md/text/code 继续走 tiptap/text/code 渲染路径,不改成 OnlyOffice 或新窗口默认打开。
  4. 更新 5-26 checklist 的执行记录;通过后可勾选已完成项。

允许修改范围

  • 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
  • 可新增 .codex/reasonix-tasks/results/batch-c-worker-a-resource-open-resolver.md

禁止修改:

  • OnlyOffice callback / 保存链路
  • rust/crates/mnote-web/src/routes/web_shell.rs,除非只改测试断言注释且非常必要
  • 其它 worker ownership 文件

验收命令

cargo test --manifest-path rust/Cargo.toml -p mnote-web sidebar_tree_runtime_opens_office_assets_through_resource_shell -- --test-threads=1
node --check scripts/task463-onlyoffice-resolver-smoke.js

如果 http://127.0.0.1:3000 可用,再运行:

node scripts/task463-onlyoffice-resolver-smoke.js

输出要求

最终写入 .codex/reasonix-tasks/results/batch-c-worker-a-resource-open-resolver.md,包含:

  • 修改文件列表。
  • 实际收敛了哪些重复判断。
  • 验证命令和结果。
  • 未完成项和风险。