Keep the mobile dashboard pinned while offscreen auto-merge controls are toggled. - Reset document horizontal scroll during mobile board stabilization and immediately after auto-merge toggles. - Cover portrait and landscape mobile scroll realignment in the auto-merge integration test. - Document the real-browser blank-dashboard root cause and add a patch changeset. Files changed: .changeset/FN-6243-mobile-auto-merge-blank.md | 5 ++ ...bile-auto-merge-toggle-document-scroll-blank.md | 55 ++++++++++++++++++++++ packages/dashboard/app/components/Board.tsx | 47 ++++++++++++++++-- ...-merge-toggle-blank.mobile-integration.test.tsx | 49 +++++++++++++++++++ 4 files changed, 152 insertions(+), 4 deletions(-) Fusion-Task-Id: FN-6243 Fusion-Task-Lineage: 91f74de2-667f-4732-a840-47b792288bec
2.7 KiB
title, date, category, module, problem_type, component, symptoms, root_cause, resolution_type, severity, related_components, tags
| title | date | category | module | problem_type | component | symptoms | root_cause | resolution_type | severity | related_components | tags | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Mobile auto-merge toggle blanks dashboard via document horizontal scroll | 2026-06-11 | ui-bugs | packages/dashboard/app/components/Board | ui_bug | dashboard-board |
|
mobile_document_horizontal_scroll | code_fix | high |
|
|
Mobile auto-merge toggle blanks dashboard via document horizontal scroll
Problem
The recurring mobile blank-screen regression for the in-review Auto-merge toggle was not a React unmount or thrown exception. A real mobile browser can pan the document horizontally while bringing the offscreen in-review toggle into view/focus. Once window.scrollX is non-zero, the entire dashboard shell is shifted left and the viewport can look blank even though main.board and all columns remain mounted.
Real-browser evidence
FN-6243 reproduced this with the existing Playwright CLI against a real dashboard process (node packages/cli/dist/bin.js dashboard --port 0 --no-auth --dev --paused) at a 375×812 mobile/touch viewport.
Pre-fix evidence:
- Before toggle:
main.boardbox{ x: 0, width: 375, height: 454.828125 }; in-review column box{ x: 948, width: 300, height: 430.828125 }. - After toggle:
main.boardstill existed but box shifted to{ x: -911, width: 375, height: 454.828125 }; in-review column shifted to{ x: -874, width: 300, height: 430.828125 }. pageErrors: [].
Post-fix evidence:
- After toggle round-trip:
window.scrollX === 0,main.boardremained at{ x: 0, width: 375, height: 454.828125 }, in-review column was visible with non-zero size, andpageErrors: [].
Solution
Keep the document/root horizontal scroll pinned to zero on mobile board stabilization and immediately after the auto-merge toggle fires. The board's own internal horizontal scroll remains the only horizontal scroller; do not reintroduce mandatory scroll snap.
Regression coverage should include both:
- The existing jsdom integration surface for
useAppSettings.toggleAutoMergesuccess and rollback paths. - A real-browser/manual or smoke run when the bug class involves viewport pan, paint, layout, visual viewport, or fixed mobile chrome. jsdom cannot reproduce this class.