Commit Graph
40 Commits
Author SHA1 Message Date
chengma b622247a16 feat: support old title placeholder in title prompts 2026-07-08 10:07:47 +08:00
chengma cff61edce4 feat: use system curl for cmhub image downloads 2026-07-08 09:26:25 +08:00
chengma 56e96d3ae1 feat: tighten ai concurrency settings 2026-07-08 08:55:01 +08:00
chengmaandClaude Opus 4.8 30497bdda7 docs: sync cmhub download diagnostics and progress
04-architecture/api 记录下载层最多 3 次安全重试(复用同一 image_url、
不重发生图)、下载超 20 秒告警、CMSHOPEE_DEBUG_CMHUB_IMAGE_URL 调试开关;
current-state/progress 同步。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 00:41:44 +08:00
chengma 3d902d4907 feat: cap cmhub image concurrency 2026-07-07 21:00:43 +08:00
chengma 2928624019 fix: align cmhub image timeout display 2026-07-07 19:13:00 +08:00
chengma 862f791fde feat: localize Shopee GUI wording 2026-07-07 14:58:54 +08:00
chengma 148c4a73eb feat: store packaged user data under data directory 2026-07-07 14:12:32 +08:00
chengma 0dad4151ef feat: complete T-105b account login reuse 2026-07-06 15:01:50 +08:00
chengma b99019e954 feat: complete T-530 cmhub URL normalization 2026-07-06 10:31:36 +08:00
chengma 60497be557 T-529 default to cmhub gateway 2026-07-04 17:59:23 +08:00
chengma 1efb095767 feat: add cmhub AI backend 2026-07-04 15:13:15 +08:00
chengma dd2a8e3360 fix: detect shopee accounts login page 2026-07-02 22:38:08 +08:00
chengma b9f614b8e7 fix: capture invalid product toast and close failed tabs 2026-07-02 21:46:32 +08:00
chengma 6e2dcf9954 refactor: split gui into package 2026-07-02 16:47:37 +08:00
chengma 21cd02c167 feat: add optional cover generation toggle 2026-07-02 15:17:11 +08:00
chengma f80f00b5a2 feat: expand full-flow diagnostics 2026-07-01 15:32:27 +08:00
chengma 84b35f1cdc feat: polish Shopee update checks 2026-07-01 14:30:49 +08:00
chengma cc277366ed feat: add soft delete for import batches 2026-07-01 09:41:10 +08:00
chengma 483bec427c fix: stabilize Shopee cover replacement 2026-07-01 08:35:46 +08:00
chengma 580a7a570d fix: handle Shopee update confirmation and upload edge cases 2026-06-30 11:44:27 +08:00
chengma cd1256bc5e feat: add diagnostic logs for generation flows 2026-06-29 17:49:45 +08:00
chengma 0e0ed193b6 feat: 完成T-504更新执行增强
- 新增 dry-run、多账号并行和最大并行账号数设置

- 增加 run_logs/run_log_events 运行日志表及读写接口

- ApplyWorker 支持 dry-run 预览、按账号并行、端口冲突阻断和日志展示

- 补充 DB/GUI 单元测试并同步任务、架构、API、路由和当前状态文档

验证: python -m compileall app main.py tests; python -m unittest discover -s tests
2026-06-29 10:25:09 +08:00
chengma 01e319cad8 feat: 完成T-503敏感信息提示与脱敏
- 保存或变更账号密码、AI API Key 前弹出本地明文保存提示

- 新增敏感值打码、结构化日志脱敏和自由文本替换工具

- 补充 GUI/appconfig 单测,覆盖明文提示和脱敏边界

- 同步任务看板、当前状态、架构、API、路由和编码规则文档
2026-06-29 10:05:16 +08:00
chengma 82d390c25a feat: 完成T-502满9张封面替换
实现 replace_cover 满9张时先校验 old_cover_path 本地备份,备份缺失返回 OLD_COVER_BACKUP_MISSING 且不删除线上图片。

备份存在时点击第一张删除按钮并处理可见确认框,删除后继续上传新封面并拖到第一位;apply_task 会把任务 old_cover_path 传入 replace_cover。

