5cee2d84
docs: require Shift-drag in application mouse parity
a73x 2026-09-06 08:35
Commit message
RETRO.md
| Old | New | ||
|---|---|---|---|
| @@ -1229,3 +1229,11 @@ alongside GUI paste and copy feedback. See the upstream explanation at | |||
| 1229 | https://code.claude.com/docs/en/fullscreen#keep-native-text-selection . | 1229 | https://code.claude.com/docs/en/fullscreen#keep-native-text-selection . |
| 1230 | Confirmation of copying is hands-on feedback, | 1230 | Confirmation of copying is hands-on feedback, |
| 1231 | not acceptance of the whole sprint or authorization to end daemon sessions. | 1231 | not acceptance of the whole sprint or authorization to end daemon sessions. |
| 1232 | |||
| 1233 | The user confirmed Shift+drag belongs to the overall mouse feature. It is now | ||
| 1234 | required acceptance for the application mouse/clipboard slice: force native | ||
| 1235 | selection despite application mouse reporting, retain gesture ownership through | ||
| 1236 | release and modifier changes, and prevent reports or text leaking across panes. | ||
| 1237 | The wheel plan records the remaining order: wheel/history first, application | ||
| 1238 | mouse/clipboard next. The latter slice's planner owns carrying these criteria | ||
| 1239 | into implementation, tests and the demo; GUI paste remains deferred. | ||
docs/superpowers/plans/2026-09-06-native-text-selection.md
| Old | New | ||
|---|---|---|---|
| @@ -203,3 +203,26 @@ parity must distinguish alternate-screen mode from requested mouse reporting: | |||
| 203 | TUI `Core.forward` already uses `TermModes.appMouse()`. Native application mouse | 203 | TUI `Core.forward` already uses `TermModes.appMouse()`. Native application mouse |
| 204 | forwarding and application clipboard effects are both missing; the pump currently | 204 | forwarding and application clipboard effects are both missing; the pump currently |
| 205 | skips `clipboard_set`. GUI paste stays deferred by the user's clarification. | 205 | skips `clipboard_set`. GUI paste stays deferred by the user's clarification. |
| 206 | |||
| 207 | ## Required follow-up: application mouse and clipboard behavior | ||
| 208 | |||
| 209 | Shift+drag is part of the overall mouse feature, as confirmed by the user; it is | ||
| 210 | required when adding application mouse forwarding, not an optional later polish. | ||
| 211 | The next planned slice is [wheel scrolling](2026-09-06-native-wheel-scrolling.md). | ||
| 212 | The following application mouse/clipboard slice must demonstrate: | ||
| 213 | |||
| 214 | - Normal click/drag reaches applications that request mouse reporting, using | ||
| 215 | coordinates relative to the starting pane. Alternate-screen mode alone does | ||
| 216 | not decide mouse ownership. | ||
| 217 | - Shift+drag forces mux's native selection and copy even when the application | ||
| 218 | requests mouse reporting. No part of that drag reaches the application. | ||
| 219 | - A gesture keeps its chosen owner through motion and release, including modifier | ||
| 220 | changes and crossing another pane; cancellation cannot leave an application | ||
| 221 | with a stuck button or copy text from a different pane. | ||
| 222 | - Application-issued clipboard writes reach the desktop through the existing | ||
| 223 | validated clipboard-effect path. Verify actual PTY mouse reports and an | ||
| 224 | independent clipboard reader, plus a real application's selection/copy flow. | ||
| 225 | |||
| 226 | Owner: the planner and implementer of the application mouse/clipboard slice under | ||
| 227 | parity issue `8b16e26b`. Include the Shift override in that slice's demo and tests | ||
| 228 | before declaring application mouse parity complete. GUI paste remains deferred. | ||
docs/superpowers/plans/2026-09-06-native-wheel-scrolling.md
| Old | New | ||
|---|---|---|---|
| @@ -12,6 +12,15 @@ arrow input in an alternate-screen application without mouse reporting, and | |||
| 12 | terminal mouse reports when an application requests them. Match existing TUI | 12 | terminal mouse reports when an application requests them. Match existing TUI |
| 13 | behavior while keeping each pane independent. | 13 | behavior while keeping each pane independent. |
| 14 | 14 | ||
| 15 | ## Order within the overall mouse feature | ||
| 16 | |||
| 17 | After visible-text selection, this wheel slice is the next planned sprint item. | ||
| 18 | Application click/drag forwarding and application clipboard writes follow it. | ||
| 19 | That slice includes Shift+drag as the required native-selection override; see | ||
| 20 | the [application mouse acceptance criteria](2026-09-06-native-text-selection.md#required-follow-up-application-mouse-and-clipboard-behavior). | ||
| 21 | Wheel delivery alone does not complete the overall mouse feature. Preserve native | ||
| 22 | selection and copy throughout these slices; GUI paste remains deferred. | ||
| 23 | |||
| 15 | ## Observable acceptance | 24 | ## Observable acceptance |
| 16 | 25 | ||
| 17 | - Three panes on two daemons, including off-origin and unfocused panes. Wheel | 26 | - Three panes on two daemons, including off-origin and unfocused panes. Wheel |