Commit Graph
47 Commits
Author SHA1 Message Date
yml b9d84679a1 后端迁移订单详情服务 2026-05-21 14:56:14 +08:00
yml 6d6e64beda 后端补充订单详情服务测试 2026-05-21 14:53:13 +08:00
yml 4740f870ba 后端迁移消息发送服务 2026-05-21 14:49:20 +08:00
yml aedc5d928e 后端迁移自动发货服务 2026-05-21 14:46:56 +08:00
yml 861b7e0034 后端补充自动发货服务测试 2026-05-21 14:42:19 +08:00
yml 0d33778d4b 后端迁移领取基础服务 2026-05-21 14:37:16 +08:00
yml 678b7bdf0c 后端迁移履约任务服务 2026-05-21 14:35:08 +08:00
yml 8bb0223d2f 后端补充履约任务服务测试 2026-05-21 14:31:56 +08:00
yml c870414ad6 后端迁移商品匹配服务 2026-05-21 14:27:45 +08:00
yml ca6e8b43c9 后端迁移订单同步服务 2026-05-21 14:25:04 +08:00
yml b6b6d2d8ca 后端迁移领取换码服务 2026-05-21 14:22:20 +08:00
yml ab3a8caa9f 后端迁移库存服务模块 2026-05-21 14:17:14 +08:00
yml 5711d38c8f 后端补充高风险链路测试 2026-05-21 14:10:41 +08:00
yml 84ca9cac09 后端拆分运行时配置模块 2026-05-21 14:06:49 +08:00
yml 5753971c92 后端迁移任务仓储模块 2026-05-21 14:01:54 +08:00
yml b803bbd007 后端迁移库存仓储模块 2026-05-21 13:58:31 +08:00
yml 173da43fdf 后端迁移订单仓储模块 2026-05-21 13:53:17 +08:00
yml 79e586387c 后端迁移更多仓储模块 2026-05-21 13:50:31 +08:00
yml 6eeb1a49df 后端迁移低风险仓储模块 2026-05-21 13:46:10 +08:00
yml 1d74b63800 后端类型定义迁移到 TypeScript 2026-05-21 13:42:18 +08:00
yml 1476522ab5 后端建立 TypeScript 构建链路 2026-05-21 13:36:38 +08:00
yml 25671078d6 修复一些的过时测试 优化readme 2026-05-21 13:16:07 +08:00
yml 5474d77799 fix(cloudtentacles): 第三轮 Bug 修复 + 体验改进 — Vue3 emit 多参数处理、SKU 刷新空缓存、新增账号改用 ElMessageBox.prompt 2026-05-20 01:36:57 +08:00
yml b4bb53f307 [Snow Team] Merge frontend-rule's work 2026-05-20 01:05:25 +08:00
yml 557516ef1d feat(快手 cloud 履约): 三项前端改造 — cloudSourceKey 下拉选择、备选账号多选、SKU 按 sourceKey 缓存
需求1: cloudSourceKey 从文本输入改为下拉选择(选项来自 cloudtentacles sources 列表)
- Type: AdminKuaishouCloudFulfillmentItem 新增 cloudSourceKeyFallbacks?: string[]
- RuleCard.vue: cloudSourceKey 从 el-input 改为 el-select,选项来自 cloudtentaclesSourceOptions prop
- RuleSection.vue: 传递 cloudtentaclesSourceOptions prop 到 RuleCard
- View: 传递 config.cloudtentaclesSourceOptions 到 RuleSection

需求2: 同一 SKU 支持多个 cloudtentacles 账号(备选退避)
- RuleCard.vue: 新增备选 cloud 账号多选 el-select(multiple),过滤掉已选主账号
- useKuaishouCloudConfig.ts: createEmptyItem/mapEditableItem/mapSaveItem 处理 cloudSourceKeyFallbacks 字段