补充 editor 单测覆盖备份缺失阻断、删除确认后上传拖首位、删除按钮缺失和 old_cover_path 传递;同步需求、架构、编码规则、任务看板、API、routes、current-state 与 progress。

已在测试商品 29671243750 上验证 9图删除和满9张替换的不提交流程;未点击更新保存线上。
2026-06-29 09:49:53 +08:00
chengma b05a856796 feat: 完成T-501c Shopee更新安全开关
新增 shopee_update 配置段,默认关闭真实提交和封面更新,限制测试商品ID、单次最大更新条数,并支持成功后关闭本轮自动新开编辑页。

Tab⑤ 设置页新增 Shopee 更新安全表单;Tab③ 开始更新前先读取安全配置并阻断未授权真实提交、超量、非测试商品和未允许的封面更新。

ApplyWorker 将 close_success_tab 传入 editor.apply_task;editor 仅在提交成功且页面为本轮自动新开时关闭 tab,失败和复用页面保留。

同步架构、API、路由、任务看板、当前状态与 progress 文档;补充 GUI 与 editor 单测覆盖安全设置保存、共享配置读取、安全拦截和 tab 关闭策略。
2026-06-29 09:18:03 +08:00
chengma e6d7de3d7c fix: 采集后关闭自动新建商品页
- 新增 close_tab 和 create_tab_info,区分断开 CDP 连接与关闭浏览器 target

- open_product 标记商品页是否本轮自动新建,collect 结束后只关闭自动新建 tab

- 保留用户原本打开的商品 tab,③ 更新流程暂不自动关闭页面

- 补充 editor tab 生命周期测试并同步架构、API、任务和进度文档
2026-06-27 16:39:12 +08:00
chengma c2f2530149 feat: 完成T-301 AI生成接口
新增app/ai.py,按config/ai_models.json读取默认文本和图片模型,提供gen_title与gen_cover通用HTTP接口。

支持chat JSON与images_edits multipart、失败重试、错误脱敏、图片URL/base64解析、resolution resize和jpg_quality保存。

新增tests/test_ai.py覆盖文本重试、缺字段错误不泄露Key、封面JPEG保存;同步任务看板、API、技术栈、架构、current-state和progress,并记录Tab①真机冒烟结果。
2026-06-27 15:47:21 +08:00
chengma d7e609434e feat: 完成T-204b采集自动回写
采集完成且本轮有成功采集任务时,Tab① 自动启动 WriteBackWorker 回写旧标题和旧封面路径到当前批次 Excel。

保留手动回写旧数据到 Excel 作为自动回写失败后的重试入口;原 Excel 被占用时提示关闭文件后手动重试,SQLite 采集结果不回滚。

新增 GUI 测试覆盖自动触发、无成功采集不触发、锁文件提示手动重试;同步 T-204b 任务状态、current-state、api、architecture 与 progress。
2026-06-27 14:47:08 +08:00
chengma b9d84e71ec feat: 完成T-204旧字段回写
实现 Excel 旧标题与旧封面路径回写原文件,按 source_file_abs/source_sheet/source_row 定位行,支持输出列自动追加、xlsm 保留 VBA、文件占用中文错误提示与 export_copy 另存副本。

Tab① 增加回写旧数据按钮与 WriteBackWorker,后台调用 excel.write_back,锁文件时提示关闭后重试;补充 Excel 与 GUI 单测覆盖回写、锁文件、另存副本和 worker 调用。

同步 harness 文档:T-204 标记完成,新增 T-204b 记录采集完成自动回写缺口,扩展 T-205 覆盖 Chrome 未启动/未登录引导保护,并更新 current-state、routes、api、architecture、requirements 与 progress。
2026-06-27 14:37:58 +08:00
chengma 8fe979942c fix: 调整登录检测入口URL
无 Shopee tab 时,登录检测改为打开卖家中心根地址 https://<region_host>/,默认 https://seller.shopee.tw/。

商品编辑 URL 仍保持 /portal/product 路径不变;更新登录检测单测与 API/架构/当前状态/progress 文档。
2026-06-27 12:05:33 +08:00
chengma 6f36118b7e feat: 完成Tab①任务导入列表
实现 CollectTab 与 TaskTableModel,Tab① 接入导入 Excel 按钮、QTableView 任务列表和未匹配别名略过标记。

