Skip to content

ci(harness-bundle): publish every bundled dep at the harness version - #121

Merged
ytallo merged 1 commit into
mainfrom
chore/bundle-coordinated-versions
May 11, 2026
Merged

ci(harness-bundle): publish every bundled dep at the harness version#121
ytallo merged 1 commit into
mainfrom
chore/bundle-coordinated-versions

Conversation

@ytallo

@ytallo ytallo commented May 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • release-harness-bundle.yml: every in-repo dep in harness/iii.worker.yaml ships at the harness tag's version instead of its local Cargo.toml version.
  • _rust-binary.yml: new optional version_override input rewrites [package].version in the manifest before cargo build, so the published binary embeds the coordinated version.
  • Fix the registry-lookup endpoint (/workers/<name>/download/<name>) so the "skip if already registered" check actually works instead of always falling through.

Why

Today, tagging harness/v0.1.2 publishes harness@0.1.2 but every dep stays at whatever's in its own Cargo.toml — typically 0.1.1 from the last bump. The registry rejects re-publishing 0.1.1 with HTTP 409 (Version 0.1.0 already exists for hook-fanout, same for llm-budget last run), and the version landscape becomes confusing: harness 0.1.2 ships with deps that say 0.1.1.

After this PR, tagging harness/v0.1.3 produces a coherent bundle: harness 0.1.3 + every bundled dep 0.1.3. No manual per-dep bumps required, no spurious 409s.

Cargo.toml in repo can lag

Per the design choice — the workflow rewrites [package].version on the fly in the build job. The repo's Cargo.toml files don't need pre-release bumps. The tradeoff: cargo build locally still reports the dev version (e.g., 0.1.1), only the published artifact reports the harness version.

Excluded from the bundle

  • shell — releases on its own shell/v* tag via release.yml
  • skills — held by maintainers, separate tag
  • iii-sandbox — external engine worker

Test plan

  • Tag harness/v0.1.3 post-merge → confirm harness + 11 deps publish at 0.1.3, no HTTP 409s
  • Confirm each dep's archive at releases/download/<dep>/v0.1.3/<dep>-<target>.tar.gz contains a binary whose --manifest JSON reports version: 0.1.3

Summary by CodeRabbit

  • Chores
    • Updated release workflows to support version coordination for bundled releases. Bundled dependencies now align with the harness version, ensuring consistent versioning across release packages. Added version override capability to the build process for coordinated release management.

Review Change Stack

The bundle workflow used to publish each in-repo dep at whatever was in
its local Cargo.toml. That left the registry with mismatched versions
(harness 0.1.2 + deps 0.1.1) and produced HTTP 409 duplicates every time
harness was re-released without bumping deps.

Now every dep in the publish set ships at the harness tag's version.
_rust-binary.yml gains a version_override input that rewrites
[package].version in the dep's Cargo.toml before cargo build, so the
binary's CARGO_PKG_VERSION matches the version we publish at.

Also fixes the registry-lookup endpoint (/workers/<name> returned 404 for
everything; the right one is /download/<name>), so the "skip if already
registered at >= harness version" check can actually fire.

Excluded from the bundle as before: shell, skills, iii-sandbox.
@coderabbitai

coderabbitai Bot commented May 11, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

The PR introduces version override capability to the Rust binary workflow and updates the bundle release workflow to coordinate all bundled dependency versions with the harness tag version. The base workflow now accepts version_override input and rewrites package manifests before building; the release workflow leverages this to ensure all dependencies publish at the coordinated harness version rather than their local versions.

Changes

Bundle Release Version Coordination

Layer / File(s) Summary
Base Workflow Version Override Input
\.github/workflows/_rust-binary\.yml
Adds optional version_override input (string, default empty) to enable external version coordination.
Manifest Version Rewrite Step
\.github/workflows/_rust-binary\.yml
Conditional step validates and rewrites [package].version in the manifest file when override is provided; fails if manifest or version field is missing.
Release Workflow Documentation
\.github/workflows/release-harness-bundle\.yml
Header comments updated to document coordinated-version bundle behavior and explain version_override parameter flow.
Registry Download Endpoint
\.github/workflows/release-harness-bundle\.yml
Registry version lookup switches to /download/<worker> endpoint with HTTP 204 handling for engine-baked workers.
Coordinated Version Publishing
\.github/workflows/release-harness-bundle\.yml
Publish decision now skips dependencies when harness version ≤ registry version; queues bundled dependencies with harness_version instead of local version; documentation explains override behavior.
Build Job Version Override Wiring
\.github/workflows/release-harness-bundle\.yml
Build job passes version_override: ${{ matrix.entry.version }} to ensure binaries embed the coordinated harness version.

