feat(settings): start each category at the top - #813
Merged
Merged
Conversation
Avoid carrying a scroll offset between unrelated settings categories. Reset on destination changes before search anchors run, while retaining the position on same-category updates and repeated selection. Closes vastsa#812
Merge the current upstream main so the settings scroll change remains reviewable alongside recent fixes. Preserve both sets of English and Chinese E2E scenarios without changing the original implementation.
Keep the settings scroll PR current with the merged queue admission fix. Retain both acceptance scenarios and their original implementations without rewriting the shared branch history.
Keep the shared PR current with upstream main while preserving its settings navigation behavior and the contributor's commit history. Validate the combined candidate before updating the existing PR.
Keep the shared PR current with configuration sync and runtime updates without changing its settings navigation behavior or rewriting history.
Include the new WebDAV compatibility work before candidate validation. Preserve the original PR behavior and both upstream and author history.
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 #812.
Scrolling halfway down Settings → AI and switching categories currently opens the next category partway down too. This proposes starting each category at the top, including plugin categories. Re-selecting the current category and updating settings in place keep the scroll position; global search still lands on the matching setting.
Native desktop recording (17.7 seconds, 1920×1440): before and after the same AI → Shortcuts navigation. English UI and annotations; navigation is 2× speed and idle time is trimmed. Both builds use isolated empty profiles and the real host, with no mocked UI or model calls.
settings-scroll-before-after.mp4
The runtime change is confined to
SettingsPage: reset the shared content pane when its destination changes, before the existing search-anchor effect runs. Includes interaction coverage and matching English/Chinese settings specs and E2E scenarios. No settings data, IPC, or storage changes.Validated category switches, repeated selection, settings updates, plugin navigation, and search anchors in both light and dark themes. The new check fails on the original AI → Shortcuts behavior and passes with this change.
Validation details
0f9db0624384f3d4bdd5020b4bcdae01c40a02e70111e306c120ad5820688d7608cb37bad8fbcc1f; upstream and fork main matched before publication.1299bd8c90febb05cc8a0846f278229d9790d3d5).pnpm test:e2e:settings-scrollpassed on the candidate. It mounts the production SettingsPage, store, translations and built CSS in isolated Electron; preload data is stubbed and search uses the same public store entry points as SearchDialog. It does not exercise the full search dialog or host persistence.