新增 GUI 测试覆盖 Tab① 接入、任务展示、未匹配标记和导入刷新;同步任务状态、API 合约、当前状态与 progress。

加入标准空模板 shopee待处理任务模板.xlsx,并更新 ignore/文档规则:模板可提交,运营填写后的 Excel 业务文件默认忽略。
2026-06-27 11:29:48 +08:00
chengma 598df5f20b feat: 完成Tab④账号管理
- 新增 accounts 服务层,封装账号 CRUD、目录创建、端口分配与登录检测

- 接入 PySide6 账号管理 Tab:表格、账号弹窗、启动登录、后台检测登录

- 密码仅本地保存并在 UI 打码,表格不展示明文;不自动登录或填密码

- 增加顶部 Tab 栏防误点样式,扩大点击区域并高亮当前 Tab

- 补充账号服务和 GUI 单元测试,并同步架构、API、路由、任务和进度文档
2026-06-27 10:30:45 +08:00
chengma 479ab5c41d feat: 完成PySide6 worker基座
- 新增 BaseWorker 通用 signals、取消标记和统一 run 入口

- 新增 run_worker QThread 包装与生命周期清理

- 新增 worker 单元测试覆盖 signal、取消、异常和类型校验

- 更新任务看板、API 合约、架构、当前状态和进度记录
2026-06-27 10:05:29 +08:00
chengma 917656f205 docs: 规划正式代码包结构
将正式代码目标结构统一为 app/ 包和根目录 main.py,区分 app/ 正式代码与 prototypes/ 原型参照。

新增 T-000 作为首个实现任务:创建 app 包、迁移 cdp.py、补 app/__main__.py 与 main.py、修正 prototypes/demo.py 导入。

更新模块合约、技术栈、编码规则和 current-state:后续模块路径改为 app/editor.py、app/appconfig.py、app/db.py 等,启动方式为 python main.py 或 python -m app。
2026-06-26 17:05:18 +08:00
chengma 5c6fd0ff98 docs: 明确任务领取与导入安全规则
统一任务领取规则,current-state 只能展示按 06-tasks 顺序计算出的当前任务,当前下一个任务固定为 T-001。

明确 tests/ 与 unittest discover 的启用时机:T-006 前不因 tests 缺失判失败,T-006 后纯逻辑改动必须补测并运行。

补齐敏感文件和目录清单:config.json、config/ai_models.json、cmshopee.db、chrome_user_data_dir/、images/ 均须 gitignore 且不得提交。

定稿 Excel 导入容错策略:缺必需列拒绝整文件并记录 file_errors,单行脏数据逐行跳过并计入 invalid。
2026-06-26 16:37:58 +08:00
chengma 3832697fc4 docs: 补强 V1 数据与测试设计
- 扩展 SQLite schema:新增 batches、Excel 行定位、stage/status、时间戳和重试字段

- 明确 SQLite worker 并发规则:独立 connection、WAL、busy_timeout、短事务

- 调整 AI 接入顺序:先做模型清单后端,再接真实 ai.py,设置页复用后端

- 补充 unittest 测试基座要求和分层验证策略

- 敏感信息改为本地明文保存,配合 gitignore、UI 打码和日志脱敏
2026-06-26 16:27:33 +08:00
chengma 92735ae7a4 docs: 切换 GUI 选型为 PySide6 2026-06-26 16:09:09 +08:00
chengma ccb4d52d9f docs: 统一 V1 更新确认策略 2026-06-26 15:55:28 +08:00
chengmaandClaude Opus 4.8 479d02a2b8 docs: 初始化 cmshopee 文档、设计与项目骨架
- docs/ 完整 harness coding 文档集(愿景/需求/技术栈/架构/编码规则/任务/api/routes/current-state)
- 5 Tab 流水线设计 + UI 效果图 SVG(docs/ui/)
- cdp.py CDP 底座;prototypes/ 已验证原型脚本(待 editor.py 移植后清理)
- AGENTS.md/CLAUDE.md 入口、progress.md 执行流水、.gitignore(排除凭证/DB/图片)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 15:30:37 +08:00