Incremental merge on top of ef701c8, which already integrated the earlier qyqy base bbf623a. qyqy_develop only added commits on top of bbf623a, so this merge is conflict-free. Incoming: account/password login (POST /api/v1/auth/tokens), RBAC read-only query API, rate limit dependency, login test console and user management tools. Additive changes in app/main.py, requirements.txt and pyproject.toml from both sides are all preserved. ZSY side capabilities (visitor tokens, customer service agent, knowledge retrieval, profile projection) are unchanged.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
合并内容
将
ZSY_develop的客服 Agent 能力接入qyqy_develop,基线为qyqy_develop最新提交c4a73b7。1. 提交构成
e85989b:把c4a73b7(账号密码登录 + RBAC 只读查询等 7 个提交)合入ZSY_develop,无冲突(增量合并,复用此前已解决的语义冲突)。9aaacc2:按AGENTS.md与底座文档逐条核对后,移除撞到底座规则的内容。2. 底座合规清理(
9aaacc2,9 文件 +189/−483)app/service/knowledge_tool_service.py、app/infrastructure/milvus_knowledge_adapter.py:后者硬编码 Milvus 字段名,违反AGENTS.md§E;两者均为生产死代码。生产检索实际走knowledge_search_tool -> KnowledgeSearchService -> app/core/knowledge_schema.py的运行时字段探测,无任何硬编码字段名。app/service/knowledge_retrieval_service.py整文件回退为底座版本,移除 legacy 双构造与重复检索实现。docs/05-接口文档.md:新增的「客服画像候选」由误占的§8.2改登记为§8.5,恢复### 8.2 解析知识引用;§8.1–§8.4原编号一字未动。app/model/profile.py:current_customer_id改为普通可空列映射。原来按「生成列」写成Computed(...),会让 SQLAlchemy 从 INSERT 中排除该列,与真实 schema 不符。3. 需评审确认的底座扩展
详见
docs/客服Agent接入底座扩展说明_v1.md(A 纯新增 / B 默认行为不变的扩展 / C 需确认 / D 已移除 / E 明确未改动 / F 环境约束):app/core/security.py(visitor: true声明分支)+app/api/dependencies/auth.py(访客跳过IdentityService.resolve)。app/service/agent/implementations/customer_service.py。current_customer_id映射:app/model/profile.py、app/model/risk_questionnaire.py。MILVUS_LOCAL_URI在团队/生产环境须留空。4. 验证结果
pytest tests/unit tests/contract -q -p no:cacheprovider-> 1275 passed, 2 skipped, 0 failedruff check app tests tools alembic-> All checks passedmypy app-> 244 个源文件无问题5. 遗留事项
sub是否纯数字(是,且走底座原有校验、未放宽);recalls_customer_memory默认值(True,仅customer_service显式关闭)。docs/00第 783 行把profile_snapshots.current_customer_id描述为「生成列」,与docs/02/alembic基线 DDL 及真实库不一致,请底座侧决定以哪侧为准。docs/00、docs/02、alembic/的任何改动。6. 评审后修订(
f68b052)按 qyqy 在评审中提出的两项要求处理:
docs/05§19 端点编号去重:客服画像候选的两个端点由A034/A035改为A039/A040(原编号与 qyqy 侧登录 / RBAC 只读接口A034–A038重复;docs 守卫脚本只校验文档文件名编号、不校验 §19 端点编号,故会静默遗留)。改后全表 55 个端点编号全唯一。milvus-lite降为可选依赖:由[project] dependencies移到[project.optional-dependencies] dev;requirements.txt不再作为生效依赖,仅留说明注释。修订后复验(
origin/qyqy_develop已推进至ade5e0c):git merge-tree --write-tree f68b052 ade5e0c→ 无冲突(c4a73b7是ade5e0c的祖先,属增量推进)pytest tests/unit tests/contract -q -p no:cacheprovider→ 1275 passed, 2 skipped, 0 failedruff check app tests tools alembic→ All checks passed;mypy app→ 244 个源文件无问题7. 环境数据对齐(
sys_permission)sys_permission共 18 条(id 9001–9018);handover:read在 9018(历史残留,重跑seed_test_rbac.py会被清理),两个memory:candidate:*不存在。tools/grant_customer_service_phase2_permissions.py按 9036/9037/9038 原样即可,无号段冲突。合并完成记录
本次内容已由 qyqy 通过本地合并提交
4413644落地到qyqy_develop(未走 Gitea 的 PR 合并按钮),因此 PR diff 现已为 0。为保持看板整洁,此处按「已合并」关闭并留下合并坐标。合并坐标
4413644(merge: 合并 ZSY 的客服 Agent 接入(访客身份、画像候选、转人工工单)—— PR #7)f68b052(origin/ZSY_develop)qyqy_develop,合并后继续推进到4d8edb4合并后在
qyqy_develop(4d8edb4) 上的复核结果knowledge_tool_service.py、milvus_knowledge_adapter.py)docs/05§19 端点编号A039/A040就位milvus-litedependencies;在[project.optional-dependencies] dev;requirements.txt非生效依赖qyqy 在合并后顺手修正的两项(特此记录,谢谢)
tests/unit/core/test_security.py两处密钥路径漂移(漏dev/)——本次改动带入的回归,已由 qyqy 在2bb056e修正。docs/05§19 端点编号计数更正:正确口径是 62(前缀A40 /C7 /K4 /M4 /O3 /R4),此前描述的 55 系扫描正则漏掉O、R两个号段所致;重复为 0 的结论不受影响。遗留待办(我方)
Pull request closed