推进 OCR UI 与 provider 删除验收

This commit is contained in:
lix-2026
2026-06-01 10:07:42 +08:00
parent 488f9a0937
commit 1481de2018
13 changed files with 548 additions and 55 deletions
@@ -4,7 +4,7 @@
> 状态:`process`
> Owner03-rust-web / local-folder resource runtime
>
> 2026-06-01 复核:后端 mock 闭环已落地 `local_ocr.rs` 与 OCR route;真实 MinerU HTTP client 已补本地 HTTP mock 成功路径测试;`task526` 已覆盖 mock OCR API、搜索命中、显式插入链接和 OCR sidecar Markdown resource tab 打开。前端 OCR task runtime、active job store、realtime event 和任务栏 UI 尚未落地。本文继续保持 `process`,不得被本轮 Page AI / OnlyOffice / ChatOnly 收口误归档。
> 2026-06-01 复核:后端 mock 闭环已落地 `local_ocr.rs` 与 OCR route;真实 MinerU HTTP client 已补本地 HTTP mock 成功路径测试;resource tab 图片/PDF OCR 工具条、附件/File Tree 资源菜单入口和 `task526` UI smoke 已补。active job store、`local_ocr.job.updated` realtime event、全局任务抽屉和 AI 资源上下文读取 OCR sidecar 尚未落地。本文继续保持 `process`,不得被本轮 Page AI / OnlyOffice / ChatOnly 收口误归档。
## 背景
@@ -353,15 +353,15 @@ stale
- [x] 后端:实现 `.mnote/ocr-index.json` 读写、stale 检测和脱敏错误记录。
- [x] 后端:扩展 local-folder 文件分类,让 `{pageStem}.ocr/*.ocr.md` 不进入 Page Tree 普通页面。
- [x] 搜索:扩展 local search index`includeOcr=true` 时索引 OCR sidecar 并返回 owner page。
- [ ] UI:在附件右键菜单、File Tree 资源菜单和资源 tab 增加 OCR 识别入口。
- [ ] UI:展示 OCR 状态、stale、失败和重新识别动作。
- [x] UI:在附件右键菜单、File Tree 资源菜单和资源 tab 增加 OCR 识别入口。
- [~] UI:展示 OCR 状态、stale、失败和重新识别动作。resource tab 已展示 idle/running/done/failed/stale 与打开/插入动作;全局任务抽屉重试链待做)
- [ ] UI:新增全局 OCR 任务栏 / 任务抽屉,显示任务阶段、所属页面、打开 OCR、重试。
- [~] UI/API:增加“插入 OCR 链接到正文”和可选“插入 OCR 正文段落”动作。(后端 link API 已完成;前端入口和 inlineSection 待做)
- [~] UI/API:增加“插入 OCR 链接到正文”和可选“插入 OCR 正文段落”动作。(后端 link API 与 resource tab 前端入口已完成;inlineSection 待做)
- [ ] AI:让 image/PDF 资源上下文优先读取已有 OCR sidecar。
- [x] 测试:Rust 单测覆盖路径规划、frontmatter、索引读写、stale、越界拒绝。
- [x] 测试:Rust route 测试覆盖无 token、真实 MinerU HTTP mock 成功、模拟失败和脱敏错误。
- [x] 测试:local search 测试覆盖 OCR 命中返回 owner pageOCR sidecar 不作为普通页面。
- [~] Smoke:浏览器覆盖图片/PDF 手动 OCR、全局任务栏状态、打开 OCR resource tab、搜索 OCR 命中、插入 OCR 链接。(当前 `task526` 覆盖 mock OCR API搜索命中和 insert link;真实 UI/任务栏/打开 OCR resource tab 待做)
- [~] Smoke:浏览器覆盖图片/PDF 手动 OCR、全局任务栏状态、打开 OCR resource tab、搜索 OCR 命中、插入 OCR 链接。(当前 `task526` 覆盖图片 resource tab 手动 OCR、工具条状态、打开 OCR、插入链接、mock OCR API搜索命中;全局任务栏/任务抽屉待做)
- [x] 文档:补充 `scripts/TESTING_REFERENCE.md` 中 OCR smoke 基线。
## 验收标准
@@ -289,4 +289,4 @@ rust/crates/mnote-web/src/provider_conversations.rs
- [x] 补真实浏览器 smoke`node scripts/task512-chatonly-doubao-sync-smoke.js` 覆盖远端 conversation id 绑定、豆包同会话 marker、session 删除、provider delete 和 SQLite binding `remote_deleted`
- [x] 补跨 provider 真实浏览器 smoke`node scripts/task513-chatonly-provider-sync-smoke.js deepseek``node scripts/task513-chatonly-provider-sync-smoke.js gemini`
- [x] 补 MNote Rust 单测:control-plane binding、mnote-web provider conversation 注入、bound event 持久化和 session delete provider 状态。
- [x] OpenClaw provider 源码不在本仓库,provider 单测缺口已转入 `bugs/07-ai/process/7-49-chatonly-openclaw-provider-unit-test-gap-v1.md` 跟踪,不阻塞 MNote 侧设计归档。
- [x] OpenClaw provider 源码不在本仓库,provider 单测缺口已归档到 `bugs/07-ai/done/7-49-chatonly-openclaw-provider-unit-test-gap-v1.md`Doubao 有真实远端删除 helperDeepSeek / Gemini 在缺少已验证远端删除 API 时明确返回 `remote_delete_failed`,不阻塞 MNote 侧设计归档。
@@ -75,7 +75,7 @@ P2
- [~] `3-25` MinerU OCR:后端真实 MinerU runtime 已补;任务状态事件、全局任务栏和 UI 入口仍待做。
- [x] `7-43` OnlyOffice Plugin BridgeP0/P1 安全主路径与 P2 recipe 矩阵已收口,后续新增 recipe 按矩阵逐项验证。
- [x] `7-44` ChatOnly Doubao bindingMNote 侧 binding 与 Doubao provider 单测已完成。
- [ ] `7-49` ChatOnly OpenClaw providerDeepSeek / Gemini provider 级 delete helper 与单测仍在外部仓库阻塞,不能在 MNote 内归档
- [x] `7-49` ChatOnly OpenClaw providerDoubao provider 真实远端删除 helper / 单测已完成;DeepSeek / Gemini provider 已补明确 unsupported 降级 helper 与单测,返回 `remote_delete_failed` 而不是伪造 `remote_deleted`,缺口已归档到 `bugs/07-ai/done/7-49-chatonly-openclaw-provider-unit-test-gap-v1.md`
本轮已将 `task503``task504``task512``task513``task514``task515``task516` 补入 `scripts/TESTING_REFERENCE.md`;对应 smoke 已实跑,运行结果由 `bugs/10-review/done/10-20-*` 记录。