chat: pin product quality in persistent progress tests #336700

Merged
justschen opened 11:25pm on September 17, 2026 wanted to merge 4 Δ into microsoft/vscode main from
agents/electron-test-failure-investigation

Pull Request Overview

  • Opened on September 18, 2026
  • Status Merged
  • Commit count 1 with first commit September 18, 2026

Total Delta

4 Total Diff Delta

Open Days

Open 0 weekdays

Test Delta

4 Diff Delta in Test Files
Breakdown by Phase

How long has this pull request spent in each phase of its lifecycle?

Fraction of total time Business days Phase
 
0.0 days Authoring 0 commits before pull request opened for review
 
0.0 days Awaiting first review
 
1.0 day Merge to deploy (still awaiting deployment)

Total time for pull request 0.0 business days from first commit authored to merge
Still awaiting deployment

Author avatar

chat: pin product quality in persistent progress tests

Fixes microsoft/vscode-engineering#3894.

Summary

The persistent-progress renderer test asserts the Stable product-icon CSS class, but its fixture inherits the ambient build's product quality. On Insiders CI the renderer correctly produces the Insiders class, so the test fails identically across platforms.

Pin IProductService.quality to stable in createPersistentProgressRenderer, preserving the remaining product-service properties and all existing assertions. This is a test-only change; production rendering is unchanged.

This is an alternative to #336693. It omits the redundant _serviceBrand: undefined before the typed product-service spread, avoiding the TS2783 error in that draft.

Validation


  • Reproduced the original assertion failure by changing only the local product quality to insider.


  • npm run gulp compile-client — passed with 0 errors.


  • node build/hygiene.ts src/vs/workbench/contrib/chat/test/browser/widget/chatListRenderer.test.ts — passed; commit hygiene hook also passed.

  • Related Electron suites (chatListRenderer, chatIcons, and chatWorkingLogo) on macOS — 424 passing, 1 pre-existing skipped, both with normal OSS product quality and with quality: 'insider'.

./scripts/test.sh \

--run src/vs/workbench/contrib/chat/test/browser/widget/chatListRenderer.test.ts \
--run src/vs/workbench/contrib/chat/test/browser/chatIcons.test.ts \
--run src/vs/workbench/contrib/chat/test/browser/widget/chatWorkingLogo.test.ts \
--reporter dot

The temporary product-quality override used for validation is not included in this PR.

Comments Threads Pending Resolution

ljharb reviewed on September 18, 2026
ljharb left a comment

## Copilot review overview

### 🟢 Approval recommended

The focused test-only change correctly removes the ambient product-quality dependency without affecting production behavior.

**Review effort:** Balanced
**Findings:** None

What changed in this PR

Pins the persistent-progress renderer test to Stable product quality so its icon-class assertions are deterministic across Stable and Insiders CI builds.

**Changes:**
- Imports `IProductService`.
- Stubs product quality as `stable` while preserving other product-service properties.

| File | Description |
| ---- | ----------- |
| `src/​vs/​workbench/​contrib/​chat/​test/​browser/​widget/​chatListRenderer.test.ts` | Makes persistent-progress icon rendering independent of ambient build quality. |

---

💡 Add a `code-review` agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Resolved Comment Threads

No resolved comments have been left on this PR.