Mains custom streak pairs, notch-width viz, background fill + viewer UX fixes#28
Merged
Merged
Conversation
User-feedback batch (2026-06-11 field notes): Mains / FFT tool: - Custom streak pairs: "Add streak pair" places a symmetric ±q line pair on the FFT (cyan, solid — distinct from predicted mains lines) that can be dragged onto a streak; the partner mirrors automatically. Pairs work with or without a scan speed (pickup at non-mains frequencies has no prediction to lean on), are recorded as exact FFT-pixel offsets (extra_streaks_px) in the op params, and replay through provenance. - Notch width is now visible: every overlay line carries a translucent band of half-width = notch radius, and the radius spin triggers an overlay rebuild (previously the control changed nothing visible). - notch_fill="background": instead of zeroing notched FFT bins (black streak-shaped gaps; the genuine noise floor inside the notch removed too), bring each bin's magnitude down to the local per-row background median, keeping phase and never brightening. Streak shape only — spot raises. - FFT auto contrast cycles 0-100% -> 1-99.5% -> 5-98% with status feedback; the old single idempotent reset visibly did nothing on repeat clicks. Viewer: - Advanced-tools overlay gains its own "Apply processing" button (the modal scrim hid the Process tab's Apply; dismissing the card to commit read as an abandoned choice). Linear-undistort Scale y range widened from 0.8-1.2 to 0.5-2.0. - STM background "handle profile jumps" tooltip now states it targets row-to-row tip changes, not lateral steps within a row (verified: a terrace edge crossing the image is invisible to the row profile by design; step-tolerant background / facet level are the right tools). Checked, not reproducible: Enter closing "the window" from a numeric field — probed every spinbox in SpecViewerDialog, SpecOverlayDialog, and the Advanced overlay with real key events; all intercept Return (the spec dialogs re-plot). Needs the specific window to chase further. Co-Authored-By: Claude Fable 5 <[email protected]>
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.
Summary
Implements the 2026-06-11 field-feedback batch.
Mains / FFT
extra_streaks_pxforwarded throughapply_processing_state).notch_fill="background"— notched bins drop to the local per-row background magnitude (phase kept, never brightened) instead of zero, so the FFT shows noise floor where the streak was and only the excess pickup energy is removed. Streak shape only; spot raises.Viewer UX
Not reproducible
Enter-closes-window from a numeric field: probed every spinbox in both spec dialogs and the Advanced overlay with real key events — all intercept Return. Needs the specific window title to chase further.
Test plan
test_mains_pickup.py): custom streaks without speed, background-fill noise-floor contract, spot rejection, no-op without peaks, provenance replay.test_mains_pickup_gui.py): width bands tracking radius, add/drag/remove pair, params carrying extras+fill, speed-less apply gating, auto-contrast cycling. Two artist-count pins updated for the new bands.🤖 Generated with Claude Code