Files
mnote/bugs/05-editor-mainline/done/2026-05-21-tab-office-upload-browser-bugs-review-v1.md
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

53 lines
3.7 KiB
Markdown

# Tab / Office / Upload Browser Bugs Review V1
日期:2026-05-21
## 范围
本轮覆盖用户继续反馈的 4 类缺陷:
1. 主 resource tab 激活后,点击左侧主 Markdown 文件或新建页面,不能切回主 Markdown page tab。
2. 左侧新建页面后,文件树焦点/选中没有落到新建页面。
3. 真实中文名 docx 上传后仍打不开:`/home/lix/Downloads/重庆发展特殊化妆品可行性报告_政府汇报版.docx`
4. 上传文件偶发浏览器卡死,刷新无效但文件实际已上传;怀疑中文文件名、中文符号、Office 打开链路或上传后插入编辑器引发卡住。
## 当前初步判断
- `navigateToDocument` 在当前文档 ID 相同的路径上只更新树行状态,不会调用 resource tab runtime 切回 page tab。因此当前 page 已经是同一 Markdown 时,点击左侧文件树会停留在 resource tab。
- `openPrimaryDocument` 替换 primary pane 后未显式调用 `activateMainEditorTab('')`,从 resource tab 导航到其他 Markdown 页面时也可能仍显示 resource host。
- `createPage` 创建成功后直接 `navigateToDocument`,没有等待 local folder projection 刷新,也没有把 filetree selection state 的 `selectedRowIds/focusedRowId` 指向新页面。
- 上传 Office 附件后 `insertUploadedAssetIntoEditor` 会同步构造 OnlyOffice 链接并拉取 `whoami`,若 DocumentServer 或 iframe 链路异常,当前需要确认是否只是打开失败,还是上传后插入/刷新/资源行追加链路导致页面失去响应。
- 之前浏览器测试只验证到 `/onlyoffice` iframe URL 和 resource tab 状态,未完整验证 DocumentServer 内部是否报 `errorCode=-18`;本轮需要抓 iframe/console/network 证据。
## 修改策略
- Tab 切回:
- 在 document pane runtime 暴露 `activatePageTab()`
- `openPrimaryDocument` 成功后强制切回 page tab。
- `navigateToDocument` 的 same-document fast path 也调用 `activatePageTab()`,解决“点击当前主 md 不能从 resource tab 切回”。
- 新建页焦点:
- 增加 filetree 选择 helper,按 documentId 选中并聚焦 `doc:{documentId}` 行。
- `createPage` 在 local_folder 下先刷新 sidebar projection,再选中新页面,再导航。
- document pane primary 切换后派发 `mnote:primary-document-activated`,由 sidebar runtime 同步 selection state。
- Office / 上传:
- 用真实中文 docx 做浏览器测试,记录上传 API、resource tab、iframe src、OnlyOffice 页面错误。
- 若出现卡死,优先让上传链路避免等待非关键插入/打开操作;上传完成后 UI 不应被 OnlyOffice whoami/iframe 初始化阻塞。
- 需要区分“DocumentServer 内部连接失败”和“MNote 浏览器卡死”两类问题,不混为同一个修复。
- Reasonix 测试流程:
- 新增 `/home/lix/.codex/skills/reasonix-browser-tester/SKILL.md`
- 本轮派发 Reasonix 独立浏览器测试任务,Codex 只复核其 `result.json` 和截图。
## 不做事项
- 不回滚现有 ACP/Hermes 改动。
- 不把 Office 改成下载兜底作为唯一行为。
- 不把 Reasonix 测试结论当成事实源;必须复核截图和结构化日志。
- 不清理用户已有上传文件或真实工作区文件。
## 验收
- 点击 page tab / 左侧当前 Markdown / 左侧其他 Markdown,都能从 resource tab 回到主 Markdown page tab。
- 左侧新建页面后,URL、page tab 标题、filetree `data-selected``data-focused` 指向新页面。
- 上传指定中文 docx 后浏览器不应卡死;resource tab 有明确打开状态或错误状态;刷新后不应要求重新登录才能恢复。
- Reasonix 输出独立浏览器测试证据,Codex 与本地验证对照。