Skip to content

fix: stabilize mobile import auto vectorization#589

Open
codedogQBY wants to merge 2 commits into
mainfrom
codex/fix-mobile-import-stability
Open

fix: stabilize mobile import auto vectorization#589
codedogQBY wants to merge 2 commits into
mainfrom
codex/fix-mobile-import-stability

Conversation

@codedogQBY

@codedogQBY codedogQBY commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Summary

  • Defer mobile auto-vectorize file reads until the queue is actually processing the current book
  • Stop importBooks from converting imported book bytes to base64 inline after TXT/UMD/generic imports
  • Skip >32MB books only for automatic mobile vectorization after import/download; manual vectorization now warns and still allows the user to continue

Scope

Verification

  • PASS: git diff --check
  • PASS: Biome check on touched files, with one existing warning in library-store.ts (unused saveCoverToAppData)
  • BLOCKED: packages/app-expo/node_modules/.bin/tsc -p packages/app-expo/tsconfig.json --noEmit, existing missing packages: base64-js, @smithy/protocol-http, @smithy/querystring-builder

@codedogQBY

Copy link
Copy Markdown
Owner Author

补充一份更细的验证 checklist,也把 32MB 的语义写清楚:

设计结论:

  • 32MB 只作为“自动向量化”的保护线:导入/同步/下载后不会在后台自动处理超大书,避免 Android 在导入链路里被整本 base64 和 WebView 提取拖崩。
  • 手动向量化不会被永久禁止:超过 32MB 时弹出风险提示,用户点“继续”后仍然会进入向量化队列。

已执行:

  • PASS git diff --check:无空白/补丁格式问题。
  • PASS biome check packages/app-expo/src/stores/library-store.ts packages/app-expo/src/lib/rag/auto-vectorize-book.ts packages/app-expo/src/lib/rag/auto-vectorize-service.ts packages/app-expo/src/screens/library/useVectorizationQueue.ts:touched files 通过,仅保留既有 warning saveCoverToAppData 未使用。

已知阻塞,不归这个 PR:

  • BLOCKED packages/app-expo/node_modules/.bin/tsc -p packages/app-expo/tsconfig.json --noEmit:仓库当前缺 base64-js@smithy/protocol-http@smithy/querystring-builder

建议真机回归:

  • Android 本地批量导入多本 EPUB/TXT/UMD,打开自动向量化开关,确认导入结果不会因为向量化入队失败而被标记失败。
  • 导入/同步/下载一本超过 32MB 的书,确认自动向量化被跳过但书籍仍可正常进入书库/打开。
  • 手动点击超过 32MB 书籍的向量化,确认出现风险提示;点取消不入队,点继续可进入队列。
  • 小于 32MB 的 EPUB/TXT/UMD 自动向量化仍会入队,并且队列处理到当前书时才读取 base64。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant