fix(ci): publish CLI on dedicated cli-v* tag, not product v* tag - #796
Merged
Conversation
The CLI depends on @e2a/sdk, but the SDKs publish on their own ts-sdk-v* / python-v* tags pushed after the product tag. Triggering publish-cli.yml on v* therefore always published the CLI before the SDK version it was built against (observed on v1.5.0: @e2a/cli@2.2.0 hit npm ~4 minutes before @e2a/sdk@5.5.0). A CLI that needed a new SDK method would be installable-and-broken during that window. Publishing the CLI now requires pushing a cli-v<version> tag after ts-sdk-v*, matching the SDK release pattern. workflow_dispatch stays. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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
Release-ordering hazard:
publish-cli.ymltriggered on the productv*release tag, but the CLI depends on@e2a/sdk(cli/package.jsondeclares"@e2a/sdk": "^5.0.0"), and the SDKs publish on their ownts-sdk-v*/python-v*tags pushed after the product tag. So the CLI was always published before the SDK version it was built against.Observed live on v1.5.0:
@e2a/cli@2.2.0hit npm ~4 minutes before@e2a/sdk@5.5.0. It was benign only because CLI 2.2.0 happens to use no 5.5.0-only API — every method it calls existed in 5.4.0. A future CLI that genuinely needed a new SDK method would be installable-and-broken during that window.Change
cli-v*tag, matching the SDK pattern exactly.workflow_dispatchretained;testjob, npm-OIDC setup,--provenance, and concurrency group unchanged.AGENTS.mdpublishing section updated to document the new tag and the ordering rationale.New release step
Publishing the CLI now requires pushing
cli-v<version>(afterts-sdk-v*), or dispatching the workflow — it no longer happens automatically on a product release. No other workflow publishes the CLI onv*(verified:build-image.ymlandpublish-mcp-http.ymlonly push container images).Possible follow-up (not in this PR, to stay consistent with the SDK workflows, which also lack it): a tag-vs-
package.jsonversion guard across all three publish workflows.🤖 Generated with Claude Code