fix(ci): bump iii to v0.11.6-next.1 and refetch annotated release tag#69
Merged
sergiofilhowz merged 2 commits intomainfrom May 4, 2026
Merged
Conversation
- _publish-registry.yml: pin iii install to v0.11.6-next.1 with --next. The previous v0.11.5 pin (added in #67) didn't surface external workers correctly in `engine::workers::list`, so `collect_worker_interface.py` raised `ValueError: expected exactly one worker matching 'image-resize', found 0` even when the worker was alive and connected. iii-hq/iii#1598 traced the same symptom on engine workers to PR iii-hq/iii#1585 landing in 0.11.6. - release.yml: actions/checkout@v4 fetches all tags first, then re-fetches the target SHA with `--no-tags +SHA:refs/tags/<tag>`, which silently overwrites the annotated tag with a lightweight one and drops the message. Add an explicit `git fetch origin +refs/tags/<tag>:refs/tags/<tag>` so `git tag -l --format=%(contents)` can still read the `registry-tag:` line and route the publish to next/latest as intended.
📝 WalkthroughWalkthroughTwo independent workflow updates: the publish-registry workflow now installs III CLI version 0.11.6-next.1 with the ChangesIII CLI Version Update
Annotated Tag Refetch
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
The Rust SDK's register_worker(url, opts) doesn't take a worker name, so external Rust workers (image-resize, mcp, proof, iii-lsp) register with id=<UUID> and name=null. Matching by `name == worker_name` always failed on these, even with the worker alive and connected. Add a fallback that looks for a worker whose registered functions are namespaced under the worker dir's snake_case (image-resize → image_resize::*). If exactly one worker matches, use it. On failure, include the workers list summary in the error so future regressions are debuggable from the log. Direct name/id match still wins so the iii-add path (Node/Python workers with explicit names) is unaffected.
sergiofilhowz
approved these changes
May 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Three follow-ups from the second publish attempt (failing run on
image-resizev0.1.6):_publish-registry.yml— bump iii install tov0.11.6-next.1+--next. The v0.11.5 pin (added in the CodeRabbit review fixes for feat: collect worker interface (request/response format) on publish #67) didn't surface engine builtin workers inengine::workers::list. fix(ci): pin engine worker publish to the release version iii#1598 traces the same symptom, with the underlying engine fix landing in Include engine workers in worker listings iii#1585 (v0.11.6+). External SDK workers were already returned in v0.11.5, but the bump is required for any worker matching pattern that needs the engine list to be authoritative.release.yml— explicit annotated tag re-fetch.actions/checkout@v4first fetches+refs/tags/*:refs/tags/*, then re-fetches the target SHA with--no-tags +<SHA>:refs/tags/<tag>, which silently overwrites the annotated tag with a lightweight one and drops the message. After that,git tag -l --format=%(contents)returns empty andSetupfalls back toregistry-tag=latesteven when the create-tag dispatch wroteregistry-tag: nextinto the annotation. Add an explicitgit fetch origin +refs/tags/<tag>:refs/tags/<tag>so the annotation survives.build_publish_payload.py— namespace fallback for worker matching.image-resize/src/main.rs:54(and every other Rust worker on the cargo-run path) callsregister_worker(url, opts)with no name, so the engine stores them withid=<UUID>andname=null. Matchingname == worker_namealways failed on those, raisingValueError: expected exactly one worker matching 'image-resize', found 0. Fall back to matching workers by registered function namespace (image-resize→image_resize::*); the iii-add path (Node/Python workers with explicit names) still hits the direct match first.Test plan
create-tag.ymlwithworker=image-resize, bump=patch, tag=nextSetupnotice printsregistry-tag=nextInstall iii CLIstep logsinstalled iii v0.11.6-next.1Collect worker interfacematchesimage-resizevia namespace fallback (nofound 0)POST /publishreturns 200 withtag: "next"in the payload