fix(release): hotcrm compat gate is advisory in RC pre-mode — unblock the v17 train#3627
Merged
Merged
Conversation
… the v17 train Every Release run on main has been red since the v17 breaking window opened (first the localization-config narrowing, then the #3543 ApiMethod enum shrink): the live-hotcrm smoke types hotcrm@v2.1.0 (an ObjectStack 14.7 consumer) against the unreleased spec and fails on exactly the removals the major exists to ship. Because the step sits before changesets/action, the job dies before the Version Packages PR is even created — while a hotcrm release migrated off those removals cannot exist until the rc.N artifacts it would migrate against are published. Deadlock: #3600 entered pre-mode this morning specifically to cut rc.N pre-releases for downstream validation, and the gate has blocked every attempt since. While .changeset/pre.json declares mode:"pre", run the smoke as advisory: still cloned, still typechecked, outcome reported via ::notice/::warning — but never failing the job. With pre.json absent or mode:"exit" (the moment `changeset pre exit` lands) the gate blocks exactly as before, which is also the moment HOTCRM_REF must be bumped per the step's existing protocol. All four guard paths simulated locally: pre+fail→0, pre+pass→0, armed+fail→1, exit-mode+fail→1. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ECTCrcCdZpCHw5zFSgcmGt
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
os-zhuang
marked this pull request as ready for review
July 27, 2026 11:18
os-zhuang
added a commit
that referenced
this pull request
Jul 27, 2026
…nding changesets (#3635) changeset version hard-fails on a changeset naming a package that is not in the workspace, and two pending changesets (better-auth-1-7-0-rc-2 batch, OSV 2026-07 batch) still said @objectstack/create-objectstack while the scaffolder package is named create-objectstack. With the hotcrm gate now advisory in pre-mode (#3627), this was the next and only blocker in the version step: the v17 train died before creating its Version Packages PR. Verified locally: changeset status reproduced the exact CI error before the rename and assembles the release plan cleanly after it. Claude-Session: https://claude.ai/code/session_01ECTCrcCdZpCHw5zFSgcmGt Co-authored-by: Claude <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.
Why — every Release run on main is red, and the train is deadlocked
Every push to main today fails the Release workflow at "Downstream backward-compat smoke (live hotcrm)". The gate typechecks hotcrm@v2.1.0 (a real third-party consumer on ObjectStack 14.7) against the unreleased spec, and it fails on exactly the surface the v17 major deliberately removes:
fileOrganizationno longer accepted where hotcrm'sobjectstack.config.tsputs it),"search"/"export"/"aggregate"gone from 10 object files).#3600 entered changesets pre-mode (tag
rc) this morning specifically so the accumulated breaking window computes to17.0.0-rc.0and rc.N pre-releases can go out for downstream validation. But this gate sits beforechangesets/action, so the job dies before the Version Packages PR is even created — while a hotcrm release migrated off the removals cannot exist until the rc.N artifacts it would migrate against are published. Chicken-and-egg: the gate can never go green inside the window it is blocking.What
While
.changeset/pre.jsondeclaresmode:"pre", the smoke still runs — clone, install, overlay, typecheck, validate — and reports its outcome via::notice/::warning, but it no longer fails the job. Withpre.jsonabsent ormode:"exit"(the momentchangeset pre exitlands), the gate blocks exactly as before — which is also exactly when a migrated hotcrm release must exist andHOTCRM_REFgets bumped per the step's existing protocol comment.No script changes;
scripts/downstream-smoke.shis untouched. An empty changeset declares the PR releases nothing.Verification
All four guard paths simulated locally with a stubbed smoke script and real
pre.jsonfixtures:mode:"pre"::warning, exit 0 (train unblocked)mode:"pre"::notice, exit 0mode:"exit"YAML parses cleanly. The real proof lands on the first main push after merge: the Release run should proceed past the smoke (with a
::warning) and letchangesets/actioncreate thechore: version packagesPR for17.0.0-rc.0.🤖 Generated with Claude Code
https://claude.ai/code/session_01ECTCrcCdZpCHw5zFSgcmGt
Generated by Claude Code