- Introduced `convert_meta_api` endpoint to fetch the latest NAV date for conversion processes, restricted to users with the "risk_officer" role. - Updated `created_at` field in `AgentMessage` to use UTC timezone for consistency in timestamp handling. - Added `get_max_product_nav_date` method in `CoreReadOnlyRepository` to support the new API functionality. - Enhanced Milvus template loading in `MilvusTemplateVectorStore` to ensure collections are loaded when they exist. This update improves the API's capability to handle conversion metadata and ensures accurate timestamp management across the application.
TEST-FE-001 · 顾问前端 + 风控新功能 + 风控前端 端到端包
当前结论:174 用例 · 161 PASS / 12 FAIL / 1 SKIP。 12 条 FAIL 收敛为 6 个缺陷(D2/D3 沿用顾问线编号,新增 F1–F4)+ 1 条测试资产腐化;业务代码全程未改,按「先报告、确认后再修」交付。
| 产物 | 路径 | 位置 |
|---|---|---|
| 企业级测试日志 | TEST-LOG-2026-09-12-FE-001.md |
本包 |
| 顾问 API 真实 HTTP 冒烟(63 用例) | scripts/dev/advisor_e2e_smoke.py |
仓库内 |
| 风控 API 真实 HTTP 冒烟(64 用例) | scripts/dev/risk_e2e_smoke.py |
仓库内 |
| 顾问前端浏览器 E2E(17 用例) | 09-advisor-pages.mjs |
仓库外 C:/Users/Windows/e2e-jinrong/ |
| 风控前端浏览器 E2E(21 用例) | 10-risk-pages.mjs |
仓库外 |
| 跨角色直达/菜单隔离(9 用例) | 11-cross-role.mjs |
仓库外 |
| 结果明细(原始数据) | _raw/ —— 逐用例矩阵 + JSON + 截图 |
本包 |
结果明细 _raw/(逐用例原始记录,未加工)
| 文件 | 内容 | 用例 | 结果 |
|---|---|---|---|
_raw/advisor-api.md |
顾问 API 明细矩阵 | 63 | 60 PASS / 3 FAIL / 0 SKIP |
_raw/risk-api.md |
风控 API 明细矩阵 | 64 | 63 PASS / 0 FAIL / 1 SKIP |
_raw/browser-advisor.json |
顾问前端逐用例(含 console/pageerror/HTTP≥400 采集) | 17 | 15 PASS / 2 FAIL |
_raw/browser-risk.json |
风控前端逐用例 | 21 | 19 PASS / 2 FAIL |
_raw/browser-cross-role.json |
跨角色隔离逐用例 | 9 | 4 PASS / 5 FAIL |
_raw/server-log-evidence.md |
服务端日志摘录 —— D2/D3 的决定性依据 | — | — |
_raw/shots/ |
本轮 12 张页面截图取证 | — | — |
_raw/README.md |
来源 / 生成命令 / 读明细的口径提醒 | — | — |
来源与重放方式见
_raw/README.md。API 两份为--report原生输出;浏览器三份是脚本writeFileSync的原产物原样搬运。server-log-evidence.md是把 D2/D3 赖以定性的 uvicorn 日志摘录入库(原件在临时目录会被清理)——结论因此可被第三方查阅。
⚠️ 可复现性缺口(已缓解,未消除):三个浏览器脚本仍依赖仓库外的
C:/Users/Windows/e2e-jinrong/(为不改web/package.json而刻意如此),他人 clone 拿不到脚本本体。 但本轮的结果明细与截图已随包入库,故「结论不可被第三方查阅」的问题已解决,「结论不可被第三方重跑」的问题仍在 —— 已挂docs/memory/TODO.md的「E2E 最小集进仓库」P0。
一眼结论
| 维度 | 结果 |
|---|---|
顾问 API(/api/advisor-agent/*) |
60 PASS / 3 FAIL(D2 ×2 · D3 ×1) |
风控 API(/api/risk/* + 转换线) |
63 PASS / 0 FAIL / 1 SKIP |
| 顾问前端(四页真浏览器) | 15 PASS / 2 FAIL(D2 · D3,与 API 侧同因) |
| 风控前端(六页真浏览器) | 19 PASS / 2 FAIL(F1 预置 · F2 字段名) |
| 跨角色隔离 | 4 PASS / 5 FAIL(F3 无路由守卫) |
| D1(市场异动) | ✅ 已关闭 —— 由 03fce88 修复,本轮实测转绿 |
交叉印证成立:浏览器侧观测到的失败与 API 侧同名用例同因同果,无「前端调用与文档契约不符」的额外分歧。
复现三连
# 1) 后端(WinError 10013 时退 18000,并同步改下面所有 URL)
python -m uvicorn app.main:app --host 127.0.0.1 --port 8000
# 2) 前端 —— 必须用 localhost:5173(app/ 无 CORS,浏览器只能走 Vite 代理)
cd web && npm run dev
# 3) 三支脚本
python scripts/dev/risk_e2e_smoke.py # 退出码 0 = 全过 / 1 = 有 FAIL / 2 = 前置失败
python scripts/dev/advisor_e2e_smoke.py
cd C:/Users/Windows/e2e-jinrong && node 09-advisor-pages.mjs && node 10-risk-pages.mjs && node 11-cross-role.mjs