mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-11-14 02:29:33 +01:00
fix: correct the pi wheel docs and comments (release review)
The gate comment in terminal-ui.js said a stale-false flag falls through to the PageUp/PageDown fallback, which is false for pi since the second commit of this PR removed that fallback. The FOOTGUN comment above it made the same claim. Say what happens instead. "Every pi below 1.0.0 emits no mouse enables" was too absolute: regular was the default there, but fullscreen exists from 0.84.0. Measured with --tui-mode fullscreen under tmux on 0.84.1, 0.85.0, 0.86.0 and 0.99.2: alternate_on=1, mouse_any_flag=1, mouse_sgr_flag=1. Default settings on 0.99.2 report all 0. Document that Wheel Scrolls Local History leaves the wheel dead in fullscreen pi (wiki, integration guide, changeset), add a pi block to Troubleshooting, cross-reference the accepted exception from the dead gesture rule in architecture-invariants, and mark the pi-integration-plan passages this PR reversed as superseded. Comments and docs only, no runtime change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b5aa3fbdf7
commit
b6eea702a8
8 files changed
+50
-17
No files matched your search
@@ -1186,8 +1186,10 @@ const PI: CliEntry = {
|
||||
// empty local buffer and went dead until a redraw. Same shape as copilot: strip the DECSETs
|
||||
// (a drag selects locally), publish `cliMouseTracking`, and forward the wheel by hand from
|
||||
// that flag. pi scrolls on SGR wheel reports, one row each at a low rate, faster on a spin.
|
||||
// `tuiMode: regular` (and every pi below 1.0.0) is inline and emits no mouse DECSET, so the
|
||||
// strip finds nothing and the flag stays false.
|
||||
// `tuiMode: regular`, the default below 1.0.0, is inline and emits no mouse DECSET, so the
|
||||
// strip finds nothing and the flag stays false. A pi from 0.84.0 set to fullscreen does emit
|
||||
// them (0.84.1 and 0.99.2 measured: alternate_on=1, mouse_any_flag=1, SGR) and the flag
|
||||
// covers it.
|
||||
// ⚠️ No `transcriptPageKeys`, though fullscreen pi does page on PageUp/PageDown. pi binds
|
||||
// those keys to its editor in regular mode too, where they page nothing and move the caret
|
||||
// of a multi-line draft, so a wheel over a fresh regular pane sent the next keystroke to the
|
||||
|
||||
@@ -6059,17 +6059,20 @@ Object.assign(CodemanApp.prototype, {
|
||||
// option, but it would override an explicit user choice; instead the caller
|
||||
// falls through to _maybePageCliTranscript, so the gesture still pages the
|
||||
// CLI's transcript (or loads unloaded tmux scrollback, see there) and the
|
||||
// setting keeps meaning exactly what it says.
|
||||
// setting keeps meaning exactly what it says. Pi is the accepted exception:
|
||||
// it declares no `transcriptPageKeys`, so with this on its wheel stays dead.
|
||||
if (this.loadAppSettingsFromStorage?.()?.terminalWheelLocalScrollback) return false;
|
||||
const mode = (target.terminal || this.terminal)?.modes?.mouseTrackingMode;
|
||||
if (mode && mode !== 'none') return false;
|
||||
const session = this.sessions?.get(target.sessionId || this.activeSessionId);
|
||||
const sessionMode = session?.mode || 'claude';
|
||||
// GitHub Copilot CLI (and pi, fullscreen by default) scrolls its own transcript on SGR wheel reports (checked with xterm
|
||||
// encoding them natively). Its mouse DECSETs are stripped server-side so a drag selects
|
||||
// locally (strip-mux-and-mouse), which also means xterm no longer encodes the wheel: send the
|
||||
// same reports by hand, but only while the CLI is actually tracking the mouse. Not gated on a
|
||||
// version; a stale-false flag falls through to the PageUp/PageDown fallback like claude's.
|
||||
// GitHub Copilot CLI (and pi, fullscreen by default) scrolls its own transcript on SGR wheel
|
||||
// reports (checked with xterm encoding them natively). Their mouse DECSETs are stripped
|
||||
// server-side so a drag selects locally (strip-mux-and-mouse), which also means xterm no longer
|
||||
// encodes the wheel: send the same reports by hand, but only while the CLI is actually tracking
|
||||
// the mouse. Not gated on a version. On Copilot a stale-false flag falls through to the
|
||||
// PageUp/PageDown fallback like claude's; pi has none on purpose (the `transcriptPageKeys` note
|
||||
// in stock.ts), so there the wheel does nothing until the flag is back.
|
||||
if (sessionMode === 'copilot' || sessionMode === 'pi') return session?.cliMouseTracking === true;
|
||||
if (sessionMode !== 'claude' && sessionMode !== 'codex') return false;
|
||||
if (sessionMode === 'claude' && !this._cliVersionAtLeast(session?.cliVersion, '2.1.187')) return false;
|
||||
|
||||
Reference in new issue
Block a user