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.
   
   ![About the chaos demo after an outage of the stock 
service](https://raw.githubusercontent.com/apache/camel/CAMEL-26700-about/docs/user-manual/modules/ROOT/images/jbang/camel-tui-about.png)
   
   **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]

Reply via email to