# Checklist: OnlyOffice Docx Upload Open Freeze ## 目标 上传 docx 后点击打开不应卡死;本地 docx 应能在主编辑器 resource tab 中打开 OnlyOffice,失败时显示非阻塞错误。 ## 允许修改 - `rust/crates/mnote-web/src/routes/onlyoffice.rs` - `rust/crates/mnote-web/src/routes/local_folder_source.rs` - `rust/crates/mnote-web/src/routes/web_shell.rs` - `rust/crates/mnote-web/src/ssr/pages/layout.rs` - OnlyOffice / local upload 相关测试 ## 禁止事项 - 不绕开 local-first rootUri 授权。 - 不把 docx 改成浏览器下载兜底作为唯一行为。 - 不引入新外部服务。 ## 待办 - [x] 复现并定位上传后卡死发生在上传、插入附件 UI、resource tab iframe、OnlyOffice DocumentServer 回源哪一层。 - [x] 确保 local docx 打开 URL 走 `/api/local-folder/files/open` 且 content-type 正确。 - [x] 主 tab iframe 打开 OnlyOffice 时设置清晰 loading/error 状态,超时不阻塞主页面。 - [x] Convex / local office 行为尽量统一到 resource tab;新窗口只作为“在新窗口打开”动作。 - [x] 补充 docx 上传/打开 targeted smoke 或 Rust 字符串测试。 ## 本轮执行记录 - 代码:`onlyoffice.rs` 为 API 加载和初始化增加超时错误;`layout.rs` 让 office 资源优先进入主 resource tab。 - 浏览器验证:使用真实文件 `/mnt/Data1T/research/DHA_cosmetics/progress/DHA美黑化妆品监管综述_2026-05-16.docx` 上传并打开,结果在 `tmp/bug-20260521-workbench-browser-verify/result-title-docx-menu.json`,截图 `02-real-docx-resource-tab.png`。 - Smoke:`node scripts/task463-onlyoffice-resolver-smoke.js` 已通过。 ## 验收命令 ```bash cd /mnt/Data1T/mnote/rust cargo test -p mnote-web local_file_open_sets_pdf_and_office_content_type -- --test-threads=1 cargo test -p mnote-web onlyoffice_page_exposes_documentserver_fetch_base_for_local_files -- --test-threads=1 cargo test -p mnote-web sidebar_tree_runtime_opens_office_assets_through_resource_shell -- --test-threads=1 ```