chore: promote staging to staging-promote/4dea5dd5-24736995931 (2026-04-21 19:40 UTC)#2811
Conversation
…2790) * fix(e2e): fix 5 test failures — multi-tenant widget isolation + portfolio nudge recovery Widget customization: three tests expected multi-tenant behavior (CSS/widget/CSP isolation) but ran against the single-tenant default server. Add a session-scoped `multi_tenant_gateway_server` fixture with AGENT_MULTI_TENANT=true and its own libSQL database, and rewire the three failing tests to use it. Portfolio: the mock LLM's nudge response ("I found the information you requested.") swallowed portfolio context when the engine sent a tool-intent nudge. Add context-aware nudge recovery in match_response() that checks prior user messages for portfolio/wallet keywords before falling through to the generic nudge pattern. Also add word boundaries to the hello|hi|hey canned pattern to prevent "hi" from matching inside "this". Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address review findings (iteration 1) Forward cargo-llvm-cov env vars in multi_tenant_gateway_server fixture so code coverage from the 3 rewired widget tests is captured in CI. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Code reviewFound 10 issues:
Between closing the port-reservation sockets and passing those port numbers to ironclaw/tests/e2e/scenarios/test_widget_customization.py Lines 209 to 266 in e29429d
The Extract a shared ironclaw/tests/e2e/scenarios/test_widget_customization.py Lines 201 to 283 in e29429d
The ironclaw/tests/e2e/mock_llm.py Lines 795 to 798 in e29429d
The ironclaw/tests/e2e/scenarios/test_widget_customization.py Lines 201 to 206 in e29429d
The nudge recovery block (lines 800–813) iterates through all user messages and performs two regex searches per message without short-circuiting when a match is found. For conversations with 10+ user messages, this performs 20+ regex searches. Add an early return after the first successful domain-context match to avoid redundant searches. ironclaw/tests/e2e/mock_llm.py Lines 800 to 813 in e29429d
The new nudge-recovery code (lines 789–813) runs before the ironclaw/tests/e2e/mock_llm.py Lines 789 to 815 in e29429d
The ironclaw/tests/e2e/scenarios/test_widget_customization.py Lines 256 to 283 in e29429d
Coverage environment variables are forwarded from the outer environment using ironclaw/tests/e2e/scenarios/test_widget_customization.py Lines 249 to 254 in e29429d
The ironclaw/tests/e2e/scenarios/test_widget_customization.py Lines 249 to 254 in e29429d
In the fixture finally-block (lines 282–283), ironclaw/tests/e2e/scenarios/test_widget_customization.py Lines 273 to 283 in e29429d |
Auto-promotion from staging CI
Batch range:
7fb41555a9e55677d1aaea29ca567a5b369c2b05..e29429d727bc3f8ddaaeb509a29c798e927cafbePromotion branch:
staging-promote/e29429d7-24742613700Base:
staging-promote/4dea5dd5-24736995931Triggered by: Staging CI batch at 2026-04-21 19:40 UTC
Commits in this batch (68):
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/4dea5dd5-24736995931Current head:
staging-promote/e29429d7-24742613700Current range:
origin/staging-promote/4dea5dd5-24736995931..origin/staging-promote/e29429d7-24742613700Auto-updated by staging promotion metadata workflow
Waiting for gates:
Auto-created by staging-ci workflow