Skip to content

fix(ci): unblock staging Docker Build and echo tool E2E test - #2661

Merged
ilblackdragon merged 1 commit into
stagingfrom
fix/staging-ci-docker-and-echo-test
Apr 19, 2026
Merged

ilblackdragon merged 1 commit into
stagingfrom
fix/staging-ci-docker-and-echo-test

Conversation

@ilblackdragon

Copy link
Copy Markdown
Member

Summary

Two independent regressions have been keeping the Staging CI (Batched) workflow red for ~24h. Both fixed here:

  • Docker Build — cargo install wasm-tools@1.246.1 in the chef stage re-resolved transitive deps to the newest compatible versions and picked up constant_time_eq@0.4.3, which requires rustc ≥ 1.95. The chef stage is pinned to rust:1.92-bookworm. Cargo itself emitted Try re-running \cargo install` with `--locked`— added that flag so cargo uses each crate's shippedCargo.lock`.
  • test_builtin_echo_tool — PR Fix gateway tool output visibility and timing #2555 (merged 2026-04-18) intentionally aligned the in-memory history path with DB semantics: tool previews now land in tool_calls[*].result with result_preview left as None. The test predated that change and only inspected result_preview, so it timed out despite the data being present. Updated _wait_for_turn to read the preview from either result_preview or result.

Test plan

  • cargo build --no-default-features --features libsql --bin ironclaw succeeds locally
  • pytest tests/e2e/scenarios/test_tool_execution.py — 3 passed (was 1 failing)
  • Full CI extensions group run locally — 146 passed, 5 skipped (matches CI shape)
  • CI Docker Build job goes green on this PR
  • CI E2E (extensions) job goes green on this PR

🤖 Generated with Claude Code

Two independent staging CI regressions:

1. Docker Build was failing because `cargo install wasm-tools@1.246.1`
   re-resolved to the newest compatible `constant_time_eq@0.4.3`, which
   requires rustc >= 1.95, while the chef stage is pinned to rust:1.92.
   Add `--locked` so cargo uses the Cargo.lock shipped with each crate.

2. `test_builtin_echo_tool` started failing after PR #2555 intentionally
   aligned the in-memory history path with DB semantics: tool previews
   now surface in `result` with `result_preview` left empty. The test
   only inspected `result_preview`, so it timed out. Accept the preview
   from either field in `_wait_for_turn`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 19, 2026 09:42
@github-actions github-actions Bot added scope: sandbox Docker sandbox size: XS < 10 changed lines (excluding docs) risk: low Changes to docs, tests, or low-risk modules contributor: core 20+ merged PRs labels Apr 19, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes two CI regressions blocking the Staging CI workflow: Docker image builds failing due to cargo install dependency re-resolution, and an E2E test timing out after tool output field semantics changed in #2555.

Changes:

  • Pin cargo install resolution in the Docker chef stage by adding --locked.
  • Update the tool execution E2E wait logic to accept tool output from either result_preview or result.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
tests/e2e/scenarios/test_tool_execution.py Makes the echo-tool E2E test resilient to tool output being present in either result_preview or result.
Dockerfile Adds --locked to cargo install to prevent pulling newer transitive deps requiring a newer rustc.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@ilblackdragon
ilblackdragon merged commit c4927ba into staging Apr 19, 2026
19 checks passed
@ilblackdragon
ilblackdragon deleted the fix/staging-ci-docker-and-echo-test branch April 19, 2026 09:44

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request improves build reproducibility in the Dockerfile by adding the --locked flag to cargo installations and updates the E2E test suite to correctly handle tool call results from both in-memory and database-hydrated turns. I have no feedback to provide.

@henrypark133 henrypark133 mentioned this pull request Apr 21, 2026
theredspoon pushed a commit to theredspoon/ironclaw that referenced this pull request Jun 21, 2026
…2661)

Two independent staging CI regressions:

1. Docker Build was failing because `cargo install wasm-tools@1.246.1`
   re-resolved to the newest compatible `constant_time_eq@0.4.3`, which
   requires rustc >= 1.95, while the chef stage is pinned to rust:1.92.
   Add `--locked` so cargo uses the Cargo.lock shipped with each crate.

2. `test_builtin_echo_tool` started failing after PR nearai#2555 intentionally
   aligned the in-memory history path with DB semantics: tool previews
   now surface in `result` with `result_preview` left empty. The test
   only inspected `result_preview`, so it timed out. Accept the preview
   from either field in `_wait_for_turn`.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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: low Changes to docs, tests, or low-risk modules scope: sandbox Docker sandbox size: XS < 10 changed lines (excluding docs)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants