{ "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 项失败**未修复**(属基线,不属本次改动)。" }