#832 Hardening batch: defensive guards + observability from the jumper/core audit (low severity)

closed low engine Created 2026-07-19 05:26 · Updated 2026-07-19 06:06

Description

Edit
Bundle 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 All
Loading audit history...