Sequence Diagram

sequenceDiagram
  participant ReleaseWorkflow as release-harness-bundle
  participant RegistryAPI as Registry API
  participant BaseWorkflow as _rust-binary workflow
  participant Manifest as Manifest File

  ReleaseWorkflow->>RegistryAPI: GET /download/{worker}
  alt HTTP 204 (engine-baked)
    RegistryAPI-->>ReleaseWorkflow: no metadata
  else HTTP 200
    RegistryAPI-->>ReleaseWorkflow: current version
  end
  
  ReleaseWorkflow->>ReleaseWorkflow: Compare harness_version vs registry version
  
  alt harness_version > registry version
    ReleaseWorkflow->>BaseWorkflow: Call with version_override=harness_version
    BaseWorkflow->>Manifest: Read manifest at manifest_path
    BaseWorkflow->>Manifest: Rewrite [package].version field
    BaseWorkflow->>BaseWorkflow: Build binary with new version
  else Skip
    ReleaseWorkflow->>ReleaseWorkflow: Queue skip (version too old)
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 Versions aligned in bundles bright,
Harness and dependencies in flight,
Override the manifests with coordinated grace,
Registry checks keep them all in place!

🚥 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 directly reflects the main change: coordinating bundled dependency publishing to use the harness version instead of local versions, which is the core objective of this PR.
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 chore/bundle-coordinated-versions

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.

@ytallo
ytallo merged commit 18e0a5d into main May 11, 2026
6 of 8 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

skill-check — worker

6 verified, 20 skipped (no docs/).

82 errors across the verified workers.

File Line Severity Violation
auth-credentials/README.md 5 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
auth-credentials/README.md 8 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
auth-credentials/skill.md 5 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
auth-credentials/skill.md 7 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
auth-credentials/skills/delete_token.md 13 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
auth-credentials/skills/get_token.md 13 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
auth-credentials/skills/list_providers.md 13 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
auth-credentials/skills/set_token.md 13 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
auth-credentials/skills/status.md 9 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
auth-credentials/skills/status.md 15 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/README.md 5 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/README.md 8 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/skill.md 5 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/skill.md 7 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/skills/alert_set.md 13 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/skills/check.md 13 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/skills/check.md 15 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/skills/create.md 14 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/skills/delete.md 15 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/skills/exempt.md 15 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/skills/forecast.md 8 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/skills/get.md 13 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/skills/list.md 14 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/skills/pause.md 14 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/skills/record.md 14 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
llm-budget/skills/usage.md 13 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
models-catalog/README.md 5 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
models-catalog/README.md 8 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
models-catalog/skill.md 5 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
models-catalog/skill.md 7 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
models-catalog/skills/get.md 15 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
models-catalog/skills/register.md 8 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
models-catalog/skills/supports.md 15 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/README.md 5 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/README.md 8 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/skill.md 5 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/skill.md 7 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/skills/append.md 7 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/skills/append.md 16 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/skills/clone.md 16 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/skills/compact.md 8 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/skills/compact.md 16 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/skills/create.md 13 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/skills/export_html.md 8 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/skills/messages.md 7 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/skills/messages.md 15 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/skills/tree.md 8 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
session-tree/skills/tree.md 16 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/README.md 5 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/README.md 8 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/README.md 19 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skill.md 5 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skill.md 7 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skill.md 9 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/chmod.md 14 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/exec.md 15 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/exec.md 18 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/exec_bg.md 7 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/exec_bg.md 9 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/grep.md 7 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/kill.md 13 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/list.md 13 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/ls.md 7 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/ls.md 15 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/mkdir.md 14 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/mv.md 14 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/mv.md 16 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/read.md 8 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/read.md 14 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/rm.md 14 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/sed.md 16 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/sed.md 18 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/stat.md 13 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
shell/skills/status.md 13 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
turn-orchestrator/README.md 8 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
turn-orchestrator/README.md 19 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
turn-orchestrator/skill.md 7 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
turn-orchestrator/skill.md 9 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
turn-orchestrator/skills/start.md 9 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
turn-orchestrator/skills/start.md 15 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
turn-orchestrator/skills/start.md 17 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)
turn-orchestrator/skills/start_and_wait.md 15 error [Terminology.EmDash] Avoid em dashes ('—'). Rewrite with commas, parentheses, periods, or colons. (error)

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