Repository navigation
feat(scroll): show which scroll speeds are smooth on this panel - #710
Conversation
The Vegas Scroll Speed slider now says what the panel will do with the chosen speed and offers the nearest smooth ones to click. Backed by scroll_config.speed_advice() and GET /api/v3/config/scroll-speed-advice, which uses the refresh the display measured rather than the cap. Also stops the default 50 px/s snapping to a stepped 48 px/s (2px every 5 refreshes, 24fps) on a 120Hz panel: the low-fps penalty in solve_crisp() now loses to 60 or 40 px/s. 100Hz panels are unchanged. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 20 minutes. View limit detailsLimit details: You’ve used the included review currently available. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (4)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (7)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe changes update crisp-speed ranking, add refresh-aware speed advice to the configuration API, and display that advice in the Vegas scroll-speed slider. ChangesScroll speed advice
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant VegasSlider
participant ConfigAPI
participant ConfigManager
participant FrameStatsFile
participant ScrollConfig
VegasSlider->>ConfigAPI: Request speed advice with speed and slider bounds
ConfigAPI->>ConfigManager: Read configured refresh-rate cap
ConfigAPI->>FrameStatsFile: Read measured refresh rate
ConfigAPI->>ScrollConfig: Call speed_advice with selected refresh rate
ScrollConfig-->>ConfigAPI: Return applied speed and smooth alternatives
ConfigAPI-->>VegasSlider: Return advice and refresh source
Merge Risk: ⚪ Minimal · up to This change adds panel-specific scroll speed advice to the Vegas slider. No merge-blocking issues were identified. The hint has not been checked visually on hardware. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The new endpoint returns display-timing advice without changing settings, credentials, or privileges. It inherits existing access controls. Deployment-specific access and file permissions remain unconfirmed. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 45.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 20 functions across 4 files. (3 skipped: 3 unsupported.) ✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
🛠️ Fix failing CI checks 💡
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 17 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
…30fps as stepped The Vegas speed hint called refreshScrollSpeedHint() before the let declarations it uses, so it never rendered (found on ledpi). And the solver's low-fps penalty stopped at 25fps, which let a measured 125.7Hz panel keep a 25.1fps 2px-every-5-refreshes scroll. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
* chore: prepare the 3.8.1 release Bumps src.__version__ to 3.8.1 and moves the Unreleased CHANGELOG entries under a 3.8.1 heading, with an empty Unreleased above it. The reason for the release is smooth scrolling at held-frame speeds. On 3.8.0 the default 50 px/s snapped to a stepped 48 px/s on a 120 Hz panel, and any scroll slower than one pixel per refresh showed a half-pixel step across the middle of the panel. Both are fixed on main (#710, #711) but were in no release, so every stable-channel device still had them. - #710's CHANGELOG entry had been filed under 3.8.0 although it merged after the v3.8.0 tag; it moves to 3.8.1. - #711 had no CHANGELOG entry; it gets one. scripts/check_release_version.py v3.8.1 passes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: sports_game_over and draw_text_outlined ship in 3.8.1 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Why
On a Pi 4 / 120 Hz panel the default Vegas speed of 50 px/s silently snapped to 48 px/s (2 px every 5 refreshes, 24 fps): visibly stepped, with the only evidence a log line. No frames were late (
frame_soak.py: ~0.2%).What
solve_crisp(): raise the sub-25 fps penalty so 50 px/s on 120 Hz resolves to a smooth 60 or 40 px/s. 100 Hz results are unchanged (existing tests pass).scroll_config.speed_advice()+GET /api/v3/config/scroll-speed-advice: what the panel will really run, plus the nearest smooth options. Uses the refresh the display measured (frame-stats file), falling back to the configured cap; an implausible stale measurement is ignored.docs/SCROLL_PERFORMANCE.mdnotes.Test plan
pytest test -k "scroll or vegas or sports or crisp"— 1737 passedspeed_adviceand the endpoint (measured vs cap, stale measurement, bad input)node --check🤖 Generated with Claude Code
Summary by CodeRabbit