[ 
https://issues.apache.org/jira/browse/CAMEL-24397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18105118#comment-18105118
 ] 

Adriano Machado commented on CAMEL-24397:
-----------------------------------------

PR opened \(draft\): 
[https://github.com/apache/camel/pull/25514|https://github.com/apache/camel/pull/25514]

Companion upstream change proposed to TamboUI, which fixes this at the source 
for all downstream applications: 
[https://github.com/tamboui/tamboui/pull/418|https://github.com/tamboui/tamboui/pull/418]

_Claude Code on behalf of ammachado_



> camel-tui: --record produces no cast file because the recording backend is 
> never applied
> ----------------------------------------------------------------------------------------
>
>                 Key: CAMEL-24397
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24397
>             Project: Camel
>          Issue Type: Bug
>            Reporter: Adriano Machado
>            Assignee: Adriano Machado
>            Priority: Major
>
> h3. Problem
> {{camel tui \-\-record=}} exits cleanly but neither replays the tape nor 
> writes the {{.cast}} file. Nothing is logged, so the failure is 
> indistinguishable from success.
> h3. Root cause
> {{CamelMonitor}} sets the {{tamboui.record\*}} system properties correctly, 
> but nothing ever reads them.
> TamboUI applies recording in exactly one place, 
> {{BackendFactory.create\(\)}}, which calls {{RecordingConfig.load\(\)}} 
> \(installing the System.out capture and the shutdown hook that writes the 
> cast\) and wraps the backend in {{RecordingBackend}} \(which loads the tape 
> via {{InteractionPlayer}}\).
> {{TuiRunner.create\(\)}} only calls that factory when no explicit backend is 
> configured:
> {code:java}
> Backend backend = config.backend\(\) \!= null ? config.backend\(\) : 
> BackendFactory.create\(\);
> {code}
> {{TuiBackendHelper}} always supplies an explicit {{JLineBackend}}, so 
> {{BackendFactory.create\(\)}} never runs and recording is never engaged.
> h3. Regression* 3c3f2687d9e8 \(2026\-05\-20\) added {{\-\-record}} and used a 
> bare {{TuiRunner.create\(\)}}, so recording worked.
> * 36f9299d1322 \(2026\-05\-26\) introduced the explicit backend and silently 
> broke it.
> The explicit backend is deliberate and must stay: with tamboui\-aesh\-backend 
> on the classpath for {{\-\-web}}, ServiceLoader auto\-discovery can select 
> AeshBackend for the local session, which does not shut down cleanly. The fix 
> therefore applies the recording wrapper explicitly rather than reverting to 
> auto\-discovery.
> h3. Also in this change
> The recording geometry was hardcoded at 200x50 \(plus fps 10 and duration 
> 120000\). 200 columns is too wide to embed in a documentation page, so 
> {{\-\-record\-size}}, {{\-\-record\-fps}} and {{\-\-record\-duration}} are 
> added. Defaults are unchanged.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to