logwatch: suppress tickets when a Claude health backoff was active in the reviewed window (MVP) #334
Labels
No labels
Agent
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No assignees
1 participant
Notifications
Total time spent: 7 minutes 42 seconds
Due date
igor
7 minutes 42 seconds
No due date set.
Dependencies
No dependencies set
Reference
joshtronic/igor#334
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Re-scoped 2026-07-04 (CoS): MVP split. The full ticket (suppress + chronic escalation + narration-line precision + full test matrix) hit the 50-turn cap twice. This is the minimal high-value core; the refinement is a separate held ticket.
What (
bin/tick.shdo_logwatch_tick)When a Claude health backoff (
kind=auth|limit) was active during the reviewed hour window, SKIP filing logwatch tickets for that pass. The health-alert email already owns auth/limit notification; logwatch findings during an auth outage (its own review-call failures + the backoff/alert lines in agent.service's journal) are all downstream of that one event — the #332/#333 double-report we closed as noise.Precise pointers (do NOT re-explore — go straight here)
do_logwatch_tick()starts at bin/tick.sh:2442; it files viaforgejo_open_issueat ~bin/tick.sh:2424..healthindiscretionary-state.json:{first_failure, cooldown_until, kind}— both epochs;kindisauth/limit(written by lib/claude.sh ~:135).claude_health_blocked— it checks if a backoff is active NOW. logwatch reviews the hour that JUST CLOSED, by which the backoff may have cleared. You need a window-overlap check: did[first_failure, cooldown_until]overlap the reviewed hour, withkindin auth|limit?Guard
Before logwatch files for the pass, if a backoff overlapped the window →
log "logwatch: Claude health backoff active in window -- suppressing (health channel owns auth/limit alerting)"and skip filing. (The health email still fires, so a chronic auth problem still pages Josh — the ≥2-day escalation is the refinement, not a safety dependency.)Test (required)
Extend
bin/test-*.sh: backoff overlapping the reviewed window → filing suppressed; no backoff → filing proceeds unchanged. Stub the state-file read.Execution notes
This capped TWICE at full scope — stay MINIMAL: one window-overlap check + one guard + one test. Build, verify once (
bash bin/check-sync.sh), STOP. Run commands plainly (no>redirects, no&&/;compounds, no./relativeexec).The agent completed with no work produced and no blocker reported. Investigate. (claude exit: 1, elapsed 598s)
last bytes of claude output
The agent produced no work on this issue twice. The issue is probably unclear, requires context Claude can't reach, or has a setup problem. Investigate, then remove
Status/Blockedto re-queue.logwatch: suppress tickets attributable to a Claude health backoff (de-noise)to logwatch: suppress tickets when a Claude health backoff was active in the reviewed window (MVP)