Skip to content

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

Closed

Description

@objectstack-fleet

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.json at mode: "exit", the version pass takes the fixed group (73 packages) 18.0.0-next.5 → 18.0.0 and consumes 1029 changesets. It cannot render the GA Version Packages PR:
    • pnpm run version exits 1 at sync-release-index-currency, because content/docs/releases/index.mdx still 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 in content/docs/releases/v18/index.mdx reads "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

Done when

  1. The draft PR is open, with the dry-run proof in its body.
  2. 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 renders 18.0.0. That is the seat's post-landing reading.

Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 19, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 4 · the second half of the maintainer's 「发 GA 要先退出预发布模式。立卡派发」
    Session: session_01FM29ZqLTrnPNXxijioZwMp
    Account: os-warren (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-24569-v18-ga-release-prose
    Worktree: objectstack-issue-24569
    Domain: domain:devx
    Seat: domain:devx#1
    File surface: content/docs/releases/index.mdx and content/docs/releases/v18/index.mdx only (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

  2. objectstack-fleet commented on Oct 19, 2026

    @objectstack-fleet
    ContributorAuthor

    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.N on npm's next dist-tag. The 18.0.0 cut leaves Changesets pre mode, so the @objectstack/* packages stop publishing as 18.0.0-next.N, and 18.0.0 publishes to npm's latest dist-tag, which moves from 17.x to 18 with it. A ^17 dependency 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; --ran with cmd :: exit N records → "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... build VERDICT 0, 126s; --filter @objectstack/client-react... build VERDICT 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

  3. objectstack-fleet commented on Oct 19, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed · domain:devx seat 1 · session_01FM29ZqLTrnPNXxijioZwMp · 2026-10-19T17:20Z

    reading result
    merge queue (gh-readonly-queue/main/pr-24584-* heads) none left: the entry has drained
    PR object PR #24584 merged at 2026-10-19T17:19:12Z as 8fbbd5082f. os-zhuang approved it, readied it and queued it, as this card reserved the merge for the maintainers; this seat's ACCEPT is 6270129205
    origin/main at 8fbbd5082f, by content content/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 head b174b74605. .changeset/pre.json still reads { "mode": "exit", "tag": "next" } (PR #24555)

    State change: PR #24584 closed this card through Fixes #24569 (completed). pm:dispatched comes 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-pr job in release.yml runs only on its six-hourly schedule (0 */6 * * *) or a refresh_version_pr dispatch; the push run on 8fbbd5082f (39293093702) skips it. This seat reads the first version-pr run after 8fbbd5082f and records here whether Render passes sync-release-index-currency and renders @objectstack/spec at 18.0.0. The failure this PR fixes was measured on release run 39273742219 (6271145873 on PR #24584).


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 19, 2026

    @objectstack-fleet
    ContributorAuthor

    Done-when 2 met: the Version Packages PR renders 18.0.0 · domain:devx seat 1 · session_01FM29ZqLTrnPNXxijioZwMp · 2026-10-19T18:27Z

    reading result
    the first version-pr run after 8fbbd5082f release run 39300473949, schedule on main 973917c579 (which contains 8fbbd5082f). Version PR maintenance (job 118224036562) succeeded, all 15 steps green, completed at 2026-10-19T18:26:39Z
    Render's index-currency line "sync-release-index-currency: every in-scope entry in content/docs/releases/index.mdx (v16, v17, v18) already names the newest GA release of its major, per packages/spec/CHANGELOG.md — nothing rewritten." This is the step that failed on release run 39273742219
    the Version Packages PR PR #24524, head 3fdde03e00 (2026-10-19T18:26:18Z), based on 973917c579. packages/spec, packages/cli and packages/create-objectstack are at 18.0.0; packages/spec/CHANGELOG.md opens ## 18.0.0; .changeset/pre.json and .changeset/pre/ are consumed

    Both 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedocumentationImprovements or additions to documentationdomain:devxpriority:p1High: required for production / M2target:v18

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions