fix(sidebar): make Done and Show more folds accessible

Closed
TE
7d ago
+115-4

Done and Show more rows expose disclosure semantics to VoiceOver but had no AXPress action, so keyboard and assistive technology users could not open or close them. This slice adds a shared fold action used by mouse and AXPress, clears callbacks on reuse, rejects stale or hidden rows, and adds focused regression coverage.

Leo's sidebar rule (2026-10-29): “the sidebar ... every surface ... ultra fast and ultra responsive”; the audit rule requires the Done and Show more controls to remain usable through accessibility activation. This behavior-only patch preserves the existing visual treatment.

Changes

  • Add SidebarFoldAction as the single validated toggle path.
  • Wire SidebarDoneFoldRowView.accessibilityPerformPress() for Done and Show more.
  • Clear and rebind callbacks during row reuse.
  • Add tests for open/close, AXExpanded state, stale callback reuse, and hidden rows.

Validation

  • git diff --check passed.
  • Focused fleet Mac test passed: cmux-ci step 04bad3d6e94bed220d5347e2, key ui-land-pr27671-head-97392906, exit 0.
  • The earlier Linux route crashed with signal 4 before tests; this is superseded by the successful fleet Mac receipt above.
  • Independent Astra review at exact head 97392906386f11a17b3b2e429883511c07b7c43c returned SHIP with Visual verdict PASS; receipt comment is on the PR.
  • No before/after capture: activation-only change with no visual treatment change.

Changelog

Changed: Done and Show more sidebar folds can be opened and closed through VoiceOver/AXPress, with mouse and accessibility activation sharing one state path.

risk: normal

agent-identity footer --repo manaflow-ai/cmux