The correct package is @playwright/cli (from microsoft/playwright-cli),
not @anthropics/playwright-cli.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Snapshot labels contain Private Use Area characters (U+E000-U+F8FF) for
VS Code codicons. normalizeLabel() strips these before comparing so
'Click button "Instructions"' matches ' Instructions' in the snapshot.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Each getSnapshot() call now prints the .yml path and warns if the file
is empty, making it easy to correlate steps with snapshot files.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Snapshot labels often include icon characters and leading spaces
(e.g. ' Instructions'). Now findRefByButtonName and findButtonLine
trim and lowercase both sides before comparing.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The root package.json has "type": "module", which makes Node treat
.js files as ESM. Since run.js uses require(), rename to .cjs to
explicitly opt into CommonJS.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Screenshots from failed E2E steps now go into out/ (already gitignored)
rather than the repo root. Remove the failure-*.png and sessions-*.png
entries from root .gitignore since they're no longer needed.
Also remove shebang from run.js to pass copyright hygiene check.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The playwright-cli approach uses accessibility tree snapshots instead of
CSS selectors, so these data-testid attributes are no longer needed.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Traces the full data flow for 'Click button Cloud' step by step: DOM
rendering → accessibility tree snapshot → YAML parsing → ref lookup →
CDP click, so new contributors can understand the internals.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove files from the previous TS/Electron testing approach that are no
longer used now that tests run via playwright-cli against the web server:
- actionMap.ts, scenarioParser.ts, sessionApp.ts, scenarios.spec.ts
- playwright.config.ts, package.json, tsconfig.json
- extensions/mock-chat-provider/
Update README.md to document the current playwright-cli + web server
approach, including how to run tests and add new scenarios.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Created new YAML files for Playwright configurations, detailing the structure of the application UI.
- Included toolbar actions for session management, customization options, and repository picker.
- Defined buttons for session actions, agent sessions, and various UI elements like alerts and textboxes.
- Enhanced user interaction elements with cursor pointers and active states for better usability.
- Created new YAML files for Playwright that define the structure and components of the session management UI.
- Each file includes configurations for toolbars, buttons, alerts, and other UI elements.
- The configurations support various actions such as finding sessions, filtering sessions, and customizing settings.
- Added support for user interactions with buttons for navigating, signing in, and managing agent sessions.
- Ensured consistent structure across all YAML files for maintainability and ease of updates.
- Created new YAML files for Playwright configurations to define UI components and actions related to session management.
- Included various toolbars, buttons, and alerts to enhance user interaction.
- Configured folder picker options for browsing and cloning functionalities.
- Ensured consistent structure across multiple configuration files for maintainability.
- Created multiple YAML files for Playwright CLI with detailed UI structure.
- Included toolbar actions for session management, including buttons for finding and filtering sessions.
- Added customizable options and agent session lists.
- Implemented navigation buttons with disabled states for back and forward actions.
- Integrated folder picker options for browsing and cloning.
- Enhanced chat input functionality with context addition and model selection.
- Created new YAML files to define the structure and components of the session management interface.
- Included various toolbars, buttons, and alerts to enhance user interaction.
- Implemented features such as session actions, agent sessions, and folder picker options.
- Ensured accessibility with appropriate cursor pointers and disabled states for buttons.
- Created multiple YAML files for Playwright CLI to define UI structure for session actions, including buttons for finding and filtering sessions.
- Implemented toolbar configurations for primary and secondary sidebars with various action buttons.
- Added support for agent sessions and customizations, including buttons for skills, instructions, prompts, and hooks.
- Introduced a folder picker listbox with options to browse and clone folders.
- Enhanced the chat input area with context addition and model selection buttons.
- Included alerts for user notifications within the application interface.
- Created new YAML files for the application UI, detailing the structure of session actions, toolbars, buttons, and alerts.
- Each file includes configurations for session management features such as "Find Session," "Filter Sessions," and various customization options.
- Implemented consistent button references and cursor styles across the UI components.
- Ensured accessibility features are included, such as disabled states for buttons and alerts for user notifications.
- Introduced a new E2E test runner script for Agent Sessions located at src/vs/sessions/test/e2e/run.js.
- The script starts a web server, opens the sessions window, and executes defined scenarios from markdown files.
- Added a YAML file defining the UI structure and components for the sessions interface.
These files were added in an earlier commit on this branch but are not
part of the sessions e2e test framework (which lives under
src/vs/sessions/test/e2e/).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chat: Use ref-counted model collection for tool confirmation inputs
Fixes duplicate model error when ToolConfirmationSubPart re-renders with
the same toolCallId. Models keyed by URI are now managed via a ref-counted
ReferenceCollection (InlineTextModelCollection) on IChatContentPartRenderContext,
so multiple SubPart instances can safely share the same model. The model is only
disposed when the last reference is released, preventing the 'Cannot add model
because it already exists!' error during list re-rendering or parallel tool calls.
- Add InlineTextModelCollection class wrapping ReferenceCollection<ITextModel>
to handle ref-counted model lifecycle keyed by URI
- Add inlineTextModels field to IChatContentPartRenderContext
- Wire InlineTextModelCollection into chatListRenderer, passing to all context
sites
- Update chatToolConfirmationSubPart to use context.inlineTextModels.acquire()
instead of modelService.createModel()
- Remove unused IModelService injection from chatToolConfirmationSubPart
Fixes https://github.com/microsoft/vscode/issues/294345
(Commit message generated by Copilot)
* ci failure