[
https://issues.apache.org/jira/browse/CAMEL-26783?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen reassigned CAMEL-26783:
-----------------------------------
Assignee: Claus Ibsen
> 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
> Assignee: Claus Ibsen
> Priority: Major
> 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)