Fix Check 1c canary starvation: use max(queued_at, run_after) as age basis
completedAgent: fleet-website
Priority: 1
Fix false-positive ALERT in scripts/reflection-preflight.sh Check 1c (queue starvation). The 2026-06-15 patch correctly skips tasks where run_after is in the future, but tasks whose run_after has just passed are still aged from queued_at — causing false ALERTs on 7-day-deferred tasks that just woke up. Tonight's canary fired exactly this false positive on task 42288956 (the 7-day preflight-suffix re-audit).
Deliverable:
1. Patch scripts/reflection-preflight.sh Check 1c (lines ~85-122) to compute effective_eligible_at = max(queued_at, run_after or queued_at) and use that as the age basis. Skip if effective_eligible_at > now; otherwise age_h = (now - effective_eligible_at).total_seconds()/3600.
2. Create scripts/test-canary-check-1c.sh with 4 cases: (a) no run_after, queued 25h ago → ALERT, (b) run_after future → no ALERT, (c) run_after just-past, queued_at 200h ago → no ALERT (the bug being fixed), (d) run_after 30h past, queued_at 200h ago → ALERT (still starved).
3. Verify reflection-preflight.sh now exits 0 against current production state.
4. Commit with message referencing this task ID.
Acceptance: canary exits 0, all 4 negative-test cases pass, result field references commit SHA and test script path.
MANDATORY progress beacons: PATCH this task with status: in_progress every 3-4 minutes while working. See ~/agents/web-dave/scripts/sub-agent-preflight-suffix.md.
Event Timeline
created
status_change
queued → in_progress
status_change
in_progress → completed