Skip to content

[do not merge] Tweak panel toggling rules#10651

Draft
Andarist wants to merge 3 commits intomainfrom
test-things-oout
Draft

[do not merge] Tweak panel toggling rules#10651
Andarist wants to merge 3 commits intomainfrom
test-things-oout

Conversation

@Andarist
Copy link
Copy Markdown
Member

No description provided.

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 14, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
devtools Ready Ready Preview, Comment Apr 20, 2026 4:27pm

Request Review

@replay-io
Copy link
Copy Markdown

replay-io Bot commented Apr 14, 2026

E2E Tests

Status Complete ↗︎
Commit ec6311f
Results
41 Failed
  • async-stack: should detect async stacks outside the focus window (Replay 1, Replay 2, Replay 3, Replay 4)
  • authenticated/comments-01: Test add, edit, and delete comment functionality (Replay 1, Replay 2, Replay 3, Replay 4)
  • authenticated/comments-02: Test shared comments and replies (Replay 1, Replay 2, Replay 3, Replay 4)
  • authenticated/comments-03: Comment previews (Replay 1, Replay 2, Replay 3, Replay 4)
  • authenticated/logpoints-01: Shared logpoints functionality (Replay 1, Replay 2, Replay 3, Replay 4)
  • authenticated/passport-01: Time travel (Replay 1, Replay 2, Replay 3, Replay 4)
  • authenticated/passport-03: Swiss army knife (Replay 1, Replay 2, Replay 3, Replay 4)
  • authenticated/passport-04: Multiplayer (Replay 1, Replay 2, Replay 3, Replay 4)
  • console_async: support console evaluations in async frames (Replay 1, Replay 2, Replay 3, Replay 4)
  • console_eval: support console evaluations (Replay 1, Replay 2, Replay 3, Replay 4)
  • console_warp-01: should support warping to console messages (Replay 1, Replay 2, Replay 3, Replay 4)
  • console_warp-02: support pausing, warping, stepping and evaluating console messages (Replay 1, Replay 2, Replay 3, Replay 4)
  • console-expressions-01: should cache input eager eval and terminal expressions per instance (Replay 1, Replay 2, Replay 3, Replay 4)
  • fe-1875 :: verify that steps go to the right point in time (Replay 1, Replay 2, Replay 3, Replay 4)
  • file-search-01: should search files (Replay 1, Replay 2, Replay 3, Replay 4)
  • inspector-computed-02: Complex computed styles can be viewed (Replay 1, Replay 2, Replay 3, Replay 4)
  • jump-to-code-01: Test basic jumping functionality (Replay 1, Replay 2, Replay 3, Replay 4)
  • logpoints-01: log-points appear in the correct order and allow time warping (Replay 1, Replay 2, Replay 3, Replay 4)
  • logpoints-02: conditional log-points (Replay 1, Replay 2, Replay 3, Replay 4)
  • logpoints-04: should display exceptions in the console (Replay 1, Replay 2, Replay 3, Replay 4)
  • logpoints-06: should be temporarily disabled (Replay 1, Replay 2, Replay 3, Replay 4)
  • logpoints-07: should use the correct scope in auto-complete (Replay 1, Replay 2, Replay 3, Replay 4)
  • node_console-01: Basic node console behavior (Replay 1, Replay 2, Replay 3, Replay 4)
  • node_console-02: uncaught exceptions should show up (Replay 1, Replay 2, Replay 3, Replay 4)
  • node_logpoint-01: Basic node logpoints (Replay 1, Replay 2, Replay 3, Replay 4)
  • node_spawn: Basic subprocess spawning (Replay 1, Replay 2, Replay 3, Replay 4)
  • node_stepping-01: Test stepping in async frames and async call stacks (Replay 1, Replay 2, Replay 3, Replay 4)
  • node_worker-01: make sure node workers don't cause crashes (Replay 1, Replay 2, Replay 3, Replay 4)
  • object_preview-02: should allow objects in scope to be inspected (Replay 1, Replay 2, Replay 3, Replay 4)
  • object_preview-03: Test previews when switching between frames and stepping (Replay 1, Replay 2, Replay 3, Replay 4)
  • object_preview-04: Test scope mapping and switching between generated/original sources (Replay 1, Replay 2, Replay 3, Replay 4)
  • repaint-01: repaints the screen screen when stepping over code that modifies the DOM (Replay 1, Replay 2, Replay 3, Replay 4)
  • repaint-06: repaints the screen screen when stepping over code that modifies the DOM (Replay 1, Replay 2, Replay 3, Replay 4)
  • scopes_rerender: Test that scopes are rerendered (Replay 1, Replay 2, Replay 3, Replay 4)
  • source-line-highlights: Test source line highlighting (Replay 1, Replay 2, Replay 3, Replay 4)
  • stepping-01: Test basic step-over/back functionality (Replay 1, Replay 2, Replay 3, Replay 4)
  • stepping-02: Test fixes for some simple stepping bugs (Replay 1, Replay 2, Replay 3, Replay 4)
  • stepping-04: Test stepping in a frame other than the top frame (Replay 1, Replay 2, Replay 3, Replay 4)
  • stepping-05: Test stepping in pretty-printed code (Replay 1, Replay 2, Replay 3, Replay 4)
  • stepping-06: Test stepping in async frames and async call stacks (Replay 1, Replay 2, Replay 3, Replay 4)
  • stepping-07: Test quick stepping using the keyboard (Replay 1, Replay 2, Replay 3, Replay 4)
  • ⚠️ 2 Flaky
  • network-03: should sync and display the current time in relation to the network requests (Replay 1, Replay 2)
  • playwright-04: Test Step buttons and menu item (Replay 1, Replay 2)
  • 58 Passed
  • authenticated/passport-02: Infrared inspection
  • console_dock: Should show the correct docking behavior for recordings with video
  • console_errors: Test that errors and warnings from various sources are shown in the console
  • cypress-01: Basic Test Suites panel functionality
  • cypress-02: Test Step timeline behavior
  • cypress-03: Test Step interactions
  • cypress-04: Test Step buttons and menu item
  • cypress-05: Test DOM node preview on user action step hover
  • deleted-recording: Show error message for deleted recording
  • elements-search: Element panel should support basic and advanced search modes
  • focus_mode-01: should filter messages as regions based on the active focus mode
  • highlighter: element highlighter works everywhere
  • inspector-computed-01: Basic computed styles can be viewed
  • inspector-elements-01: Basic DOM tree node display
  • inspector-elements-02_node-picker: element picker and iframe behavior
  • inspector-elements-03: Nested node picker and selection behavior
  • inspector-elements-04: Keyboard shortcuts should select the right DOM nodes
  • inspector-elements-05_search: element picker and iframe behavior
  • inspector-rules-01: Basic CSS rules should be viewed
  • inspector-rules-03: Shorthand CSS rules should be viewed
  • jump-to-code-02: Redux J2C functionality
  • logpoints-03: should display event properties in the console
  • logpoints-05: should auto-complete based on log point location
  • logpoints-08: should support jumping directly to a hit point via the capsule input
  • logpoints-09: should support pending edits
  • logpoints-10: too-many-points-to-find UX
  • logpoints-11: too-many-points-to-run-analysis UX
  • logpoints-12: should auto save when removing conditions
  • logpoints-13: Test log point in a sourcemapped file
  • network-01: should filter requests by type and text
  • network-02: should show details for the selected request
  • node_console_dock: Should show the correct docking behavior for recordings without video
  • node_control_flow: catch, finally, generators, and async/await
  • node_object_preview: Showing console objects in node
  • node_quick_open_modal-01: Test basic searching functionality
  • object_preview-01: expressions in the console after time warping
  • object_preview-05: Should support logging objects as values
  • object_preview-06: HTML elements
  • object_preview-07: inspect objects in the console while paused somewhere else
  • object_preview-08: should render ellipsis for collapsed objects with truncated properties
  • playwright-01: Basic Test Suites panel functionality
  • playwright-02: Test Step timeline behavior
  • playwright-03: Test Step interactions
  • playwright-05: Test DOM node previews on user action step hover
  • react_devtools-01: Basic RDT behavior
  • react_devtools-02: RDT integrations (Chromium)
  • react_devtools-03: process and display multiple React versions in page
  • react_devtools-04: Component selection is maintained when seeking to a new point
  • redux_devtools: Test Redux DevTools.
  • repaint-02: repaints on hover
  • repaint-03: repaints on seek
  • repaint-04: prefers nearest (<=) paint when seeking between paints
  • repaint-05: prefers current time if pause creation failed outside of the focus window
  • resizable-panels-01: Left side Toolbar and Video should be collapsible
  • restart-session: restart debugging session
  • session-destroyed: errors caused by session failure should bubble to the root
  • sourcemap_stacktrace: Test that stacktraces are sourcemapped
  • stacking: Element highlighter selects the correct element when they overlap
  • @replay-io
    Copy link
    Copy Markdown

    replay-io Bot commented Apr 14, 2026

    Replay failure analysis for commit 4627987da60f84099038f0ba832cdae11085635a and recording 1fd64236-f447-4415-b998-cccb0273c379

    Based on my investigation, I can now compile the thin slice of observations:


    Thin Slice

    • DOM [data-test-id="FramesPanel"]: Element has 0px width and 56px height, making it hidden/not visible
    • DOM [data-test-id="AccordionPane-CallStack"]: Parent element also has 0px width
    • DOM #Panel-SidePanel: Has data-panel-size="0.0" and style="flex: 0 1 0px" indicating collapsed state
    • localStorage Replay:UserPreferences at 3529ms: Set to {"global_theme":"system","layout_sidePanelCollapsed":true} - side panel explicitly marked as collapsed
    • localStorage react-resizable-panels:DevTools-horizontal at 3652ms: Layout changed from [20,80] to [0,100] - side panel size reduced to 0%
    • User interactions: 4 clicks recorded between 2496ms-3527ms; last click at (35, 374) at 3527ms
    • Test failure: Timeout waiting for [data-test-id="FramesPanel"] to be visible - element remained hidden throughout

    Summary

    The test failed because the FramesPanel is contained within a side panel that has been collapsed to 0% width. The localStorage evidence shows that at 3529ms, layout_sidePanelCollapsed was set to true, and at 3652ms the panel layout changed to [0, 100] (0% for the side panel). The FramesPanel element exists in the DOM but has 0px width due to its collapsed parent container.

    The test clicks at coordinates (35, 374) which collapses the side panel, then immediately waits for the FramesPanel to be visible without waiting for the panel expansion state to be restored. The test needs to either avoid collapsing the side panel, or explicitly expand it again and wait for the panel resize to complete before asserting the FramesPanel is visible.

    @replay-io
    Copy link
    Copy Markdown

    replay-io Bot commented Apr 16, 2026

    Replay failure analysis for commit 6a883bc0055d0fc9bcd2be4eb0223d7c191942ef and recording 111c4716-13ad-4356-8fe7-702911bf75c2

    Based on my investigation of the recording, here is the thin slice of observations:

    Thin Slice

    • DOM Inspector ([data-test-id="FramesPanel"]): Element exists but has 0px width and 56px height
    • DOM Inspector (parent chain): All ancestor containers have 0px width up to .secondary-panes-wrapper
    • DOM Inspector (#Panel-SidePanel): Panel has data-panel-size="0.0" and style="flex: 0 1 0px", meaning the side panel is collapsed to zero width
    • LocalStorage (Replay:UserPreferences): Final value at 3737ms is {"global_theme":"system","layout_sidePanelCollapsed":true} - the side panel collapsed state is persisted as true
    • LocalStorage (Replay:SidePanelCollapsed): All 37+ accesses return empty value (getItem calls, no setItem)
    • Console logs: Test successfully reached "Waiting for pause at 7 (waitForPaused)" step before timing out on FramesPanel visibility
    • User interactions: Only 4 clicks recorded during the test, last at 3734ms

    Summary

    The FramesPanel element exists in the DOM but is hidden because the side panel containing it is collapsed (width = 0px). The Panel-SidePanel has data-panel-size="0.0" and the layout_sidePanelCollapsed:true preference is stored in localStorage. The test waits for the FramesPanel to become visible, but the panel remains collapsed throughout the recording, causing the 60-second timeout.

    The test needs to expand the side panel before waiting for the FramesPanel to become visible. The side panel is collapsed (width=0) due to the layout_sidePanelCollapsed:true preference, so the FramesPanel element exists but remains hidden. Add a step to click the side panel expand button or toggle the panel open before asserting on FramesPanel visibility.

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Labels

    None yet

    Projects

    None yet

    Development

    Successfully merging this pull request may close these issues.

    1 participant