mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-07-05 13:47:59 +08:00
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com> Signed-off-by: eeee0717 <chentao020717Work@outlook.com> Signed-off-by: icarus <eurfelux@gmail.com>
2.7 KiB
2.7 KiB
File Processing TODO
本文记录当前 v2-file-processing-service PR 之后仍需要处理的 file-processing 后续工作。
主设计文档仍是 file-processing-service.md。本文只追踪 TODO,不重新定义接口契约。
1. 后续业务接入
这些工作不属于当前 Main-side job API 重构范围,需要拆到后续 PR。
- Renderer / preload 正式接入
startJob、getJob、cancelJob。 - 翻译 OCR 从旧
window.api.ocr切到新 file-processing job API。 - 删除旧
src/main/services/ocr和旧 preprocess provider。 - 清理旧 i18n、设置页、migration 中不再需要的兼容逻辑。
2. 暂不实现的能力
这些能力当前有明确设计边界,不应作为本 PR 的 blocker。
- 不建立 Renderer job subscription / IPC broadcast。
- 不建立全局 UI job center。
- 不新增 DataApi job table。
- 不新增 Cache / SharedCache job mirror。
- 不把旧 OCR IPC 桥接到新 file-processing job API。
如果后续产品需要实时进度 UI,应复用统一 JobManager progress 机制或建立通用 job bridge。
3. 代码内显式 TODO
3.1 Mistral MIME 解析
位置:src/main/services/fileProcessing/processors/mistral/utils.ts
当前 Mistral processor 内部维护了图片扩展名到 MIME 的映射。
后续方向:
- 等统一 file management / file-type resolution 层落地后,把 MIME 推断迁过去。
- Mistral processor 只消费统一文件层提供的 MIME 信息。
3.2 OV OCR 进程管理
位置:src/main/services/fileProcessing/processors/ovocr/utils.ts
当前 OV OCR 仍在 processor handler 内直接执行外部脚本。
后续方向:
- 等统一
ProcessManagerService或等价进程生命周期设施落地后,把进程启动、日志、超时、重启和清理交给该设施。 - OV OCR processor 保留输入准备、输出解析和错误映射。
3.3 Tesseract Runtime 进程池
位置:src/main/services/fileProcessing/processors/tesseract/runtime/TesseractRuntimeService.ts
当前 Tesseract runtime 在 Main 进程内持有 shared worker、串行队列和 idle release。
后续方向:
- 如果未来建立统一
ProcessManagerService、托管 utility process 或 worker pool,再把 worker 生命周期和并发控制迁过去。 - 本 PR 不引入 language worker pool 或 per-task worker。
4. 推荐拆分顺序
- 先接 Renderer / preload 的统一 job API,使新 contract 真正被业务调用。
- 再迁移翻译 OCR。
- 业务链路稳定后删除旧 OCR / preprocess 代码。
- 最后处理设置页、i18n、migration、file management、ProcessManager 这类清理和基础设施项。