Files
mnote/bugs/05-editor-mainline/done/5-33-office-chinese-docx-upload-open-freeze-v1.md
T
lix-2026 eba1010191 fix local office resource editing
- add local-folder OnlyOffice sign/callback writeback and edit-tab handling

- align main resource tabs, attachment edit menu, slash isolation, and filetree context behavior

- record Sidex/Hermes gap reviews and Reasonix task checklists
2026-05-21 05:40:06 +08:00

2.1 KiB
Raw Blame History

Checklist: Office Chinese Docx Upload Open Freeze

目标

上传并打开中文文件名 docx 时,浏览器不应卡死;Office 打开失败时必须是可见、非阻塞错误。

指定测试文件:

/home/lix/Downloads/重庆发展特殊化妆品可行性报告_政府汇报版.docx

允许修改

  • rust/crates/mnote-web/src/routes/local_folder_source.rs
  • rust/crates/mnote-web/src/routes/onlyoffice.rs
  • rust/crates/mnote-web/src/ssr/pages/layout.rs
  • 相关 browser smoke

禁止事项

  • 不引入新外部服务。
  • 不把 docx 只做下载兜底。
  • 不清理用户真实下载文件。

待办

  • 用真实中文 docx 复现上传、插入附件、点击打开、OnlyOffice iframe 内错误。
  • 记录 console/network/iframe src/页面响应性。
  • 区分 DocumentServer errorCode=-18 与浏览器主页面卡死。
  • 上传完成后不得等待非关键 Office 初始化;上传链路必须释放 UI。
  • 对中文文件名/URL 编码和 OnlyOffice document key 安全化补测试。
  • 增加 Reasonix clean browser 测试流程,并用截图交叉验证。

验收命令

cd /mnt/Data1T/mnote/rust
cargo test -p mnote-web -- --test-threads=1
node scripts/task463-onlyoffice-resolver-smoke.js

验证记录

  • cargo test -p mnote-web onlyoffice -- --test-threads=112 passed。
  • cargo test -p mnote-web -- --test-threads=1482 passed。
  • Reasonix clean browser 测试输出:/mnt/Data1T/mnote/tmp/reasonix-office-upload-open-clean-2026-05-21/result.json,结论 pass
  • Reasonix 最终截图:/mnt/Data1T/mnote/tmp/reasonix-office-upload-open-clean-2026-05-21/04-final-state.png,可见 OnlyOffice 文档正文。
  • Codex 自测输出:/mnt/Data1T/mnote/tmp/codex-office-upload-open-clean-2026-05-21/result.json
  • Codex 最终截图:/mnt/Data1T/mnote/tmp/codex-office-upload-open-clean-2026-05-21/codex-office-final.png,可见 OnlyOffice 文档正文。
  • 已确认 WebSocket URL 使用安全 doc key,例如 mnote_1258170954_1240121036,不含 /: 或中文字符;未出现 errorCode=-18