Skip to content

In the Linux version's multiline mode, messages cannot be sent with Shift+Enter. #7093

Closed

Description

@luestr

Before you start

  • I searched existing issues and this is not a duplicate. 我已搜索过现有 issue。

What happened? 发生了什么?

After I set the multiline input mode, I can no longer send messages with Shift+Enter.

Steps to reproduce 复现步骤

Set to multiline input mode.

Codewhale version 版本

codewhale 1.10.2

Where did it happen? 在哪里出现?

TUI (terminal interface)

Operating system 操作系统

Linux

How did you get Codewhale? 获取方式

GitHub Releases download

Provider and model 提供商和模型

deepseek-v4.1-flash

Terminal and shell 终端

Deepin 25 Terminal + bash

codewhale doctor (optional)

Logs, screenshots, anything else (optional)

My operating system is Deepin 25.2.2, and the Linux kernel version is 6.18.48-amd64-desktop-rolling.

0.10.3 admission — founder, 2026-10-26

The founder explicitly admitted this report to the full 0.10.3 program. Original GitHub issue #7093 is assigned to milestone v0.10.3 (73); preserve the reporter's body and attribution to @luestr. Reuse this existing #7093 issue rather than filing a duplicate.

Reported environment: Deepin 25 Terminal + bash, Deepin 25.2.2, Linux 6.18.48-amd64-desktop-rolling, GitHub release install. Reported version is literally codewhale 1.10.2; do not silently treat that spelling as independently verified 0.10.2 evidence.

Root owns triage and integration. Inspect negotiated terminal key encoding and multiline submit dispatch, preserve newline/paste safety and existing user bindings, and distinguish terminal inability to encode Shift+Enter from a Codewhale dispatch regression. Acceptance requires a working, truthful submit path in multiline mode for legacy and enhanced keyboard input, existing focused checks, and direct terminal-sequence observations. No new permanent tests/comments requested. Source scope will be narrowed after discovery; do not edit the frozen shared native batch.

Source triage — 2026-10-26

The requested headless Codewhale helper completed using OrcaRouter deepseek/deepseek-v4.1-flash-1017; root independently checked the owning handler. An explicitly reported Shift+Enter in multiline mode reaches submit_decided_composer_input and then App::handle_composer_enter, which reapplies the paste-burst newline guard. Ctrl+Enter instead calls submit_input directly. This is a concrete dispatch defect; a fix must bypass the guard only for deliberate modified submission while preserving bare-Enter paste protection, slash-menu selection and launch/session behavior.

A separate compatibility path remains under investigation: legacy terminals can encode Enter and Shift+Enter identically. The current capability check is cached but can block for up to two seconds on its first call, so any capability-based handling must initialize before the input pump and keep rendering nonblocking. The reporter's actual Deepin key bytes have not been captured; do not claim their exact cause or a Linux reproduction yet.

Readonly helper report: /Volumes/VIXinSSD/CW/artifacts/headless-helpers-20261026/linux-multiline-7093/REPORT.md. Root integration owner remains unchanged; next patch stays outside the frozen native batch until that check completes. No correction is yet compiled, landed or shipped.

Local candidate evidence — 2026-10-26

The candidate now bypasses paste-burst newline handling only for deliberate modified submission, keeps Ctrl+Enter steering behavior, provides Alt+Enter as the portable multiline submit path, and initializes keyboard capability negotiation before the input reader starts. Help reflects the available capability.

The selected existing multiline/key-routing/paste checks passed within a TUI run of 914 passed and four unrelated failures, whose repairs are in progress. Eight scoped PTY observations passed for the frozen vendored event-read example: supported replies, flags-only timeout, delayed/fragmented replies, incomplete replies, unsupported terminal, silence, and source closure. Normal cases preserved ordinary input exactly once and in order; source closure surfaced an error promptly.

This is macOS PTY/source evidence. An actual Deepin terminal run and a fresh full Codewhale TUI observation remain open. The candidate is uncommitted and unshipped; keep this issue In Progress.

Activity

  1. added
    needs-triageNew external report awaiting maintainer triage; repro, logs and version output help
    on Oct 26, 2026
  2. added this to the v0.10.3 milestone on Oct 26, 2026
  3. removed
    needs-triageNew external report awaiting maintainer triage; repro, logs and version output help
    on Oct 28, 2026
  4. Hmbown commented on Oct 28, 2026

    @Hmbown
    Collaborator

    Fixed on main in 4cf2d2c with docs in fdcbb6c (multiline mode: Enter inserts a newline, Alt-Enter sends, verified on Linux); ships in 0.10.3.

  5. moved this from Backlog to Done in CodeWhaleon Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingv0.10.3

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions