Skip to content

fix(pi-leader-key): move leader palette shortcut to Ctrl+Q - #3

Merged
edheltzel merged 3 commits into
masterfrom
fm/leader-key-ctrl-x
Aug 20, 2026
Merged

edheltzel merged 3 commits into
masterfrom
fm/leader-key-ctrl-x

Conversation

@edheltzel

Copy link
Copy Markdown
Owner

Intent

Rebound pi-leader-key off conflicting ctrl+x to Ctrl+Q. Keep /lk. Update README, extensions/pi-leader-key/AGENTS.md, and any tests/docs that still say Ctrl+X. Do not add a settings/config layer unless the existing code already has one. Do not touch pi-tool-pills. Confirm the new chord against Pi's own keybinding docs/source so current installed Pi does not already bind it. Atlas-Key signed commit and PR; attach exactly one risk label (risk:low|medium|high|critical).

What Changed

  • Rebind the leader palette from Ctrl+X to Ctrl+Q while preserving the /lk command.
  • Update package metadata and documentation to describe the new shortcut and Pi’s existing Ctrl+X binding.
  • Add registration coverage confirming only Ctrl+Q is registered and both supported triggers open the overlay.

Risk Assessment

✅ Low: The change is a bounded shortcut rebinding with aligned documentation; /lk remains intact, no configuration layer or pi-tool-pills changes were introduced, the Atlas-Key signature is valid, and installed Pi 0.84.2 reserves Ctrl+X but has no Ctrl+Q binding.

Testing

After repairing the initially missing local dependencies with an offline, script-disabled install, the focused registration test passed; installed Pi 0.84.2 confirmed Ctrl+X is occupied and Ctrl+Q is free, and live TUI captures visibly demonstrated both Ctrl+Q and /lk opening the palette before all transient test state was cleaned up.

  • Evidence: Live Pi 0.84.2 Ctrl+Q palette (local file: /var/folders/88/3h9cyc4979d2l6p7xkn79yqr0000gn/T/no-mistakes-evidence/01M0E15EBVSWFFV82GT2V5QR47/ctrl-q-palette.png)
  • Evidence: Live Pi 0.84.2 /lk palette (local file: /var/folders/88/3h9cyc4979d2l6p7xkn79yqr0000gn/T/no-mistakes-evidence/01M0E15EBVSWFFV82GT2V5QR47/slash-lk-palette.png)
Evidence: Installed Pi keybinding audit

Installed Pi: 0.84.2 Ctrl+X: app.message.copy and app.models.clearAll Ctrl+Q: no assignment in shipped keybinding docs

Installed Pi: 0.84.2
Keybinding source: /Users/ed/.bun/install/global/node_modules/@earendil-works/pi-coding-agent/docs/keybindings.md

Ctrl+X assignments in shipped Pi docs:
21:Modifier combinations: `ctrl+shift+x`, `alt+ctrl+x`, `ctrl+shift+alt+x`, `super+k`, `ctrl+super+k`, `ctrl+1`, etc.
160:| `app.message.copy` | `ctrl+x` | Copy the last assistant message, or the selected message in `/tree` |
188:| `app.models.clearAll` | `ctrl+x` | Clear all models (or all matching the current search) |

Ctrl+Q assignments in shipped Pi docs:
none

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

✅ **Test** - passed

✅ No issues found.

  • git diff --name-status 0ebf037ca4df1c6385e641989a4fd71d8702369d 90c353d4d42752ddf4c3fed451593d2cb20e4a82
  • git show --show-signature --format=fuller --no-patch 90c353d4d42752ddf4c3fed451593d2cb20e4a82
  • Repository-wide rg for stale pi-leader-key Ctrl+X references and installed Pi keybindings
  • pnpm exec vitest --run --root . extensions/pi-leader-key/tests/overlay.unit.test.ts (initially exposed missing dependencies)
  • pnpm install --frozen-lockfile --offline --ignore-scripts
  • pnpm exec vitest --run --root . extensions/pi-leader-key/tests/overlay.unit.test.ts (retry passed)
  • Bounded PI_OFFLINE=1 pi --no-extensions … -e ./extensions/pi-leader-key/src/index.ts tmux session
  • tmux send-keys … C-q and reviewer-visible pane capture
  • tmux send-keys … -l '/lk' plus Enter and reviewer-visible pane capture
  • ImageMagick rendering and visual inspection of both live TUI captures
  • Removed the bounded tmux session and transient node_modules dependency tree
✅ **Document** - passed

✅ No issues found.

⏭️ **Lint** - skipped
  • 🚨 extensions/pi-leader-key/tests/overlay.unit.test.ts:45 - Scoped static analysis fails with TS2493: the mock is inferred as zero-argument, so accessing custom.mock.calls[0]?.[1] is invalid; this pass forbids modifying tests.
✅ **Push** - passed

✅ No issues found.

Pi already uses ctrl+x for app.message.copy, so the extension shortcut was skipped.
@Atlas-Key Atlas-Key added the risk:low Low risk change label Aug 19, 2026
@edheltzel
edheltzel merged commit d6dd28b into master Aug 20, 2026
1 check failed
@edheltzel
edheltzel deleted the fm/leader-key-ctrl-x branch August 20, 2026 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:low Low risk change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants