Commit Graph
30 Commits
Author SHA1 Message Date
chengma 789e82991f feat: 完成T-303 AI批量生成
- 新增 generate_batch,先并发生成标题再并发生成封面,成功逐条 set_generated 落库

- Tab② 接入开始生成、停止、进度展示和双击新旧封面预览

- 新增 GenerateWorker,通过 worker signal 回传进度与行刷新

- 补充批量生成成功、失败、停止取消和 GUI worker 单元测试

- 同步任务看板、API、路由、当前状态与 progress 文档
2026-06-27 16:26:08 +08:00
chengma fe1e0a7d32 feat: 完成T-302p提示词管理
新增app/prompts.py,支持标题提示词读写、封面模板列表/读取/保存/重命名/删除,以及旧标题、新标题、商品id、店铺变量替换。

Tab②接入标题提示词启动回显和保存,封面模板下拉、新建、保存、另存为、重命名、删除、插入{新标题}与变量预览;本任务仍不调用AI、不写SQLite。

新增tests/test_prompts.py并扩展GUI测试覆盖提示词文件管理和预览;同步任务看板、API、routes、current-state和progress,下一个任务更新为T-303。
2026-06-27 16:10:50 +08:00
chengma 6e690cc02a feat: 完成T-302 AI生成页布局
新增GenerateTab和GenerateTaskTableModel,将② AI生成从占位页替换为左右布局:左侧标题/封面提示词多行输入,右侧批次、店铺、状态筛选和任务列表。

任务列表展示店铺、商品ID、旧标题、新标题、状态;筛选只读SQLite,不调用AI、不写库,生成执行留给T-303,提示词管理留给T-302p。

补充GUI测试覆盖Tab②挂载、提示词输入区、任务列表展示与批次/店铺/状态筛选;同步任务看板、API、routes、current-state和progress。
2026-06-27 15:56:55 +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 5892de5303 test: 修正Phase2验收口径并补预检断言
收录Claude对T-201到T-205的验收报告,并把报告中的GUI用例数量、T-205最终方案和T-203未登录语义改为当前口径。

同步任务文档、API文档、当前状态和progress,明确匹配账号未登录由T-205预检blocked拦截,不进入逐条采集、不写skipped或failed;别名未匹配仍由T-203逐条mark_skipped。

补强test_gui中未登录预检分支断言,确认被拦截任务保持imported/pending且last_error为空。
2026-06-27 15:28:33 +08:00
chengma 5390debf40 feat: 完成T-205账号就绪引导保护
CollectWorker 增加采集前账号就绪预检:无账号、匹配账号 CDP 端口未响应或未登录时返回 blocked,不进入逐条采集,也不写 skipped/failed。

CollectTab 收到 blocked 后弹窗汇总原因,并跳转/引导到④账号管理配置账号、启动对应 Chrome、人工登录;MainWindow 为①传入打开④的回调。

新增 GUI 测试覆盖无账号、Chrome 未启动、未登录和弹窗引导;同步 T-205 状态、api、current-state 与 progress。
2026-06-27 15:00:15 +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 6e00b1b093 feat: 完成Tab①采集旧数据
新增 CollectWorker,通过后台线程逐条采集旧标题和旧封面,成功后立即 db.set_collected 写库。

采集前按别名匹配账号并检测登录态;未匹配或未登录写 skipped,单条采集失败 mark_failed 后继续。

Tab① 增加采集/停止按钮和进度状态回传;补充 GUI 测试覆盖成功采集、未登录略过和未匹配略过;同步任务文档与 progress。
2026-06-27 11:51:42 +08:00
chengma 3bf42dc11e feat: 完成Tab①导入汇总栏
在 CollectTab 增加导入汇总栏,展示文件数、解析行数、有效/无效、匹配与未匹配数量。

TaskTableModel 支持全部/未匹配过滤,未匹配按钮可筛出别名未匹配账号的任务。

补充 GUI 单测覆盖汇总文本、匹配明细和未匹配筛选;同步任务看板、API 合约、当前状态与 progress。
2026-06-27 11:40:51 +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 893aa56881 feat: 完成Excel导入入库
实现 app/excel.py 多文件导入,解析账号名、别名、商品id,记录 source_file_abs/source_sheet/source_row/row_key。

导入时支持缺必需列整文件拒绝、脏行逐行跳过统计,并写入 batches/tasks;补充 match_summary 与回写占位。

