add a permission-mode cycler to the primary Claude pane

T-226. The primary pane showed the permission mode but had no way to
change it (only the cockpit roster did, T-181). Add three affordances,
all cycling the safe trio default -> acceptEdits -> plan over the
stream-json control channel:

- Ctrl/Cmd+M while the composer is focused, intercepted at the composer
  so it targets that pane's session. Shift+Tab (the CLI chord) is
  deliberately NOT used — Tab/Shift+Tab are real a11y focus-traversal
  intents since T-204.
- The status-line mode label is now an interactive badge (ClideTappable):
  click, or focus + Enter/Space, cycles it.
- A "Claude: Cycle permission mode" palette command targeting the primary
  session.

bypassPermissions stays out of every cycle path here — it's reachable
only via the cockpit's explicit confirm (T-181). Shared helpers
(nextSafePermissionMode, statusSegmentsAroundMode) live in claude_status;
the cockpit's existing copy is left untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-03 13:45:52 +02:00
co-authored by Claude Opus 4.8
parent bda53b3bb1
commit 6c4c48bfc2
9 changed files with 217 additions and 12 deletions
+4
View File
@@ -18,6 +18,10 @@ heading, and (b) bumping `pubspec.yaml` `version:` in the same commit.
### Added
- Cycle Claude's permission mode from the primary pane: Ctrl/Cmd+M while the
composer is focused, a clickable mode badge in the status line, or the
"Claude: Cycle permission mode" palette command — steps default → accept-edits
→ plan (bypass stays behind the cockpit's confirm). (T-226)
- `clide pane list` now reflects the live GUI tabs the user sees (Claude, Files,
Editor, viewers) alongside PTY panes — each with a stable id, slot, title, and
active/visible state — by snapshotting the kernel panel layout at request time.