BLAST Submit Live Progress¶
Motivation¶
Dashboard BLAST jobs could remain on the Submit Job step without visible progress while elastic-blast submit was still running in the terminal sidecar. Cancel requests also missed the AKS context when the browser sent an empty body.
User-Facing Change¶
The job detail page can now show live submit output from the terminal exec stream under the Submit Job step. Running job detail refreshes also reconcile terminal AKS completion when Kubernetes already reports the BLAST jobs completed or failed. Cancel requests include the job's subscription, resource group, cluster, and storage context, and the API falls back to the persisted job payload when the browser omits them.
API/IaC Diff Summary¶
api.tasks.blast.submitnow uses the terminal exec streaming endpoint forelastic-blast submitand stores compact progress under the job payload_progress.stepsfield./api/blast/jobs/{job_id}exposes the persisted progress ascustom_status.stepsand opportunistically refreshes completed/failed AKS state for running dashboard jobs./api/blast/jobs/{job_id}/cancelrecovers missing AKS context from the persisted job payload.web/src/api/blast.tsanduseBlastResultActionssend cancel context from the job detail page.- No IaC changes.
Validation Evidence¶
uv run pytest -q api/tests/test_local_to_blast_job.py api/tests/test_blast_tasks.py— 76 passed.uv run ruff check api/tasks/blast.py api/routes/stubs.py api/tests/test_local_to_blast_job.py api/tests/test_blast_tasks.py— passed.cd web && npm run build— passed.