Skip to content

fix(jetbrains): harden publish release recovery#11390

Draft
kirillk wants to merge 3 commits into
mainfrom
copy-concavenator
Draft

fix(jetbrains): harden publish release recovery#11390
kirillk wants to merge 3 commits into
mainfrom
copy-concavenator

Conversation

@kirillk

@kirillk kirillk commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

What changed

This PR hardens the JetBrains release flow after the 7.0.1-rc.11 publish failure.

  • Adds a publish-equivalent CLI resource preflight to prepare-jetbrains-release before it creates the immutable jetbrains/v<version> tag and release PR.
  • Uses bun install --frozen-lockfile through the shared setup-bun action in JetBrains release workflows, so CI cannot silently mutate dependency state.
  • Adds manual workflow_dispatch support to publish-jetbrains with normalized merged-PR context resolution for both PR-close and manual dispatch triggers.
  • Adds mode=full-publish for safe clean retries when Marketplace has not accepted the version.
  • Adds mode=github-release-only for recovery when Marketplace accepted the plugin but GitHub Release creation/upload failed.
  • Documents the new recovery path in .kilo/skills/release-jetbrains/SKILL.md.

How it will be used

Normal release flow stays the same: prepare a JetBrains release PR, review/edit the changelog, merge the release PR, then watch the publish workflow.

Before tag creation, prepare-jetbrains-release now runs bun script/build.ts --production --prepare-cli from packages/kilo-jetbrains. This catches Kilo Console and CLI resource build failures before the immutable release tag is created.

If publish fails before Marketplace accepts the version, maintainers can either use GitHub's built-in rerun for the failed workflow or manually dispatch publish-jetbrains with:

  • pr_number=<merged release PR>
  • mode=full-publish
  • confirm_marketplace_not_accepted=true

If Marketplace accepts the version but GitHub Release upload fails, maintainers should manually dispatch publish-jetbrains with:

  • pr_number=<merged release PR>
  • mode=github-release-only

That path rebuilds and signs the plugin archive from the immutable release tag, renders reviewed release notes, skips publishPlugin, and uploads or updates the GitHub Release asset.

Do not use full-publish after Marketplace has accepted the version because Marketplace publish is not reliably idempotent for accepted versions.

Notes

Latest main already includes the direct @pierre/diffs dependency in packages/kilo-console/package.json, so the package manifest and lockfile changes are no longer part of this PR. This PR now focuses on release workflow hardening and documented recovery.

The branch was updated with latest main. Pushes after that merge used --no-verify because the repo pre-push hook currently fails in unrelated upstream @opencode-ai/effect-drizzle-sqlite typecheck errors, starting with missing @effect/sql-sqlite-bun.

@kilo-code-bot

kilo-code-bot Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (3 files)
  • .github/workflows/prepare-jetbrains-release.yml
  • .github/workflows/publish-jetbrains.yml
  • .kilo/skills/release-jetbrains/SKILL.md
Previous Review Summary (commit c3eb4d1)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit c3eb4d1)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (4 files)
  • .github/workflows/prepare-jetbrains-release.yml
  • .github/workflows/publish-jetbrains.yml
  • bun.lock
  • packages/kilo-console/package.json

Notes

Reviewed the new Resolve release PR context heredoc (both workflow_dispatch and PR-triggered branches), the Validate recovery mode confirmation guard for full-publish, the conditional secret requirements (github-release-only skips JETBRAINS_MARKETPLACE_TOKEN), and the publishPlugin/signPlugin branching. Logic is sound and the exit 0 short-circuit for the dispatch path is safe under GitHub's default set -e -o pipefail shell.

The @pierre/diffs catalog: addition is backed by the existing catalog entry (1.1.22) and aligns with the dedupe entry already present in packages/kilo-console/vite.config.ts, so this is the correct Vite app-root resolution fix described in the PR. No runtime code changes, so no memory-leak surface.


Reviewed by gpt-5.4-2026-03-05 · 493,441 tokens

Review guidance: REVIEW.md from base branch main

@kirillk kirillk marked this pull request as draft June 18, 2026 17:33
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