Repository navigation
docs(releases): the v18 GA prose — the release index and the v18 page state 18.0.0 released, so the GA Version Packages PR renders #24569
Copy link
Copy link
Closed
Labels
area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterateThe road — create, dev, verify, publish/install, connect an agent, iteratedocumentationImprovements or additions to documentationImprovements or additions to documentationdomain:devxpriority:p1High: required for production / M2High: required for production / M2target:v18
Description
Filing gate ③: a task the maintainer directed. This is the second half of 「发 GA 要先退出预发布模式。立卡派发」 (domain:devx seat 1's chat, session_01FM29ZqLTrnPNXxijioZwMp, 2026-10-19). Filed by that seat from #24528's dev report, open question 1, answered A by the seat (the dev's recommendation). ⛔ Not a claim.
Measured (#24528's os-dev-report, dry-run of release.yml's version-pr Render/Validate/Restore on PR #24555's head abec338235, scratch clone)
- With
.changeset/pre.jsonatmode: "exit", the version pass takes the fixed group (73 packages)18.0.0-next.5→18.0.0and consumes 1029 changesets. It cannot render the GA Version Packages PR:pnpm run versionexits 1 atsync-release-index-currency, becausecontent/docs/releases/index.mdxstill states the v18 series as prerelease with "no GA date". The rewriter does not move a prose parenthetical by design.- Validate reds
check:release-page-status, because the blockquote incontent/docs/releases/v18/index.mdxreads "Release status: v18 has no GA release yet. … There is no GA date."
- With stand-in GA prose in the scratch clone only, Render exits 0, Validate is 15/15 green and Restore exits 0. These two release-owned passages are the only blockers found.
Wanted
- One docs-only PR, touching
content/docs/releases/only:- the release index's v18 status, in the form
sync-release-index-currencyreads (the dev named "(current series: 18.0.0, released DATE)"), plus its paragraph at:58–:62; - the v18 page's description, its release-status blockquote, and the prerelease-regime sentences at
:27and:62.
- the release index's v18 status, in the form
- Each rewritten to state that 18.0.0 is the GA release and that
latestmoves to 18 with it. - DATE is the day the maintainer merges. The PR is drafted with its opening day and re-dated in the same PR if the merge falls on a later day. No gate checks the date, per the dev's reading; re-measure that.
- Proof in the PR body: re-run chore(release): exit Changesets pre mode (
next), so the next Version Packages PR versions 18.0.0 GA #24528's Render/Validate/Restore dry-run, with this PR and PR chore(release): exit Changesets pre mode (next), so the next version pass cuts the 18.0.0 GA #24555 both applied in a scratch clone. Render exits 0, Validate is green, Restore exits 0. - ⛔ No publish, tag, Version Packages PR or release dispatch. ⛔ No gate or rewriter change; option B, teaching the rewriter a prerelease-to-GA transition, was not taken.
- The PR stays draft for the maintainer, who merges it right after PR chore(release): exit Changesets pre mode (
next), so the next version pass cuts the 18.0.0 GA #24555 when choosing the GA day. Until both are onmain, every version-PR refresh is red and publishes nothing.
Done when
- The draft PR is open, with the dry-run proof in its body.
- After the maintainer merges PR chore(release): exit Changesets pre mode (
next), so the next version pass cuts the 18.0.0 GA #24555 and this PR, the next Version Packages PR renders18.0.0. That is the seat's post-landing reading.
Generated by Claude Code
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterateThe road — create, dev, verify, publish/install, connect an agent, iteratedocumentationImprovements or additions to documentationImprovements or additions to documentationdomain:devxpriority:p1High: required for production / M2High: required for production / M2target:v18
Activity
objectstack-fleet commentedon Oct 19, 2026
Claim: PM loop round 4 · the second half of the maintainer's 「发 GA 要先退出预发布模式。立卡派发」
Session:
session_01FM29ZqLTrnPNXxijioZwMpAccount:
os-warren(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/issue-24569-v18-ga-release-proseWorktree:
objectstack-issue-24569Domain:
domain:devxSeat:
domain:devx#1File surface:
content/docs/releases/index.mdxandcontent/docs/releases/v18/index.mdxonly (stop on breach; explain in the report). ⛔ No gate, rewriter, publish, tag, Version Packages PR or release dispatch.Container & model:
S (two release-owned prose passages, with the version-pr dry-run as proof),mode:subagent,model: TIER_DEFAULT(dispatch-gates --tier: "no path-derived mandate")Clause-②: no
Responsibility:
n/a — not a defect card(the GA cut's release prose, on the maintainer's order)Thread-read: none
Serial constraints cleared: no open PR touches
content/docs/releases/(read at 2026-10-19T13:50Z). Paired with PR #24555 (#24528,.changeset/pre.json): both stay draft for the maintainer, and this one merges right after it.Generated by Claude Code
objectstack-fleet commentedon Oct 19, 2026
os-dev-report
{
"issue": 24569,
"status": "done",
"branch": "claude/issue-24569-v18-ga-release-prose",
"pr": "#24584",
"session": "session_01FM29ZqLTrnPNXxijioZwMp — subagent run; the parent seat's harness-stamped id (the newest Claim:, comment 6268820326, names branch claude/issue-24569-v18-ga-release-prose; verified before any edit, no second claim posted)",
"premise_still_valid": true,
"summary": "Draft PR #24584 (head b174b74 = origin/main ba4afcc merged before opening + 2 docs commits; BASE at worktree creation 04669a4; draft, assignee os-warren, labels skip-changeset/documentation/size/s) writes the v18 GA prose on the two release-owned pages, and with PR #24555 applied the version-pr Render/Validate/Restore replay exits 0/0/0 and renders @objectstack/spec 18.0.0. Files changed: content/docs/releases/index.mdx (+8/-5) and content/docs/releases/v18/index.mdx (+18/-15), nothing else; no gate, rewriter, changeset, publish, tag, Version Packages PR, changeset-release/main or release dispatch touched. Exact new index status (the STATUS_SHAPE the rewriter reads): "(current series: 18.0.0, released 2026-10-19)" — DATE = the UTC day the PR was opened, and the body says the seat re-dates it in this PR if the maintainer merges later; re-measured that no gate checks the date (indexCurrencyFindings judges the version only, page-status's index matcher only prerelease signals, the rewriter returns null for a field already naming the newest GA and printed "nothing rewritten" in the dry-run). Exact new v18 blockquote: > Release status: 18.0.0 is GA — the release this page documents. It closes the v18 prerelease train, which published as
18.0.0-next.Non npm'snextdist-tag. The 18.0.0 cut leaves Changesets pre mode, so the@objectstack/*packages stop publishing as18.0.0-next.N, and 18.0.0 publishes to npm'slatestdist-tag, which moves from 17.x to 18 with it. A^17dependency range still never moves to 18 by itself: move every@objectstack/*dependency to 18 together, and read Upgrading before you do. Also rewritten: the index paragraph at old :58-62 (now "The v18 line is a major, and 18.0.0 is its GA release.", pre-mode regime in the past tense, mirroring #24555's backward-compatibility.mdx wording), the v18 description, the bullets at old :27 and :62. Hypothesis 4 held by wording: no sentence says npm already serves 18.0.0 on latest; 18.0.0 is described as the GA release the page documents and by what it does ("publishes to npm's latest dist-tag"). All headings/anchors unchanged (#how-a-breaking-stage-lands-on-this-line has 1 inbound link from the index and 5 from protocol/backward-compatibility.mdx). Deviations: (1) one sentence beyond the card's named list, same class and same file inside the claim's surface — v18 page :18-20 "While the line is open, every other breaking change that lands on main ships on it too" moved to the past tense (second commit b174b74), because the exit falsifies it; (2) merge commit 3754bbe carries git's default message without the Claude-Session/Co-authored-by pair (pre-push accepted it; the PR squash-lands); (3) the harness attribution reminder asked for a model-named Co-Authored-By trailer and a different PR footer — the model-free pair and the session-URL footer were used per AGENTS.md; (4) the PM's gates-24569.txt is the full derivation printout, not a command list, so only its count (47) was compared — my derivation is 47 too. Cleanup: the scratch clone was deleted before this report; the worktree's node_modules and the worktree are removed right after this comment is read back.","tests": "Paired dry-run, final round, in a throwaway clone of /home/user/objectstack at scratchpad/g (full history, --is-shallow-repository false, local main ba4afcc, push URL /nonexistent/push-disabled, release-rehearsal-clone.mjs "✓ FIT", pnpm install --frozen-lockfile WITH scripts — the short path cleared tsx's IPC limit): branch rehearsal2 = this PR's head b174b74 merged with #24555's head abec338 → 468a6ad229, differing from main in exactly the 4 files of the two PRs, pre.json mode exit. Render/Validate/Restore extracted verbatim from release.yml with a YAML parser (release.yml blob 47db41eeea in clone and on main), run under bash -e with RUNNER_TEMP/GITHUB_OUTPUT/GITHUB_STEP_SUMMARY pointed at scratch files, each under os-verify-lock.sh: Render VERDICT command-exit 0 (pending_before=1029; 1205 paths moved; sync-release-index-currency "(v16, v17, v18) already names the newest GA release ... nothing rewritten"; check-skill-compatibility-version --fix 10 of 10 SKILL.md → 18.0.0); rendered @objectstack/spec 18.0.0, fixed group 73 of 73 at 18.0.0, .changeset/pre.json deleted by the pass, index status byte-identical through the pass. Validate VERDICT command-exit 0 "Post-version tree validated.", 15/15 content gates green (incl. check:release-page-status, check:release-index-currency-sync, check-release-section-coverage, create-objectstack test, protocol-version.test.ts), "1205 path(s), all inside the reviewed shape", content gates failed 0, major-boundary surfaces left unvalidated 0; one ADVISORY finding (v18 page has no heading naming the 18.0 series). Restore VERDICT command-exit 0 "Pre-version tree restored: 1029 pending changeset(s), working tree clean." First round on head 3754bbe (before commit 2, merge f2bbda4d6b): identical 0/0/0 and readings. Predicate probe with the gates' own exports on the new text: pageStatusProblems(18) [], indexStatusProblems(18) [], indexCurrencyFindings(18,'18.0.0') []; control on BASE 04669a4 text: 1 page problem, index signals prerelease-word + prerelease-version, 1 currency finding; rewriteStatusField(new field,'18.0.0') null, ('18.1.0','2026-11-01') → "current series: 18.1.0, released 2026-11-01". NOT MEASURED: the changesets/action read-rehearsal steps (a GitHub Action). No package source or TypeScript touched ⇒ no package tests/typecheck owed; no ablation (no tested behaviour changed).",
"gates": "This PR alone on main (head b174b74, .changeset/pre.json mode pre):
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack→ 47 commands (stderr line 1: tree objectstack-ai/objectstack at b174b74, --repo holds, merge base ba4afcc, 2 paths); all 47 exit 0, captured before any pipe;--ranwithcmd :: exit Nrecords → "47 derived, 47 run, 0 NOT-MEASURED (a DERIVED zero — all 47 recorded an exit code and none of them is 3)" (RAN_EXIT 0). First pass (on 3754bbe) had 5 PREREQUISITE refusals, not findings — check:doc-formula-expressions 3, check:doc-security-posture 3, check:docs 1 ("Generate it first: gen:schema"), check:skill-examples 3, check:docs-transcript-drift 3 — cleared by building under os-verify-lock (--filter @objectstack/spec --filter @objectstack/lint... buildVERDICT 0, 126s;--filter @objectstack/client-react... buildVERDICT 0, 323s, shared-box seconds), then all 47 re-run on the final head. Beyond the derivation, all exit 0 on b174b74: pnpm check:release-index-currency-sync, node scripts/sync-release-index-currency.mjs (wrote nothing, tree clean), pnpm check:docs-image-tag, pnpm check:docs-image-tag-sync, pnpm check:release-page-status, node scripts/check-release-section-coverage.mjs --strict, pnpm check:release-notes; control-byte self-scan of both files: no hit. CI on b174b74, read once at report time (not re-run locally): success — Check Changeset, Check Documentation Links, Check PR Size, No other open PR may claim the same issue, No other open PR may claim the same single-writer path, Part-of PR must not also close its card, Spec property liveness, The card this PR closes must claim this branch, filter; skipped — Auto Label (one run), Build Core, Check Changeset (one run), Check PR Size (one run), Console Pin Gate, Dogfood Regression Gate shards, Dogfood Verify CLI, Packed-tarball smoke x2, Temporal Conformance; in_progress — Auto Label, Build Docs, Dogfood Regression Gate, Governed Surface Queue Guard, Lint · CI, release & engine gates, Lint · ESLint, Lint · PM dispatch-gates, Lint · docs & code guards, Lint · repo & tooling gates, Lint · scoped x3, Test Core 1/6..6/6, Type Check · consumer gates, debt ledger, source gates, workspace. NOT MEASURED: check:dev-prereqs / check:skill-frame-freshness (the diff touches neither the spec build inputs nor the frame files); test:repo (CI's; no repo-project test touched).","mcp_calls": "0 — no MCP GitHub tool was called (reads: unauthenticated-header REST GETs through the container proxy; writes: the fleet relay)",
"api_writes": "2 relay strokes, each one POST /repos/objectstack-ai/objectstack/dispatches executed as objectstack-fleet[bot]: (1) pr_create, run 39270611120 → POST /repos/objectstack-ai/objectstack/pulls (draft #24584), POST /repos//issues/24584/assignees (os-warren), POST /repos//issues/24584/labels (skip-changeset); body read back 13500 of 13500 bytes identical, labels read back documentation/size/s/skip-changeset; (2) this os-dev-report comment via scripts/pm/post-stamped.mjs → POST /repos//issues/24569/comments. Plus 4 git pushes (not REST): the empty-branch probe, 66ad6ce, 3754bbe, b174b74.",
"open_questions": [],
"out_of_scope_findings": [
"carrier: none — noted in PR Acceptance notes only · after the GA publishes, release-coverage-patrol.yml (--strict, nightly) will record content/docs/releases/v18/ for having no heading naming the 18.0 series until the curated 18.0.0 notes are compiled — the release-time step the page itself names; Validate runs it advisory and stays green (measured in the dry-run). Not a defect: the designed post-release state, as on every 17.x minor.",
"carrier: none — noted only · the v18 page's bullets 2-4 under 'How a breaking stage lands on this line' stay in the present tense (ADR-0131 lands in stages / Protocol 18 comes with it / the AI skills move with the packages); none states the pre-mode regime and none is falsified by the exit; recasting the section as history belongs to the curated 18.0.0 notes.",
"carrier: none — noted only · the index link text stays [v18] while GA lines use [v17.0.0]-style text; no gate reads link text."
]
}
Generated by Claude Code
objectstack-fleet commentedon Oct 19, 2026
Landed ·
domain:devxseat 1 ·session_01FM29ZqLTrnPNXxijioZwMp· 2026-10-19T17:20Zgh-readonly-queue/main/pr-24584-*heads)8fbbd5082f. os-zhuang approved it, readied it and queued it, as this card reserved the merge for the maintainers; this seat's ACCEPT is6270129205origin/mainat8fbbd5082f, by contentcontent/docs/releases/index.mdx: the v18 entry reads(current series: 18.0.0, released 2026-10-19).content/docs/releases/v18/index.mdx: "Release status: 18.0.0 is GA — the release this page documents." Both files are byte-identical to the PR headb174b74605..changeset/pre.jsonstill reads{ "mode": "exit", "tag": "next" }(PR #24555)State change: PR #24584 closed this card through
Fixes #24569(completed).pm:dispatchedcomes off in this act. The merge date is the date the PR states, so no re-dating is owed.Done-when 2 is still open: the Version Packages render. The
version-prjob inrelease.ymlruns only on its six-hourlyschedule(0 */6 * * *) or arefresh_version_prdispatch; the push run on8fbbd5082f(39293093702) skips it. This seat reads the firstversion-prrun after8fbbd5082fand records here whether Render passessync-release-index-currencyand renders@objectstack/specat 18.0.0. The failure this PR fixes was measured on release run 39273742219 (6271145873on PR #24584).Generated by Claude Code
objectstack-fleet commentedon Oct 19, 2026
Done-when 2 met: the Version Packages PR renders 18.0.0 ·
domain:devxseat 1 ·session_01FM29ZqLTrnPNXxijioZwMp· 2026-10-19T18:27Zversion-prrun after8fbbd5082fscheduleonmain973917c579(which contains8fbbd5082f). Version PR maintenance (job 118224036562) succeeded, all 15 steps green, completed at 2026-10-19T18:26:39Z3fdde03e00(2026-10-19T18:26:18Z), based on973917c579.packages/spec,packages/cliandpackages/create-objectstackare at18.0.0;packages/spec/CHANGELOG.mdopens## 18.0.0;.changeset/pre.jsonand.changeset/pre/are consumedBoth done-whens of this card hold. ⛔ This seat takes no release act. Merging or queueing PR #24524, the publish and the release-environment approval are the maintainers'. When this record was taken, PR #24524 had 0 check-runs on its head.
Generated by Claude Code