需求3: 选择 cloudSkuId 后自动补全 + sourceKey 感知的 SKU 查询
- useKuaishouCloudSku.ts: cloudSkuCatalog 从全局单一缓存改为按 sourceKey 缓存(cloudSkuCatalogBySourceKey)
- ensureCloudSkuCatalogLoaded(item) 传入 item 取其 sourceKey,fetchAdminCloudtentaclesSkuList({ sourceKey })
- getCloudSkuOptions/handleCloudSkuSelected/handleCloudSkuDropdownVisible 均按 sourceKey 取缓存的 catalog
- refreshCloudSkuCatalog(item?) 支持按 item 的 sourceKey 刷新或全部刷新

额外: useKuaishouCloudConfig 加载时额外调用 fetchAdminCloudtentaclesSourceConfig 获取 sources 列表
2026-05-20 01:04:54 +08:00
yml 6c29726e3f feat: 增加多账号备选退避机制支持 cloudSourceKeyFallbacks
- kuaishou-cloud-fulfillment-config-service: 新增 cloudSourceKeyFallbacks 字段和 normalizeStringArray 辅助函数
- kuaishou-cloud-task-service: 新增 resolvePersistedCloudtentaclesContextWithFallback 函数实现备选账号自动切换
- 改造 5 个调用点(prepare/refresh/roleRefresh/dispatch/return)使用 fallback 机制
- binding 中新增 resolvedSourceKey 字段持久化首次选定的 sourceKey
- admin-write-inputs: 类型定义增加 cloudSourceKeyFallbacks 可选字段
- 向后兼容:旧数据无 fallbacks 字段时等同于旧行为
2026-05-20 01:04:04 +08:00
yml 1ef4db7f45 feat(cloudtentacles): 合并前端多账号支持改动 2026-05-20 00:38:20 +08:00
yml cde49d3da9 feat(cloudtentacles): 后端 Admin 层多账号支持 - admin-service/context/routes/types 改造 2026-05-20 00:38:20 +08:00
yml b35938c148 feat(cloudtentacles): 后端核心数据结构多账号支持 - source-config/session-state 改造 + resolvePersistedCloudtentaclesContext 增加 sourceKey 参数 2026-05-20 00:38:18 +08:00
yml 32cfb62aa1 feat(cloudtentacles): 前端多账号支持 - 类型/API/组件改造, el-select 账号切换 2026-05-20 00:38:17 +08:00
yml f6acc0b9de feat(cloudtentacles): 后端 Admin 层多账号支持 - admin-service/context/routes/types 改造 2026-05-20 00:35:19 +08:00
yml e812ea2cc4 refactor(ocr): remove subprocess mode — HTTP only
- ocr.js: Removed all subprocess/spawn logic (spawn, fs, path, process
  imports, resolveWorkerCommand, buildPythonPath, buildWorkerError,
  callOcrViaSubprocess, resolveOcrMode, runOcrCommand, etc.)
  HTTP is now the only mode. Added validation when OCR_BASE_URL is not
  configured. ~281 lines → ~80 lines.
- default.cjs: Removed projectRoot from ocr config (kept path import
  for data.root)
- runtime.js: Removed OCR_PROJECT_ROOT env var parsing
- runtime-config.js: Removed projectRoot from ocr type definition

All 5 exports preserved: recognizeTencentCaptcha,
recognizeImageCaptcha, batchRecognizeTencentCaptcha,
warmupLocalOcrWorker, closeLocalOcrWorker
2026-05-19 23:29:42 +08:00
yml 2ecf4691d0 [Snow Team] Merge ocr-docker's work 2026-05-19 23:10:39 +08:00
yml c03aed5d1b [Snow Team] Merge ocr-node's work 2026-05-19 23:10:39 +08:00
yml d43897c64c [Snow Team] ocr-python: auto-commit work 2026-05-19 23:10:33 +08:00
yml bc5fd4212d feat(backend): refactor OCR client to support HTTP + subprocess dual mode
- runtime-config.js: add baseUrl field to ocr type definition
- default.cjs: add ocr.baseUrl default (empty string = subprocess mode)
- runtime.js: add OCR_BASE_URL env var parsing
- ocr.js: add HTTP mode (when OCR_BASE_URL set) alongside existing subprocess mode
  - resolveOcrMode() detects mode from runtimeConfig.ocr.baseUrl
  - callOcrViaHttp() calls FastAPI endpoints directly with payload
  - warmupOcrViaHttp() calls /health endpoint for HTTP mode warmup
  - callOcrRequest() routes between HTTP and subprocess based on mode
  - All 5 original exports preserved (recognizeTencentCaptcha, etc.)
  - Subprocess mode remains backward compatible (default when no OCR_BASE_URL)
