20260906 - Offer the wizard's quick calibration from the Configuration page - #85
Merged
Merged
Conversation
…n page The quick run (current tower, descend then soak for overload, no track wait) was only reachable from the setup wizard, so an owner who wanted it afterwards had to re-run setup or sit through a ~15 minute full search. Adds a Quick Calibrate button beside Auto-Calibrate. The run itself is unchanged: both callers now post RetinaCalibrate.QUICK_RUN rather than building their own body, since two entry points free to spell out their own run shape is exactly the drift static/calibrate.js exists to prevent. The existing modal needed three fixes to describe that run honestly. A quick run ends in state "failed" by design - there is no confirmed result because none was asked for - so it would have reported a successful run as "No calibration found" in red. It also offered "Closest attempt ... try these as a starting point", which is advice for a run that fell short, and labelled the run "Standard", promising a track wait that was never coming (the modal reattaches to any run, including one the wizard started). The soak summary moves into the shared driver so both places report it in the same words, and opening either button while a run is going now attaches to it instead of offering a Start that would only earn a 409. Persisting stays an explicit click here, unlike the wizard, which auto-persists: silently writing user.yml under a page the owner may be mid-edit on is worse than one more click. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The quick calibration run (current tower, descend then soak for overload, no track wait) was only reachable from the setup wizard. An owner who wanted it afterwards had to re-run setup or sit through a ~15 minute full search.
This adds a Quick Calibrate button beside Auto-Calibrate in the Capture section, running exactly the wizard's run.
The run shape is now defined once
Both callers post
RetinaCalibrate.QUICK_RUN({scope: 'current_tower', skip_confirmation: true}) instead of building their own body. Two entry points free to spell out their own run shape is the driftstatic/calibrate.jsexists to prevent, and a test fails if either reconstructs one.Three fixes the modal needed to describe that run honestly
A quick run terminates in
state: "failed"by design, because there is no confirmed result when none was asked for. Rendered by the pre-existing terminal branch alone, it would have:skip_confirmationis set, which matters because the modal reattaches to any run, including one the wizard started.The soak summary ("Held cleanly for 45s with no sign of overload") moved into the shared driver so both places report it in the same words, and opening either button while a run is going now attaches to it rather than offering a Start that would only earn a 409.
Deliberate differences from the wizard
Persisting stays an explicit "Persist to config" click here. The wizard auto-persists, but silently writing
user.ymlunder a page the owner may be mid-edit on is worse than one more click. The quick prompt also skips the mode question: a run that never confirms anything cannot answer "how should it decide it's calibrated".Risk
The engine, the route and the run shape are untouched. Both Python files in the diff are comment-only; every behaviour change is JavaScript in a modal that already existed.
Two places that are not purely additive:
QUICK_RUNever fails to resolve,start(undefined)posts an empty body and the route defaults to a full three-tower run: the wizard step would quietly take ~15 minutes instead of 4 rather than erroring. Guarded by the static export test.Testing
TestQuickCalibrateEntryPointcovers the shared run shape, that neither caller rebuilds its own start body, and that the terminal branch still distinguishes a run that never looked for a track from one that looked and found nothing.owland verified serving:/config200 with the new markup,calibrate.jsservingQUICK_RUN, no errors in the journal after restart.🤖 Generated with Claude Code