chore: promote staging to staging-promote/0892f56a-24821371795 (2026-04-23 09:51 UTC) - #2893
Conversation
…2891) * fix(bridge): surface latent WASM provider actions to the LLM (#2883) After d33fecb centralized the action vs capability surface policy, the ActionProjector stopped iterating over latent provider actions — tools owned by installed extensions that are not yet ready (primarily WASM tools pending OAuth). Because WASM tools register in `tool_registry` only at activation (which requires auth first), they were invisible to the LLM, so the LLM never attempted them and the auth-on-first-call gate never fired. The user-visible regression: asking the assistant to connect Gmail returned "secrets are missing" without triggering the OAuth prompt. Re-add the latent-iteration loop in `ActionProjector::project`, sharing the `seen` dedup set with the capability-lease pass so we never emit the same action name twice. Latent actions use `effects: vec![]` and `requires_approval: false`; approval/effects are enforced at auth-gate and capability-lease time, not here. Flip the previously negative `available_actions_omit_latent_inactive_ provider_actions` assertion into a positive `available_actions_include_latent_inactive_provider_actions` regression test and add an explanatory docstring pointing at #2883. Fixes #2883 * fix(bridge): normalize latent action names and satisfy fmt Normalize hyphen->underscore on latent provider action names to match the first loop's tool-def handling. This keeps the LLM-facing name stable across the latent->registered transition and ensures the shared `seen` dedup suppresses overlap with tools already surfaced above. Also satisfies `cargo fmt` (the prior multi-line for-loop head collapses onto one line).
Code reviewNo issues found. |
Code reviewFound 3 items from performance analysis; however, 2 are pre-existing issues outside this PR's scope:
Conclusion: No issues introduced by this PR. All three findings either pre-date this change or are inaccurate. The PR itself is sound across security, architecture, bugs, and performance. |
Auto-promotion from staging CI
Batch range:
7fb41555a9e55677d1aaea29ca567a5b369c2b05..1d8a46bbdfe0cbe356e680ba56456d00d8791a59Promotion branch:
staging-promote/1d8a46bb-24828673723Base:
staging-promote/0892f56a-24821371795Triggered by: Staging CI batch at 2026-04-23 09:51 UTC
Commits in this batch (84):
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 (1)
Current base:
staging-promote/0892f56a-24821371795Current head:
staging-promote/1d8a46bb-24828673723Current range:
origin/staging-promote/0892f56a-24821371795..origin/staging-promote/1d8a46bb-24828673723Auto-updated by staging promotion metadata workflow
Waiting for gates:
Auto-created by staging-ci workflow