{ "validation_id": "string-ppi-task7-live-e2e", "date": "2026-07-21", "target": { "base_url": "http://127.0.0.1:9010", "job_id": "job_1784552755238_b8762f", "prefix": "Sv.HKL", "scope_file": "workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json", "scope_sha256": "31d8f69ef697c9c802cc929cd2383aca8e700a6c7fc52a57db408156384ed711", "target_species": "Sv", "target_scientific_name": "Setaria viridis", "target_tree_taxon_id": "4556" }, "overall_status": "passed", "blocking_gate": null, "snapshot": { "string_version": "12.0", "snapshot_id": "ede47d546d853d0ec30ee75066976a35c08fd2412e6e5fc7866bbd205fc2eeb3", "source_manifest_sha256": "46fd3d72d7e2086682d7cb3723c668b6bb629087ad4c8ce1e1aac9480131c6e7" }, "baseline": { "captured_at": "2026-07-21T08:24:30+08:00", "ppi_or_ortholog_artifacts_present": false, "queue_lengths": { "plantai_4090_9010.default": 0, "plantai_4090_9010.heavy": 0, "plantai_4090_9010.medium": 0, "plantai_4090_9010.light": 0, "plantai_4090_9010.rnaseq": 0 }, "pids": { "web_9010": 2523340, "worker_default": 2523309, "worker_heavy": 2523315, "worker_medium": 2523323, "worker_light": 2523330, "worker_rnaseq": 2523341, "web_19000_observed_before": 2483131, "workers_9000": [3588799, 3588807, 3588814, 3588821, 3588830] } }, "steps": [ { "step": "unconfirmed_preflight", "method": "POST", "path": "/api/ppi/species-resolution", "request": { "job_id": "job_1784552755238_b8762f", "prefix": "Sv.HKL", "scopeFile": "workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json", "ppiSpecies": "auto", "targetSpecies": ["Sv"], "geneFamily": "HKL", "targetScientificName": "Setaria viridis", "ppiTargetTreeTaxonId": "4556", "ppiReferenceTaxonId": "4555", "ppiReferenceStorageKey": "string_taxon_4555", "ppiReferenceSelectionMode": "tree_nearest", "ppiReferenceUserConfirmed": false, "dependencyOwner": "ppi", "requestedStages": ["ppi"] }, "response": { "status": "confirmation_required", "issue_code": "ppi_reference_confirmation_required", "selection_mode": "tree_nearest", "user_confirmation": {"required": true, "confirmed": false} }, "decision_record": "workspace/job_1784552755238_b8762f/reproducibility/Sv.HKL.ppi.preflight_decisions.jsonl" }, { "step": "confirmed_owner_preflight", "method": "POST", "path": "/api/ppi/species-resolution", "request_delta": {"ppiReferenceUserConfirmed": true}, "http_status": 200, "response": { "status": "needs_reference_data", "issue_code": "ppi_reference_data_missing", "selected_taxon_id": "4555", "reference_species": "string_taxon_4555", "required_files": ["pep"], "missing_required": ["pep"], "required_next_stage": "", "user_confirmation": {"required": true, "confirmed": true} } }, { "step": "reference_bundle_download", "method": "POST", "path": "/api/reference-bundle/download", "request": { "job_id": "job_1784552755238_b8762f", "speciesCode": "string_taxon_4555", "speciesName": "Setaria italica", "taxonId": "4555", "requestedStages": ["ppi"], "includeRecommended": false, "timeoutSec": 600, "asyncMode": true }, "http_status": 200, "task_id": "d9cdbb88-1eb0-4109-947d-f6e14f7f5eb4", "task_status": "success", "assembly": "GCF_000263155.2", "bytes_downloaded": 9242771, "requested_file_types": ["pep"], "pep_records": 35844, "cds_records": 0, "files": { "pep": "input/job_1784552755238_b8762f/string_taxon_4555/string_taxon_4555.pep.fasta", "pep_sha256": "2c037fe5e3e17e6afe9dd7134c7a5ed4a6eb5e12c54c1cc1b29978b2f90bd926", "id_map": "input/job_1784552755238_b8762f/string_taxon_4555/string_taxon_4555.pep_cds_idmap.tsv", "manifest": "input/job_1784552755238_b8762f/string_taxon_4555/string_taxon_4555.reference_bundle_download.manifest.json" } }, { "step": "ortholog_rejected_request", "method": "POST", "path": "/api/execute", "request_error": "The first direct request incorrectly included referenceSpecies/refSpeciesList=[string_taxon_4555] in addition to owner fields.", "http_status": 400, "response_detail": "referenceSpecies cannot map string_taxon_4555 through config.xlsx", "task_id": null, "side_effects": "none; queues remained empty and no Ortholog files existed" }, { "step": "ortholog_owner_execution", "method": "POST", "path": "/api/execute", "request": { "stage": "ortholog", "job_id": "job_1784552755238_b8762f", "prefix": "Sv.HKL", "cpu": 4, "blastEvalue": 0.00001, "scopeFile": "workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json", "scopeMode": "target_only", "analysisRoute": "target_only", "geneFamily": "HKL", "targetSpecies": ["Sv"], "ppiReferenceTaxonId": "4555", "ppiReferenceStorageKey": "string_taxon_4555", "ppiReferenceSelectionMode": "tree_nearest", "ppiReferenceUserConfirmed": true, "dependencyOwner": "ppi" }, "http_status": 200, "task_id": "0a20a621-ca10-47fe-a4c3-da1d334303d2", "queue": "plantai_4090_9010.medium", "task_status": "success", "ortholog_pairs": 6, "log": "workspace/job_1784552755238_b8762f/logs/20260721_082842_ortholog.log", "mapping": "workspace/job_1784552755238_b8762f/final/Sv.HKL.orthologs.txt", "mapping_sha256": "cdce241cfa9217549ec3a940cd22bf69ca610e647d3b8f3cc204eef12a9aa677", "sidecar": "workspace/job_1784552755238_b8762f/final/Sv.HKL.orthologs.txt.identity.json", "manifest": "workspace/job_1784552755238_b8762f/final/Sv.HKL.ortholog.manifest.json", "reference_taxon_id": "4555", "reference_storage_key": "string_taxon_4555" }, { "step": "post_ortholog_preflight", "method": "POST", "path": "/api/ppi/species-resolution", "http_status": 200, "response": { "status": "needs_ortholog", "decision": "needs_reference_ortholog", "issue_code": "stale_ortholog_identity_conflict", "message": "Existing Ortholog mapping identity is stale or unverifiable: ppi_owner_mapping_sidecar_identity_mismatch.", "required_next_stage": "ortholog" } } ], "identity_diff": { "equal_fields": { "reference_taxon_id": "4555", "reference_storage_key": "string_taxon_4555", "reference_pep_sha256": "2c037fe5e3e17e6afe9dd7134c7a5ed4a6eb5e12c54c1cc1b29978b2f90bd926", "query_path": "workspace/job_1784552755238_b8762f/final/Target.Sv.HKL.curated_members.pep.fa", "query_sha256": "5da2e091bf8ab0c1d39c28b71ec9ad0d6242fa4992fdddc3f77ae579b79bc3a1", "target_identity": "c59de0e1278c292d5cfc57a2d3c2d819edbe6130faf8bbd9814982732e36f847", "mapping_path": "workspace/job_1784552755238_b8762f/final/Sv.HKL.orthologs.txt", "mapping_sha256": "cdce241cfa9217549ec3a940cd22bf69ca610e647d3b8f3cc204eef12a9aa677", "member_set_id_for_identity": "" }, "expected_preflight": { "scope_id": "HKL.target-Sv.ref-string_taxon_4555.target_only", "member_identity": "d29df17ac8c0bfc099e329ca26b3b0b334bd9366271ac949fb56dda1da50d49e", "mapping_identity": "a8f8536f993c962f87f286b0e8017ea9d07de9f74e3f669c2fd2fe0fd5a3b060" }, "actual_producer": { "scope_file": "workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.ref-At.target_plus_reference.scope.json", "scope_id": "HKL.target-Sv.ref-string_taxon_4555.target_plus_reference", "member_identity": "6ba95475a678853f3bfb34666a5286e4b3828f24eb3c3e934ce1fe2ebbedbb1f", "mapping_identity": "f288bdaa65032adddca9c0acb2f66dc71a3ae4a8352297b2bca2b9e6b5fb0568" }, "root_cause": "The producer executes under a target_plus_reference scope rewritten by request-context construction, while post-Ortholog PPI preflight rebuilds identity from the original user target_only scope. Scope ID changes member_identity and mapping_identity despite identical biological and file inputs." }, "not_executed_after_blocker": [ "PPI /api/execute", "PPI artifact/status verification", "API species matrix", "independent Bn backend job" ], "final_safety": { "ppi_files_created": 0, "queue_lengths": {"plantai_4090_9010.default": 0, "plantai_4090_9010.medium": 0}, "workers_9000_unchanged": [3588799, 3588807, 3588814, 3588821, 3588830], "web_19000_note": "No Task 7 command addressed port 19000 or PID 2483131. The old PID disappeared and listener PID 2526118 started at 08:28:48 by an external mechanism during this run; it was observed only and not modified.", "deletions": 0 }, "attempt_2": { "request": { "method": "POST", "path": "/api/execute", "body": { "stage": "ortholog", "job_id": "job_1784552755238_b8762f", "prefix": "Sv.HKL", "cpu": 4, "blastEvalue": 0.00001, "scopeFile": "workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json", "scopeMode": "target_only", "analysisRoute": "target_only", "geneFamily": "HKL", "targetSpecies": ["Sv"], "ppiReferenceTaxonId": "4555", "ppiReferenceStorageKey": "string_taxon_4555", "ppiReferenceSelectionMode": "tree_nearest", "ppiReferenceUserConfirmed": true, "dependencyOwner": "ppi" }, "forceRerun_effective": false, "forceRerunStages_effective": [], "use_existing": "not present in request or request model" }, "tasks": { "api_task_id": "cb4515ba-117f-4749-9b72-a5a083ad04dd", "celery_task_id": "66463b47-abe9-49f4-82a3-87263e11fad6", "queue": "plantai_4090_9010.medium", "status": "success", "ortholog_pairs": 6, "elapsed_seconds": 0.5197922608349472 }, "worker_evidence": { "log": "logs/runtime_9010/celery/plantai_4090_9010_medium.log", "reuse_line": "[INFO] Reusing identity-matched ortholog pairs for Sv -> string_taxon_4555: workspace/job_1784552755238_b8762f/ortholog/Sv.HKL.Sv_to_string_taxon_4555_pairs.txt", "claimed_stage_log": "workspace/job_1784552755238_b8762f/logs/20260721_090012_ortholog.log", "claimed_stage_log_exists": false, "api_task_log_source": "workspace/job_1784552755238_b8762f/logs/20260721_082842_ortholog.log" }, "files": { "intermediate_mapping": {"mtime": "2026-07-21 08:28:47.682668677 +0800", "sha256": "4c5e1c3b1d8d9b40644559da9df6eb6277240ae30a327d20ee40a69718d35f29"}, "intermediate_sidecar": {"mtime": "2026-07-21 08:28:47.714255320 +0800", "sha256": "f97a77748716497e0177485118404492d3f7b5fb77b1743ac0a174c135506201", "target_identity": "c59de0e1278c292d5cfc57a2d3c2d819edbe6130faf8bbd9814982732e36f847", "member_identity": "6ba95475a678853f3bfb34666a5286e4b3828f24eb3c3e934ce1fe2ebbedbb1f", "mapping_identity": "00c27374dc0050f0c588a9ab0fff2546973b2aa99a76c7ef8a72fdcb88686a0a"}, "final_mapping": {"mtime": "2026-07-21 09:00:12.591883154 +0800", "sha256": "cdce241cfa9217549ec3a940cd22bf69ca610e647d3b8f3cc204eef12a9aa677"}, "final_sidecar": {"mtime": "2026-07-21 09:00:12.592846398 +0800", "sha256": "f0a96652cb7635f5108bfbb355e3e7c3568badb3c020aeff8fb8f1763c114bca", "target_identity": "c59de0e1278c292d5cfc57a2d3c2d819edbe6130faf8bbd9814982732e36f847", "member_identity": "6ba95475a678853f3bfb34666a5286e4b3828f24eb3c3e934ce1fe2ebbedbb1f", "mapping_identity": "f288bdaa65032adddca9c0acb2f66dc71a3ae4a8352297b2bca2b9e6b5fb0568"}, "legacy_manifest": {"mtime": "2026-07-21 09:00:12.593582705 +0800", "sha256": "3236e7edb00f346d1921a82be28ac379c7be0b320b35bc86f4e120869fc98f60"}, "scoped_manifest": {"mtime": "2026-07-21 09:00:12.594018966 +0800", "sha256": "dcccb1b76656b12cd33ae5e444854a061f1b88742a11f7ed9aee404d4bd11420", "scope_id": "HKL.target-Sv.ref-string_taxon_4555.target_plus_reference", "scope_mode": "target_plus_reference", "analysis_route": "target_only", "scope_file": "workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.ref-At.target_plus_reference.scope.json"} }, "reuse_gate": { "path": ["POST /api/execute", "_ensure_gene_family_scope_file", "Celery execute_single_stage_task", "StageToolRegistry.execute", "StageToolExecutor.execute", "pipeline_backend.run_stage", "build_ortholog_run_identity", "ortholog_run_identity_matches"], "root_cause": "The API technical-reference collector ignores ppiReferenceStorageKey. The owner-only Ortholog request therefore enters the generic Ortholog reference fallback, which replaces the supplied target_only scope with the job's ref-At target_plus_reference scope before the producer fix runs. The producer then computes the same identity as the stale intermediate and reuses it." }, "module_sha256": { "apps/web/vue3/main.py": "72261549d622e70a90a43f8795e3c9cf0eccf499899c62233e1f7c25768fd3e1", "tasks.py": "89b434ccd7e2a4c997efc87cbec954fbfd63857931752b2daa0549279f13fc08", "gfa_core/mas/tools/stage_tools.py": "ffda6ec77256e8ef23c2635210f5624db550c2e657aaaf8b38b0c3b820d5f1a9", "apps/web/pipeline_backend.py": "32b4391ec4d3fda87d78180b923bcb1c5d4066588980bbc61e73d5fe153b5d17", "gfa_core/ortholog_materialize.py": "a0a70088f230eb0560355c7a68cb05a9b4933c72cc626c9ebef6427f46c97913" }, "post_preflight": {"recorded_at": "2026-07-21T09:00:54.535659", "status": "needs_ortholog", "decision": "needs_reference_ortholog", "issue_code": "stale_ortholog_identity_conflict"}, "stopped_without": ["PPI /api/execute", "species matrix", "independent Bn job", "code changes", "deletions"] }, "attempt_3": { "runtime_gate": { "scope_file": "/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json", "scope_sha256": "31d8f69ef697c9c802cc929cd2383aca8e700a6c7fc52a57db408156384ed711", "scope_id": "HKL.target-Sv.target_only", "scope_mode": "target_only", "redis": "redis://localhost:6379/11", "queue_prefix": "plantai_4090_9010", "web_pid": 2586056, "worker_master_pids": [2586051, 2586052, 2586053, 2586054, 2586055], "worker_pong": 5, "main_py_sha256": "90240498d608c8182afb10ad79e81a0213b20e428c3a20f69a7c63c9458266a4" }, "ortholog": { "request": {"stage":"ortholog","job_id":"job_1784552755238_b8762f","prefix":"Sv.HKL","cpu":4,"blastEvalue":0.00001,"scopeFile":"/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json","scopeMode":"target_only","analysisRoute":"target_only","geneFamily":"HKL","targetSpecies":["Sv"],"ppiReferenceTaxonId":"4555","ppiReferenceStorageKey":"string_taxon_4555","ppiReferenceSelectionMode":"tree_nearest","ppiReferenceUserConfirmed":true,"dependencyOwner":"ppi"}, "api_task_id": "eaf45f36-d86e-4887-ae2d-d799d3ccaaef", "celery_task_id": "6ad681e3-e7d5-49fd-b78c-0d8c999b3df6", "status": "success", "pairs": 6, "elapsed_seconds": 5.773302449146286, "new_log": {"path":"workspace/job_1784552755238_b8762f/logs/20260721_100750_ortholog.log","sha256":"902d3998e3c3098ff62b67817867d89dfb3aa7d690877dee292627118b4215f5"}, "intermediate_sidecar_sha256": "21d61a723e03988a80076f3cacec047bcc6478d7be4abf66f627296e23200fe6", "final_sidecar_sha256": "ffd3c39bd52cdd1d4fabdba2466940fdd9c0367948d670d7838b7fec31290358", "scoped_manifest_sha256": "95e745621d873e11bd4818a869e21066948dd6a167ddf0220d09ae8d46a1ce07", "identity": {"scope_id":"HKL.target-Sv.target_only","scope_mode":"target_only","analysis_route":"target_only","reference_taxon_id":"4555","reference_storage_key":"string_taxon_4555","reference_pep_sha256":"2c037fe5e3e17e6afe9dd7134c7a5ed4a6eb5e12c54c1cc1b29978b2f90bd926","target_identity":"c59de0e1278c292d5cfc57a2d3c2d819edbe6130faf8bbd9814982732e36f847","member_identity":"dc9fbbfc0384d2fc42dd5235856cee61b5359ebd6ac43bc580df31313c62094a"}, "post_preflight": {"http_status":200,"status":"ready","decision":"ready_reference_mapping","issue_code":"","confirmation_required":true,"confirmation_confirmed":true} }, "ppi": { "request": {"stage":"ppi","job_id":"job_1784552755238_b8762f","prefix":"Sv.HKL","cpu":4,"scopeFile":"/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json","scopeMode":"target_only","analysisRoute":"target_only","geneFamily":"HKL","targetSpecies":["Sv"],"ppiSpecies":"auto","ppiScore":200,"ppiReferenceTaxonId":"4555","ppiReferenceStorageKey":"string_taxon_4555","ppiReferenceSelectionMode":"tree_nearest","ppiReferenceUserConfirmed":true,"dependencyOwner":"ppi"}, "api_task_id": "1f2a89c4-5042-4b93-a50f-923cd8925bfa", "celery_task_id": "a25e255e-6d14-4c8f-98ac-151b90aa682c", "queue": "plantai_4090_9010.light", "status": "failed", "celery_wrapper_elapsed_seconds": 11.837375451112166, "error": "PPI cannot infer the STRING reference species from the Ortholog mapping", "issue_code": "ppi_invalid_ortholog_mapping", "fallback_reason": "ortholog_mapping_target_species_not_supported_by_string", "failed_manifest": {"path":"workspace/job_1784552755238_b8762f/final/Sv.HKL.ppi.manifest.json","sha256":"ce6e65eca81ddd1950408900aad1f2a6d1fdce7dda0470f338532c0517df885a","artifacts":{},"selected_taxon_id":"","reference_species":""}, "provenance": {"selected_string_taxon_id":"","selection_mode":"tree_nearest","confirmation_required":true,"confirmation_confirmed":true,"mapping_reference_species":"string_taxon_4555","mapping_path":"workspace/job_1784552755238_b8762f/final/Sv.HKL.orthologs.txt"}, "source_ids": {"path":"workspace/job_1784552755238_b8762f/ppi/analysis/Sv.HKL.HKL.target-Sv.target_only.ppi_source_ids.txt","count":6,"sha256":"1e0cc6e5bcabe348a36e99f9ad0be63ae06f70268e9283d457191b48384df2ef"}, "stage_log_created": false, "cli_command_emitted": false, "success_artifacts_created": false, "scoped_stage_status": {"status":"not_found","completed":false,"expected_manifest":"workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.ppi.manifest.json"}, "request_vs_transport": "The request matches the real frontend path: ppiSpecies remains auto while owner TaxID/storage/mode/confirmation are attached separately. API and StageTool propagation preserve the owner fields. The execution resolver ignores the owner TaxID when ppiSpecies is auto and cannot translate mapping target storage key string_taxon_4555 through the legacy alias resolver.", "raw_celery_params_available": false }, "stopped_after_failure": true, "not_run": ["PPI retry", "species matrix", "independent Bn job", "code changes", "file deletion"], "final_queue_lengths": {"default":0,"heavy":0,"medium":0,"light":0,"rnaseq":0}, "forbidden_processes_unchanged": {"web_19000":2529914,"workers_9000":[3588799,3588807,3588814,3588821,3588830]} }, "attempt_4": { "constraint": "Restart only 9010 and run exactly one real PPI attempt using the already-ready Ortholog mapping; stop on failure.", "runtime_gate": { "scope_file": "/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json", "scope_sha256": "31d8f69ef697c9c802cc929cd2383aca8e700a6c7fc52a57db408156384ed711", "scope_id": "HKL.target-Sv.target_only", "preflight_before_restart": {"status":"ready","decision":"ready_reference_mapping","selected_taxon_id":"4555","reference_storage_key":"string_taxon_4555","confirmation_required":true,"confirmation_confirmed":true}, "preflight_after_restart": {"status":"ready","decision":"ready_reference_mapping","selected_taxon_id":"4555","reference_storage_key":"string_taxon_4555","confirmation_required":true,"confirmation_confirmed":true}, "mapping": {"path":"workspace/job_1784552755238_b8762f/final/Sv.HKL.orthologs.txt","sha256":"cdce241cfa9217549ec3a940cd22bf69ca610e647d3b8f3cc204eef12a9aa677","final_sidecar_sha256":"ffd3c39bd52cdd1d4fabdba2466940fdd9c0367948d670d7838b7fec31290358","scoped_manifest_sha256":"95e745621d873e11bd4818a869e21066948dd6a167ddf0220d09ae8d46a1ce07"}, "web_pid": 2595459, "worker_master_pids": [2595454,2595455,2595456,2595457,2595458], "worker_pong": 5, "module_sha256": { "apps/web/vue3/main.py": "90240498d608c8182afb10ad79e81a0213b20e428c3a20f69a7c63c9458266a4", "tasks.py": "89b434ccd7e2a4c997efc87cbec954fbfd63857931752b2daa0549279f13fc08", "gfa_core/mas/tools/stage_tools.py": "ffda6ec77256e8ef23c2635210f5624db550c2e657aaaf8b38b0c3b820d5f1a9", "apps/web/pipeline_backend.py": "57b35484a89cb096211ac18032a34ad220a33dbc5bc98a455724713ce3303d05" } }, "ppi": { "request": {"stage":"ppi","job_id":"job_1784552755238_b8762f","prefix":"Sv.HKL","cpu":4,"scopeFile":"/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json","scopeMode":"target_only","analysisRoute":"target_only","geneFamily":"HKL","targetSpecies":["Sv"],"ppiSpecies":"auto","ppiScore":200,"ppiReferenceTaxonId":"4555","ppiReferenceStorageKey":"string_taxon_4555","ppiReferenceSelectionMode":"tree_nearest","ppiReferenceUserConfirmed":true,"dependencyOwner":"ppi"}, "api_task_id": "fd77c17d-0387-477c-a294-747f41277529", "celery_task_id": "f401575e-43ac-43dd-84ac-26d1b20a392e", "queue": "plantai_4090_9010.light", "status": "failed", "celery_wrapper_elapsed_seconds": 29.942377381026745, "cli": "/home/xzq/miniconda3/envs/test4py311/bin/python skills/ppi/run.py --gene-ids /home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/ppi/analysis/Sv.HKL.HKL.target-Sv.target_only.ppi_source_ids.txt --species 4555 --normalization-species-label 4555 --prefix Sv.HKL --output /home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/ppi --score 200 --provenance-json /home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/ppi/Sv.HKL.ppi_provenance.json --mapping /home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.orthologs.txt --id-map /home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/input/job_1784552755238_b8762f/string_taxon_4555/string_taxon_4555.pep_cds_idmap.tsv", "error": "Alias evidence species mismatch at row 2: declared '4555', observed 'string_taxon_4555'", "identity_evidence": {"execution_string_taxon_id":"4555","normalization_species_label":"4555","id_map_header":"species_code protein_id pep_id cds_id gene_id ncbi_gene_id pep_present cds_present pep_header cds_header","id_map_observed_species_code":"string_taxon_4555","ortholog_mapping_rows_loaded":6,"source_ids_loaded":6}, "root_cause": "The remote STRING execution identity correctly uses TaxID 4555, but the local alias-evidence normalization identity was also set to 4555. The selected reference bundle ID map declares storage identity string_taxon_4555, so the identity guard rejects the mismatch. Ortholog readiness and execution-species resolution are not the blocker.", "files": { "stage_log": {"path":"workspace/job_1784552755238_b8762f/logs/20260721_102510_ppi.log","sha256":"07f7cb3aa446a30c5ee841edbf62070d8006669bf5af60849a0317607572d650"}, "final_failed_manifest": {"path":"workspace/job_1784552755238_b8762f/final/Sv.HKL.ppi.manifest.json","sha256":"987b929bcfcb74497f26443802700ed431b333a21f9ae05303d8a385b3b8886f","artifacts":{},"stale_resolution_block":true}, "skill_failed_manifest": {"path":"workspace/job_1784552755238_b8762f/ppi/Sv.HKL.manifest.json","sha256":"7125042256bdf62a6ab034ab94b3c3f444ab4edc49456842e544066f3ccb463e"}, "provenance": {"path":"workspace/job_1784552755238_b8762f/ppi/Sv.HKL.ppi_provenance.json","sha256":"94875cbf36eb264eb44d7a30f6c001e154c2752eb6c0413b8a818961adac4242","selected_string_taxon_id":"4555","mapping_reference_species":"string_taxon_4555","normalization_species_label":"4555","selection_mode":"tree_nearest","confirmation_required":true,"confirmation_confirmed":true}, "source_ids": {"path":"workspace/job_1784552755238_b8762f/ppi/analysis/Sv.HKL.HKL.target-Sv.target_only.ppi_source_ids.txt","count":6,"sha256":"1e0cc6e5bcabe348a36e99f9ad0be63ae06f70268e9283d457191b48384df2ef"} }, "scoped_stage_status": {"status":"not_found","completed":false,"expected_manifest":"workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.ppi.manifest.json"}, "legacy_stage_status": {"status":"failed","completed":false,"artifacts_checked":0}, "success_artifacts_created": false }, "stopped_after_failure": true, "not_run": ["PPI retry","Ortholog rerun","species matrix","independent Bn job","code changes","file deletion"], "final_queue_lengths": {"default":0,"heavy":0,"medium":0,"light":0,"rnaseq":0}, "forbidden_processes_unchanged": {"web_19000":2529914,"workers_9000":[3588799,3588807,3588814,3588821,3588830]} }, "attempt_5": { "constraint": "Restart only 9010 and submit exactly one frontend-consistent real PPI request using the existing ready Ortholog mapping; no matrix or code changes.", "runtime_gate": { "scope_file": "/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json", "scope_id": "HKL.target-Sv.target_only", "preflight_before_restart": {"status":"ready","decision":"ready_reference_mapping","selected_taxon_id":"4555","reference_storage_key":"string_taxon_4555","confirmation_required":true,"confirmation_confirmed":true}, "preflight_after_restart": {"status":"ready","decision":"ready_reference_mapping","selected_taxon_id":"4555","reference_storage_key":"string_taxon_4555","confirmation_required":true,"confirmation_confirmed":true}, "mapping": {"sha256":"cdce241cfa9217549ec3a940cd22bf69ca610e647d3b8f3cc204eef12a9aa677","final_sidecar_sha256":"ffd3c39bd52cdd1d4fabdba2466940fdd9c0367948d670d7838b7fec31290358","scoped_ortholog_manifest_sha256":"95e745621d873e11bd4818a869e21066948dd6a167ddf0220d09ae8d46a1ce07"}, "web_pid": 2608735, "worker_master_pids": [2608731,2608635,2608732,2608607,2608636], "worker_pong": 5, "module_sha256": { "apps/web/vue3/main.py":"90240498d608c8182afb10ad79e81a0213b20e428c3a20f69a7c63c9458266a4", "tasks.py":"89b434ccd7e2a4c997efc87cbec954fbfd63857931752b2daa0549279f13fc08", "gfa_core/mas/tools/stage_tools.py":"ffda6ec77256e8ef23c2635210f5624db550c2e657aaaf8b38b0c3b820d5f1a9", "apps/web/pipeline_backend.py":"9834917f36c9b400b22b7a8a50b7e047a57a3cf3e01ee83184f5e3b5aa9a629a", "gfa_core/ortholog_materialize.py":"a0a70088f230eb0560355c7a68cb05a9b4933c72cc626c9ebef6427f46c97913", "gfa_core/ppi_provenance.py":"b4d947d5ffa05db776039ffdec0c6f713e247a706994673dff1d92e4733c3031", "gfa_core/mas/tools/stage_status.py":"a3fc701271bbfca599324eeac721f027dd67752a1e640977b9ffef76cb21d473", "skills/ppi/run.py":"2f592370b3c0c97d8f5e0500f348099fb85e581ad29219e2143b629011327a12" } }, "ppi": { "request": {"stage":"ppi","job_id":"job_1784552755238_b8762f","prefix":"Sv.HKL","cpu":4,"scopeFile":"/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev/workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json","scopeMode":"target_only","analysisRoute":"target_only","geneFamily":"HKL","targetSpecies":["Sv"],"ppiSpecies":"auto","ppiScore":200,"ppiReferenceTaxonId":"4555","ppiReferenceStorageKey":"string_taxon_4555","ppiReferenceSelectionMode":"tree_nearest","ppiReferenceUserConfirmed":true,"dependencyOwner":"ppi"}, "api_task_id":"72ddcc69-fa90-4514-bd78-3a931e8054c9", "celery_task_id":"44f60fe5-ffcc-4def-b9fd-48d531a085a2", "queue":"plantai_4090_9010.light", "status":"success", "celery_wrapper_elapsed_seconds":32.72843774687499, "cli_identity":{"string_execution_taxon_id":"4555","normalization_species_label":"string_taxon_4555"}, "string_request":{"species":"4555","required_score":200,"network_type":"functional","query_ids":["4555.K3Z5J1","4555.K3Z625","4555.K3ZDE9","4555.A0A368R4B9","4555.K3XGZ3","4555.K3XGV8"]}, "metrics":{"input_genes":6,"genes_in_network":6,"total_interactions":15,"avg_score":0.904,"high_confidence":15,"member_mapping_rate":1.0,"query_mapping_rate":1.0,"unresolved_member_count":0,"ambiguous_member_count":0}, "stage_log":{"path":"workspace/job_1784552755238_b8762f/logs/20260721_104344_ppi.log","sha256":"eb3cfcb8cc4859a68a33a629eee4beea2e3db5735387f5d410ab049222dddc5f"}, "scoped_manifest":{"path":"workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.ppi.manifest.json","sha256":"118ddf51ae112333228debc1d2a5b4c94f8fc3737a39d903160cf83b73120359","status":"success","scope_id":"HKL.target-Sv.target_only","scope_mode":"target_only","analysis_route":"target_only","member_set_id":"HKL.target-Sv.target_only:target_only:all_members"}, "artifacts": { "network":{"path":"final/Sv.HKL.ppi_network.tsv","sha256":"9fe9e10c5d57d3dae2bce2a09cb4640738d41b8328f0a21305f7fbace860c52a","size":492}, "report":{"path":"final/Sv.HKL.ppi_report.md","sha256":"866e63d67aceb5b7108feeed8539b0c7f9971f2c2302dd26186523aba86ad60f","size":717}, "id_resolution":{"path":"final/Sv.HKL.ppi_id_resolution.tsv","sha256":"488f0a2ae1ef66ded461c1d39c9231bf0b6d169e8dfd2b950edacdc1bc1b5399","size":1845}, "string_url":{"path":"final/Sv.HKL.ppi_url.txt","sha256":"3c26395fb2d8281a1b123dc4f9816ba60ca6efe45c355fcfa1b2cf62f687dbdf","size":304}, "string_network_image":{"path":"final/Sv.HKL.ppi_network.string.png","sha256":"fe7891cf0e07e6865cb35a42bbd8445c88819ee12d069d112609c56fd204b862","size":161819,"dimensions":"3253x793"}, "alphafold2_links":{"path":"final/Sv.HKL.ppi_alphafold2_links.tsv","sha256":"dde7bdbab0a4e0f011781fafb572e3c416c2f88f656209b54d31fc9eee3b1598","size":1748} }, "stage_status":{"status":"completed","completed":true,"manifest_status":"success","artifacts_checked":6,"missing_artifacts":[],"errors":[]}, "provenance":{"selected_string_taxon_id":"4555","mapping_reference_species":"string_taxon_4555","normalization_species_label":"string_taxon_4555","selection_mode":"tree_nearest","confirmation_required":true,"confirmation_confirmed":true,"snapshot_id":"ede47d546d853d0ec30ee75066976a35c08fd2412e6e5fc7866bbd205fc2eeb3"} }, "not_run":["PPI retry","Ortholog rerun","species matrix","independent Bn job","code changes","file deletion"], "final_queue_lengths":{"default":0,"heavy":0,"medium":0,"light":0,"rnaseq":0}, "forbidden_processes_unchanged":{"web_19000":2529914,"workers_9000":[3588799,3588807,3588814,3588821,3588830]} }, "final_read_only_matrix": { "constraint": "Read-only preflight/status verification against current 9010 and existing evidence; no execute, new job, restart, or stage run.", "base_url": "http://127.0.0.1:9010", "job_id": "job_1784552755238_b8762f", "snapshot_id": "ede47d546d853d0ec30ee75066976a35c08fd2412e6e5fc7866bbd205fc2eeb3", "overall_status": "passed", "items": [ { "id": 1, "name": "Os direct ready without Ortholog", "evidence_level": "real_api", "method": "POST", "path": "/api/ppi/species-resolution", "http_status": 200, "request": {"prefix":"Os.HKL","targetSpecies":["Os"],"targetScientificName":"Oryza sativa Japonica Group","ppiTargetTreeTaxonId":"39947","ppiSpecies":"auto","requestedStages":["ppi"]}, "response": {"status":"ready","decision":"ready_target_string","selection_mode":"exact_string","selected_taxon_id":"39947","target_string_supported":true,"candidates":[]}, "note": "Parent TaxID 4530 correctly produced Oryza Top3 rather than a false direct match.", "result": "pass" }, { "id": 2, "name": "Sv stable Top3 and confirmed ready", "evidence_level": "real_api_and_real_job", "method": "POST", "path": "/api/ppi/species-resolution", "http_status": 200, "request": {"prefix":"Sv.HKL","scopeFile":"workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.scope.json","targetSpecies":["Sv"],"targetScientificName":"Setaria viridis","ppiTargetTreeTaxonId":"4556","ppiReferenceTaxonId":"4555","ppiReferenceStorageKey":"string_taxon_4555","ppiReferenceSelectionMode":"tree_nearest","requestedStages":["ppi"]}, "unconfirmed": {"status":"confirmation_required","issue_code":"ppi_reference_confirmation_required","candidates":[{"taxon_id":"4555","distance":2},{"taxon_id":"4540","distance":6},{"taxon_id":"888268","distance":6}],"confirmation":{"required":true,"confirmed":false}}, "confirmed": {"status":"ready","decision":"ready_reference_mapping","selected_taxon_id":"4555","storage_key":"string_taxon_4555","mapping":"workspace/job_1784552755238_b8762f/final/Sv.HKL.orthologs.txt","confirmation":{"required":true,"confirmed":true}}, "result": "pass" }, { "id": 3, "name": "Ft candidates are tree-derived", "evidence_level": "real_api", "method": "POST", "path": "/api/ppi/species-resolution", "http_status": 200, "request": {"prefix":"Ft.HKL","targetSpecies":["Ft"],"targetScientificName":"Fagopyrum tataricum","ppiTargetTreeTaxonId":"62330","requestedStages":["ppi"]}, "response": {"status":"confirmation_required","selection_mode":"tree_nearest","candidate_source":"string_species_tree","resolution_source":"explicit_tree_taxon_id","policy_id":"string_species_tree_v12_topology_v1","candidates":[{"taxon_id":"3562","distance":10},{"taxon_id":"3476","distance":12},{"taxon_id":"3775","distance":12}]}, "static_ft_marker_present": false, "result": "pass" }, { "id": 4, "name": "Registry-only TaxID 3708", "evidence_level": "real_api_and_prior_real_string", "method": "POST", "path": "/api/ppi/species-resolution", "http_status": 200, "request": {"prefix":"Bn.HKL","targetSpecies":["Bn"],"targetScientificName":"Brassica napus","ppiTargetTreeTaxonId":"3708","requestedStages":["ppi"]}, "response": {"status":"ready","decision":"ready_target_string","selection_mode":"exact_string","selected_taxon_id":"3708","target_string_supported":true}, "real_string_evidence": ["docs/validation/2026-07-21-string-ppi-task4-real-network.md","docs/validation/2026-07-21-string-ppi-task4-real-network.json"], "result": "pass" }, { "id": 5, "name": "Second unsupported plant stable Top3", "evidence_level": "real_api_twice", "method": "POST", "path": "/api/ppi/species-resolution", "http_status": 200, "request": {"prefix":"Cs.HKL","targetSpecies":["Cs"],"targetScientificName":"Camellia sinensis","ppiTargetTreeTaxonId":"4442","requestedStages":["ppi"]}, "response_first": [{"taxon_id":"542762","distance":1},{"taxon_id":"1590841","distance":7},{"taxon_id":"4155","distance":9}], "response_second": [{"taxon_id":"542762","distance":1},{"taxon_id":"1590841","distance":7},{"taxon_id":"4155","distance":9}], "candidate_source": "string_species_tree", "result": "pass" }, { "id": 6, "name": "Unknown identity is supplemented, not guessed as At", "evidence_level": "real_api", "method": "POST", "path": "/api/ppi/species-resolution", "http_status": 200, "unresolved_request": {"prefix":"Xx.HKL","targetSpecies":["Xx"],"requestedStages":["ppi"]}, "unresolved_response": {"status":"unresolved","issue_code":"target_string_tree_unresolved","decision":"target_identity_unresolved","selected_taxon_id":"","reference_species":"","candidates":[]}, "supplemented_request": {"targetScientificName":"Camellia sinensis","ppiTargetTreeTaxonId":"4442"}, "supplemented_response": {"status":"confirmation_required","selection_mode":"tree_nearest","candidate_source":"string_species_tree","candidate_taxon_ids":["542762","1590841","4155"],"contains_at_3702":false}, "result": "pass" }, { "id": 7, "name": "Natural At fallback confirmation gate", "evidence_level": "real_api", "method": "POST", "path": "/api/ppi/species-resolution", "http_status": 200, "request": {"prefix":"Aa.HKL","targetSpecies":["Aa"],"targetScientificName":"Arabidopsis arenosa","ppiTargetTreeTaxonId":"38785","ppiReferenceTaxonId":"3702","ppiReferenceStorageKey":"At","ppiReferenceSelectionMode":"model_fallback","dependencyOwner":"ppi","requestedStages":["ppi"]}, "unconfirmed": {"status":"confirmation_required","top_candidate":{"taxon_id":"3702","name":"Arabidopsis thaliana","distance":2},"confirmation":{"required":true,"confirmed":false}}, "confirmed": {"status":"needs_ortholog","issue_code":"ppi_requires_ortholog_mapping","selected_taxon_id":"3702","reference_species":"At","storage_key":"At","pep_complete":true,"reference_selection_mode":"model_fallback","confirmation":{"required":true,"confirmed":true}}, "stage_executed": false, "result": "pass" }, { "id": 8, "name": "Nearest-reference real success chain", "evidence_level": "prior_real_job_and_current_file_verification", "source": "attempt_5", "status": "success", "manifest": {"path":"workspace/job_1784552755238_b8762f/final/Sv.HKL.HKL.target-Sv.target_only.ppi.manifest.json","expected_sha256":"118ddf51ae112333228debc1d2a5b4c94f8fc3737a39d903160cf83b73120359","current_sha256":"118ddf51ae112333228debc1d2a5b4c94f8fc3737a39d903160cf83b73120359"}, "network": {"path":"workspace/job_1784552755238_b8762f/final/Sv.HKL.ppi_network.tsv","expected_sha256":"9fe9e10c5d57d3dae2bce2a09cb4640738d41b8328f0a21305f7fbace860c52a","current_sha256":"9fe9e10c5d57d3dae2bce2a09cb4640738d41b8328f0a21305f7fbace860c52a"}, "identity": {"execution_taxon_id":"4555","normalization_species_label":"string_taxon_4555","selection_mode":"tree_nearest","confirmed":true}, "metrics": {"input_genes":6,"genes_in_network":6,"interactions":15,"member_mapping_rate":1.0,"query_mapping_rate":1.0}, "result": "verified" }, { "id": 9, "name": "PPI readiness is independent of missing KaKs CDS", "evidence_level": "real_api", "method": "POST", "path": "/api/ppi/species-resolution", "http_status": 200, "ppi_only": {"request":{"requestedStages":["ppi"],"dependencyOwner":"ppi"},"status":"ready","decision":"ready_reference_mapping","selected_taxon_id":"4555"}, "kaks_only": {"request":{"requestedStages":["kaks"],"dependencyOwner":"kaks","referenceSpecies":["string_taxon_4555"]},"status":"needs_reference_data","issue_code":"kaks_reference_cds_missing","decision":"needs_reference_bundle","bundle_mode":"pep_only","missing_required":["cds"],"kaks_ready":false}, "stage_executed": false, "result": "pass" } ], "safety": {"execute_endpoint_called":false,"new_job_created":false,"stage_run":false,"service_restarted":false,"code_changed":false,"final_queue_lengths":{"default":0,"heavy":0,"medium":0,"light":0,"rnaseq":0}} } }