Skip to content

CAMEL-23623: Add Errors tab to Camel TUI#23573

Merged
davsclaus merged 3 commits into
mainfrom
CAMEL-23623
May 27, 2026
Merged

CAMEL-23623: Add Errors tab to Camel TUI#23573
davsclaus merged 3 commits into
mainfrom
CAMEL-23623

Conversation

@davsclaus
Copy link
Copy Markdown
Contributor

Summary

  • Add Errors tab to Camel TUI with master/detail layout for viewing captured routing errors from the ErrorRegistry
  • Separate error data into dedicated {pid}-error.json file to keep status file lightweight — status file only contains error count for badge display, full data loaded on demand
  • Update camel get error CLI to read from the separate error file
  • Reorder TUI tabs: Overview, Log, Routes, Endpoints, HTTP, Health, Inspect, Errors, Circuit Breaker, Consumers
  • Fix word-wrap content height underestimation in renderDetailPanel that prevented scrolling to the bottom of detail panes

Errors Tab Features

  • Table columns: ID, AGO, ROUTE, NODE, HANDLED (green/red), EXCEPTION, MESSAGE
  • Sortable by: id, age, route, node, exception (s key to cycle, S to reverse)
  • Detail pane shows: exception with stack trace, message history, exchange properties, variables, headers, body
  • Toggles: f handled filter [all/true/false], p properties, v variables, h headers, b body, w word-wrap
  • Navigation: PgUp/PgDn scroll detail, Home/End top/bottom, ←→ horizontal scroll (when wrap off)
  • Badge shows error count in red on tab bar

Test plan

  • Run a Camel integration that produces errors (e.g., circuit-breaker example with forced exceptions)
  • Open TUI and press 8 to switch to Errors tab
  • Verify error table shows captured errors with correct columns and badge count
  • Select an error and verify detail pane shows exception, stack trace, message history, headers, body
  • Test scroll: PgUp/PgDn, Home/End, arrow keys with wrap off
  • Test toggles: s (sort), f (handled filter), p/v/h/b (section toggles), w (word wrap)
  • Verify camel get error CLI still works correctly
  • Verify other tabs are unaffected by the tab reorder

Claude Code on behalf of Claus Ibsen

🤖 Generated with Claude Code

davsclaus and others added 3 commits May 27, 2026 18:11
Add a new Errors tab (key 0) showing captured routing errors from the
ErrorRegistry in a master/detail layout. The master table displays AGO,
ROUTE, NODE, HANDLED, EXCEPTION and MESSAGE columns. The detail pane
shows exchange info, exception with stack trace, message history,
variables, properties, headers and body with scrolling support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Separate error data into dedicated {pid}-error.json file to keep status file lightweight
- Status file only contains error metadata (count); full data loaded on demand when Errors tab is active
- Add master/detail layout with sortable table (ID, AGO, ROUTE, NODE, HANDLED, EXCEPTION, MESSAGE)
- Detail pane shows exception with unescaped stack trace, message history, properties, variables, headers, body
- Add toggles: f=handled filter, p=properties, v=variables, h=headers, b=body, w=word-wrap, s=sort
- Add Home/End keys for jumping to top/bottom of detail pane
- Fix word-wrap content height underestimation in renderDetailPanel that prevented scrolling to bottom
- Update camel get error CLI to read from separate error file

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move Errors tab next to Inspect (History), and Consumers to last.
New order: Overview, Log, Routes, Endpoints, HTTP, Health,
Inspect, Errors, Circuit Breaker, Consumers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions github-actions Bot added the dsl label May 27, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🌟 Thank you for your contribution to the Apache Camel project! 🌟
🤖 CI automation will test this PR automatically.

🐫 Apache Camel Committers, please review the following items:

  • First-time contributors require MANUAL approval for the GitHub Actions to run
  • You can use the command /component-test (camel-)component-name1 (camel-)component-name2.. to request a test from the test bot although they are normally detected and executed by CI.
  • You can label PRs using skip-tests and test-dependents to fine-tune the checks executed by this PR.
  • Build and test logs are available in the summary page. Only Apache Camel committers have access to the summary.

⚠️ Be careful when sharing logs. Review their contents before sharing them publicly.

@davsclaus davsclaus merged commit a1a95ed into main May 27, 2026
6 checks passed
@davsclaus davsclaus deleted the CAMEL-23623 branch May 27, 2026 18:30
@github-actions
Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • dsl/camel-cli-connector
  • dsl/camel-jbang/camel-jbang-core
  • dsl/camel-jbang/camel-jbang-plugin-tui

⚠️ Some tests are disabled on GitHub Actions (@DisabledIfSystemProperty(named = "ci.env.name")) and require manual verification:

  • dsl/camel-jbang/camel-jbang-core: 1 test(s) disabled on GitHub Actions

💡 Manual integration tests recommended:

You modified dsl/camel-jbang/camel-jbang-core. The related integration tests in dsl/camel-jbang/camel-jbang-it are excluded from CI. Consider running them manually:

mvn verify -f dsl/camel-jbang/camel-jbang-it -Djbang-it-test
All tested modules (8 modules)
  • Camel :: DSL :: CLI Connector
  • Camel :: DSL :: CLI Debug
  • Camel :: JBang :: Core
  • Camel :: JBang :: MCP
  • Camel :: JBang :: Plugin :: Route Parser
  • Camel :: JBang :: Plugin :: TUI
  • Camel :: JBang :: Plugin :: Validate
  • Camel :: Launcher :: Container

⚙️ View full build and test results

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant