mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-11-15 02:49:33 +01:00
fix(pi): forward the wheel from cliMouseTracking so scrolling survives replay
pi 1.4.0 is an alt-screen TUI that enables mouse tracking once at start. Codeman's replay (tab switch, reload) drops that mode in xterm (mouseTrackingMode none, baseY 0), so the wheel hit an empty local buffer and stayed dead until a resize made pi redraw. Same shape as copilot: altScreen strip-mux-and-mouse (the server records the stripped DECSETs as cliMouseTracking, which survives the replay), wheelForward always, transcriptPageKeys (PageUp/PageDown fallback for a stale flag, measured on pi 1.4.0). _shouldForwardWheelToApp treats pi like copilot. Registry pins and docs updated. Tests: 2 new in terminal-scroll-routing (red before). Full run: 12989 passed, 5 red from the de_DE locale / XDG env (custom-model-run-menu-ui, git-worktrees, edit-history-sync), all green under LANG=C.UTF-8. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> (cherry picked from commit 53e4136d9f4401e9250ac6a122599ffcb2a57e8a)
This commit is contained in:
1 parent
46b85fa6d0
commit
58dae1e182
8 files changed
+52
-24
No files matched your search
@@ -1180,7 +1180,15 @@ const PI: CliEntry = {
|
||||
// (hasTrustRequiringProjectResources, pi 1.1.0), which would stall a spawned worker on
|
||||
// a dialog. pi reads the user-level `~/.agents/skills` without that prompt, so a pi
|
||||
// user installs it there (`npx skills add Ark0N/Codeman --skill codeman -g`).
|
||||
altScreen: 'preserve', // pi's TUI renders into the main screen with terminal-owned scrollback
|
||||
// pi 1.4.0 measured (tmux pane: alternate_on=1, history_size=0, mouse on, SGR): a fullscreen
|
||||
// TUI that enables tracking once at start. Codeman's replay (tab switch, reload) drops that
|
||||
// mode in xterm, so the wheel hit an 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 (1 line per report)
|
||||
// and on PageUp/PageDown, which is the fallback for a stale flag.
|
||||
altScreen: 'strip-mux-and-mouse',
|
||||
wheelForward: { mode: 'always' },
|
||||
transcriptPageKeys: true,
|
||||
echo: { policy: 'buffer', anchor: { kind: 'cursor' } },
|
||||
// Measured on a live pi 1.1.0 pane (capture-pane every 250 ms through a turn,
|
||||
// 2026-10-09): pi has no composer glyph. Its composer sits between two `─` rules, and
|
||||
|
||||
@@ -560,8 +560,8 @@ export interface CliCapabilities {
|
||||
* own mouse support must work in the pane (htop/vim in a shell).
|
||||
*
|
||||
* Stock CLIs: `strip-full` = claude, codex, gemini (Ink TUIs); `strip-mux-and-mouse` =
|
||||
* opencode and copilot (full-screen TUIs that enable tracking themselves); `strip-mux-only` =
|
||||
* antigravity, grok, deepseek, omp; `preserve` = shell, pi.
|
||||
* opencode, copilot and pi (full-screen TUIs that enable tracking themselves); `strip-mux-only` =
|
||||
* antigravity, grok, deepseek, omp; `preserve` = shell.
|
||||
*
|
||||
* A fourth combination is the point to split this into flags; three is still cheaper
|
||||
* as an enum.
|
||||
|
||||
Reference in new issue
Block a user