Skip to content

chore: promote staging to staging-promote/1f209db0-23170138026 (2026-03-16 23:13 UTC)#1268

Merged
henrypark133 merged 2 commits intostaging-promote/1f209db0-23170138026from
staging-promote/c6128f4e-23170341776
Mar 16, 2026
Merged

chore: promote staging to staging-promote/1f209db0-23170138026 (2026-03-16 23:13 UTC)#1268
henrypark133 merged 2 commits intostaging-promote/1f209db0-23170138026from
staging-promote/c6128f4e-23170341776

Conversation

@ironclaw-ci
Copy link
Contributor

@ironclaw-ci ironclaw-ci bot commented Mar 16, 2026

Auto-promotion from staging CI

Batch range: 63a23550d6b485de6eb3b9a8aefeee47de569ddd..c6128f4e41b5bd43d69a4432a6050df4d675590a
Promotion branch: staging-promote/c6128f4e-23170341776
Base: staging-promote/1f209db0-23170138026
Triggered by: Staging CI batch at 2026-03-16 23:13 UTC

Commits in this batch (17):

Current commits in this promotion (2)

Current base: staging-promote/1f209db0-23170138026
Current head: staging-promote/c6128f4e-23170341776
Current range: origin/staging-promote/1f209db0-23170138026..origin/staging-promote/c6128f4e-23170341776

Auto-updated by staging promotion metadata workflow

Waiting for gates:

  • Tests: pending
  • E2E: pending
  • Claude Code review: pending (will post comments on this PR)

Auto-created by staging-ci workflow

henrypark133 and others added 2 commits March 16, 2026 16:10
* fix staging CI coverage regressions

* ci: cover all e2e scenarios in staging

* ci: restrict staging PR checks and fix webhook assertions

* ci: keep code style checks on PRs

* ci: preserve e2e PR coverage

* test: stabilize staging e2e coverage

* fix: propagate postgres tls builder errors

* ci: isolate heavy integration tests

* fix: clean up heavy integration CI follow-up
* fix: misleading UI message

* review fixes

* review fixes

* enhance test
@github-actions github-actions bot added scope: agent Agent core (agent loop, router, scheduler) scope: channel/wasm WASM channel runtime scope: ci CI/CD workflows scope: dependencies Dependency updates size: L 200-499 changed lines risk: medium Business logic, config, or moderate-risk modules contributor: core 20+ merged PRs labels Mar 16, 2026
@claude
Copy link

claude bot commented Mar 16, 2026

Code review

Found 6 issues:

  1. [MEDIUM:75] Duplicated message construction logic in test vs production code

The approval context message is constructed in two places: production code at src/agent/thread_ops.rs:229-231 and again in the test helper extract_approval_message() at lines 2011-2015. The format string "Waiting for approval: {tool_name} — {desc_preview}. Use /interrupt to cancel." appears in both locations. This violates DRY and creates maintenance burden — if the message format changes, it must be updated in two places.

https://github.com/anthropics/ironclaw/blob/fa736a1bd9f7ecf71ab37ca51550596f2fd2833f/src/agent/thread_ops.rs#L228-L235
https://github.com/anthropics/ironclaw/blob/fa736a1bd9f7ecf71ab37ca51550596f2fd2833f/src/agent/thread_ops.rs#L2010-L2020

  1. [MEDIUM:50] Semantic misuse of SubmissionResult enum

SubmissionResult::pending() (submission.rs:433-437) creates an Ok variant to avoid the "Error:" prefix in rendering. However, semantically this conflates success with a blocking/pending state. Per CLAUDE.md architecture guidance, prefer explicit variants over workarounds. Consider adding a dedicated Pending { message: String } variant to the enum that explicitly represents blocking states.

https://github.com/anthropics/ironclaw/blob/fa736a1bd9f7ecf71ab37ca51550596f2fd2833f/src/agent/submission.rs#L430-L437

  1. [MEDIUM:50] Unnecessary self.name clone in execute_on_start_with_state()

Line 1250 in src/channels/wasm/wrapper.rs clones self.name for the timeout error, but the function already cloned it into channel_name at line 1200 for use in the spawn_blocking error handler. Reuse the earlier clone to avoid the duplicate allocation.

https://github.com/anthropics/ironclaw/blob/fa736a1bd9f7ecf71ab37ca51550596f2fd2833f/src/channels/wasm/wrapper.rs#L1243-L1253

  1. [LOW:50] Unused shutdown_tx in start_message_stream_for_test()

The test helper at line 867 creates a shutdown_tx but never stores or returns it. This means the message stream can never be shut down. For test code this is acceptable (tests just drop the stream), but the pattern is worth noting for future refactoring.

https://github.com/anthropics/ironclaw/blob/fa736a1bd9f7ecf71ab37ca51550596f2fd2833f/src/channels/wasm/wrapper.rs#L863-L880

  1. [LOW:25] No explicit feature flag requirement on telegram integration test

test_private_messages_use_chat_id_as_thread_scope() in tests/telegram_auth_integration.rs (line 312) has #[cfg(feature = "integration")] guards but is not declared with required-features in Cargo.toml like e2e_thread_scheduling is. This creates inconsistency; adding required-features = ["integration"] to this test would be more explicit.

https://github.com/anthropics/ironclaw/blob/fa736a1bd9f7ecf71ab37ca51550596f2fd2833f/tests/telegram_auth_integration.rs#L309-L330

  1. [LOW:50] Potential race condition in E2E test (mitigated)

test_waiting_for_approval_message_no_error_prefix() in tests/e2e/scenarios/test_tool_approval.py (line 157) waits for message count to increase without explicit synchronization between frontend and backend approval state. However, the preceding await card.wait_for(state="visible", timeout=5000) provides reasonable mitigation. Low risk in practice.

https://github.com/anthropics/ironclaw/blob/fa736a1bd9f7ecf71ab37ca51550596f2fd2833f/tests/e2e/scenarios/test_tool_approval.py#L153-L180

Overall Assessment: Safe to merge. No critical or high-severity issues found. Medium issues are primarily DRY/design concerns rather than functional bugs.

@henrypark133 henrypark133 merged commit 47659e9 into staging-promote/1f209db0-23170138026 Mar 16, 2026
15 checks passed
@henrypark133 henrypark133 deleted the staging-promote/c6128f4e-23170341776 branch March 16, 2026 23:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor: core 20+ merged PRs risk: medium Business logic, config, or moderate-risk modules scope: agent Agent core (agent loop, router, scheduler) scope: channel/wasm WASM channel runtime scope: ci CI/CD workflows scope: dependencies Dependency updates size: L 200-499 changed lines staging-promotion

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants