huangzd1997
|
d23fde1757
|
task-148(Java 菜单树与 Flyway): Task148Test 8 用例 RED→GREEN。
|
2026-09-05 17:56:51 +08:00 |
|
huangzd1997
|
9b8423bb9b
|
task-147(Java 菜单树与 Flyway): Task147Test 8 用例 RED→GREEN。
|
2026-09-05 17:56:51 +08:00 |
|
huangzd1997
|
f41d8b127f
|
task-146(Java 菜单树与 Flyway): Task146Test 8 用例 RED→GREEN。
|
2026-09-05 17:56:51 +08:00 |
|
huangzd1997
|
cea4db2c45
|
task-145(Java 菜单树与 Flyway): Task145Test 8 用例 RED→GREEN。
|
2026-09-05 17:56:50 +08:00 |
|
huangzd1997
|
b791fa94e7
|
task-144(Java 菜单树与 Flyway): 实现 parent_id 树组装
组装器新增 groupChildrenById/递归 assemble(孤儿按根),currentUserMenus 改走统一
组装器 toMapList。
TDD: Task144Test 8 用例 RED→GREEN。
|
2026-09-05 17:56:49 +08:00 |
|
huangzd1997
|
320600584c
|
task-143(Java 菜单树与 Flyway): 修正索引测试(用 Arrays.asList 允许 null 元素) 补 GREEN。
|
2026-09-05 17:52:19 +08:00 |
|
huangzd1997
|
ef19a5c00c
|
task-143(Java 菜单树与 Flyway): 实现有效菜单节点索引
indexById(去 null id/重复后写) 单测(Task143Test 8 用例)。
TDD: RED→GREEN。
|
2026-09-05 17:51:13 +08:00 |
|
huangzd1997
|
8668a6e439
|
task-142(Java 菜单树与 Flyway): 定义 menu_type=admin 过滤规则
filterByMenuType 单测(Task142Test 8 用例)。
TDD: RED→GREEN。
|
2026-09-05 17:49:50 +08:00 |
|
huangzd1997
|
4dd9ca7a22
|
task-141(Java 菜单树与 Flyway): 冻结 Java 菜单树响应 DTO 契约
新增纯 Java AdminMenuTreeBuilder:Node(key/name/route/children) 树组装与
route 规整,column_key 与 route 分离,可离线单测。
TDD: Task141Test 8 用例先 RED 后 GREEN。
|
2026-09-05 17:49:44 +08:00 |
|
huangzd1997
|
2f71b4be3c
|
feat(backend-java): 后台菜单接口改为返回菜单树并适配 admin-vue
菜单接口 /api/admin/current-user/menus 由扁平 route 列表改为含父子
层级的菜单树;权限标识用 column_key,页面地址用 route 单独下发;
/admin 与 / 入口重定向到 admin-vue。
|
2026-09-05 14:58:02 +08:00 |
|
huangzd1997
|
1063e5188c
|
feat(backend-java): 客户端版本更新新增公开查询接口
新增 /api/version 与 /api/version/latest 公开端点,路径与 file_url 字段
兼容 Python 时代客户端固定请求,供桌面端 ShuFuAI.exe 检查更新。
|
2026-09-05 14:57:58 +08:00 |
|
huangzd1997
|
289f4488f9
|
fix(auth/logout): 禁用内置 LogoutFilter,登出改走 auth 模块清会话 cookie
POST /logout 原先被 Spring Security 内置 LogoutFilter 截走(204),只清空
SecurityContext,从不执行 LoginController.logout,导致 aiimage_token cookie
残留、退出登录后仍保持登录态。SecurityConfig 显式 logout.disable() 后请求
落到 POST /logout → 200 + Set-Cookie aiimage_token=;(Max-Age=0) 清除。
补充真实登出 E2E(live):登出返回 200、下发清除 cookie、无 cookie 后 401。
注:此前的 500/CNFE 系运行进程 jar 被覆盖为 thin jar 所致,重建 fat jar
并重启即恢复;本提交只改逻辑。11/11 live 用例通过。
|
2026-09-05 14:49:52 +08:00 |
|
huangzd1997
|
40224d8e56
|
fix(backend-java): 收口并发资源与恢复链路
|
2026-09-05 14:44:00 +08:00 |
|
huangzd1997
|
445c139bce
|
guard(task-210/212): ArchitectureBoundaryTest 债务基线下调 128→84(Handler 迁移后 task→业务依赖实降至 84)并随迁记录 SPI 化遗留
|
2026-09-05 10:26:50 +08:00 |
|
huangzd1997
|
1924e273e9
|
refactor(task-212): 清理 TaskResultFileJobWorker 5 个迁移后遗留的死业务 import(Handler 已接管处理,字段已移除)
|
2026-09-05 10:15:57 +08:00 |
|
huangzd1997
|
be332a47ab
|
fix(task-212): Handler 迁入业务模块后补 task.service 类型 import(随迁移内容一并落库)
|
2026-09-05 10:12:01 +08:00 |
|
huangzd1997
|
01e8c608e7
|
task-212(部分): 04 Handler SPI 实现迁回各业务模块(依赖反转大头)——13 个 *ResultFileJobHandler 从 modules/task/service 迁到各自模块 service
- TaskFileJobConfig 与相关测试 import 同步到新模块包;MappingSnapshot 源码路径按模块映射
- task 模块对业务 import 由 16+ 文件降到 3(TaskHeartbeatService/TaskResultFileJobWorker/ModuleHistoryCleanupService 尚需心跳/worker/清理 SPI 化)
- 全量回归 2308 测试 0 失败
|
2026-09-05 10:11:53 +08:00 |
|
huangzd1997
|
d4b4e1e165
|
task-219(env-gated 全链路): similarasin 最小链路 done=true→assemble→上传结果文件回放测试(种子含 items+groups→按同名 group 回填→轮询至 SUCCESS→result_file_url 非空 .xlsx)+ 本地真跑通过
本地 MinIO 已建桶;关键点:解析载荷须含 groups 且 python 按同名 group 回填。CI 实跑依赖 Gitea runner(远程),本地以 mvn/node 等价命令 + env-gated 全绿覆盖
|
2026-09-05 09:50:53 +08:00 |
|
huangzd1997
|
fe3b8624bf
|
chore(similarasin): LlmGatewayTlsProbe 探针模型字面量同步为 glm-5.3-flash
|
2026-09-05 09:48:27 +08:00 |
|
huangzd1997
|
3ee281a433
|
fix(similarasin): LLM 默认模型改为 glm-5.3-flash(原 gemini-3.5-flash-lite/gemini-3.7-flash 在 ai.t8star 端点不可用,按指示统一)
|
2026-09-05 09:48:19 +08:00 |
|
huangzd1997
|
736760aa31
|
fix(perf test): 移除墙钟 light<batch 断言(纯内存 mock 下 0ms 抖动偶发红;类注释本就声明不做毫秒比较、用确定性查询次数口径)
|
2026-09-05 09:31:13 +08:00 |
|
huangzd1997
|
8cbc86f6fa
|
task-214: progress/batch 轻量响应契约回放(env-gated,真实服务:造 SIMILAR_ASIN RUNNING → batch items/missingTaskIds + task 轻量字段(id/taskNo/status) + 文件 items;light items/missingTaskIds)+ 已本地真跑
|
2026-09-05 09:25:54 +08:00 |
|
huangzd1997
|
6bd3e76048
|
task-218(离线可收部分): 结果文件格式契约(真实 AppearancePatentSheetBuilder 纯调用:Sheet 名/主表列序(含标题/图片链接/sku)/原因表列/空行产出)+ 8 测试
文件名 <stem>-result.xlsx 与 ZIP 结构由运行时组装/上传环节生成,依赖真实流水线(3+2 约定 env-gated 另行验证)
|
2026-09-05 09:23:21 +08:00 |
|
huangzd1997
|
c282327a0b
|
task-207(服务层): done=true 终态决策纯语义(SimilarAsinSubmitResultSemantics:done/error→终态回调、chunkIndex/Total 缺省归一)接线回 submit + 8 单测
按 3+2 约定:文件生成/终态落库依赖真实 LLM 流水线,留待真实运行时经 env-gated 回放(CONTRACT_* 已就绪)
|
2026-09-05 09:10:51 +08:00 |
|
huangzd1997
|
dacdab7adb
|
task-206: heartbeat 旧字段契约回放(env-gated,真实服务:RUNNING→alive:true、非运行→alive:false、未知任务 alive:false+message、旧/多余字段容忍)+ 已本地真跑
|
2026-09-05 09:01:55 +08:00 |
|
huangzd1997
|
f0f9ba29f0
|
task-205: parsed-payload 契约回放(env-gated,真实服务:造 SIMILAR_ASIN 任务+内联载荷 → success/顶层字段 items/allItems/groups/headers/脱敏 apiKey/行数据;未知任务 success:false)+ 已本地真跑
|
2026-09-05 09:00:50 +08:00 |
|
huangzd1997
|
0b83c9a3c1
|
task-204: /items 分页语义契约回放(env-gated,真实服务:造 COLLECT_DATA 任务+5 行 item → page/pageSize/count/total/totalPages/items、越界空页、缺省 50、rowIndex 升序)+ 已本地真跑
|
2026-09-05 08:59:52 +08:00 |
|
huangzd1997
|
db0c1c1fdc
|
task-203: /result 幂等契约回放测试(env-gated,真实服务:造 SIMILAR_ASIN RUNNING 任务+内联解析载荷 → parsed-payload 成功 → 同 submissionId/chunk 提交两次均 success:true 且 biz_task_chunk 只落 1 行)
- CI 默认跳过(需 CONTRACT_BASE_URL+CONTRACT_DB_*),设了即在本地/任意副本库跑
- 覆盖 success/idempotent/single-persist(chunk)/chunk 字段/未知任务(live 已验);done=true 封口需真实 LLM 流水线,不在本回放内(见限制说明)
- 本地已用 18080 实例 + schema 副本真跑通过
|
2026-09-05 08:56:41 +08:00 |
|
huangzd1997
|
92bd114e71
|
fix(module_type): 对齐 module_type 规范大写并加防回归守卫(防 similarasin/SIMILAR_ASIN 之类漂移)
- heartbeat 夹具 moduleType 改规范大写 SIMILAR_ASIN 并加断言锁定
- ModuleTypeAlignmentTest:扫描 src/main——MODULE_TYPE 常量须大写下划线、setModuleType("小写") 禁止(仅允许 legacy collectdata)——守卫写入/常量/夹具三者一致
- 全量扫描结果:生产代码写入均用常量大写,无存量漂移
|
2026-09-05 08:54:06 +08:00 |
|
huangzd1997
|
e69d82e7b1
|
fix(task-173 test): 超时根因断言兼容 HttpTimeoutException/TimeoutException 两种 JDK 行为(全量回归暴露的偶发类型)
|
2026-09-05 02:10:17 +08:00 |
|
huangzd1997
|
5c0f535aca
|
task-202: Python-contract 夹具准备(heartbeat/items/result/parsed_payload schema-fixture,字段取自真实 DTO、全脱敏、README 说明)+ 9 条测试
|
2026-09-05 02:10:16 +08:00 |
|
huangzd1997
|
d3b499b596
|
feat(admin): 店铺重复检查导出「站点」列改「国家」中文显示;撞款抽屉按点击处定位
- 导出 CSV 列头 站点→国家,值映射中文(DE德国/UK英国/FR法国/IT意大利/ES西班牙,未知回退原值)
- 撞款详情抽屉以触发元素为垂直锚点并钳制在视口内,不再贴区块/页面顶部导致看不见需上滑
- 同步 Java 静态托管副本;更新 Java/Python 相关断言
|
2026-09-05 01:53:12 +08:00 |
|
huangzd1997
|
d6086ec7b0
|
收尾冒烟: 离线 Spring 装配切片(ConfigWiringSmokeTest)——模块10/11 新增 @ConfigurationProperties/@Component/可选 MeterRegistry 在真实容器装配验证 + 8 条测试
为上线前排除 bean 装配/属性绑定类启动崩溃;全量真实启动需在非生产环境(本配置默认值会连生产 MySQL/Redis)执行
|
2026-09-05 00:34:45 +08:00 |
|
huangzd1997
|
2304e634ee
|
task-217: 快照对比工具(ResponseSnapshotTool:规范 JSON/录制/对比/落盘 golden/可读 diff 报告)+ 8 条测试
|
2026-09-05 00:25:40 +08:00 |
|
huangzd1997
|
f5d4410063
|
task-211: ArchUnit Controller 边界规则(不直接访问 Mapper/外部 Client,零违规)+ task→业务 依赖防恶化基线
- archunit-junit5(test) 依赖引入一次到位
- Controller 不访问 ..mapper.. / ..client.. 两条规则全绿(探针确认存量零违规)
- task 模块经 *ResultFileJobHandler 等依赖业务 128 处(存量)→ 冻结上限防增长;module 切片存在 collectdata→dedupe→task 环,清零需 Handler 迁移等重构,另行处理
|
2026-09-05 00:18:16 +08:00 |
|
huangzd1997
|
5c63604b5b
|
task-201: 迁移演练 runbook(docs/flyway-migration-drill.md:clean migrate/validate/验证SQL/回滚/锁窗口/校验和/幂等重跑/不动历史)+ 8 条测试
on-DB 的 migrate 执行需在副本库按 runbook 进行(本环境无数据库,仓库内以静态检查+清单兜底)
|
2026-09-05 00:09:37 +08:00 |
|
huangzd1997
|
1b27a3f1ca
|
task-200: 巡检报表任务落地(InspectionSqlReportTask 跑 6 张只读报表 SQL:默认 disabled、分布式锁、单条失败不阻断、只 query)+ 8 条测试
|
2026-09-05 00:08:44 +08:00 |
|
huangzd1997
|
d6b223ba25
|
task-199: 超保留期活跃 job 巡检 SQL(06_over_retention_active_job.sql,RUNNING 超24h 候选,清理走 stuck 扫描)+ 8 条测试
|
2026-09-05 00:06:45 +08:00 |
|
huangzd1997
|
b6cf693e05
|
task-198: 终态任务活跃 job 巡检 SQL(05_terminal_task_active_job.sql)+ 8 条测试
|
2026-09-05 00:06:45 +08:00 |
|
huangzd1997
|
187c123071
|
task-197: 结果缺文件候选巡检 SQL(04_result_missing_file.sql,OSS 对象存在由 Java 反查)+ 8 条测试
|
2026-09-05 00:06:45 +08:00 |
|
huangzd1997
|
402c3e2cb3
|
task-196: 终态任务缺结果巡检 SQL(03_task_missing_result.sql,SUCCESS/FAILED 无结果)+ 8 条测试
|
2026-09-05 00:06:44 +08:00 |
|
huangzd1997
|
7f7090f433
|
task-195: 孤儿结果(payload) 巡检 SQL(02_orphan_result.sql,biz_file_result 无父任务)+ 8 条测试
|
2026-09-05 00:06:44 +08:00 |
|
huangzd1997
|
bcd5879a08
|
task-194: 孤儿 task_file_job 巡检 SQL(01_orphan_job.sql,只读 SELECT 反连无任务/结果;base 提供 8 项静态契约)+ 8 条测试
|
2026-09-05 00:06:44 +08:00 |
|
huangzd1997
|
5688870788
|
task-193: 历史迁移盘点(docs/migration-inventory.md + 只读审计:整数版本 1..108 连续、无重复、识别 V25_1 历史小版本、命名合规、校验和可复算)+ 8 条测试
|
2026-09-05 00:02:57 +08:00 |
|
huangzd1997
|
36463f2119
|
task-192: 迁移规范模板(docs/flyway-migration-template.md,六项必填头注释:目的/影响表数据量/锁表风险/验证SQL/回滚/窗口)+ 8 条测试
|
2026-09-05 00:01:24 +08:00 |
|
huangzd1997
|
75d553f99a
|
task-191: 双实例指标区分回归契约(instanceId 分桶不串、未配置归 unknown、跨实例可聚合、名集合一致)+ 8 条测试
|
2026-09-04 23:53:24 +08:00 |
|
huangzd1997
|
b468750d00
|
task-190: 日志脱敏契约(StructuredLog.maskToken 统一 Token 部分脱敏,ImageVideo maskForLog 委托;URL query/异常消息体不入日志、防注入)+ 8 条测试
|
2026-09-04 23:53:23 +08:00 |
|
huangzd1997
|
4179e0de23
|
task-189: 指标命名一致性契约(aiimage.* 前缀、全小写点分、全量名快照对齐 spec11 §1、无拼写漂移)+ 8 条测试
|
2026-09-04 23:53:22 +08:00 |
|
huangzd1997
|
7967f454ec
|
task-188: 指标标签规范契约(moduleType/instanceId 必带、null 归一 unknown、无用户级标签、磁盘按 path、标签名冻结)+ 8 条测试
|
2026-09-04 23:53:20 +08:00 |
|
huangzd1997
|
7b73a2cf6e
|
task-187: 临时磁盘容量/占用指标契约(tmpdisk.capacity/used gauge,path 标签,可算占用比对接 09 告警)+ 8 条测试
|
2026-09-04 23:48:21 +08:00 |
|