Skip to content

Commit 9ab7f1b

Browse files
os-zhuangclaude
andauthored
fix(release): hotcrm compat gate is advisory in RC pre-mode — unblock the v17 train (#3627)
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. Claude-Session: https://claude.ai/code/session_01ECTCrcCdZpCHw5zFSgcmGt Co-authored-by: Claude <noreply@anthropic.com>
1 parent 1003125 commit 9ab7f1b

2 files changed

Lines changed: 27 additions & 1 deletion

File tree

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
---
3+
4+
CI-only: the live-hotcrm backward-compat gate in release.yml is advisory while changesets pre-mode is active, so the RC train can form its Version Packages PR; it re-arms automatically at `changeset pre exit`. Releases nothing.

.github/workflows/release.yml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,14 +72,36 @@ jobs:
7272
# typecheck + `objectstack validate`. A red here blocks the publish.
7373
# The deterministic in-repo floor is @objectstack/downstream-contract;
7474
# this is the live ceiling.
75+
#
76+
# RC pre-mode amendment (#3600): while .changeset/pre.json says
77+
# mode:"pre", the smoke still runs and reports but does NOT block. A
78+
# major train exists precisely to ship deliberate surface removals, and
79+
# a hotcrm release migrated off them cannot exist until the rc.N
80+
# artifacts it would migrate against are published — blocking here
81+
# deadlocks the train (observed 2026-07-27: every Release run red on
82+
# the v17 window's removals, so the changesets step never even created
83+
# the Version Packages PR). The gate re-arms by itself the moment
84+
# `changeset pre exit` lands (mode flips / pre.json is consumed) —
85+
# exactly when a migrated hotcrm must exist and HOTCRM_REF gets bumped
86+
# per the note below.
7587
env:
7688
# v2.1.0: hotcrm upgraded to ObjectStack 14.7 (hotcrm#448) and
7789
# dropped the agent `visibility` field that spec 15 removes as
7890
# unenforced surface (ADR-0056 D8, #3216).
7991
# Bump this ref whenever a deliberate spec surface removal ships a
8092
# matching hotcrm release.
8193
HOTCRM_REF: v2.1.0
82-
run: bash scripts/downstream-smoke.sh
94+
run: |
95+
if [ "$(jq -r '.mode // empty' .changeset/pre.json 2>/dev/null)" = "pre" ]; then
96+
echo "::notice::Changesets pre-mode active — the hotcrm smoke is advisory (reported, non-blocking) until 'changeset pre exit'."
97+
if bash scripts/downstream-smoke.sh; then
98+
echo "::notice::hotcrm@${HOTCRM_REF} is still compatible with the pre-release train."
99+
else
100+
echo "::warning::hotcrm@${HOTCRM_REF} is incompatible with the pre-release train — expected for the window's deliberate removals. Ship a migrated hotcrm release and bump HOTCRM_REF before 'changeset pre exit' re-arms this gate."
101+
fi
102+
else
103+
bash scripts/downstream-smoke.sh
104+
fi
83105
84106
- name: Create Release Pull Request or Publish to npm
85107
id: changesets

0 commit comments

Comments
 (0)