[
https://issues.apache.org/jira/browse/CAMEL-26700?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen reassigned CAMEL-26700:
-----------------------------------
Assignee: Claus Ibsen
> camel-jbang - an About screen in the Overview: what an integration does, at a
> glance and without AI
> ---------------------------------------------------------------------------------------------------
>
> Key: CAMEL-26700
> URL: https://issues.apache.org/jira/browse/CAMEL-26700
> Project: Camel
> Issue Type: New Feature
> Components: camel-jbang
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Major
> Fix For: 4.24.0
>
>
> When the terminal UI is opened on an integration you have not seen before, no
> screen gives the gist of what it does. The Overview is an operations table
> with one row and a chart. The Diagram takes a while to read, so people go and
> look at the source. The AI summary (CAMEL-25143) needs an AI, takes time, and
> is a lot of text with few visual aids.
> h3. Proposal
> The Overview gets two sub-tabs: *About* and *Integrations* (today's table and
> chart). About is pre-selected when one integration runs, or when a project is
> opened and not running. Integrations is pre-selected when several run, and
> Enter opens About for the selected one.
> About shows, at once and with no AI:
> * *Header*: runtime, files, number of routes, uptime, state; and a purpose
> line taken from, in this order: the comment at the top of the main source
> file, the route descriptions, a saved AI summary (marked ✦, with its age), or
> a hint on where to add one. The screen never calls an AI itself.
> * *In → Routes → Out*: what starts the integration (entry points, grouped by
> kind, with rates); the routes, with the internal ones ({{direct:}},
> {{seda:}}) indented under the route that calls them; and the systems it talks
> to. The internal routes are shown, as they help to understand it; they fold
> only when there are more than N routes and not enough room.
> * *Traits*: error handling, notable EIPs, data formats, beans, REST and HTTP
> servers, chaos.
> * *Config / Needs*: properties, secrets, and what it takes to start (infra
> services, properties without a value).
> * *Watch*: live errors, health, circuit breakers, the dead letter channel,
> the findings of the source analysis, and the last result of the CVE Audit tab
> with its age. About never runs the audit itself, as it sends the dependency
> coordinates to OSV.dev.
> * *Next*: keys that lead deeper. Enter on a route opens it on the Diagram,
> Enter on an endpoint opens the Endpoint tab, {{2}} opens the source, {{!}} is
> chaos here, {{?}} asks the AI with About as context.
> It is built from {{ProjectOverview.analyze}} (entry points, systems, routes,
> links, findings), the route structure and the live status, so it also works
> from the sources alone for a project that is not running.
> Design sketch: https://claude.ai/artifact/2H927wodRp3FAy1BbDbw3P
> h3. Stages (one PR each)
> # The Overview sub-tabs, with About pre-selected for one integration, built
> from the sources: header, purpose line, In, Routes, Out, Traits.
> # The live part: rates and sparklines, chaos and circuit-breaker marks, Watch
> (errors, health, dead letter channel, CVE).
> # The keys that lead deeper, folding for big integrations, the narrow layouts.
> # "Good to know" hints: what happens when it fails, what is dropped, what
> does not wait, what a restart forgets, twice or out of order, what is exposed
> or insecure. These need a curated rule set kept outside the terminal UI (see
> below), so this is a follow-up.
> # The same as text: {{camel get about}}, and the live part in the
> {{camel_project_overview}} MCP tool, from one model class in camel-jbang-core.
> The hints should not be a set picked while building the screen. They belong
> to a curated set of rules that more tools share: today's {{ProjectOverview}}
> findings, the {{camel_security_scan}} and harden tools of camel-jbang-mcp,
> the Doctor, and the option metadata of the catalog ({{secret}}, {{security =
> "insecure:*"}}). That is for a separate JIRA.
> _Claude Code on behalf of Claus Ibsen_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)