agent pane: Commit form keys and scope radios on src/ui, ui-rules base red (no bead)

Merged
TE
1mo ago
+161-29

Summary

Base red: webviews/test/ui-rules.test.ts failed every PR's react-apps-check after 75fd77581f5f (cx-ncc.1, Commit and Push in the changes view). It flagged a raw onKeyDown on the commit message (changes/GitActions.tsx:190) and a raw role="radiogroup" (:205).

This fixes the file on the shared parts rather than with a pending entry:

  • Message keys: Cmd-Return commits and Escape closes the form (not the changes view). Both now go through ui/KeyboardScope, with the same behavior as before.
  • Staged / All: the radios are a ui/ChoiceGroup, a native radio group in a fieldset, so the browser owns the roles, arrow keys and focus. From the radios, Return commits and Escape closes the form, as in the message. The fieldset's native border, margin and min-width are reset so the chip looks the same.
  • Gallery: a new entry agent-pane.changes-git-actions covers GitToolbarButtons and GitWriteBar, both removed from the gallery allowlist. Its variants are: toolbar, commit form, Include new files, busy, refused push with git's output, and a keyboard play (arrows move the scope radios, Escape in the message closes the form).

Testing

  • bun test test/ui-rules.test.ts: 3 pass, 1 fail on base (the two lines above), 4 pass, 0 fail here. No pending entry was added.
  • bun test test/gallery-coverage.test.ts passes with the two allowlist lines removed.
  • bun run check passes: oxlint, oxfmt, types, layers, type scale.
  • The gallery plays run in the gallery PR diff browsers.

Changelog

none

šŸ¤– Generated with Claude Code