Skip to content

sessions: Show status indicators in collapsed sections - #335533

Merged
Benjamin Christopher Simmonds (benibenj) merged 9 commits into
mainfrom
benibenj/agents/unread-icon-collapsed-groups
Sep 11, 2026
Merged

sessions: Show status indicators in collapsed sections#335533
Benjamin Christopher Simmonds (benibenj) merged 9 commits into
mainfrom
benibenj/agents/unread-icon-collapsed-groups

Conversation

@benibenj

@benibenj Benjamin Christopher Simmonds (benibenj) commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add sessions.list.showUnreadInCollapsedSections, disabled by default with automatic experiment control.
  • Replace collapsed group/workspace icons using this priority among the sessions they actually contain:
    1. Needs input: the existing orange ring pixel spinner.
    2. Failing CI while the session is not in progress: an orange dot, using the existing blocked-session CI model.
    3. Unread: the existing blue dot.
  • Archived sessions never contribute any of these indicators. Group membership, filters, pin/archive precedence, and sessions behind Show More are respected; a session displayed only in a custom group does not mark its underlying workspace.
  • Preserve chevrons on hover and keyboard focus, restore normal icons when expanded, and react to CI, status, read-state, archive, and setting changes.
  • Expose status in accessible header labels and preserve the existing reduced-motion fallback. Automations behavior remains unchanged.

Validation

  • Client compilation and TypeScript checking passed with zero errors.
  • 141 focused unit tests passed, covering session-list behavior, configuration registration, and the underlying blocked-session CI model.
  • 25 Playwright scenarios validated across dark, light, and both high-contrast themes, covering all three indicators, ownership, hover, expansion/collapse, keyboard focus, and the default-disabled setting. Local page-load timeouts passed on focused reruns; one rerun used a 60-second local test timeout without changing committed test timeouts.
  • Hygiene/lint and source-layer checks passed.

Add a default-on experiment-controlled setting. Derive unread state from section membership, preserving hover and keyboard-focus chevrons.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings September 10, 2026 18:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

The ARIA label misrepresents unread counts, and the setting description omits affected section types.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review tier: Balanced
Findings: 1 Medium severity · 1 Low severity

New issues introduced by this change (2)
Severity Finding
Medium severity src/​vs/​sessions/​contrib/​sessions/​browser/​views/​sessionsList.ts — Announce the actual unread count
Low severity src/​vs/​sessions/​contrib/​sessions/​browser/​sessions.contribution.ts — Describe all affected section types
What changed in this PR

Adds unread indicators to collapsed Sessions list sections while preserving existing interaction and accessibility behavior.

Changes:

  • Derives section unread state from filtered/grouped members.
  • Adds a preview setting with automatic experiment control.
  • Adds unit, fixture, accessibility, and multi-theme Playwright coverage.
File Description
sessionsList.ts Implements reactive unread icons and ARIA labels.
sessions.contribution.ts Registers the new setting.
sessionsList.test.ts Tests grouping, filtering, updates, and precedence.
sessionsListTestUtils.ts Adds mutable read-state test support.
sessions.contribution.test.ts Verifies setting registration.
sessionsList.fixture.ts Adds enabled and disabled visual fixtures.
sessionsListTwistie.spec.ts Tests themes, hover, focus, and expansion.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/vs/sessions/contrib/sessions/browser/views/sessionsList.ts Outdated
Comment thread src/vs/sessions/contrib/sessions/browser/sessions.contribution.ts Outdated
@github-actions

github-actions Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Screenshot Changes

Base: 862bd837 Current: b767af2d

3 insignificant change(s) omitted (≤20 px, Δ≤2). See CI logs for details.

Added (24)

sessions/sessionsList/SessionsList_CollapsedUnreadSections/Dark

current

sessions/sessionsList/SessionsList_CollapsedUnreadSections/Light

current

sessions/sessionsList/SessionsList_CollapsedUnreadSections/DarkHighContrast

current

sessions/sessionsList/SessionsList_CollapsedUnreadSections/LightHighContrast

current

sessions/sessionsList/SessionsList_CollapsedUnreadSections_Disabled/Dark

current

sessions/sessionsList/SessionsList_CollapsedUnreadSections_Disabled/Light

current

sessions/sessionsList/SessionsList_CollapsedUnreadSections_Disabled/DarkHighContrast

current

sessions/sessionsList/SessionsList_CollapsedUnreadSections_Disabled/LightHighContrast

current

sessions/sessionsList/SessionsList_CollapsedNeedsInputSections/Dark

current

sessions/sessionsList/SessionsList_CollapsedNeedsInputSections/Light

current

sessions/sessionsList/SessionsList_CollapsedNeedsInputSections/DarkHighContrast

current

sessions/sessionsList/SessionsList_CollapsedNeedsInputSections/LightHighContrast

current

sessions/sessionsList/SessionsList_CollapsedNeedsInputSections_Disabled/Dark

current

sessions/sessionsList/SessionsList_CollapsedNeedsInputSections_Disabled/Light

current

sessions/sessionsList/SessionsList_CollapsedNeedsInputSections_Disabled/DarkHighContrast

current

sessions/sessionsList/SessionsList_CollapsedNeedsInputSections_Disabled/LightHighContrast

current

sessions/sessionsList/SessionsList_CollapsedCIFailureSections/Dark

current

sessions/sessionsList/SessionsList_CollapsedCIFailureSections/Light

current

sessions/sessionsList/SessionsList_CollapsedCIFailureSections/DarkHighContrast

current

sessions/sessionsList/SessionsList_CollapsedCIFailureSections/LightHighContrast

current

sessions/sessionsList/SessionsList_CollapsedCIFailureSections_Disabled/Dark

current

sessions/sessionsList/SessionsList_CollapsedCIFailureSections_Disabled/Light

current

sessions/sessionsList/SessionsList_CollapsedCIFailureSections_Disabled/DarkHighContrast

current

sessions/sessionsList/SessionsList_CollapsedCIFailureSections_Disabled/LightHighContrast

current

Prioritize needs-input sessions over unread indicators using the existing status widget, preserving section ownership, hover chevrons, and reduced-motion behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@benibenj Benjamin Christopher Simmonds (benibenj) changed the title sessions: Show unread icons in collapsed sections sessions: Show unread and needs-input icons in collapsed sections Sep 10, 2026
Prioritize needs-input, then CI failures in sessions that are not in progress, then unread state. Always exclude archived sessions and retain automatic experiment control.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@benibenj Benjamin Christopher Simmonds (benibenj) changed the title sessions: Show unread and needs-input icons in collapsed sections sessions: Show status indicators in collapsed sections Sep 10, 2026
Describe unread containment without implying an unread count, and clarify that the setting covers collapsed sections generally.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@benibenj
Benjamin Christopher Simmonds (benibenj) marked this pull request as ready for review September 10, 2026 21:33
@vs-code-engineering

Copy link
Copy Markdown
Contributor

📬 CODENOTIFY

The following users are being notified based on files changed in this PR:

Ulugbek Abdullaev (@ulugbekna)

Matched files:

  • src/vs/sessions/contrib/sessions/browser/views/sessionsList.ts
  • src/vs/sessions/contrib/sessions/test/browser/sessionsList.test.ts

Preserve both collapsed-section indicator coverage and upstream hover/diff-stat tests when resolving the session-list import conflicts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Capture the registered schema before configuration tests reset the shared registry, matching the existing Automations contribution test.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Record the 24 CI-rendered indicator fixtures, including the default-disabled variants, across all four themes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Preserve upstream empty-group coverage alongside the collapsed-section status tests and screenshot baselines.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep the new screenshot fixtures and browser tests without requiring committed baseline updates for their visual differences.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@benibenj
Benjamin Christopher Simmonds (benibenj) merged commit b2eb7c1 into main Sep 11, 2026
33 checks passed
@benibenj
Benjamin Christopher Simmonds (benibenj) deleted the benibenj/agents/unread-icon-collapsed-groups branch September 11, 2026 13:55
@vs-code-engineering vs-code-engineering Bot added this to the 1.139.0 milestone Sep 11, 2026
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.

6 participants