新增 tests/test_excel.py 覆盖入库、缺列拒绝、多文件容错和别名匹配;同步任务看板、API 合约、当前状态和 progress。
2026-06-27 10:59:51 +08:00
chengma 742193607b feat: 完成账号桌面快捷方式
- 新增 chrome.create_shortcut 使用 PowerShell WScript.Shell 生成 .lnk

- 快捷方式参数复用 Chrome 启动参数,包含调试端口、allow-origins 和账号 user-data-dir

- 在账号服务层和 Tab④ 增加快捷方式入口,不包含密码或密钥

- 补充 chrome/accounts/gui 测试并同步任务、API、路由、当前状态和进度文档
2026-06-27 10:38:21 +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 b8318c881d feat: 完成PySide6主窗口骨架
- 实现 MainWindow + 固定顺序五 Tab QTabWidget + 状态栏

- 新增 offscreen GUI 单元测试覆盖 Tab 顺序和状态栏切换

- 缺 PySide6 时提供明确启动错误,避免无声失败

- 更新任务看板、API 合约、当前状态和进度记录
2026-06-27 09:56:53 +08:00
chengma deb12cb76c feat: 完成登录状态检测
- 增强 editor 登录检测,新增 login_status 详情结果

- 保留 is_logged_in bool 包装并处理登录页、缺 Cookie 等状态

- 新增登录检测单元测试覆盖 CDP 分支

- 更新任务看板、API 合约、当前状态和进度记录
2026-06-27 09:42:41 +08:00
chengma e325f66eef feat: 完成Chrome启动器
- 新增 app/chrome.py 拼装远程调试启动参数并启动 Chrome

- 实现 /json/version 端口探测并禁用环境代理

- 新增 chrome 单元测试覆盖参数、Popen 和端口就绪

- 更新任务看板、API 合约、当前状态和进度记录
2026-06-27 09:33:54 +08:00
chengma d3afe69c10 feat: 完成账号目录slug工具
- 新增 app/config.py,生成稳定账号 slug 并创建 user-data-dir

- db 账号创建复用统一 slug 规则

- 新增 config 单元测试覆盖 slug 和目录创建

- 更新任务看板、API 合约、当前状态和进度记录
2026-06-27 09:21:33 +08:00
chengma aba272dd21 test: 建立单元测试基座
- 新增 unittest tests 基座,覆盖 appconfig 与 db 纯逻辑

- 增加 excel/prompts 未实现模块的契约占位测试

- 补强 config.json 对 *_token 与 *_password 的敏感字段拦截

- 更新任务看板、当前状态、API 合约和进度记录
2026-06-27 09:17:20 +08:00
chengma 0de7c84163 feat: 完成AI模型清单后端
- 扩展 appconfig 读写 config/ai_models.json

- 支持模型增删改、分类过滤、key 打码展示和 get_model 明文返回

- 增加模型唯一性、类别保底和测试连接错误返回

- 更新任务看板、模块合约、当前状态和进度记录
2026-06-27 09:10:17 +08:00
chengma 8ad1754946 feat: 完成配置与SQLite地基
- 新增 appconfig 配置读写、默认值、AI 参数和敏感字段拦截

- 新增 SQLite batches/accounts/tasks schema 与阶段写库函数

- 校准本地配置、DB、图片和登录态文件的 gitignore 规则

- 更新任务看板、模块合约、当前状态和进度记录
2026-06-27 09:02:05 +08:00
chengma 26dac2a718 feat: 抽取 Shopee 编辑器模块
新增 app/editor.py,封装商品页打开、登录检测、标题读取写入、封面读取下载、封面上传拖拽、更新按钮点击和 apply_task。

扩展 app/cdp.py 的 host 参数,支持后续按账号端口连接 CDP。

同步任务看板、模块合约、当前状态和进度记录,标记 T-001 完成;记录测试商品标题读写、封面读取与 1_TY030.jpg 上传拖拽验证结果。
2026-06-26 18:02:57 +08:00
chengma ef389b323f chore: 完成正式代码包结构
创建 app 包与 main.py 入口,将根目录 cdp.py 迁入 app/cdp.py,并保留最小 app.gui 占位入口。

修正 prototypes/demo.py 与 demo.bat,让原型脚本从项目根导入 app.cdp。

更新任务看板、当前状态和进度记录,标记 T-000 完成并记录本机 Python 解释器差异。
2026-06-26 17:24:23 +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