Repository navigation
Radar: pick a screen quadrant, then sweep from its centre - #1046
Merged
Merged
Conversation
…ts centre The radar now starts by highlighting the four quarters of the mouse panel's display and then the whole display, in turn, using the mouse scan timing, direction and pass limit. The beam turns around the centre of the chosen area and the marker stops at that area's edge. Open Mouse, or an unattended pass limit, goes from the direction or distance back to picking an area, and from there to the mouse panel. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Starting afresh used to clear the pause; keeping the scan in place for a step back now clears it too, so picking an area moves again. Co-Authored-By: Claude Opus 5.5 <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.
Closes #1045
What changed
Radar::newno longer takes the pointer as its origin. The origin is the centre of the chosen area, andreach()/target()are bounded by that area, so the marker never leaves it. For Whole screen the bound is the display edge. A chosen quarter stays outlined during the direction and distance phases.Workflow::radar_back: Open Mouse during direction or distance goes back to picking an area, with the highlight starting again from the beginning. Open Mouse while picking an area returns to the mouse panel. The runtime used to rebuild the engine for every Open/Mode action, which would have skipped the step back. A newTechnique::steps_backhook (defaultfalse) lets the workflow keep its scan for that single case: Open Mouse while radar is in direction or distance. From picking an area, Open Mouse still rebuilds as it does today, which also releases a held drag.floor(width / 2)), so odd-sized displays have no gap or overlap. Geometry uses the display rect and scale already used by point scanning, so negative-origin and scaled (Windows) displays work.point_scan::outlineis nowpub(crate)so radar can reuse it. No new native rendering: only the existingFramefills, grid and strips are used.mouseRadaranddocs/point-scan.md(Help and the demonstrations had no radar copy).Judgement calls
point.screenmay be stale.Validation (Windows, Node 24.13.0, Rust 1.97.1)
npm run lint: passnpm test: 13 files, 295 tests passed, plus 12 node tests passednpm run build: passcargo fmt --check: passcargo clippy --all-targets -D warnings: passcargo testat 4860760: 771 passed, 5 ignored (plus 7 in a second target). On an earlier run, the unrelatedprediction::tests::cancellation_kills_and_reaps_a_blocked_worker(a 3 s PowerShell-spawn timing check) failed under load and passed on rerun.npm run prediction-modelwas not run: it fails locally with an EPERM rename caused by a lock. The gitignoredsrc-tauri/resources/prediction-model,src-tauri/resources/prediction-neuralandsrc-tauri/binarieswere copied from the main checkout.New and updated tests (fake input only):
scan_radar: quarter and whole-screen geometry, including a negative-origin, odd-sized display; scan order, wrapping and pass counting; reverse order; origin at the area centre at 1.0 and 1.5 scale; the marker stays inside every area at every whole degree and while stepping or sweeping; quarter reach; back navigation; area frame drawing; the chosen quarter's outline. Existing beam tests now start from Whole screen.point_workflow: area → direction → distance →MouseMoveAbsoluteat the quarter's centre line; the Open Mouse back steps andsteps_back; a scaled display to the left of the main one; an unattended direction goes back to picking an area and then to the panel.scan_executor: the radar's chosen point moves the fake pointer (move -320 280) inside the top right quarter.Review notes
Session::actionnow clears the pause whensteps_backholds. Test:stepping_back_from_a_paused_direction_resumes_picking_an_area.Needs real-device checks
Please check on Windows and macOS (
npm run macos:runon macOS), ideally with a second display to the left of or above the main one, and on Windows with scaling:The quarter grid, highlight and outline are drawn on the panel's display, are click-through and non-focusable, and clear on Stop, Escape, disconnect and shutdown.
The marker stays inside the chosen quarter.
Open Mouse during direction or distance goes back to picking an area, and Open Mouse while picking an area returns to the panel.
Independent review of the latest head
4860760reported no actionable findings. It confirmed the pause fix only affects the radar step-back, matches the old rebuild, and its test fails without the fix.🤖 Generated with Claude Code