Repository navigation
fix(settings): stabilize loading and reuse device-scoped snapshots - #3329
Merged
Merged
Conversation
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
Settings pages now keep a stable content frame during loading, reuse successful snapshots when reopened, and restore scroll positions within the current device activation. Background reads cannot populate a newly selected device or overwrite an edited form.
Type and Areas
Type: Bug fix / UI/UX
Areas: Web UI settings, configuration services, MCP configuration, usage statistics.
Motivation / Impact
Verification
pnpm --dir src/web-ui run test:run src/app/scenes/settings src/infrastructure/config/components/McpToolsConfig.test.tsx— passed after completing hook dependencies (32 files, 203 tests).pnpm run lint:web— passed (zero errors; 10 existing warnings outside changed files).pnpm --dir src/web-ui exec tsc --noEmit— passed after the dependency fixes.pnpm run check:web— passed (type-check, SDK contract, typography, Appearance, theme color and visual governance contracts).pnpm run motion:audit— reviewed inventory; existing unrelated SSH dialog animation entry remains.node scripts/check-git-object-sizes.mjs --base origin/main --head HEAD— passed, 67 blobs checked.git diff origin/main...HEAD --check— passed.Reviewer Notes
AI-assisted; tested with focused automated source/DOM tests and Web checks. Per the user's instruction, verification used command-line tools only; no browser/computer automation or visual screenshots were used.
Remote coverage: device activation and stale response isolation were simulated in tests. Actual remote workspace (SSH/Docker), remote control (relay/mobile/bots), Peer Device Mode, and detached dispatch connections were not exercised. Runtime snapshots are in-memory and scoped to device activation; persisted fields and wire payloads retain their existing shapes.
Checklist