Skip to content

(MOT-4279) fix(harness): install published iii for e2e - #636

Merged
ytallo merged 1 commit into
mainfrom
fix/mot-4279-install-published-iii
Jul 30, 2026
Merged

(MOT-4279) fix(harness): install published iii for e2e#636
ytallo merged 1 commit into
mainfrom
fix/mot-4279-install-published-iii

Conversation

@ytallo

@ytallo ytallo commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Summary

  • install the latest stable published iii release instead of checking out and compiling the engine source
  • package iii, iii-init, and iii-worker for each E2E matrix job
  • add the installed binary directory to PATH and start iii-worker-ops

Root cause

The E2E stack compiled and packaged only the iii binary. The external worker lifecycle daemon lives in iii-worker, so worker::add was never registered and every live scenario timed out during preflight.

Impact

The E2E stack now uses the same published release distribution as users and includes the companion binaries required by worker installation and sandbox execution.

Validation

  • cargo test --locked --manifest-path harness/Cargo.toml -p harness-e2e (55 passed)
  • installed the current stable release (iii 0.22.0) with the official installer
  • booted the E2E engine config and confirmed iii-worker-ops registered worker::add
  • bash -n harness/tests/e2e/run-ci.sh
  • YAML parse and git diff --check

Refs MOT-4279

Summary by CodeRabbit

  • New Features

    • End-to-end testing now uses installed stable iii releases and their companion tools.
    • Added support for the operations worker in E2E stack configurations.
    • E2E runs now validate and consistently use the required engine companion binaries.
  • Documentation

    • Updated CI guidance and result descriptions to reflect installed engine versions, judge protocols, worker selection, and concurrency limits.

@vercel

vercel Bot commented Jul 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
workers Ready Ready Preview Jul 30, 2026 12:42am
workers-tech-spec Ready Ready Preview Jul 30, 2026 12:42am

Request Review

@github-actions

Copy link
Copy Markdown
Contributor

skill-check — worker

0 verified, 49 skipped (no docs/).

Layer Result
structure
vale
ai
render

Four for four. Nicely done.

@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The E2E workflow now installs a published stable iii release and its companion binaries, packages those binaries into the test stack, and passes the installed engine path to execution. The harness validates companion binaries, adds iii-worker-ops, and updates related documentation.

Changes

iii E2E engine adoption

Layer / File(s) Summary
Install published iii release
.github/workflows/_harness-e2e.yml, harness/tests/e2e/README.md
The build job installs and validates iii, iii-init, and iii-worker, exports the installed binary path and version, and documents the updated CI behavior and results metadata.
Wire installed binaries into E2E execution
.github/workflows/_harness-e2e.yml, harness/tests/e2e/run-ci.sh, harness/tests/e2e/stack-config/engine.yaml
E2E packaging and execution use the installed binaries, the harness prepends their directory to PATH, and the stack adds iii-worker-ops.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant GitHubActions as GitHub Actions
  participant iiiInstaller as iii installer
  participant E2EStack as E2E stack
  participant RunCI as run-ci.sh
  GitHubActions->>iiiInstaller: Install iii, iii-init, and iii-worker
  iiiInstaller-->>GitHubActions: Return installed iii path and version
  GitHubActions->>E2EStack: Package installed binaries
  GitHubActions->>RunCI: Provide III_BIN
  RunCI->>RunCI: Validate companion binaries and prepend PATH
  RunCI->>E2EStack: Run E2E tests with installed iii
Loading

Suggested labels: no-ticket

Suggested reviewers: andersonleal

Poem

I’m a bunny with binaries, hopping in line,
iii and its helpers now all align.
The workers join in, the tests take flight,
Stable releases guide the run just right.
Nibble, build, and ship tonight! 🐇

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: the E2E harness now installs the published iii release instead of building engine source.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/mot-4279-install-published-iii

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ytallo
ytallo merged commit 04b0270 into main Jul 30, 2026
16 of 17 checks passed

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/_harness-e2e.yml:
- Around line 103-111: Update the output assignment in the workflow’s
binary/version output block to derive the binary path from the existing
III_INSTALL_BIN_DIR variable instead of hardcoding target/iii/bin/iii. Preserve
the existing iii executable name and version output behavior so downstream
engine_binary/III_BIN values remain correct when the install directory changes.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: a71e9b51-56d5-44d6-9b43-0ff409a48452

📥 Commits

Reviewing files that changed from the base of the PR and between e8c6cf4 and 6e7017a.

📒 Files selected for processing (4)
  • .github/workflows/_harness-e2e.yml
  • harness/tests/e2e/README.md
  • harness/tests/e2e/run-ci.sh
  • harness/tests/e2e/stack-config/engine.yaml

Comment on lines +103 to 111
for binary in iii iii-init iii-worker; do
test -x "$III_INSTALL_BIN_DIR/$binary"
done
version=$("$III_INSTALL_BIN_DIR/iii" --version | awk '{print $NF}')
test -n "$version"
{
echo "repository=$repository"
echo "revision=$revision"
echo "package=$package"
echo "binary=$binary"
echo "binary=target/iii/bin/iii"
echo "version=$version"
} >> "$GITHUB_OUTPUT"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Hardcoded output path duplicates III_INSTALL_BIN_DIR.

echo "binary=target/iii/bin/iii" re-encodes the same path already defined by III_INSTALL_BIN_DIR (line 94). If that directory ever changes, this literal silently diverges and engine_binary/III_BIN (line 255) will point at the wrong location.

🔧 Derive the output path from the existing variable
       env:
         GITHUB_TOKEN: ${{ github.token }}
         III_INSTALL_URL: https://install.iii.dev/iii/main/install.sh
-        III_INSTALL_BIN_DIR: ${{ github.workspace }}/target/iii/bin
+        III_INSTALL_BIN_DIR: ${{ github.workspace }}/target/iii/bin
+        III_INSTALL_BIN_SUBDIR: target/iii/bin
       run: |
         ...
         {
-          echo "binary=target/iii/bin/iii"
+          echo "binary=$III_INSTALL_BIN_SUBDIR/iii"
           echo "version=$version"
         } >> "$GITHUB_OUTPUT"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/_harness-e2e.yml around lines 103 - 111, Update the output
assignment in the workflow’s binary/version output block to derive the binary
path from the existing III_INSTALL_BIN_DIR variable instead of hardcoding
target/iii/bin/iii. Preserve the existing iii executable name and version output
behavior so downstream engine_binary/III_BIN values remain correct when the
install directory changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant