davsclaus opened a new pull request, #29358: URL: https://github.com/apache/camel/pull/29358
[CAMEL-26699](https://issues.apache.org/jira/browse/CAMEL-26699): fixes for what a hands-on round of the chaos screen turned up, using a small demo shop. **camel-chaos** - An expectation keeps counting after it is decided, until its time is up. The outcome still never changes once decided (by design). Before, `expect=orders:handled<=0` stayed at "1 handled" while the rule's effect and the route counts said 6. Now the reason says "6 exchanges handled ..., at most 0 expected". `lost` is unaffected: it only reads the count of an unmet `completed` expectation, which was never decided early. **Terminal UI, chaos screen** - **Poll targets:** "Polls fail" / "Polls are skipped" and `!` offer only consumers that poll on a schedule. The consumers console marks a timer `scheduled` as well, but `at=poll` hooks only a scheduled poll consumer, which is the one that has a `schedulerClass`. The rule check already warned about a timer; the form no longer offers it. - **Pick order:** the endpoints are offered as remote calls first, then the sends within the integration, then the endpoints only an error handler sends to. The dead letter channel came first before, and now comes last: it has a producer in every route but no `out` endpoint, and it has a recipe of its own. The reply side of `platform-http` (an `out` endpoint that a route consumes) is no longer offered as a send. - **FAULT** is shown in a few words, as the report says it: `error status 503`, `error ConnectException`, `delay 300ms..800ms`, `stop 5s ×3 every 20s`. A flapping rule was cut to `lifecycle action=stop duration=5`. The full rule stays in the title of the detail panel. - **EFFECT:** the in-flight mark is now `◷` instead of `…`, because `62↩ 1…` read like cut text. The column is as wide as its counts need. - **Poll rules** show their effect: `12 polls failed` in the table, and in the detail "12 polls failed: the consumer polls again on its schedule". Before, it was empty. - **What a delay costs:** the detail lists the routes of the rule's recent faults with their mean, p95, p99 and throughput. A delay's EFFECT is "completed", while the cost shows in the route times. - **Recent faults:** an exchange faulted again on its redeliveries is shown once, with `×N`. **Terminal UI, MCP** - A tab can say that Esc only cancels its confirm (`MonitorTab.isConfirmCancelledByEsc()`); only the Chaos tab does. Then a lone Esc from `tui_send_keys` gets through, so an AI can close a confirm it opened; before, it stayed until a person pressed Esc. Every other key, and Esc for every other dialog, is still dropped (CAMEL-25444). The guard is unchanged for the dialogs where Esc means another answer, such as an AI edit waiting to be saved. Not in this PR: `!` after `tui_navigate` to a Diagram node took the route entry once. I could not reproduce it reliably to find the cause, so it stays open on the JIRA. **Tests** - camel-chaos: `aDecidedExpectationCountsOnUntilTheTimeIsUp`. All 651 camel-chaos tests pass. - TUI: pick order and poll targets (`ChaosRecipesTest`), short fault, poll effect, in-flight mark, grouped faults and the routes line (`ChaosTabRenderTest`), and Esc (`ConfirmationsTest`). All 2330 TUI module tests pass. `LaunchManagerOutcomeTest` failed once and passed on the rerun; it's unrelated. - Live: the demo with 4 rules (step error, file poll error, a delay on the HTTP stock call, a flapping shipping route) in a TUI built from this branch. _Claude Code on behalf of Claus Ibsen_ 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_012nJsFsjqqFiwroeHRWaKbS -- 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]
