#832 Hardening batch: defensive guards + observability from the jumper/core audit (low severity)
Description
EditBundle of verified-low findings from the 2026-07-19 audit: (1) jumper schedule_run's TASK-table UPDATE lacks a state guard (run-level guard blocks the realistic path; add state <> terminal for depth). (2) set_run_sleeping/set_run_sleeping_without_reschedule task/run UPDATEs lack state guards (callers validate today). (3) emit_event's checkpoint upsert lacks the attempt >= guard that set_task_checkpoint_state has — retry+event race can clobber checkpoint metadata. (4) inline-executor boundary checks open a pooled connection per DSL task (fail-open; pool=64) — consider one cached check-connection per wrapper pass to cut churn on 100+-task graphs. (5) claim affinity mismatch (task tags vs untagged workers) starves runs silently — add a starved-pending metric/log. (6) pending_uploads finalize (enterprise/services/storage_service.py:563) unguarded status write — add AND status='pending' (double-finalize / expiry race). (7) enterprise multi_agent/child_workflow jumper_run_id writes are unguarded but id-only (benign).
Comments
Loading comments...
Context
Loading context...
Audit History
View AllLoading audit history...