lzf_0626
244f03917b
回复 ZSY 的底座扩展确认;登记 docs/00 的一处已知偏差;更新 AGENTS.md 过期口径
## 对 ZSY 三件事的核实与裁决(docs/33-ZSY底座扩展确认-回复.md)
1. **访客身份**:`data_scope="public"` 我扫了全平台 26 个消费点,对未知值的行为一致
fail closed(6 处 `== "all"` 判假、1 处 `!= "all"` 会要求 customer_ids 非空否则 403、
1 处显式白名单直接拒),**安全,不用改**。但有一条硬约束必须先确认:全平台有
**72 处 `int(context.user_id)`,只有 3 处做了防御**——若访客的 sub 不是纯数字,
其中"权限被拒时要写审计"的路径会把本该 403 的情况变成 500。已要求他确认
sub 为纯十进制数字、且 visitor 分支复用同一套 `jwt.decode`(含 isdecimal 校验),
而不是另写第二个鉴权入口。
2. **客服 Agent**:`allowed_roles` 扩集合与确定性安全路由可接受;`recalls_customer_memory`
是新声明字段,已要求**默认值必须是 True**(否则会静默关掉所有既有 Agent 的记忆召回,
界面看不出来、只表现为回答变差)。品牌名(南方科技 → 奶龙基金责任有限公司)属业务
口径,已上报项目方定,不由技术侧拍板。
3. **current_customer_id**:**他的判断正确**。我独立实测 information_schema:
`EXTRA=''` 且 `GENERATION_EXPRESSION=''`,配合 baseline_generated.sql 无 GENERATED
子句、seed_profile_demo.py 的注释、profile_repository.py 用原生 SQL 显式写入,
四处一致 ⇒ `docs/00` 第 783 行"生成列"的描述是错的。处置:按真实 schema 映射成
普通可空列、**不改 docs/00**(规则 1)、**不补迁移**(DDL 本身正确,为让文档成真而加
生成列会改变既有列语义,违反规则 4)、但**必须登记这处偏差**。
另:他删了两个死代码文件(含一处硬编码 Milvus 字段名,违反 AGENTS.md §E),方向认同,
但要求他在 PR 里附上两条 git grep 的实际输出以证明"全仓唯一引用是它自己的单测"。
## 落实我在回复里承诺的两件事
- `docs/08-数据库结构审计基线.md` 新增"六、已知文档偏差",逐条登记上述偏差(含四处
证据与处置口径),并注明发现方式;
- `AGENTS.md` 环境口径新增 `MILVUS_LOCAL_URI` 的坑:配了会让健康检查与部分检索指向
本地 Milvus Lite 文件,出现"健康检查正常、实际查的是另一个库";并注明 `milvus-lite`
属本地开发依赖,应放 `optional-dependencies` 而非主依赖。
## 顺带更新 AGENTS.md 的过期口径
- 表数 68 → **89**(场内 51 + 场外/推广 17 + 投顾 21),并注明投顾那 21 张的登记文档待补;
- 测试基线从"1034 passed / 1 failed"改为实测值:ruff 干净 / mypy 228 文件 0 错 /
1207 passed 0 failed / integration 99 passed,并指向 docs/32;
- mypy 那条从"本机 181 错、双方不可比"改成可操作的判据:先对版本,根因是某一侧虚拟环境
没满足 pyproject 的 sqlalchemy>=2.0,<3 / mypy>=1.14,<2;并写明**不要装 sqlalchemy2-stubs**
(那是给 1.4 的,2.0 自带 py.typed,装了反而按 1.4 API 报一批新错)。
文档守卫:42 份无编号冲突。
2026-09-12 11:27:28 +08:00
..
2026-09-11 20:30:27 +08:00
2026-09-11 18:42:46 +08:00
2026-09-11 15:25:45 +08:00
2026-09-11 14:46:40 +08:00
2026-09-09 21:55:37 +08:00
2026-09-10 15:55:54 +08:00
2026-09-11 17:26:18 +08:00
2026-09-09 21:55:37 +08:00
2026-09-11 18:42:46 +08:00
2026-09-11 21:22:56 +08:00
2026-09-11 18:42:46 +08:00
2026-09-11 18:56:26 +08:00
2026-09-12 11:27:28 +08:00
2026-09-11 18:56:26 +08:00
2026-09-11 18:42:46 +08:00
2026-09-11 14:46:40 +08:00
2026-09-11 18:56:26 +08:00
2026-09-11 18:42:46 +08:00
2026-09-11 14:46:40 +08:00
2026-09-11 14:46:40 +08:00
2026-09-11 14:46:40 +08:00
2026-09-10 15:55:54 +08:00
2026-09-11 14:46:40 +08:00
2026-09-11 15:40:32 +08:00
2026-09-10 15:55:54 +08:00
2026-09-11 09:49:21 +08:00
2026-09-10 18:35:52 +08:00
2026-09-10 21:36:23 +08:00
2026-09-11 14:47:08 +08:00
2026-09-11 14:47:08 +08:00
2026-09-11 15:40:32 +08:00
2026-09-11 19:15:23 +08:00
2026-09-11 20:00:56 +08:00
2026-09-11 21:49:46 +08:00
2026-09-11 21:49:46 +08:00
2026-09-11 21:49:46 +08:00
2026-09-12 11:23:46 +08:00
2026-09-12 11:27:28 +08:00
2026-09-11 18:42:46 +08:00
2026-09-11 16:51:52 +08:00
2026-09-11 19:52:08 +08:00
2026-09-09 21:55:37 +08:00
2026-09-11 20:06:23 +08:00
2026-09-11 16:57:47 +08:00
2026-09-11 16:57:47 +08:00
2026-09-11 20:00:56 +08:00
2026-09-11 19:15:50 +08:00