Skip to content

feat(console): 账号页批量导入(自动识别 + 确认区) - #395

Merged
caigee-cmd merged 2 commits into
mainfrom
feat/accounts-batch-import-workbuddy-cn
Oct 25, 2026
Merged

caigee-cmd merged 2 commits into
mainfrom
feat/accounts-batch-import-workbuddy-cn

Conversation

@caigee-cmd

@caigee-cmd caigee-cmd commented Oct 25, 2026 •

Copy link
Copy Markdown
Owner

结论

账号页顶栏「刷新额度」与「添加账号」之间增加 批量导入:选 JSON → 自动识别 format / provider / region → 确认 Modal 后再导入。当前仅 WorkBuddy 真正写入(可改选 CN / Global);其它已识别供应商暂不支持批量。复用现有 POST /api/accounts/import(#393 ImportAll)。请 review 后自行 merge,本 PR 不自动合入。

新 UX

  1. 点「批量导入」选 JSON
  2. 解析后 detectImportBundle:format / provider / region / warnings
  3. HeroUI 确认 Modal:展示识别结果;WorkBuddy 可选 CN / Global;确认后才 importAccount
  4. 其它已识别但暂不支持批量的供应商:说明暂不支持,主按钮不展示
  5. 无法识别 / 坏 JSON:toast 错误

识别规则(lib/accountImportDetect.ts)

  • 优先 bundle.format 映射 registry formats:workbuddy-accounts / workbuddy-oauth-v1、qoder-native-v1、trae-oauth-v1、devin-session-v1、command-key-v1、codex-oauth-v1、zhipu-key-v1、qwenwork-oauth-v1…
  • 无 format:accounts[]+token/domain → workbuddy-accounts;user_blob+machine_id → qoder 等
  • WorkBuddy 区:domain 含 codebuddy.cn → cn;workbuddy.ai / workbuddy.com → global;混包 → ambiguous 强制人选;无 domain → 默认 cn 并标「请确认」

改动

  • AccountsPage:选文件 → detect → BatchImportConfirmModal → 确认后 importWorkbuddyBundle({ region })
  • lib/accountImportDetect.ts + frontend/scripts/accountImportDetect.test.ts(npx tsx frontend/scripts/accountImportDetect.test.ts)
  • lib/workbuddyImport.ts:normalize / 结果文案;导入改为带确认 region(与 AddAccountModal 共用)
  • i18n / changelog / embedded webui static 已同步

不做

新后端 endpoint;其它供应商真正批量写入;chat/指纹/签到;改 release;自动 merge。

手动验收

  1. 打开账号页 → 顶栏可见「批量导入」。
  2. 选 hub workbuddy-accounts JSON(CN domain)→ Modal 识别 WorkBuddy / CN → 确认导入;toast 成功 N / 失败 M。
  3. Global domain 包 → Modal 预选 Global,可改选 CN 后导入。
  4. 混包 / 无 domain → Modal 提示需人选区。
  5. qoder / trae 等已知 format → Modal 说明暂不支持,无导入按钮。
  6. 坏 JSON / 无法识别 → toast 错误且不写库。
  7. 「添加账号」里 WorkBuddy 粘贴导入仍可用。

顶栏「批量导入」选 JSON,固定 provider=workbuddy/region=cn,复用
现有 POST /api/accounts/import(ImportAll)。normalize 与结果文案抽到
lib/workbuddyImport,与 AddAccountModal 共用。
Detect credential packs on file pick, confirm WorkBuddy CN/Global in a
modal, then reuse ImportAll. Other providers are detected but not imported yet.
@caigee-cmd caigee-cmd changed the title feat(console): 账号页批量导入 WorkBuddy 国内版 feat(console): 账号页批量导入(自动识别 + 确认区) Oct 25, 2026
@caigee-cmd
caigee-cmd merged commit c1a53a7 into main Oct 25, 2026
6 checks passed
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