Skip to content

feat(dashboard): add a debugger actions panel#41711

Open
dgozman wants to merge 2 commits into
microsoft:mainfrom
dgozman:dashboard-debugger-panel
Open

feat(dashboard): add a debugger actions panel#41711
dgozman wants to merge 2 commits into
microsoft:mainfrom
dgozman:dashboard-debugger-panel

Conversation

@dgozman

@dgozman dgozman commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • New private Debugger._enable() API that streams a Debugger.on('apiCallsUpdated') event — each api call reports title, location, incremental log entries, action point, and status (running/success/error). The server debugger always tracks ongoing calls, so enabling late replays whatever is currently in flight.
  • Dashboard actions panel next to the screencast: a live api-call list, the current action's source view, an action-point marker on the screencast, and pause/resume/step controls.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@dgozman

dgozman commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator Author

@microsoft-github-policy-service rerun

dgozman added 2 commits July 13, 2026 10:17
Add a private Debugger._enable() API that starts streaming a
Debugger.on('apiCallsUpdated') event, reporting each api call's
title, location, incremental log entries, action point and status
(running/success/error). The server debugger always tracks ongoing
calls, so enabling late replays whatever is currently in flight.

Use it to add a toggle-able actions panel to the dashboard next to the
screencast: a live list of api calls, the current action's source, an
action-point marker on the screencast, and pause/resume/step controls.
- Move the panel below the screencast and split actions vs source.
- Give the panel toggle a list icon and a "Paused" status label.
- Group resume/pause/step next to "Actions"; color run controls green.
- Scale the action-point marker's position and size with the screencast.
@dgozman dgozman force-pushed the dashboard-debugger-panel branch from f684e5e to 459d0fe Compare July 13, 2026 12:08
@dgozman dgozman requested a review from Skn0tt July 13, 2026 12:11
@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

2 flaky ⚠️ [chromium-library] › library/chromium/chromium.spec.ts:299 › should report intercepted service worker requests in HAR `@chromium-ubuntu-22.04-node24`
⚠️ [chromium-library] › library/video.spec.ts:476 › screencast › should capture static page in persistent context @smoke `@chromium-ubuntu-22.04-node22`

49603 passed, 1168 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "MCP"

1 failed
❌ [chromium] › mcp/annotate.spec.ts:173 › user-initiated annotate downloads zip with feedback.md @mcp-ubuntu-latest-chromium

7759 passed, 1249 skipped


Merge workflow run.

@Skn0tt Skn0tt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image

Haven't looked into the code yet, but sharing a first impression of the UI after running npx playwright cli --session=debugger-demo run-code \ "async page => { await page.goto('https://playwright.dev'); await page.locator('body').click(); }:

  • all the green checkmarks are visual noise. can we remove them, or maybe only show them briefly after the spinner goes away?
  • all of them are expandable, but many of them don't show content after expanding
  • clicking the "pause" button doesn't change anything visually, but it engages the debugger and makes the next action paused. This is not very obvious to me, I think the UI here could be improved by changing a background colour tint or something.

Do you want to polish the UI a little more? I can also take that over in a follow-up.

@Skn0tt Skn0tt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code looks good, left some more UI thoughts.

Comment on lines +40 to +42
React.useLayoutEffect(() => {
messagesEndRef.current?.scrollIntoView({ block: 'nearest', inline: 'nearest' });
}, [apiCalls]);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's only auto-scroll when we're already near the bottom, otherwise this will steal focus.

})}
<div ref={messagesEndRef}></div>
</div>}
sidebar={<SourceView source={debuggerSource} />}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sidebar is confusing for CLI sessions where there's no source. Maybe we can show it conditionally only when there's source, or make it collapsible.

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.

2 participants