feat: implement issue #2029 — Dry-run budget poller: read live Claude usage, log what the breaker would do, prove it is alive (slice 2 of the auto-pause work)

Merged
DO
19d ago
+1110-4

Problem

Dry-run budget poller: read live Claude usage, log what the breaker would do, prove it is alive (slice 2 of the auto-pause work)

From the issue: As the fleet maintainer, I want a scheduled workflow that reads the Claude usage windows through the already-merged adapter and logs what the budget breaker would do, so that the breaker finally has a feed, I can prove it is alive, and the thresholds are calibrated on live data before anything is armed.

Risk

Medium — changes GitHub Actions workflow behavior, which is exercised only post-merge; verify via the affected workflow runs.

Test plan

Tests added/updated: tests/dev-lead/unit/test_budget_poller.bats. Verification: bash scripts/dev-lead-lint.sh (shellcheck --severity=warning) ran pre-commit; the bats suite runs in CI.

Rollback

Revert this PR. No non-revertible side effects (no tags, migrations, or external state).

Monitoring

Watch the affected workflow run(s) in the Actions tab and this PR's Lint check for regressions.

Implements the dry-run poller for #2029; that issue stays open until the first scheduled run confirms the credential check (its acceptance criterion 6).