davsclaus opened a new pull request, #29385: URL: https://github.com/apache/camel/pull/29385
Stacked on #29384 (more on the timeline), on #29381, #29379 and #29378. This PR targets the branch of #29384; it needs the timeline the integration records. ## What When the TUI is opened on an integration you have not seen before, no screen gives the gist of what it does. The Overview was an operations table, the Diagram takes a while to read, and the AI summary needs an AI. **About** tells what an integration does and what has happened, at a glance and with no AI.  **The screen.** The Overview has two views, switched with `v`: **About**, shown when one integration runs, and **Integrations**, the table of all of them. - **Header**: version, runtime, files, routes, uptime, and the purpose. The purpose is the comment at the top of the main source file (YAML `#`, Java Javadoc or `//`, XML `<!-- -->`; a license header is no description), else the descriptions of the routes. - **In, Routes, Out**: what starts it, its routes, and what it talks to. A route called with `direct` sits under its caller with `↳`, one handed off with `seda` with `⇢`. Each line has its count since the start (exchanges, or sends to an endpoint) and a sparkline of the last 5 minutes with the rate now. - **Up and Down** select a line. **Enter** opens a route drilled down on the Diagram, or an endpoint with its details on the Endpoint tab. - **Last 5m**: the exchanges and how they ended, with the cause that happened most and when. - **What happened**: a line per route over the last 5 minutes, coloured as on the Timeline, with when the worst happened, the failure a recovery recovered from, and `⚡ open 10s` for a circuit breaker. **+ / -** zoom between 5, 2 and 1 minutes; zooming in centres on the last trouble, so you see what the other routes did at that moment. **Left and Right** move a zoomed window. `4` opens the Timeline for each second. - **Watch** and **Next**: errors, routes not started, in flight, and the keys that lead deeper. **`camel get about`** is the same as text, with `--json` for tools: ``` circuit-breaker (pid 32172) · Camel 4.24.0-SNAPSHOT · up 22m15s The shop checks stock at its supplier every second. … (from the comment at the top of circuit-breaker.camel.yaml) In timer:stock (period=1000) 1327 Routes stock-check timer → 6 steps 1327 ↳ supplier direct → 3 steps 1319 (3 failed) ... ``` **`camel_project_overview`** (MCP and the AI panel) has the purpose, and a `running` part with what has happened when the project runs from that directory. **One model.** The purpose, In, the route tree and Out are built in camel-jbang-core (`About`, `AboutReport`, from `ProjectOverview`), so the screen, the CLI and the tool say the same. Also: `tui_send_keys` can send a plain `+`, which was taken as the `+` between a modifier and a key. ## Docs An About section on the observe page, with a screenshot taken live on the chaos demo; `camel get about` on the diagnostics page; the tab table and the help page. The `camel get about` command page and the commands metadata are generated. ## Tests - `AboutTest`: In, the routes under their caller, Out, the purpose, and the report from a status and a timeline. - `ListAboutTest`: text and `--json`. - `AboutViewTest`: the screen with what has happened, sparklines, zoom, the recovered cause, circuit breaker seconds, the cursor and Enter, and the sends to an endpoint. - `EndpointsTabRenderTest`: an endpoint selected from About. - `CamelMonitorParseKeyTest`: the `+` key. - The CLI help golden is updated. The TUI (2376), MCP (540) and CLI tests pass locally; the AI panel's prompt budget still holds. Tried live on the chaos demo and the circuit-breaker example. Not in this PR: the "Good to know" hints (CAMEL-26716), from a rule set shared with the security scan and the Doctor. JIRA: https://issues.apache.org/jira/browse/CAMEL-26700 _Claude Code on behalf of Claus Ibsen_ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
