chore: promote staging to staging-promote/e35099de-24682241364 (2026-04-20 19:04 UTC) - #2758
Conversation
* fix(gateway): keep engine threads out of chat sidebar * fix: address review findings (iteration 1) * fix: address review findings (iteration 2)
…ers (#2546) (#2747) * fix(bridge): sanitize orchestrator failures before showing them to users (#2546) When the engine returned `ThreadOutcome::Failed { error }` the raw string reached the user verbatim through `BridgeOutcome::Respond(format!("Error: {error}"))`. The string includes multiple layers of wrapping (`Orchestrator error: effect execution error: ...`), the Monty-hosted Python traceback with internal file paths (`File "orchestrator.py", line 907`), and the upstream HTTP body (`HTTP 502 Bad Gateway`). This is what the QA bug bash reported: a 502 from the LLM provider surfaced the whole stack to a user on staging. Add a shared `bridge::user_facing_errors` module that classifies failure strings into intent-level categories (LLM unavailable, rate-limited, context too large, auth failure, iteration limit, unknown) and returns a short, user-safe message for each. Route `ThreadOutcome::Failed` through a named helper (`bridge_outcome_for_failed_thread`) that logs the full raw error server-side via `tracing::warn!` and responds with the sanitized text. Extensive unit tests cover both the classifier and the router-side helper, including the exact 502 traceback from the issue as a regression fixture plus 413 (#2276) and context-length (#2408) variants. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(bridge): tighten failure classification patterns from PR #2747 review - Drop overly broad substring matches ("tokens used", "unauthorized", "request failed", "provider nearai") that caused misclassification. - Reword AuthFailure user message to be channel-agnostic. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Code reviewFound 2 issues:
The new Recommendation: Implement bounded cache with LRU eviction (cap at 100 threads) or TTL-based cleanup.
The new Recommendation: Define Strengths
|
Auto-promotion from staging CI
Batch range:
7fb41555a9e55677d1aaea29ca567a5b369c2b05..336bdb1ec84af0b510468da66824e3f1e47af69fPromotion branch:
staging-promote/336bdb1e-24684983862Base:
staging-promote/e35099de-24682241364Triggered by: Staging CI batch at 2026-04-20 19:04 UTC
Commits in this batch (52):
onboardfails with "Failed to save settings to database", butironclawstarts successfully and applies migrations #846) (fix(setup): run migrations during onboard when DATABASE_URL preset (#846) #2309)Current commits in this promotion (2)
Current base:
staging-promote/e35099de-24682241364Current head:
staging-promote/336bdb1e-24684983862Current range:
origin/staging-promote/e35099de-24682241364..origin/staging-promote/336bdb1e-24684983862Auto-updated by staging promotion metadata workflow
Waiting for gates:
Auto-created by staging-ci workflow