huangzd1997
|
7ffae78919
|
task-17(壳层/路由): 桌面端壳层响应式验收 + 浏览器验收基建
引入 @playwright/test(mdEdge 通道),playwright.config 起 mock admin API + vite dev;
e2e 覆盖宽/窄屏自动折叠、折叠持久化、无横向溢出等 8 用例;workspace 边界扫描
排除测试专用 e2e/scripts/playwright.config。
|
2026-09-05 14:43:54 +08:00 |
|
huangzd1997
|
d397c88c3c
|
task-16(壳层/路由): 实现退出登录入口的壳层交互(确认式)
logout.ts 定义 runLogout 纯流程(确认通过才 signOut,异常上抛由壳层反馈);
AdminLayout 用 ElMessageBox.confirm 确认后再执行 store.signOut($reset + /login)。
|
2026-09-05 14:43:54 +08:00 |
|
huangzd1997
|
83b935c11b
|
task-15(壳层/路由): 实现页面标题与面包屑规则
title-breadcrumb 提供 resolveDocumentTitle('页面 - 数富AI')、updateDocumentTitle
(非浏览器静默)、crumbsForActiveRoute(分组->页面);AdminLayout 用 watch 同步
document.title 并在层级>1 时渲染 el-breadcrumb。
|
2026-09-05 14:43:54 +08:00 |
|
huangzd1997
|
13e7a4c602
|
task-14(壳层/路由): 实现侧边栏折叠与窄屏行为及偏好持久化
sidebar-collapse 提供阈值/宽高常量、toggle、localStorage 偏好读写(失败容忍)、
initialCollapsed(持久化优先,窄屏自动收起);AdminLayout 接入并持久化折叠状态。
|
2026-09-05 14:43:54 +08:00 |
|
huangzd1997
|
c3f160afa5
|
task-13(壳层/路由): 实现全局请求错误提示容器
error-bus 提供框架无关的订阅式错误总线:notify/dismiss/clear、负载归一化、
3 条上限截断、订阅返回取消函数防泄漏;GlobalErrorContainer 订阅并渲染可关闭
错误条,挂在 AdminLayout 内容区顶部。
|
2026-09-05 14:43:54 +08:00 |
|
huangzd1997
|
f4f7268045
|
task-12(壳层/路由): 实现路由级错误页面(404 兜底)
新增 src/pages/error/NotFoundPage.vue(el-result + 返回首页),router 在业务路由
之后注册 :pathMatch(.*)* 兜底(无 menuKey,不参与权限门禁),保留壳层 chrome;
main.css 增加 .not-found 布局。
|
2026-09-05 14:43:53 +08:00 |
|
huangzd1997
|
50e70c43ab
|
task-11(壳层/路由): 实现无菜单权限空状态
empty-state 定义标题/引导文案与 shouldShowEmptyMenu 纯判定(Boolean 化防 undefined);
AdminLayout 侧边栏与内容区(根路由)共用空态,加载中不闪现,未初始化不误报。
|
2026-09-05 14:43:53 +08:00 |
|
huangzd1997
|
f1fa5f7adf
|
task-10(壳层/路由): 实现页面级异步组件加载边界
lazy-config 暴露 loading 延迟/超时/文案与懒加载判定;lazy-page 用
defineAsyncComponent 提供 loading/error 组件,router 对所有注册路由统一包裹;
main.css 增加 .page-loading/.page-error 兜底样式。
|
2026-09-05 14:43:53 +08:00 |
|
huangzd1997
|
ab7255a55b
|
task-9(壳层/路由): 实现路由 meta 菜单 key 约定与 RouteMeta 类型增强
新增 src/types/vue-router.d.ts 模块增强(RouteMeta.title/menuKey),meta.ts 提供
metaMenuKey/命名校验,router 守卫改类型化访问去掉 as cast,AdminLayout 标题同步
去 cast;校验首批注册表 menuKey 合规。
|
2026-09-05 14:43:53 +08:00 |
|
huangzd1997
|
02e0dc20b8
|
task-8(壳层/路由): 实现业务域路由注册表
新增 src/router/routes.ts:adminPages 登记业务域页面(account 首批),routeOf 生成
路由记录,validateAdminPages 校验路径唯一/相对/含 title/load;router/index.ts 改
消费 adminRouteRecords,移除内联懒加载与路径字面量。
|
2026-09-05 14:43:53 +08:00 |
|
huangzd1997
|
8e828c1204
|
task-7(壳层/路由): 根路由跳转到首个可见页面,移除硬编码默认页
helpers.firstVisiblePath 深度优先返回首个可路由页面,无页面返回空串;
store 增加 firstVisible;守卫在根路由/无权限时跳首个可见页,全部无页面则
停留根路由展示无菜单空态,删除 redirect:'/account/users' 硬编码。
|
2026-09-05 14:43:53 +08:00 |
|
huangzd1997
|
26edb9e6ed
|
task-6(壳层/路由): 定义后端菜单树到侧边栏节点映射规则并落地
新增 src/layout/menu-mapper.ts:toSidebarEntries 处理分组/顶级路由叶/畸形节点,
groupKeysForActive 按当前路由展开激活分组;AdminLayout 菜单区改用映射结果,
删除旧 visibleChildren/canSee 死逻辑;8 用例覆盖空树/单叶/缺 route 过滤等。
|
2026-09-05 14:43:52 +08:00 |
|
huangzd1997
|
4a0e464308
|
task-5(壳层/路由): 定义顶部栏用户信息与页面标题模型
新增 src/layout/topbar-model.ts(pageTitleOf 缺省回落 + topbarUserOf 空态视图模型),
AdminLayout 改用模型渲染标题/用户名/角色,删除模板内联缺省逻辑;8 用例覆盖标题
空值、用户缺字段、非法输入等。
|
2026-09-05 14:43:52 +08:00 |
|
huangzd1997
|
af68b20f87
|
task-4(壳层/路由): 定义深色侧边栏与浅色内容区设计 token 并锁定不变量
新增 src/styles/theme.ts 语义 token 单源 + 相对亮度/对比度/isDarkSurface,
tests 校验侧边栏暗、内容区亮、正文 WCAG AA、与 main.css 变量交叉一致防漂移。
|
2026-09-05 14:43:52 +08:00 |
|
huangzd1997
|
7065dbb53e
|
task-3(壳层/路由): 定义并锁定 AdminLayout 页面容器职责契约
壳层只做页面容器:唯一 RouterView 挂载业务视图、不静态 import 业务页面、
不直接调后台 API、Element Plus 按需命名导入;页面接线归 router 懒加载。
配套 tests/helpers.ts 提供只读源码分析与 @/ import 可解析校验。
|
2026-09-05 14:43:52 +08:00 |
|
huangzd1997
|
6f0357e41c
|
task-2(壳层/路由): 冻结 /admin-vue/ base 与 History 路由契约为单一事实源
新增 src/config/app.ts(APP_BASE_PATH/ensureAppBasePath/joinAdminPath),
vite.config base、router createWebHistory、AdminLayout logo 路径统一消费常量,
禁止散落字面量;8 用例覆盖归一化/幂等/空段/单段/非法输入与字面量单源。
|
2026-09-05 14:43:52 +08:00 |
|
huangzd1997
|
ec7d56d566
|
task-1(壳层/路由): 冻结独立后台工程工作区边界契约与基线测试
admin-frontend-vue/src/config/workspace.ts 提供可编程边界校验(独立包名、
必需清单/源码目录、客户端耦合 token 扫描、可操作缺失消息),供后续壳层
任务与验收脚本复用;tests/task-1.test.ts 以 8 用例锁定依赖/构建/测试/边界。
|
2026-09-05 14:43:51 +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
|
4735a18390
|
fix(frontend tests): 同步 API_ENDPOINTS 冻结快照到当前常量(存量过期致 node --test 全量红,非本轮引入)——使前端 node --test 全绿
|
2026-09-05 09:19: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
|
9d172ac170
|
task-209: 字段兼容 schema 覆盖冻结(node --test 扫描共享层:user_id/task_ids 请求、taskId/resultId/fileKey/status/taskStatus/fileStatus 响应均在 schema 覆盖)+ 8 条测试
|
2026-09-05 00:26:09 +08:00 |
|
huangzd1997
|
2304e634ee
|
task-217: 快照对比工具(ResponseSnapshotTool:规范 JSON/录制/对比/落盘 golden/可读 diff 报告)+ 8 条测试
|
2026-09-05 00:25:40 +08:00 |
|
huangzd1997
|
68b743f18b
|
task-216: CI 接入测试阶段(.gitea/workflows/build.yml 追加 mvn test 契约+ArchUnit 阶段先于打包、新增 frontend-test job 跑 vue-tsc+npm test,失败即红/超时/双容器)+ 8 条测试
|
2026-09-05 00:23:56 +08:00 |
|
huangzd1997
|
63b7cd82a6
|
task-215: 下载 URL 格式契约(前端 node --test:绝对直链保留/origin 补齐/schema 完整/&拼接 user_id/仅带 user_id 无签名)+ 9 条测试
|
2026-09-05 00:22:48 +08:00 |
|
huangzd1997
|
c1922d9e26
|
task-213: 前端共享层导出白名单(node --test 源码扫描:页面不直连 http.ts/axios/不拼 /newApi URL,shared 内部与 bridge 放行,违规 helper 可检出)+ 8 条测试
|
2026-09-05 00:22:06 +08:00 |
|
huangzd1997
|
541e397ca6
|
task-208: JavaApiResponse 包装契约(前端 node --test:success/message/data 解包、失败抛 message、null data、多余字段容忍、LegacyApiSuccess(msg) 兼容、extractErrorMessage 各字段回退)+ 8 条测试
|
2026-09-05 00:21:27 +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 |
|