docs: AGENTS.md 补正式前端口径与最新测试基线;portal.py 标注为调试工具
- 新增前端一节:app/static/portal/ 挂载在 /portal/,四套页面,端点表在 common/api-client.js, 启动用 uvicorn app.main:app(模块级变量是 app 不是 application) - 测试基线更新为 2026-09-13 实测:mypy 249 文件 0 错 / 单元+契约 1376 passed / 集成 104 passed - tools/portal.py 文件头标注降级为跨角色联调工具
This commit is contained in:
@@ -24,6 +24,13 @@
|
||||
> 客服/RAG 那条线的个人分支是 **`NL_develop`**(个人分支 → PR 合回 `qyqy_develop`),**不要再用 `6516ccb`**。
|
||||
> 它是对"当前状态"最准确的一份,读完它再读下面这些。
|
||||
>
|
||||
> **🖥️ 前端(2026-09-13 起)**:**正式前端在 `app/static/portal/`**,由 `app/main.py` 挂载,
|
||||
> 通过 **`/portal/`** 访问(`/` 会 307 跳到访客首页)。四套页面:`guest/`(访客,公开产品页
|
||||
> 暂时用 `common/mock-data.js` 并在页面上标注)、`customer/`(客户)、`employee-console/`(管理员)、
|
||||
> `employee-risk/`(风控)。**端点表集中在 `common/api-client.js`**,改接口调用请改那一份。
|
||||
> 启动:`python -m uvicorn app.main:app --port 8000`(注意模块级变量是 **`app`**,不是 `application`)。
|
||||
> `tools/portal.py`(8101)**只是跨角色联调工具,不是产品前端**,不要再往它加功能。
|
||||
>
|
||||
> **⚠️ 文档现状(2026-09-11 第二次修订)**:本文件原先声明"已删除 5 份编号文档",
|
||||
> 那条**已作废** —— 经评审,`docs/04`/`06`/`10`/`13`/`99` **全部保留**(架构师明确要求保留:
|
||||
> 删除收益为零,而保留成本同样为零)。它们的内容**未被核对过、可能过期**,
|
||||
@@ -115,16 +122,16 @@
|
||||
—— Worker 既要重建画像又要处理投顾问卷,因此**真的被打挂过**(库里 `memory_sync_outbox`
|
||||
留下 `last_error='InvalidRequestError'` 的行)。2026-09-12 已修为 re-export,见 `docs/37` §6.2。
|
||||
**新增模型前先搜一遍 `__tablename__` 有没有被占用。**
|
||||
- 测试基线(**2026-09-12 合并主干 PR #7 + 本线记忆投影链路之后实测**):
|
||||
`mypy app` → **245 个文件 0 错**;
|
||||
`pytest tests`(全量)→ `2 failed, 1415 passed, 2 skipped`;
|
||||
`pytest tests/integration` → `102 passed, 1 skipped`。
|
||||
- 测试基线(**2026-09-13 合并组员前端提交之后实测**):
|
||||
`mypy app` → **249 个文件 0 错**;
|
||||
`pytest tests/unit tests/contract` → **1376 passed, 2 skipped, 0 failed**;
|
||||
`pytest tests/integration` → **104 passed**;
|
||||
`python tools/audit_schema.py` → **89 张业务表**。
|
||||
⚠️ **用例数会随开发增减,判断健康看"0 failed"而不是看绝对值**。
|
||||
剩下那 2 个失败**都不是代码缺陷**,接手时不要"修"它们:
|
||||
`tests/unit/service/test_offsite_document_recognition_adapter.py` 的 2 个用例 —— **环境相关**:
|
||||
它们断言请求体里是中文原文,而 httpx 会把中文序列化成 `\uXXXX`,字节序列自然不匹配。
|
||||
功能无影响;若要修,正确做法是断言 `json.loads(body)` 后的字段值(字节级断言不该用来测 JSON)。
|
||||
- **mypy:`mypy app` → `Success: no issues found in 245 source files`(0 错)。**
|
||||
另:`tests/unit/service/test_offsite_document_recognition_adapter.py` 有 2 个用例在某些环境
|
||||
会失败 —— 它们断言请求体里是中文原文,而 httpx 会把中文序列化成 `\uXXXX`,属**环境相关**,
|
||||
不要"修"实现;真要修应改为断言 `json.loads(body)` 后的字段值。
|
||||
- **mypy:`mypy app` → `Success: no issues found in 249 source files`(0 错)。**
|
||||
⚠️ 曾在本机报 184 个错,**已查明是环境版本旧**,与代码质量无关 —— 复现矩阵:
|
||||
|
||||
| SQLAlchemy | mypy | 报错数 |
|
||||
|
||||
+12
-1
@@ -1,4 +1,15 @@
|
||||
"""统一登录门户:一个登录入口,按角色分流到不同的工作台。
|
||||
"""统一登录门户(**调试/联调工具**,不是产品前端)。
|
||||
|
||||
> ⚠️ **定位说明(2026-09-13)**:正式前端已由组员交付并合入主干,位于
|
||||
> `app/static/portal/`,通过 **`/portal/`** 访问(访客 / 客户 / 员工 / 风控四套页面;
|
||||
> 端点表见 `app/static/portal/common/api-client.js`)。
|
||||
> **本文件不是产品的一部分**,它是平台侧保留的**跨角色快速联调工具**:
|
||||
> 一个页面里用五个演示账号登录、直接点各模块接口、看原始响应与错误码。
|
||||
> 涉及具体页面与交互的工作请改正式前端,不要再往这里加功能。
|
||||
|
||||
---
|
||||
|
||||
一个登录入口,按角色分流到不同的工作台。
|
||||
|
||||
**和 `tools/chat_console.py` 的区别**:那个控制台没有登录、身份写死在命令行里;
|
||||
本门户**走真实的 `POST /api/v1/auth/tokens`**,令牌只存活在本进程,浏览器拿不到,
|
||||
|
||||
Reference in New Issue
Block a user