Files
group_fqcd_jr/docs/evidence/20260918-gate-baseline.json
T
张胜宇 9675df8453 chore(sync): zsy_developcc 全量同步至 qyqy_develop(W26 口径)
- 分支内容对齐 qyqy_develop b6ec3aa,树完全一致(同步后 git diff 为空)
- 覆盖本轮全部交付:客服 Agent 重构(安全路由 / 五出口 / 记忆与画像 / RAG 全链路)
  + 开发文档 62 份编号体系(D1.1 v1.17 索引)
  + 新增 D2.10-客服Agent端到端答辩文档-2026-09-21.html
- 基线:e239eb7(2026-09-17 品牌口径统一快照),本提交为其直接后继
2026-09-21 21:26:30 +08:00

142 lines
5.7 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"artifact": "gate-baseline",
"generated_at": "2026-09-18T07:39:31.652Z",
"date_local": "2026-09-18",
"purpose": "D2.1 A-02 门禁数字基线(G-00 完成后首跑)",
"environment": {
"interpreter": "D:\\桌面\\金融\\group_fqcd_jr\\.venv\\Scripts\\python.exe",
"python": "3.13.5 (packaged by Anaconda, Inc.)",
"base_interpreter": "D:\\ANACOUDA\\python.exe (Anaconda base, NOT a venv)",
"venv_created": "2026-09-18",
"sqlalchemy": "2.0.54",
"pymilvus": "2.6.17",
"asyncmy": "0.2.14",
"dependencies": "requirements.txt 全量安装成功(Successfully installed ~100 packages)",
"worker_running": false,
"note": "跑门禁前 Worker 未运行(API/Worker 均未起),符合 A-02 要求"
},
"services": {
"mysql": {
"port": 3306,
"status": "OPEN",
"version": "8.0.44",
"database": "jr_agent",
"user": "jr_app"
},
"redis": {
"port": 6379,
"status": "OPEN",
"ping": "+PONG"
},
"milvus": {
"port": 19530,
"status": "OPEN",
"rest_health_9091": "OK",
"image": "milvusdb/milvus:v2.5.3",
"mode": "standalone (milvus-etcd v3.5.16 + milvus-minio RELEASE.2023-03-20T20-16-18Z)"
},
"api": {
"port": 8000,
"status": "CLOSED"
}
},
"gates": {
"1_pytest": {
"command": "python -m pytest -q -p no:cacheprovider",
"result": "8 failed, 1440 passed, 2 skipped, 27 warnings in 63.62s",
"exit_code": 1,
"failed": [
"tests/integration/test_agent_run_acceptance.py::test_customer_service_accept_redacts_sensitive_message_before_persistence",
"tests/integration/test_compliance_seed_mysql.py::test_all_seven_negative_words_are_active_and_reviewed",
"tests/integration/test_compliance_seed_mysql.py::test_reply_templates_cover_all_six_scenes",
"tests/integration/test_compliance_seed_mysql.py::test_negative_rules_are_gated_to_customer_service_only",
"tests/integration/test_compliance_seed_mysql.py::test_own_reply_templates_do_not_trip_the_seeded_rules",
"tests/integration/test_profile_snapshot_current_invariant_mysql.py::test_profile_rebuild_then_candidate_approval_keeps_current_snapshot_invariant",
"tests/integration/test_worker_runtime_mysql.py::test_http_accept_worker_commit_query_and_repeat[False]",
"tests/unit/tools/test_rbac_seed_consistency.py::test_permission_ids_are_consistent_between_seed_and_grant_scripts"
]
},
"2_ruff": {
"command": "python -m ruff check app tests tools alembic",
"result": "Found 22 errors (11 fixable)",
"exit_code": 1,
"by_rule": {
"E501": 9,
"F401": 7,
"F541": 2,
"I001": 2,
"F821": 1,
"B905": 1
},
"by_file": {
"app/service/promotion_renderer.py": 9,
"app/service/agent/bootstrap.py": 4,
"tests/unit/api/test_portal_frontend.py": 2,
"tools/probe_memory_state.py": 2,
"tests/unit/service/test_promotion_renderer.py": 2,
"app/service/agent_persistence_service.py": 1,
"app/service/run_query_service.py": 1,
"tests/contract/test_financial_nl2sql_agent_contract.py": 1
},
"notable": "F821 app/service/agent_persistence_service.py:82:42 Undefined name `Any` —— 局部变量注解不参与运行时求值,故不崩溃,但 mypy 同点报错,属真缺陷"
},
"3_mypy": {
"command": "python -m mypy app",
"result": "Found 3 errors in 3 files (checked 229 source files)",
"exit_code": 1,
"errors": [
"app/service/agent_persistence_service.py:82: Name \"Any\" is not defined [name-defined]",
"app/service/run_query_service.py:79: Argument 1 to \"_recover_financial_result\" has incompatible type [arg-type]",
"app/service/promotion_renderer.py:84: Argument 1 to \"_mix_rgb\" has incompatible type [arg-type]"
]
},
"4_check_authoritative_docs": {
"command": "python tools/check_authoritative_docs.py",
"result": "checked 50 documents, no number collision",
"exit_code": 0
},
"5_audit_schema": {
"command": "python tools/audit_schema.py",
"result": "schema audit passed: 89 business tables, no missing or unexpected tables",
"exit_code": 0
}
},
"db_state_snapshot": {
"total_tables": 90,
"business_tables": 89,
"non_business_tables": [
"alembic_version"
],
"agent_negative_word": {
"rows": 0,
"active": 0,
"note": "合规零容忍词种子未跑 —— 4 项 test_compliance_seed_mysql 失败的直接原因"
},
"agent_reply_template": {
"rows": 0,
"active": 0,
"note": "6 类固定话术未种 —— 同上"
},
"sys_user": 6,
"sys_role": 4,
"sys_permission": 60,
"agent_run": 50,
"domain_event_outbox": 495,
"advisor_tables_present": 20,
"note": "投顾模块代码已清除,但 advisor_* 20 张表仍在库(遵守 N-5 零 DDL);表名与文档口径有差异:config_release(非 agent_config_release)、conversation_message(非 agent_message)"
},
"failure_triage": {
"A_compliance_seed_unseeded": [
"test_compliance_seed_mysql x4"
],
"B_advisor_purge_leftover": [
"tests/unit/tools/test_rbac_seed_consistency.py —— tools/check_rbac_seed_consistency.py:50 仍登记已删除的 tools/grant_advisor_role.py,触发 FileNotFoundError"
],
"C_needs_investigation": [
"test_agent_run_acceptance redact",
"test_profile_snapshot_current_invariant",
"test_worker_runtime_mysql outbox 多出 memory.extraction_requested 事件"
]
},
"honesty": "本文件是**修复前基线**,如实记录。8 项失败**未修复**(属基线,不属本次改动)。"
}