2026-05-19 23:09:30 +08:00
yml b7de22d665 feat: extract OCR worker into separate service
- Remove Python/OCR steps from backend.Dockerfile (builder + runtime)
- Remove Python/OCR steps from backend-dev.Dockerfile
- Add OCR_BASE_URL env var to both Dockerfiles (http://ocr-worker:8100)
- Add ocr-worker service to docker-compose.yml with healthcheck
- Add ocr-worker service to docker-compose.dev.yml with healthcheck + port
- Update backend depends_on in both compose files to include ocr-worker
- Replace OCR_PROJECT_ROOT with OCR_BASE_URL in compose env vars
- Remove pip install line from start-dev-container.sh
2026-05-19 23:06:15 +08:00
yml f87238b6c0 fix: use Debian official HTTP mirrors in runtime stage (Tencent mirrors redirect to HTTPS which fails without ca-certificates on slim) 2026-05-19 22:39:53 +08:00
yml 82932758b5 fix: correct Python venv path in production Dockerfile to match OCR worker lookup logic (.venv inside ocr-worker dir) 2026-05-19 22:35:02 +08:00
yml 95064466ac [Snow Team] Merge dev-docker's work 2026-05-19 22:31:38 +08:00
yml 925e2c0eaa refactor: multi-stage production Dockerfile for backend
- Split into builder (node:22-bookworm) and runtime (node:22-bookworm-slim)
- Remove VNC/X11 packages (xauth, x11vnc, novnc, websockify) from production
- Install only minimal Chromium runtime libs in slim stage
- Use python3 -m venv instead of --break-system-packages
- npm prune --omit=dev to exclude devDependencies from runtime
- Run as non-root user appuser (uid=1001)
- Use HTTP apt mirrors (OrbStack BuildKit TLS workaround)
- Copy only runtime-needed dirs: src/, config/, node_modules, venv, subservices
- Expected image size: ~800MB-1.2GB (down from ~3.5GB)
2026-05-19 22:31:05 +08:00
yml 311c5a1aa4 feat: add dev Dockerfile with VNC/X11/Xvfb and update docker-compose.dev.yml
- Create deploy/docker/backend-dev.Dockerfile: single-stage, root,
  includes xauth, x11vnc, novnc, websockify, xvfb, Playwright+chromium,
  Python3+pip+ocr-worker (--break-system-packages)
- Use HTTP (not HTTPS) for apt mirrors per BuildKit TLS note
- Update docker-compose.dev.yml backend to point to backend-dev.Dockerfile
- .dockerignore unchanged (no issues found)
2026-05-19 22:29:21 +08:00
yml f157fbc87a 优化docker相关 2026-05-19 21:41:43 +08:00
yml 4429fb20d7 删除无用 2026-05-19 20:57:02 +08:00
yml bbd0991e52 重构:提取useAdminAction/useAdminListQuerySync + 迁移列表视图到useAdminListPage + 修复formatAutoDeliveryReason缺失case + 消除重复格式化函数 + 修复CSS类冲突 2026-05-19 19:34:40 +08:00
yml 563038aa40 重构:迁移3个列表视图到useAdminListPage + 提取useAdminAction组合式函数 2026-05-19 19:29:14 +08:00
yml 671b1640aa 重构:迁移3个列表视图到useAdminListPage + 提取useAdminAction组合式函数 2026-05-19 19:27:43 +08:00