Skip to content

fix(release): hotcrm compat gate is advisory in RC pre-mode — unblock the v17 train#3627

Merged
os-zhuang merged 1 commit into
mainfrom
claude/ci-performance-optimization-ms8ll6
Jul 27, 2026
Merged

fix(release): hotcrm compat gate is advisory in RC pre-mode — unblock the v17 train#3627
os-zhuang merged 1 commit into
mainfrom
claude/ci-performance-optimization-ms8ll6

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

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:

#3600 entered changesets pre-mode (tag rc) this morning specifically so the accumulated breaking window computes to 17.0.0-rc.0 and rc.N pre-releases can go out for downstream validation. But this gate sits before changesets/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.json declares mode:"pre", the smoke still runs — clone, install, overlay, typecheck, validate — and reports its outcome via ::notice/::warning, but it no longer fails the job. With pre.json absent or mode:"exit" (the moment changeset pre exit lands), the gate blocks exactly as before — which is also exactly when a migrated hotcrm release must exist and HOTCRM_REF gets bumped per the step's existing protocol comment.

No script changes; scripts/downstream-smoke.sh is untouched. An empty changeset declares the PR releases nothing.

Verification

All four guard paths simulated locally with a stubbed smoke script and real pre.json fixtures:

pre.json smoke result step outcome
mode:"pre" fail ::warning, exit 0 (train unblocked)
mode:"pre" pass ::notice, exit 0
absent fail exit 1 (gate blocks, unchanged)
mode:"exit" fail exit 1 (gate re-armed)

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 let changesets/action create the chore: version packages PR for 17.0.0-rc.0.

🤖 Generated with Claude Code

https://claude.ai/code/session_01ECTCrcCdZpCHw5zFSgcmGt


Generated by Claude Code

… 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
@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectstack Ignored Ignored Jul 27, 2026 11:06am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation size/s ci/cd tooling labels Jul 27, 2026
@os-zhuang
os-zhuang marked this pull request as ready for review July 27, 2026 11:18
@os-zhuang
os-zhuang merged commit 9ab7f1b into main Jul 27, 2026
15 checks passed
@os-zhuang
os-zhuang deleted the claude/ci-performance-optimization-ms8ll6 branch 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cd documentation Improvements or additions to documentation size/s tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants