Skip to content

fix(ui-tui): Shift+Enter inserts newline instead of submitting#1

Open
Speedway1 wants to merge 1 commit into
mainfrom
fix/shift-enter-newline
Open

fix(ui-tui): Shift+Enter inserts newline instead of submitting#1
Speedway1 wants to merge 1 commit into
mainfrom
fix/shift-enter-newline

Conversation

@Speedway1

Copy link
Copy Markdown
Owner

Summary

In the Hermes TUI, Alt+Enter correctly inserts a newline in the text input, but Shift+Enter was incorrectly submitting the message instead.

This PR makes Shift+Enter insert a newline (like Alt+Enter) and limits plain Enter to submission only.

Changes

  • Patched [email protected] (ui-tui/node_modules/ink-text-input/build/index.js): Added !key.shift guard to the key.return submit handler so Shift+Enter falls through to the newline-insertion path.
  • Added patch-package for reproducible patching across npm install runs.
  • ui-tui/package.json: Added postinstall: patch-package script.

Technical detail

ink-text-input's useInput handler had:

if (key.return) {   // submits on ANY Enter
    onSubmit(originalValue);
    return;
}

Now:

if (key.return && !key.shift) {   // only plain Enter submits
    onSubmit(originalValue);
    return;
}

Testing

Verified manually in the Hermes TUI:

  • Plain Enter submits the message
  • Shift+Enter inserts a newline
  • patch-package applies cleanly after npm install

Patch ink-text-input to only submit on plain Enter; Shift+Enter now
inserts a newline (consistent with Alt+Enter).

Added patch-package with postinstall hook so the patch survives npm install.
Speedway1 pushed a commit that referenced this pull request May 16, 2026
…ssthrough, framenavigated relocation

CRITICAL (Critic Finding #1): PulseAudio mute/unmute helpers defaulted to
'tess_mic_*' but AudioBridge creates 'hermes_meet_*' — entire mute/unmute
lifecycle was a silent no-op. Now passes actual device names from
bridge_info through TessRealtimeSession.__init__() → speak().

HIGH (Critic Finding NousResearch#3): framenavigated handler registered before
page.goto() could false-trigger on initial navigation with edge-case
meeting URLs. Moved registration to AFTER page.goto() completes.

Review: Heterogeneous 5-Agent protocol — Architect (GLM 5.1), Critic
(Minimax M2.7), Alternative (Kimi K2.6, timed out). 16 total findings,
2 CRITICAL fixed immediately.
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.

2 participants