Skip to content

fix(ci): drop stale --no-stdio flag from mcp publish startup#75

Merged
sergiofilhowz merged 1 commit intomainfrom
fix/mcp-drop-stale-no-stdio-flag
May 5, 2026
Merged

fix(ci): drop stale --no-stdio flag from mcp publish startup#75
sergiofilhowz merged 1 commit intomainfrom
fix/mcp-drop-stale-no-stdio-flag

Conversation

@guibeira
Copy link
Copy Markdown
Collaborator

@guibeira guibeira commented May 4, 2026

Summary

mcp/v0.5.1 publish failed (job) with the worker dying immediately on startup:

Running `target/debug/mcp --no-stdio`
error: unexpected argument '--no-stdio' found

Usage: mcp [OPTIONS]

_publish-registry.yml:141-143 had a worker-specific special case from #67:

if [[ "$WORKER" == "mcp" ]]; then
  cargo_args+=(--no-stdio)
fi

mcp's CLI no longer accepts --no-stdiomcp/src/main.rs:25-34 only declares --config, --url, --manifest. cargo exited before the worker could connect, the 2s kill -0 check after spawn still passed (cargo itself was technically still alive), and collect_worker_interface then waited the full 120s before raising ValueError: could not match worker 'mcp'.

Fix

Drop the special case. mcp's default startup is fine for interface collection — the original concern that motivated --no-stdio doesn't apply in CI.

Side benefit: removes the worker-name-in-shared-CI anti-pattern flagged in the original review of #67. If a worker ever needs CI-specific startup args again, declare them in iii.worker.yaml instead.

Test plan

  • After merge, dispatch create-tag.yml with worker=mcp, bump=patch, tag=next.
  • Start local worker for interface collection step shows cargo run --bin mcp -- (no --no-stdio appended).
  • mcp registers with the engine, collect_worker_interface finds it, publish completes with HTTP 200.

Summary by CodeRabbit

  • Chores
    • Updated internal build workflow configuration to streamline worker startup processes.

The mcp/v0.5.1 publish failed because `_publish-registry.yml` started the worker with `cargo run --bin mcp -- --no-stdio`, but mcp's CLI no longer accepts that flag (mcp/src/main.rs only declares `--config`, `--url`, `--manifest`). cargo exited with `error: unexpected argument '--no-stdio' found` before the worker could connect, the 2s `kill -0` post-spawn check passed because cargo itself was still draining, and `collect_worker_interface` then waited 120s for a worker that never registered before raising `ValueError: could not match worker 'mcp'`.

The flag was added in #67 specifically to keep mcp from binding stdio in the publish job; that concern is moot now (default mcp run is fine for interface collection). Drop the special case so mcp goes through the same `cargo run --bin mcp --` path as every other rust worker.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 4, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: bb4c4d07-7f53-4fad-8db8-3bf5e08ee428

📥 Commits

Reviewing files that changed from the base of the PR and between caa7f12 and abcb519.

📒 Files selected for processing (1)
  • .github/workflows/_publish-registry.yml
💤 Files with no reviewable changes (1)
  • .github/workflows/_publish-registry.yml

📝 Walkthrough

Walkthrough

This PR removes the special-case conditional that appended --no-stdio to Cargo arguments when the WORKER type is mcp, simplifying the local worker startup logic in the publish registry workflow.

Changes

Workflow Simplification

Layer / File(s) Summary
Workflow Config
.github/workflows/_publish-registry.yml
Removes the conditional block if [[ "$WORKER" == "mcp" ]]; then cargo_args+=(--no-stdio) fi from the cargo-run startup path, so mcp workers no longer receive the --no-stdio flag.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related PRs

  • iii-hq/workers#67: Also modifies publish workflow's cargo-run worker startup and the special-case --no-stdio argument handling for mcp workers.
  • iii-hq/workers#68: Modifies the same cargo-run branch in .github/workflows/_publish-registry.yml related to cargo command expansion.

Suggested reviewers

  • sergiofilhowz

Poem

🐰 A flag removed, the path grows clear,
No more --no-stdio here!
Simpler flows, the workers run,
One less check—the job gets done! 🎉

🚥 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 and specifically describes the main change: removing a stale --no-stdio flag from the mcp publish startup process in CI.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/mcp-drop-stale-no-stdio-flag

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 and usage tips.

@guibeira guibeira marked this pull request as ready for review May 5, 2026 02:28
@sergiofilhowz sergiofilhowz merged commit d2a1de9 into main May 5, 2026
7 checks passed
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.

2 participants