Skip to content

Fix sidebar Space disclosure markers#308

Merged
DeadWaveWave merged 2 commits into
mainfrom
fix/sidebar-space-arrow
Jul 12, 2026
Merged

Fix sidebar Space disclosure markers#308
DeadWaveWave merged 2 commits into
mainfrom
fix/sidebar-space-arrow

Conversation

@DeadWaveWave

@DeadWaveWave DeadWaveWave commented Jul 12, 2026

Copy link
Copy Markdown
Owner

💡 Change Scope

  • Small Change: Fast feedback, localized UI/logic, low-risk.
  • Large Change: New feature, cross-boundary logic, runtime-risk (persistence, IPC, lifecycle, recovery).

📝 What Does This PR Do?

Fixes the sidebar Space affordance so expandability and rail identity are represented separately.

The previous implementation reused the disclosure icon for every Space. Empty Spaces therefore displayed a left-side arrow even though they had no child agents to expand, while removing that arrow wholesale made expandable Spaces ambiguous in the collapsed rail.

This PR:

  • keeps the disclosure chevron for Spaces that contain agents;
  • shows a subtle 6 px leaf marker only for empty Spaces in rail mode;
  • removes disclosure affordances and aria-expanded semantics from empty Spaces;
  • aligns empty-Space labels with other Space labels in expanded and peek modes;
  • adds component and Electron E2E coverage for parent/leaf semantics, rail/peek/docked rendering, themes, and transition timing.

🏗️ Large Change Spec (Required if "Large Change" is checked)

Not applicable — this is a localized Small Change with no new mutable state, persistence, IPC, or lifecycle behavior.

1. Context & Business Logic

A Space with agents is expandable and keeps a chevron. An empty Space is a leaf and gets only a passive rail marker.

2. State Ownership & Invariants

Rendering remains derived from the existing renderer-owned agent list.

  • Only Spaces with agents expose a disclosure control and aria-expanded.
  • Empty Spaces never imply expandability.
  • Rail markers disappear cleanly as labels appear during peek/expand transitions.

3. Verification Plan & Regression Layer

Component tests lock down accessibility semantics. Electron E2E tests lock down geometry, themes, responsive sidebar modes, and transition behavior. The complete repository pre-commit gate passed.


✅ Delivery & Compliance Checklist

  • My code passes the ultimate gatekeeper: pnpm pre-commit is completely green.
  • I have signed the CLA if required (project steward contribution; no separate signature required).
  • I have included new tests to lock down the behavior.
  • I have strictly adhered to the DEVELOPMENT.md architectural boundaries.
  • I have attached a screenshot or screen recording (if this touches the UI).
  • I have updated the documentation accordingly (CHANGELOG entry added in a separate commit; no feature or contract documentation changed).

📸 Screenshots / Visual Evidence

Playwright visual evidence was generated for light/dark themes and rail/peek/docked states. GitHub's browser upload surface was unavailable in this run, so the review-only contact sheet remains ready for manual attachment and is intentionally not committed to the repository.

@DeadWaveWave DeadWaveWave marked this pull request as ready for review July 12, 2026 10:04
@DeadWaveWave DeadWaveWave merged commit 7809ab4 into main Jul 12, 2026
9 checks passed
@DeadWaveWave DeadWaveWave deleted the fix/sidebar-space-arrow branch July 12, 2026 10:05
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