Claus Ibsen created CAMEL-26783:
-----------------------------------

             Summary: camel-jbang - Upgrade TamboUI to 0.7.0
                 Key: CAMEL-26783
                 URL: https://issues.apache.org/jira/browse/CAMEL-26783
             Project: Camel
          Issue Type: Dependency upgrade
          Components: camel-jbang
            Reporter: Claus Ibsen
             Fix For: 4.24.0


TamboUI 0.7.0 was released on 2026-11-09 and is on Maven Central (we are on 
0.6.0, see CAMEL-25580).
Release notes: https://github.com/tamboui/tamboui/releases/tag/v0.7.0

h3. Kitty keyboard protocol: better key bindings

0.7.0 supports the [Kitty keyboard 
protocol|https://sw.kovidgoyal.net/kitty/keyboard-protocol/] (tamboui#592, 
#610). The default AUTO mode enables it, and a terminal without support ignores 
it and stays in legacy mode. With it, key events carry reliable modifiers 
(ctrl, alt, shift, super), so combinations that legacy terminals send as plain 
Enter (or not at all) can be told apart:
* *AI prompt:* Ctrl+N inserts a line break today, because "terminals deliver 
Shift+Enter and Alt+Enter as plain Enter or nothing" ({{AiPanel}}). Use 
Shift+Enter (and Alt+Enter) for a line break, and keep Ctrl+N as the fallback 
for terminals without the protocol.
* *Ctrl+Enter:* for example to send or apply in the editors and prompts (source 
editor, Timeline AI prompt, expression evaluation).
* Check the other places where a binding was picked around missing modifiers, 
and the help/footer texts that list them.
* {{ShellPanel}} encodes TamboUI key events as ANSI sequences for the embedded 
terminal; check that modifiers are encoded.
* Bindings files are now loaded deterministically (last one wins), with an OS 
overlay {{<binding>-<os>.properties}} (tamboui#627), e.g. Cmd on macOS instead 
of Ctrl.

h3. Fixes that may let us remove workarounds

Check each against our code and remove the Camel side where it is no longer 
needed:
* {{KeyEvent.isTyping()}} and {{TextEditing}} (tamboui#612): our own text input 
handling (AI prompt, filters, captions, popups) could move to it. Word-wise 
editing (Ctrl+Left/Right, Ctrl+Backspace/Delete, tamboui#616) then comes for 
free.
* Key decoding: one key press running a handler several times (tamboui#481), 
sequences decoded as other keys or swallowing the next key (tamboui#517), 
ESC-prefix Alt keys / modifyOtherKeys / legacy Alt+control (tamboui#611), vim 
and emacs bindings fixes (tamboui#522, #492).
* Rendering: {{text()}} with {{\n}} renders each line on its own row 
(tamboui#469), wide characters, VS16 and grapheme clusters (tamboui#478, #619), 
screen cleared before the first frame (tamboui#618), markdown quotes/tables in 
lists and ellipsis styling (tamboui#503, #520), canvas and chart hangs 
(tamboui#526, #603, #490), layout spacing and {{Fill(0)}} (tamboui#468).
* Tables: content-based column widths with {{Constraint.fit()}} (tamboui#620) 
may replace some of our own column width code.

h3. Behaviour changes to check

The release notes warn that these fixes can break an app that worked around the 
old behaviour:
* The focused element now receives Tab before focus cycling (tamboui#617).
* Right and middle mouse PRESS events now reach element handlers (tamboui#622).

h3. Not in 0.7.0

These upstream PRs from the Camel side are still open, so the workarounds stay 
for now: {{Paragraph.lineCount(width)}} (tamboui#545, our 
{{TuiHelper.wrappedRows}}), {{Text.fromAnsi}} (tamboui#542), and the YAML 
highlighter fixes (tamboui#546, #547).



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to