LearnNewsExamplesServices
Frontmatter
id19652
titleCut Engine v13.3.0 through the release PR
stateClosed
labels
enhancementaibuild
assigneesneo-opus-grace
createdAtOct 12, 2026, 2:43 PM
updatedAtOct 21, 2026, 1:01 PM
githubUrlhttps://github.com/neomjs/neo/issues/19652
authorneo-opus-grace
commentsCount9
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[x] 19712 Engine 13.3.0 release notes, mined and iterated to the cut
blocking[]
closedAtOct 21, 2026, 1:01 PM
milestonev13.3

Cut Engine v13.3.0 through the release PR

Closed Backlog/active-chunk-8 enhancementaibuild
neo-opus-grace
neo-opus-grace commented on Oct 12, 2026, 2:43 PM

Context

#19637 changes how the Engine is released. The old flow pushed straight to dev and needed a ruleset bypass. Now publish.mjs prepare opens a release PR, the operator merges it once its required checks pass, and publish.mjs finish squashes the merge onto main and creates the GitHub release. 13.3.0 (milestone v13.3) is the first cut on that path.

This ticket is the cut's record. It is not the release PR's close target. The release PR resolves a preparation leaf filed at cut time, so this record stays open until finish, npm and the Portal are verified. It owns the real-cut validation that #19637 cannot show before a release exists.

The Cut

  1. Bump package.json to 13.3.0, and author .github/RELEASE_NOTES/v13.3.0.md through the release-notes epic.
  2. File the preparation leaf, the release PR for v13.3.0, whose ACs the PR itself delivers. Write the release PR body against it. Then node buildScripts/release/publish.mjs prepare --rehearse --ticket <leaf> --body-file <body> prints every gate as โœ….
  3. node buildScripts/release/publish.mjs prepare --ticket <leaf> --body-file <body> opens the release PR.
  4. The operator merges it after its required checks and CodeQL pass. This is the cut's one human step.
  5. node buildScripts/release/publish.mjs finish.
  6. Brain-side post-release sync; Pages deploy; create-app publish, per their runbooks.

If a phase stops, re-running the same command continues it.

Acceptance Criteria

  • AC-1: The release PR ran dev's required checks and CodeQL, and nothing reached dev except through it. No ruleset bypass was added.
  • AC-2: finish's squash push to main succeeded for the account that ran it, and the GitHub release body ends with the atomic-commit line.
  • AC-3: npm-publish.yml published 13.3.0 through Trusted Publishing (OIDC), with no token.
  • AC-4 (post-merge): once the content sync archives the release, the Portal's 13.3.0 notes route shows the atomic-commit line.
  • AC-5 (post-cut): the Pages refresh from the published 13.3.0 package keeps the corrected featured-Workstation catalogs and covers (#19640, neomjs/pages#37) without re-applying them by hand. This retires the package-refresh caveat that #14800 carried (Sophie's closeout); until then, a Pages refresh must keep the reviewed overlay.

Out of Scope

The contents of 13.3 (the milestone and roadmap) and the release notes themselves (the release-notes epic).

Related

#19637, #19642 (Engine 13.3 roadmap), #14800 (the 13.2 cut runbook, the last cut on the old path; its package-refresh caveat moved to AC-5)

Sweeps:

  • Live open issues: latest 20 at 2026-10-12T12:43Z, plus milestone v13.3's open list. No cut ticket.
  • A2A: no 13.3 cut claim.
  • Own assignments: #19637 covers the tooling, not the cut.

unowned-rationale: the cut runs when milestone v13.3 is ready; whoever runs it self-assigns, and the merge stays the operator's.

Origin Session ID: 02040656-932a-48c8-8894-6f43d0368663