chore: promote staging to main (2026-03-11 00:16 UTC)#907
Conversation
* fix(ci): secrets can't be used in step if conditions [skip-regression-check] (#787) GitHub Actions step-level `if:` doesn't have access to `secrets` context. Replace `if: secrets.X != ''` with `continue-on-error: true` and let the Set token step handle the fallback. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: add channel-relay integration for Slack via external relay service - Add RelayChannel and RelayClient for connecting to channel-relay SSE streams - Add RelayConfig with env-based configuration (CHANNEL_RELAY_URL, CHANNEL_RELAY_API_KEY) - Add channel-relay extension lifecycle: install, OAuth auth, activate with hot-add - Add proxy message sending through channel-relay for Slack chat.postMessage - Add extension registry entry for Slack relay with OAuth auth hint - Add relay integration test with mock SSE server - Wire relay channel into app startup with reconnect on stored credentials - Add AuthRequired extension error variant for cleaner auth flow detection [skip-regression-check] * chore: apply cargo fmt * fix: remove remaining Telegram test references in relay channel * fix: address PR #790 review feedback — parser handle leak, CSRF, circuit breaker - Fix parser handle leak on reconnect by sharing Arc<RwLock> instead of creating a local copy in start() (shutdown now aborts the correct task) - Add CSRF state nonce to OAuth flow: generate in auth_channel_relay, validate in slack_relay_oauth_callback_handler, one-time use - Remove dead proxy_slack method, update integration test to use proxy_provider - Add reconnect circuit breaker (max_consecutive_failures, default 50) - Fix stale docs (Telegram refs), extract event_types constants --------- Co-authored-by: Henry Park <henrypark133@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Code reviewFound 11 issues:
ironclaw/src/channels/relay/channel.rs Lines 268 to 345 in b0214fe
ironclaw/src/extensions/manager.rs Lines 115 to 135 in b0214fe
ironclaw/src/extensions/manager.rs Lines 240 to 260 in b0214fe
ironclaw/src/extensions/manager.rs Lines 3330 to 3340 in b0214fe
ironclaw/src/channels/relay/channel.rs Lines 290 to 310 in b0214fe
ironclaw/src/channels/relay/channel.rs Lines 340 to 365 in b0214fe
ironclaw/src/channels/relay/client.rs Lines 345 to 400 in b0214fe
ironclaw/src/extensions/manager.rs Lines 240 to 260 in b0214fe
ironclaw/src/extensions/manager.rs Lines 115 to 125 in b0214fe
ironclaw/src/channels/relay/channel.rs Lines 295 to 320 in b0214fe
ironclaw/src/channels/relay/channel.rs Lines 245 to 260 in b0214fe Summary: 1 critical logic bug (consecutive_failures), 1 high-priority documentation issue, 6 medium refactorings/perf optimizations, 3 low-priority style improvements. Security passed. |
…930316561 chore: promote staging to main (2026-03-11 00:16 UTC)
…930316561 chore: promote staging to main (2026-03-11 00:16 UTC)
Auto-promotion from staging CI
Batch range:
873322f2fb53143d0af30f4456c8a368937c6587..b0214fef41e953b6c2996522a4095354133ce995Promotion branch:
staging-promote/b0214fef-22930316561Base:
staging-promote/3a841b30-22928320566Triggered by: Staging CI batch at 2026-03-11 00:16 UTC
Waiting for gates:
Auto-created by staging-ci workflow