Skip to content

test(e2e-real): close release-gate gaps — live auto-tune engine, autotune timer, verb aliases#110

Merged
VijitSingh97 merged 1 commit into
mainfrom
claude/release-gate-autotune-coverage
Jun 13, 2026
Merged

test(e2e-real): close release-gate gaps — live auto-tune engine, autotune timer, verb aliases#110
VijitSingh97 merged 1 commit into
mainfrom
claude/release-gate-autotune-coverage

Conversation

@VijitSingh97

Copy link
Copy Markdown
Contributor

Why

A pre-release audit of the real-hardware release gate (tests/e2e-real.sh, per RELEASING.md step 2) against the actual command dispatch found that the gate — despite its header claiming it drives "EVERY verb" — never exercised the live auto-tune engine, the path the monthly systemd timer runs unattended on users' rigs.

autotune() is a distinct code path from the offline tune --bench search the gate already runs: it samples the running miner over the HTTP API and live-sweeps prefetch modes against it. The stubbed suites can't read a live API hashrate, so this is exactly what the real-hardware gate exists to prove — and it had zero coverage.

Gaps closed

Gap Fix
Live auto-tune engine (autotune verb / tune --now/--short/--long) never invoked New verify phase runs autotune against the running, mining worker and asserts the live sweep reaches a keep/switch verdict
Periodic-autotune timer install/teardown only checked if config opted in — the placeholder didn't, so it silently skipped Placeholder config now enables autotune, so setup installs rigforge-autotune.timer (newly asserted in provision), the #reown check actually fires, and teardown's removal check becomes meaningful
Verb aliases up/down, -v/--version, -h/--help not exercised Asserted in the full-command-surface phase

Notes

  • The live auto-tune phase needs a live hashrate, so — like the existing connect/share round-trip — it only runs against a real pool; the offline 203.0.113.x placeholder is an explicit skip. Runtime is bounded by AUTOTUNE_* knobs (2 short modes, brief warmup).
  • make lint (shellcheck + shfmt) and bash -n are clean. The gate itself is Linux-/root-/real-hardware-only by design, so the new assertions are validated by running tests/e2e-real.sh verify on the release rig (the intended review step before merge).
  • Found while preparing a release; opened separately rather than tagging on an under-gated tree.

🤖 Generated with Claude Code

…and verb aliases

The release gate drove the offline `tune --bench` search but never the LIVE
auto-tune engine (autotune() — sampling the running miner over the HTTP API and
live-sweeping prefetch modes), even though that's the code the monthly systemd
timer runs unattended on users' rigs and the gate header claimed "EVERY verb".
Three coverage gaps, now closed:

- Live engine: a new verify phase runs the `autotune` verb against the running,
  mining worker (gated on a real pool, like the connect/share round-trip; the
  offline placeholder is an explicit skip) and asserts the live sweep reaches a
  keep/switch verdict. Bounded fast via AUTOTUNE_* knobs. This also exercises the
  `tune --now/--short/--long` engine path on real silicon.

- Timer install/teardown: the placeholder config now enables `autotune`, so setup
  installs rigforge-autotune.timer (newly asserted in provision), the #reown check
  actually fires instead of skipping, and teardown's timer-removal check is real.

- Aliases: up/down (=start/stop), -v/--version (=version), -h/--help (=help).

Lint + syntax clean; runs on a real Linux rig (see RELEASING.md).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@VijitSingh97 VijitSingh97 merged commit 4c73db6 into main Jun 13, 2026
5 checks passed
@VijitSingh97 VijitSingh97 deleted the claude/release-gate-autotune-coverage branch June 13, 2026 04:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant