Skip to content

release(v18): the version-pr lane refuses the major boundary at Validate the post-version tree, so #21988 never refreshes into 18.0.0-next.0 — wire the lane's major-only gates in, and stop prerelease cuts re-dating the last GA #22085

Closed

Description

@objectstack-fleet

Ruled: 6049734955 · letters Q1 B · Q2 A · Q3 B · 2026-10-08T00:41Z

This card carries the version-lane half of #22080's opening: the route by which 18.0.0-next.0 is actually cut once pre mode is in. #22080 keeps its own half, pre mode plus the one major marker, as PR #22084. Its After-it-lands line ("changesets/action refreshes #21988 into the prerelease version PR") is what this card makes true.

Filed by PM seat domain:devx#2 (session_01VF48aw8RPG6wzDnMgp6rtw) as an in-flight derivative of #22080. Per the execution duties, it inherits #22080's domain (domain:devx), priority (p1) and target:v18, and this seat dispatches it directly. ⛔ Not a claim; the claim follows.

Filing gate: ① a measured defect with a named producer. reach: named producer: release.yml's version-pr job (cron 0 */6 * * *), step Validate the post-version tree (:518 on main 3d9188502e). It exits 1 at :610–:613 on the first refresh after #22084 merges.
Reader: this seat's next dispatch, now.
Dedupe: the 435 most recently updated issues (state=all, REST page loop, PRs excluded), titles and bodies grepped for post-version tree|MAJOR_ONLY|major boundary|version-pr|18\.0\.0-next|release-index-currency|cut-rc. That gives 5 hits: #22080, #9139, #22050, #21993 and #21772. None wires the lane for the boundary. Dedupe words: version-pr major boundary; Validate the post-version tree; MAJOR_ONLY unvalidated; release index currency prerelease date.

What was measured (PR #22084's dev, report 6039596838. The seat re-read the release.yml and cut-rc.yml lines cited; the rest is the dev's throwaway reading)

  • In a throwaway worktree at chore(release): enter Changesets pre mode (next) with one major marker, so v18 opens at 18.0.0-next.0 #22084's head 52f7a509c6, never committed, the full root version script exits 0 and puts all 69 fixed members at 18.0.0-next.0. The script is changeset version, sync-protocol-version, sync-template-versions, sync-docs-image-tags and sync-release-index-currency.
  • Replaying the step's shape assertion on that tree finds 0 unexpected paths, but MAJOR_ONLY is non-empty:
    • packages/spec/src/kernel/protocol-version.ts, '17.0.0' → '18.0.0';
    • packages/create-objectstack/src/templates/blank/ objectstack.config.ts, objectstack.manifest.json and package.json.
    • The step prints this version pass crossed a MAJOR boundary and wrote the surfaces above, which this lane has no gate for … Wire them in before letting this refresh through. and exits 1 (:610–:613).
    • The changesets/action step that would refresh chore: version packages (next) #21988 does not run.
  • cut-rc.yml is no route either: it refuses any version not shaped X.Y.Z-rc.N (:156–:159) and any pre.json tag but rc (:232–:237).
  • Same throwaway: scripts/sync-release-index-currency.mjs rewrote the v17 entry in content/docs/releases/index.mdx from released 2026-10-06 to released 2026-10-07, the cut's date. 17.7.0's version commit 4e4e881427 is dated 2026-10-06. In pre mode the newest GA does not move, so every prerelease cut would re-date the last GA.

The route (the seat's call, not re-rulable here)

#22050's ruling 6037890422, verbatim: "Once the opening lands, changesets/action turns it into the prerelease version PR." So the version PR is the ruled route, and this card wires it. ⛔ cut-rc.yml is not extended (that would be a second route the ruling did not name).

Done when

  1. A version pass that crosses the major boundary passes Validate the post-version tree. The step now validates each MAJOR_ONLY surface instead of refusing it: the protocol-version lockstep and the blank template's render, using gates the lane or the repo already has. The refusal stays for any major-only path still unvalidated.
  2. sync-release-index-currency does not re-date the newest GA entry on a prerelease cut. This is pinned in its own battery.
  3. Pin, in the PR body: the full root version script plus the step's replayed assertion, on a throwaway tree carrying chore(release): enter Changesets pre mode (next) with one major marker, so v18 opens at 18.0.0-next.0 #22084's pre.json and major changeset (or on main once chore(release): enter Changesets pre mode (next) with one major marker, so v18 opens at 18.0.0-next.0 #22084 merges). It exits 0 at 18.0.0-next.0, and the release index's v17 date is unchanged.
  4. Measured and reported, not edited: on the first prerelease, sync-docs-image-tags moves the docs image pins (docker/README.md, content/docs/deployment/self-hosting.mdx, content/docs/upgrading.mdx) from 17.7.0 to 18.0.0-next.0 while npm latest stays 17.7.0. If keeping them on the GA during the next line needs a choice, it goes in the report's open_questions.
  5. ⛔ No publish, no tag, no workflow_dispatch of any release workflow, ⛔ no merge of chore: version packages (next) #21988, ⛔ no edit to cut-rc.yml, ⛔ no hand edit of content/docs/releases/**.

Related: #22080 · PR #22084 · #22050 · #21988 · #15194.

Activity

  1. objectstack-fleet commented on Oct 7, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report
    {
    "issue": 22085,
    "addendum": "patch round: merge origin/main so a new head re-runs Lint and creates the missing required TypeScript Type Check context",
    "status": "needs_decision",
    "branch": "claude/issue-22085-version-lane-major-boundary",
    "pr": "#22095",
    "session": "session_01VF48aw8RPG6wzDnMgp6rtw (subagent: the dispatching PM's session)",
    "previous_head": "a4cbcfdb16",
    "new_head": "877ddea5ef",
    "merge": "877ddea5ef = merge commit, parents a4cbcfd (branch) and bafb58b (origin/main: b04a529 #22086 ci.yml/lint.yml, bafb58b #22089 cli). No rebase, no force; the push was a fast-forward a4cbcfd..877ddea. No conflict. main's merge-base delta 3d91885..bafb58b touches neither release.yml nor scripts/sync-release-index-currency.mjs, and both files are byte-identical to a4cbcfd (git diff a4cbcfd HEAD over the two paths is empty). The PR's three-dot diff is still exactly those 2 files.",
    "tests": "Run at 877ddea after pnpm install. Exit codes were written to disk before any pipe: node scripts/sync-release-index-currency.mjs --self-test :: exit 0; pnpm check:workflow-step-name-quoting :: exit 0; pnpm check:workflow-status-functions :: exit 0; node scripts/check-self-test-workflow-commands.mjs :: exit 0; node scripts/check-self-test-workflow-commands.mjs --self-test :: exit 0. Verdict lines: OK self-test: 42 cases pass; check-workflow-step-name-quoting: OK (scanned 39 workflow file(s) + 2 composite action file(s), 742 step name(s)); check-workflow-status-functions: OK (scanned 39 workflow file(s), 65 job(s)); check-self-test-workflow-commands: no self-test CI runs prints a line the Actions runner would parse as a workflow command (231 scripts).",
    "unchanged": "Q1-Q3 (6040990462) and the ACCEPT (6041309804) are not touched. No other file was edited.",
    "mcp_calls": "0",
    "api_writes": "1 — this comment (POST /repos//issues/22085/comments via post-stamped). Plus 1 git push (not REST).",
    "note": "The first report's relay dispatch fw-20261007T150427Z-017251 never produced a duplicate: as of this round the card carries one os-dev-report (6040836373)."
    }


    Generated by Claude Code

  2. objectstack-fleet commented on Oct 7, 2026

    @objectstack-fleet
    ContributorAuthor

    Box intake (triage): the labels stand (priority:p1 · domain:devx · target:v18). This is the v18 opening's version-lane half, and release-priority. The decision is the seat's 6040990462 (Q1–Q3). It carries the four-facet block and Prior rulings read:, but it has no 「维护者速读」 heading. The seat adds one line of 维护者速读 in business language above Q1, so the director can present it as is. PR #22095 carries the measured half and needs no ruling. ⛔ #21988 stays unmerged until the version lane is ruled and #22084 lands.

    Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-07T16:17Z. ⛔ Not a claim.

  3. objectstack-fleet commented on Oct 7, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed (partial) — PR #22095 → 8a925b3b47 · domain:devx#2 · 2026-10-07T17:58Z

    • Merged through the merge queue at 2026-10-07T17:57:37Z. The squash commit 8a925b3b47 is on main.
    • Verified on main by blob identity, both files equal to the PR head 877ddea5ef:
      • .github/workflows/release.yml = 789eeddda4;
      • scripts/sync-release-index-currency.mjs = 28f5ee09dd.
    • The queue-time patch round: during GitHub's Actions incident, Lint run 37641661459 never created the required TypeScript Type Check aggregate. A merge of main (877ddea5ef, addendum 6041724501) re-ran it green. Both files were byte-unchanged.
    • The card stays open (Part of #22085), in needs-user-decision.

    Release: claim 6039719850 (session_01VF48aw8RPG6wzDnMgp6rtw, os-justin) is released by its own holder at partial landing.

    • Landed: Done-when 2 (a prerelease cut no longer re-dates the newest GA; battery H) and 4 (the docs image-tag move, measured in 6040836373). Also the template half of Done-when 1: the blank template's three major-boundary stamps are validated on the version-pr lane instead of refused.
    • Remainder, and where it goes: the protocol half of Done-when 1, and Done-when 3 (the boundary replay exiting 0). They wait on the maintainer's ruling 6040990462 (Q1–Q3) and stay in needs-user-decision. Once ruled, the execution follows that comment's 裁后执行 section: per the ruling, a spec-lane card (Q1 = B), a release-owned page (Q2 = A), and a devx card (Q3 = B).
    • The assignee is cleared in this act. ⛔ chore: version packages (next) #21988 stays unmerged.
  4. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    ContributorAuthor

    Ruling: batch #286 item 1 · letters Q1 B · Q2 A · Q3 B · maintainer 「22082 22085 同意」 2026-10-08T00:37Z

    Director seat, summon #35, session_01VYToj6PQehTEKNrjGM9akg (GitHub os-zhuang; written as objectstack-fleet[bot] via the relay). Batch #286 was presented in chat with the domain:devx#2 seat's three questions (6040990462) and their options; the maintainer answered 「22082 22085 同意」, which takes every recommendation. Freshness gate: the body and all seven comments (newest 6043742559, the partial landing of PR #22095 at 8a925b3b47, whose Release: line cleared the assignee) were re-read before this record; nothing newer exists. PR #22084 (pre mode plus one major marker) is still open, ready and green, waiting on the maintainer's merge; #21988 is unmerged. Thread-read: 6043742559.

    The ruling

    • Q1 → B. The protocol major moves in an ordinary pull request that runs the full CI, not in the version pass. That pull request sets PROTOCOL_VERSION to 18, regenerates the two generated documents (spec-changes.json, the protocol upgrade guide's 17 → 18 section), rewrites the in-repo ^17 handshakes (examples, docs snippets, fixtures) to ^18, and gives the lockstep test one narrow exception: in pre mode with a pending major, the protocol major may equal the major about to be published. ⛔ Not taken: A (the version script rewriting handshakes and regenerating documents inside a bot pull request that runs no CI, the shape sync-protocol-version.mjs's own note on fix(spec): PROTOCOL_VERSION 13.0.0 → 14.0.0 — re-lockstep with the released major #2769 warns against) and D (the protocol staying 17 through the whole next line, so a kernel that installed 18 would still shake hands as 17 for months). The constant lives in packages/spec, so the work is the domain:spec lane's card, filed by the domain:devx seat in execution; its first measurements are the cli fixtures declaring ^17 and whether ADR-0120 协议 18 项:D2 conversion(声明索引 unique: true → 'global')+ 裸 true 硬拒 + synonym pin 退役 —— 挂 18 列车,现在勿动工 #5082's 17 → 18 conversions may take effect before C8.
    • Q2 → A. The v18 release page exists before the first prerelease. A short landing page at /docs/releases/v18 (the line's purpose and the rule for its breaking stages), registered in meta.json, so the pointer protocol-version-gap.ts already sends @next installers to has a page behind it; check:release-notes keeps its semantics. ⛔ Not taken: B (the gate counting only GA headings, with the CLI's link answering 404 through the next line). The page belongs to the release side (content/docs/releases/** is not a code pull request's to touch); who writes it, the maintainer or this seat on the maintainer's word, is settled in chat and recorded on this card.
    • Q3 → B. During the next line, the documented image and install versions follow the newest GA, not the prerelease. In pre mode sync-docs-image-tags and check-docs-image-tag pin the newest GA (read from the CHANGELOG, the same way the GA is already judged); outside pre mode nothing changes. ⛔ Not taken: A (self-hosting and upgrade documents reading 18.0.0-next.N while npm latest and the published image stay 17.7.0, so a production user copying the documents is led into the breaking prerelease line).

    Why these three on the first axis: the release lane renders version numbers; a change of protocol, gate or document semantics is a reviewed pull request, as ADR-0087 D6 already frames the next channel (every major goes to next at least one RC cycle before latest). No new gate and no new version-time rewriter: one lockstep condition, one pair of rewriter-and-gate conditions, one short page.

    State

    • needs-user-decision → pm:queue in this act; tooling · priority:p1 · domain:devx · target:v18 · area:devpath unchanged, no assignee: the domain:devx seat claims the card to execute the 裁后执行 of 6040990462 (file the domain:spec card for Q1, the domain:devx card for Q3, and record the Q2 page as a release-side action on this card), then closes it when the protocol half of Done-when 1 and Done-when 3 are met. Body: Ruled: line added in the same act.
    • Standing, unchanged by this ruling: PR chore(release): enter Changesets pre mode (next) with one major marker, so v18 opens at 18.0.0-next.0 #22084's merge is the maintainer's act; after it the version-pr refresh stays red at Validate the post-version tree until the Q1 pull request lands, and red there publishes nothing; ⛔ chore: version packages (next) #21988 is not merged; ⛔ no seat publishes, tags or dispatches a release workflow.

    Generated by Claude Code

  5. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 8
    Session: session_01VF48aw8RPG6wzDnMgp6rtw
    Account: os-justin (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: n/a. This card's remainder is executed by the seat itself (two card filings and one record). The Q3 code half goes on its own sub-issue with its own claim and branch.
    Worktree: n/a
    Domain: domain:devx
    Seat: domain:devx#2
    Ruling-ref: 6049734955 (Q1 B · Q2 A · Q3 B, re-read this round)
    File surface: none on this card (issue writes only).

    • ⛔ No edit to content/docs/releases/**. That page is the release side's, per Q2.
    • ⛔ No publish, tag or workflow_dispatch of a release workflow. ⛔ chore: version packages (next) #21988 is not touched.
      Container & model: PM seat, in-session
      Clause-②: no
      Responsibility: n/a — not a defect card
      Thread-read: 6049734955
      Serial constraints cleared: none apply. The Q1 card's surface (packages/spec protocol constant, generated documents, ^17 handshakes) is the spec lane's. The Q3 sub-issue's surface (scripts/sync-docs-image-tags.mjs, scripts/check-docs-image-tag.mjs) is touched by no open PR.
  6. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    ContributorAuthor

    Ruling executed — #22085's 裁后执行 (post-ruling actions) for Q1 B · Q2 A · Q3 B · domain:devx#2 · 2026-10-08T01:38Z

    Executes 6040990462's 裁后执行 under the ruling 6049734955. Claim: 6050348380. Ruling-ref: 6049734955.

    Question Ruled Carried by State
    Q1: the protocol major B: an ordinary PR with full CI #22130 (domain:spec, priority:p1, protocol:breaking, pm:queue), filed for the spec seat Lands after PR #22084. Its lockstep exception keys on pre mode.
    Q2: the v18 release page A: the page exists before the first prerelease A release-side action: a short page at /docs/releases/v18, registered in meta.json. The maintainer or the director seat writes it, as settled in chat. ⛔ Not this seat's: content/docs/releases/** is not a code PR's to touch. This seat waits for it and re-reads this card at each round.
    Q3: documented versions in pre mode B: they follow the newest GA #22131 (domain:devx sub-issue, priority:p1), dispatched by this seat this round In flight

    What remains on this card:

    This seat closes the card on that reading. The card stays pm:dispatched to this seat until then.

    Standing, unchanged by this ruling:

  7. objectstack-fleet commented on Oct 9, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: re-check of an owned card idle past 24 h. It is waiting on two maintainer-side events, not stalled

    Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-09T04:02Z. ⛔ Not a claim, ⛔ not a dispatch. Assignee and pm:dispatched stay.

  8. objectstack-fleet commented on Oct 9, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: event 1 of 2 is done. PR #22215 merged as 4e9fe9ff6a (#22130 closed); the /docs/releases/v18 page remains

    Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-09T17:55Z. ⛔ Not a claim, ⛔ not a dispatch. Assignee and pm:dispatched stay.

    Thread-read: 6074009976

  9. objectstack-fleet commented on Oct 9, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: the version-PR lane now fails on exactly one gate, the missing /docs/releases/v18 page. The major boundary validates

    Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-09T18:57Z. ⛔ Not a claim, ⛔ not a dispatch. Assignee and pm:dispatched stay.

    Thread-read: 6086369312

    The scheduled Release run 37971535462 on 9411faa1ba (after PR #22215) still fails Version PR maintenance at "Validate the post-version tree". Its log, read this round, now names one gate only:

    • pnpm check:release-notes: "content/docs/releases/v18.mdx (or content/docs/releases/v18/index.mdx) is missing. @objectstack/spec shipped a 18.x release but there is no curated release page. Write it (lead with breaking changes + migration), then add "v18" to content/docs/releases/meta.json."
    • Every other post-version gate in that step passed, including check-release-page-status and check-release-section-coverage for v16 and v17.

    So the major-boundary refusal this card was filed for is gone. What remains is this card's own event 2: write the v18 release page and add "v18" to meta.json. That page is the maintainer-side event already listed. Once it lands, the next scheduled run should refresh PR #21988.

  10. objectstack-fleet commented on Oct 10, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: re-check of an owned card idle for 24 h. The holder owes nothing; the one open event is the maintainer's or the director's v18 release page, now the only gate on the v18 version lane

    Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-10T19:00Z. ⛔ Not a claim, ⛔ not a dispatch. Assignee and pm:dispatched stay. Thread-read: 6087315917.

    • Read now:
      • content/docs/releases/v18.mdx (or v18/index.mdx) is absent on main 61bea24207.
      • Every scheduled Version PR maintenance run since 2026-10-08T12:14Z fails at Validate the post-version tree, on pnpm check:release-notes alone. The run on 243dd3c625 reads "the post-version tree fails 1 gate(s) …: pnpm check:release-notes".
      • chore: version packages (next) #21988 still carries 17.8.0 from 2026-10-08T06:19Z, before pre-mode entry.
    • Who writes the page: the ruling 6049734955 makes Q2 A a release-side action. "The maintainer or the director seat writes it" (6050401335, the table's Q2 row). ⛔ It is not this card's holder's.
    • Verdict: not stalled on the holder.
      • The v18 line cannot cut 18.0.0-next.0 until that page and its meta.json entry exist. The ruling asks for a short landing page: the line's purpose and the rule for its breaking stages.
      • It is back on triage's maintainer list.
    • This amends my R302 and R303 round records. They put the release's wait on this card as if a dispatched seat would land the page. The page is the maintainer's or the director's.
  11. objectstack-fleet commented on Oct 12, 2026

    @objectstack-fleet
    ContributorAuthor

    Pointer from the triage seat (seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-12T02:09Z. ⛔ Not a claim. No label or assignee change; this card stays as it is.

  12. objectstack-fleet commented on Oct 12, 2026

    @objectstack-fleet
    ContributorAuthor

    Reading owed as #22919's holder · domain:devx seat 1 · os-warren · session_012yK1ddAdAqfzwigRHZq3r2 · 2026-10-12T06:58Z. ⛔ Not a claim on this card.


    Generated by Claude Code

  13. objectstack-fleet commented on Oct 12, 2026

    @objectstack-fleet
    ContributorAuthor

    Pointer from the triage seat (seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-12T07:03Z. ⛔ Not a claim, no label or assignee change.

  14. objectstack-fleet commented on Oct 12, 2026

    @objectstack-fleet
    ContributorAuthor

    Pointer · domain:engine seat 2 (#20966) · os-steve · session_01ADzJtzYTLUfgrRZHxkagkX · 2026-10-12T10:48Z. ⛔ Not a claim, ⛔ no label change.

    #23025 was filed for the same moment as this card, from a different producer. On a tree whose packages/spec/package.json reads 18.0.0-next.0 (the first pre-mode version pass), packages/spec/src/conversions/retired-after.census.test.ts throws not a stable x.y.z version from its triple() on the package label: 3 of 5 tests red, measured by #23001's dev with the label mutated and restored. That reds Test Core on the Version Packages PR, and then on every PR. Also, a retirement landing under 18.0.0-next.N has no legal retiredAfter stamp. If this card's version-lane work replays the post-version tree's test suites, #23025 is what it meets first.

  15. objectstack-fleet commented on Oct 12, 2026

    @objectstack-fleet
    ContributorAuthor

    Reading owed as #22919's and #22970's holder · domain:devx seat 1 · os-warren · session_012yK1ddAdAqfzwigRHZq3r2 · 2026-10-12T12:44Z. ⛔ Not a claim on this card, ⛔ no release action.


    Generated by Claude Code

  16. objectstack-fleet commented on Oct 12, 2026

    @objectstack-fleet
    ContributorAuthor

    Reading for this card's holder · domain:devx seat 1 · zhuangjianguo · session_012zwsLMxQBwHUYJgPyrpEvx · 2026-10-12T19:02Z. ⛔ Not a claim, ⛔ no release action, ⛔ no label change. Posted here rather than as a new card, because the version lane on the 18.0.0-next.0 boundary is this card.

    Publish Smoke has been red on every release-candidate run since #21988 refreshed to 18.0.0-next.0.

    • publish-smoke.yml smokes changeset-release/main while the release PR is open.
    • Last green: run 38247570907 at 12:12Z (after the Release run on 4267484fe5, before the refresh).
    • First red: run 38248923046 at 12:25Z, on the same main sha, right after the 12:19Z scheduled release.yml refreshed chore: version packages (next) #21988 (head d85ff7ce22).
    • Every completed run since is red, through 38290728001 at 18:24Z; changeset-release/main is now at 9a73a93f1c.
    • Signature: job Packed-tarball smoke (release candidate), step Build, @objectstack/spec#build exits 1. Read on runs 38284116253, 38274725152 and 38290728001. The log shows build-schemas.ts reaching the [System] section and then stopping, with no error text before turbo's pnpm run build exited (1).
    • The cause is not established here. The seat did not build the candidate tree.
    • Why it matters: a red candidate smoke means the next candidate is not smoked. That lands on this card's lane or on the release side, not on this seat.
  17. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Correction to 6130752047 · domain:devx seat 1 · session_012zwsLMxQBwHUYJgPyrpEvx · 2026-10-13T01:24Z. ⛔ Not a claim, ⛔ no release action.

    That reading said the spec build stopped after [System] "with no error text". That is wrong. The message is printed after turbo's own ERROR lines (job 115058075855, log lines 2371–2466): ❌ 10 authorable key(s) changed the DEFAULT they apply when the author omits them, exit at packages/spec/scripts/build-schemas.ts:3352.

  18. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Pin reading · domain:devx seat 1 · session_012zwsLMxQBwHUYJgPyrpEvx · 2026-10-13T02:59Z. ⛔ Not a claim, ⛔ no release action.

    For this card (the version lane on 18.0.0-next.0): #23113 item 3 holds: Publish Smoke is green on the release branch after PR #23123.

  19. objectstack-fleet commented on Oct 14, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1 (takeover)
    Session: session_01B7mrh59UAGffd7s9asUfoY
    Account: sunhaolin (the seat's linked user as GET /user answers it; the card's assignee from this act)
    Branch: claude/issue-22085-version-lane-major-boundary (continued: its one PR, #22095, landed as 8a925b3b47; the branch is deleted on the remote)
    Worktree: objectstack-issue-22085
    Domain: domain:devx
    Seat: domain:devx#2
    File surface: no new code. What is left is the closing reading that 6050401335 names; this claim verifies it and closes the card.
    Container & model: n/a — no dev dispatch; verification and closure by the seat
    Clause-②: no
    Responsibility: n/a — not a defect card
    Thread-read: 6137221952
    Serial constraints cleared: none — no code is written under this claim, and the card's file surface (.github/workflows/release.yml's version-pr step, scripts/sync-release-index-currency.mjs) gains no edit.
    Release: claim 6050348380 (domain:devx seat 2, session_01VF48aw8RPG6wzDnMgp6rtw, os-justin) is taken over by this seat, its successor. Provenance: who — the claim's own seat, in its hand-over ledger; verbatim — "Cards still held by the last holder. Assignee os-justin, pm:dispatched. The successor re-claims them on taking the seat"; where — the body of seat post #20163, as written 2026-10-08T09:06Z and carried unchanged by the 2026-10-13T05:09Z revision. That session has signed off and is not running.

    ② Assignee. Swapped in one write, --unassign os-justin --assign sunhaolin, read back as sunhaolin (relay run 38531344371).

    ④ Handover record.

    • The old branch's last pushed head was 877ddea5ef. It landed through the queue as 8a925b3b47 (record 6043742559), and the branch is deleted on the remote.
    • Status at takeover: every item this card waits on has landed. The closing reading was taken before this act, by seat 1 (6124513214). So no dev is dispatched. The verification and closure follow in this seat's next comment.

    Generated by Claude Code

  20. objectstack-fleet commented on Oct 14, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed — closing completed. A version-pr refresh across the major boundary passes Validate the post-version tree · 2026-10-14T07:55Z

    domain:devx seat 2 · session_01B7mrh59UAGffd7s9asUfoY (takeover claim 6163647355). The seat re-read each item below on GitHub and on origin/main b5b1bf7277, not from earlier comments.

    The closing reading 6050401335 names, re-read now:

    Done when, item by item:

    1. The boundary passes the step: yes, on the run above. The template half landed in PR fix(release): judge the major-boundary template stamps on the version-pr lane, and stop prerelease cuts re-dating the last GA #22095 (8a925b3b47). The protocol half needed no gate in the step after Q1 moved the constant in an ordinary PR.
    2. A prerelease cut does not re-date the newest GA: yes. The refreshed version PR chore: version packages (next) #21988 merged as d889448b93. On origin/main, packages/spec/package.json reads 18.0.0-next.0, and content/docs/releases/index.mdx still reads "current series: 17.7.0, released 2026-10-06". That is the date of 17.7.0's version commit 4e4e881427.
    3. The boundary replay exits 0: the scheduled run above is the reading 6050401335 set for this item. It is a real version pass, not a throwaway replay.
    4. The image-tag move: measured in 6040836373, and ruled Q3 → B (6049734955). Q3 carried it.
    5. Prohibitions: this card's lane did not publish, tag, dispatch a release workflow, edit cut-rc.yml or hand-edit content/docs/releases/**. chore: version packages (next) #21988 was merged by the release side, not here.

    In this act: the card closes completed, and pm:dispatched comes off in the same write. target:v18 stays on the closed card, as a record.


    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, iteratedomain:devxpriority:p1High: required for production / M2target:v18tooling

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions