{ "schema_version": "string_ppi_task0_baseline_v1", "captured_at": "2026-07-21T04:00:00+08:00", "mode": "baseline_and_red_only", "production_code_modified": false, "deployment": { "ssh_host": "planai5090", "hostname": "xzq-Rack-Server", "project_root": "/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev", "web_port": 9010, "service_manager": "shell_parent_process_not_systemd", "launcher_pid": 2391849, "web_pid": 2391890, "worker_main_pids": [2391860, 2391866, 2391873, 2391880, 2391891], "queue_prefix": "plantai_4090_9010", "redis_url": "redis://localhost:6379/11", "web_cwd": "/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev", "worker_cwd": "/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev", "module_files": { "apps.web.vue3.main": "/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/apps/web/vue3/main.py", "apps.web.pipeline_backend": "/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/apps/web/pipeline_backend.py", "gfa_core.ppi_string_policy": "/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/gfa_core/ppi_string_policy.py", "skills.ppi.run": "/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/skills/ppi/run.py", "celery_app": "/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/celery_app.py" }, "celery_broker_url": "redis://localhost:6379/11", "celery_result_backend": "redis://localhost:6379/11", "observed_9010_workers": [ "plantai_4090_9010_default@xzq-Rack-Server", "plantai_4090_9010_heavy@xzq-Rack-Server", "plantai_4090_9010_medium@xzq-Rack-Server", "plantai_4090_9010_light@xzq-Rack-Server", "plantai_4090_9010_rnaseq@xzq-Rack-Server" ] }, "real_request": { "timestamp": "2026-07-21T03:21:36.987480+08:00", "conversation_id": "conv_20260720_210554_default", "conversation_file": "memory_storage/conversations/202607/conv_20260720_210554_default.json", "user_message": "执行ppi分析", "job_id": "job_1784552755238_b8762f", "family": "HKL", "target_species_code": "Sv", "target_scientific_name_in_config": "Setaria_viridis", "target_scope": "workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json", "target_scope_id": "HKL.target-Sv.target_only", "observed_messages": [ { "timestamp": "2026-07-21T03:21:40.525445+08:00", "content": "PPI/KaKs 前置数据检查通过:缺少可用同源映射,已自动插入 Ortholog" }, { "timestamp": "2026-07-21T03:21:50.359623+08:00", "content": "提交阶段: Ortholog" }, { "timestamp": "2026-07-21T03:21:56.230245+08:00", "content": "目标物种 Sv;当前参考物种未选择;无可用近源推荐" }, { "timestamp": "2026-07-21T03:21:58.536206+08:00", "content": "批量执行暂停;reason=ppi_reference_data_missing" } ] }, "live_preflight_replay": { "endpoint": "http://127.0.0.1:9010/api/ppi/species-resolution", "request": { "job_id": "job_1784552755238_b8762f", "prefix": "Sv.HKL", "ppiSpecies": "auto", "targetSpecies": ["Sv"], "referenceSpecies": [], "geneFamily": "HKL", "requestedStages": ["ppi"] }, "response_summary": { "status": "needs_reference_data", "issue_code": "ppi_reference_data_missing", "target_string_supported": false, "selected_string_species": "", "selected_taxon_id": "", "reference_species": "", "required_next_stage": "ortholog", "decision": "needs_reference_species", "reference_recommendations": [] } }, "snapshot": { "production_path": "data/string/v12.0", "present": false }, "source_sha256": { "apps/web/vue3/main.py": "4bc6ec0340ae1266c714b08c5329654bb666b88248c3ccc284a0b6674fb826c9", "apps/web/pipeline_backend.py": "3f425f45b8532ee02b4394c13fa0d20d31525ab70b8287956bbdbb4494a16362", "apps/web/vue3/index.html": "48031ee6a1235d636b9e3effe443eef539bd0023061f526a3952c099c8634fd7", "gfa_core/ppi_string_policy.py": "92008ebbc1ed3f64d2dc2a8e289dc244e2896b73fc02b29f47eed022f3c73039", "gfa_core/string_species_registry.py": "9f6f8de18f745cdbd6932190aefcf0fcdc2683e3373bbc468210e5b2a86d5c3e", "skills/ppi/run.py": "72db9891c556ee1ff7593de7e52a96a68d1ef4cb0e0c6cfe97561343be8a526d", "celery_app.py": "7ce4de7719f68edc79edac7a7115716db31956912e0589c7bd9a7a90e582fd77", "start_celery_9000.sh": "c68b864023f9bdd4eb9053797a8c156ad35a4e385b584070456d5160b4d9cec3" }, "red_tests": [ { "nodeid": "tests/unit/test_string_ppi_production_wiring_red.py::test_setaria_scientific_name_reaches_snapshot_resolver", "result": "failed_as_expected", "failure": "KeyError: species_resolution", "root_cause_boundary": "backend preflight does not call or expose the snapshot resolver" }, { "nodeid": "tests/unit/test_string_ppi_production_wiring_red.py::test_registry_only_numeric_taxon_reaches_string_execution", "result": "failed_as_expected", "failure": "ValueError: Unsupported or empty STRING species: 3708", "root_cause_boundary": "StringAPI execution still resolves only through the legacy code map" }, { "nodeid": "tests/unit/test_string_ppi_production_wiring_red.py::test_preflight_without_confirmed_reference_never_requests_ortholog", "result": "failed_as_expected", "failure": "AssertionError: expected required_next_stage empty, got ortholog", "root_cause_boundary": "preflight requests Ortholog before a reference identity is confirmed" } ], "gate_0": { "stable_reproduction": true, "three_distinct_failures": true, "production_runtime_identity_verified": true, "real_job_evidence_verified": true, "status": "pass_for_task_0_only", "implementation_authorized_by_this_artifact": false } }