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
@@ -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