Skip to content

feat(composer): Ctrl+P / Ctrl+N navigate input-prefix pickers when open#662

Merged
esengine merged 1 commit into
mainfrom
feature/issue-647-slash-ctrl-np
May 11, 2026
Merged

feat(composer): Ctrl+P / Ctrl+N navigate input-prefix pickers when open#662
esengine merged 1 commit into
mainfrom
feature/issue-647-slash-ctrl-np

Conversation

@esengine

Copy link
Copy Markdown
Owner

When any of the three input-prefix pickers is active — slash command (/), @-mention file picker, or slash-argument enum picker — Ctrl+P and Ctrl+N now move the highlighted row up/down, matching what ↑/↓ already do. Falls through to prompt-history recall when no picker is open, so single-key bash parity is preserved.

Previously Ctrl+P / Ctrl+N always handed off to history recall regardless of picker state — reported as keymap inconsistency in #647 (the external-editor change is #661; this is the keymap half).

Closes #647

Test plan

  • npm run verify — 2601 passed, 2 skipped
  • Manual: type /, hit Ctrl+N / Ctrl+P, verify the slash picker selection moves

When any of the three input-prefix pickers is active — slash command
(`/`), @-mention file picker, or slash-argument enum picker — Ctrl+P
and Ctrl+N now move the highlighted row up/down, matching what ↑/↓
already do. Falls through to prompt-history recall when no picker is
open, so single-key bash parity is preserved.

Previously Ctrl+P/N always handed off to history recall regardless of
picker state — reported as keymap inconsistency in issue #647 (the
external-editor change is its own PR; this is the keymap half).

Implementation: `App.tsx` wraps `recallPrev` / `recallNext` from
`useInputRecall` in two memoized callbacks that consult atState /
slashArgMatches / slashMatches first (priority matching the existing
↑/↓ handler's order), and routes them into `PromptInput` instead of
the raw recall functions.

Closes #647
@esengine esengine force-pushed the feature/issue-647-slash-ctrl-np branch from 2e657c6 to 1be8cac Compare May 11, 2026 08:42
@esengine esengine merged commit 6782e90 into main May 11, 2026
3 checks passed
@esengine esengine deleted the feature/issue-647-slash-ctrl-np branch May 11, 2026 08:45
@esengine esengine mentioned this pull request May 11, 2026
6 tasks
esengine added a commit that referenced this pull request May 11, 2026
Hotfix for 0.39.0 install failure: the `postinstall: patch-package`
hook + missing `patch-package` runtime dep + missing `patches/` in the
files array meant fresh `npm install` / `npx reasonix@latest` runs
crashed before the binary was usable. 0.39.0 has been deprecated on
npm and `latest` rolled back to 0.38.0.

Removes the patch-package machinery entirely — it can't work for a
published library since npm hoists `ink` out of reasonix's own
`node_modules`. The ink alt-screen render fix (#639) will return via
a forked ink + `npm:` alias (#663) in a later release.

Piggybacks three PRs that landed since 0.39.0:
- #632 fix(web): actionable web_search / web_fetch errors
- #661 feat(composer): Ctrl+X opens \$EDITOR
- #662 feat(composer): Ctrl+P / Ctrl+N picker navigation
ChasLui pushed a commit to ChasLui/DeepSeek-Reasonix that referenced this pull request May 23, 2026
…en (esengine#662)

When any of the three input-prefix pickers is active — slash command
(`/`), @-mention file picker, or slash-argument enum picker — Ctrl+P
and Ctrl+N now move the highlighted row up/down, matching what ↑/↓
already do. Falls through to prompt-history recall when no picker is
open, so single-key bash parity is preserved.

Previously Ctrl+P/N always handed off to history recall regardless of
picker state — reported as keymap inconsistency in issue esengine#647 (the
external-editor change is its own PR; this is the keymap half).

Implementation: `App.tsx` wraps `recallPrev` / `recallNext` from
`useInputRecall` in two memoized callbacks that consult atState /
slashArgMatches / slashMatches first (priority matching the existing
↑/↓ handler's order), and routes them into `PromptInput` instead of
the raw recall functions.

Closes esengine#647
ChasLui pushed a commit to ChasLui/DeepSeek-Reasonix that referenced this pull request May 23, 2026
Hotfix for 0.39.0 install failure: the `postinstall: patch-package`
hook + missing `patch-package` runtime dep + missing `patches/` in the
files array meant fresh `npm install` / `npx reasonix@latest` runs
crashed before the binary was usable. 0.39.0 has been deprecated on
npm and `latest` rolled back to 0.38.0.

Removes the patch-package machinery entirely — it can't work for a
published library since npm hoists `ink` out of reasonix's own
`node_modules`. The ink alt-screen render fix (esengine#639) will return via
a forked ink + `npm:` alias (esengine#663) in a later release.

Piggybacks three PRs that landed since 0.39.0:
- esengine#632 fix(web): actionable web_search / web_fetch errors
- esengine#661 feat(composer): Ctrl+X opens \$EDITOR
- esengine#662 feat(composer): Ctrl+P / Ctrl+N picker navigation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add the function of inputting dialogues using an external editor

1 participant