[
https://issues.apache.org/jira/browse/CAMEL-24007?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Work on CAMEL-24007 started by Adriano Machado.
-----------------------------------------------
> camel-jbang TUI: skip redundant full-screen re-render on idle ticks
> -------------------------------------------------------------------
>
> Key: CAMEL-24007
> URL: https://issues.apache.org/jira/browse/CAMEL-24007
> Project: Camel
> Issue Type: Improvement
> Reporter: Adriano Machado
> Assignee: Adriano Machado
> Priority: Major
>
> The Camel TUI \({{camel\-jbang\-plugin\-tui}}\) rebuilds and diffs the entire
> widget tree on every tick event. At the framework's default tick rate of 40ms
> this is \~25 redraws per second, even when the UI is idle and nothing has
> changed.
> Root cause: {{CamelMonitor.handleTickEvent}} unconditionally returns
> {{true}}, and the underlying TamboUI {{TuiRunner}} redraws whenever the event
> handler returns {{true}}. Application data only changes every
> {{refreshInterval}} \(default 500ms\), so roughly 24 of every 25 renders
> produce identical frames. There is no visual flicker \(the framework
> double\-buffers and diffs\), but it wastes CPU on every idle frame.
> Proposed fix: return {{true}} from the tick handler only when the periodic
> data refresh fired or an animation is in flight \(open shell/AI panel,
> sliding pinned\-log panel, canvas animation, typing/fading caption, header
> notification wave, or the recorded\-keystroke highlight\). All other
> time\-based UI elements are healed by the periodic data\-refresh redraw
> within 500ms.
> _Reported by Claude Code on behalf of ammachado._
--
This message was sent by Atlassian Jira
(v8.20.10#820010)