Repository navigation
fix(release): let the guard first-publish new packages without code changes - #101
Merged
Merged
Conversation
capyBearista
force-pushed
the
fix/release-guard-first-publish
branch
from
November 1, 2026 21:36
4ed4e49 to
6360ce8
Compare
…hanges The Release job for the auto-advisor merge failed: npm returned 404 for the never-published package, and the guard failed closed on any non-200. It also kept a second, hard-coded copy of the package policy, so every new plugin needed a guard edit, and its messages still said "six". tools/release-channels.json is now the only package list. The guard checks it against the workspace and names any package missing from either side, validates each entry's shape, and rejects a release class above the current OpenCode major. A 404 from npm plans a first publish, still bound to the class major; every other failure still stops the release. CI now runs `bun run release:check`, which reads npm and publishes nothing, so a release the guard would reject fails on the PR instead of on main. Also: auto-advisor in the PR and issue templates and in the downloads worker, and a 30 s limit for the timeline test that timed out on CI.
capyBearista
force-pushed
the
fix/release-guard-first-publish
branch
from
November 1, 2026 21:41
6360ce8 to
9ef7b52
Compare
This was referenced Nov 1, 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
The Release job for the #94 merge failed. npm returns HTTP 404 for
@capybearista/opencode-auto-advisor, which has never been published, and the release guard failed closed on any non-200. The guard also kept a second, hard-coded copy of the package policy (APPROVED_POLICY), so every new plugin needed a guard edit, and its error messages still said "six" packages.tools/release-channels.jsonis the only source. The guard checks it againstpackages/and names any package missing from either side (not in tools/release-channels.json: …/not in the workspace: …). Each entry must be exactly{releaseClass: "vN", channel}, and a class above the current OpenCode major (CURRENT_OPENCODE_MAJOR = 2) is rejected, so 3.x stays reserved for OpenCode V3. Adding a plugin now takes one JSON entry, and the guard requires it.… first publish -> latest), still bound to the class major. Every other failure (401, 503, malformed metadata, timeout) still stops the release.bun run release:check, which reads npm and publishes nothing. A release the guard would reject now fails on the PR instead of onmain.main's CI, and the release-class rule in AGENTS.md and CONTRIBUTING.md now points attools/release-channels.json.Linked Issue
No issue. Follow-up to #94: its Release run failed on the 404, and its CI run timed out a test.
Plugin(s) Affected
Type of Change
OpenCode Validation
bun run release:checkagainst the real npm registry lists the six published packages as published and@capybearista/opencode-auto-advisor@2.0.0 first publish -> latest.Quality Checklist
bun run typecheck && bun run lint && bun run testbun run build.opencodeconfig was part of testing, I verified it points at the package root or published plugin name rather than a staledist/*artifact (n/a)Additional Context
class-majorvalidates changesets and manifests only), so the guard's registry check first ran after merge. It had never seen a package missing from npm, because all six earlier packages existed when it was written.npm publishof 2.0.0, then adding the trusted publisher on npmjs.com and re-running Release.