Skip to content

[Decision] Release cadence: a week of merges is about 1,700 PRs, so each QA-gated release carries a very large delta and app repos wait days to install fixes #29466

Open

Description

@objectstack-fleet

director#1 · os-support-ai · session_01WGufzg12BtjFc5rHp7YD1J

Filing gate ②, a decision only the maintainer can make (every publish is the maintainer's own act, AGENTS.md Prime Directive 15). The maintainer, in the director session, 「同意」 to the director's offer to file this card after the project assessment. ⛔ Not a claim. Reader who acts: the maintainer rules; then the domain:devx seat for any workflow change, and the director seat's daily summary for the cadence reminder.

维护者速读

  • 问题:合并速度约每周 1,700 个 PR,发布是人工 QA 把关后由您手动发,所以每次发布带的改动非常大,下游应用仓要等好几天才能装到修复。
  • 实测:18.0.0(10-20)、18.1.0(10-24)、18.2.0(10-27)约 3–4 天一发;18.3.0 的发版测试从 10-29 开始,现在第 4 波,刚出一轮 23 PASS / 4 FAIL;Version Packages PR chore: version packages #26517 已开 6 天,+57,972 / −17,952 行、1,354 个文件,待发 changeset 1,088 个。今天的决策卡 fix(plugin-security): an app permission set's readable:false on a sys_* field also masks platform admins who hold that set #29106 就是应用仓在 18.2.0 上实测出来的。
  • 推荐 B:稳定版照旧走 QA 与您的批准;另加一个 next 预发布通道,每天从 main 发一次(仍是您点批准),应用仓可以立刻装到修复。
  • 代价:您每天多一次批准点击;发布 workflow 要加一条快照发布路径(Tier H,需您批准)。
  • 您要做的一个动作:回一个字母(A / B / C)。

Measured

reading value re-check
18.x publish dates (npm time) 18.0.0 10-20 12:51Z · 18.1.0 10-24 09:11Z · 18.2.0 10-27 06:20Z npm view @objectstack/spec time --json
PRs merged 2026-10-26 → 11-02 1,776 search is:pr is:merged merged:>=2026-10-26
Version Packages PR #26517 open since 10-27 06:17Z; +57,972 / −17,952; 1,354 files GET /pulls/26517
pending changeset files on main 1,088 count .changeset/*.md other than README.md
18.3.0 release sweep #27377 open since 10-29; wave 4 run #28981: 23 PASS / 4 FAIL GET /issues/27377

What would make the delta small instead: a release every day, or a channel that is installable without waiting for the sweep. Neither exists today; next was last used for 18.0.0-next.0 … next.5 under Changesets pre mode, exited by #24528.

Governing text

  • AGENTS.md Prime Directive 15: 「A version release is performed by the maintainer, by hand — no AI seat publishes, tags, cuts a Release, or triggers a release, and none merges the Version Packages PR.」 Every option keeps this.
  • ADR-0125: the release is triggered by the push that lands the Version Packages PR and held at the release environment approval, which is the maintainer's publish authorisation.
  • ADR-0087: 「Every major is published to the next dist-tag at least one RC cycle before」 it goes latest; nothing in it covers minors or patches.

Options

what it does what a customer notices workload
A Fixed stable cadence, e.g. Tuesday and Friday: the release goes out on the day; the QA checklist runs continuously on main instead of as a per-release wave, and a FAIL blocks the release only when it meets the release-board test (target:*); other FAILs become fix-forward cards. Fixes reach latest within 3–4 days at most; each release is about half today's delta. No workflow change. Process change in the release sweep (domain:devx, checklist-test) · 1 card · no precedent.
B Stable stays as today. Add a next snapshot channel: once a day the maintainer approves a snapshot publish (changeset version --snapshot, --tag next) from main. App repos pin next when they need a fix now. App repos install a fix the next day; latest users see no change. release.yml gains a snapshot lane (Tier H, the maintainer approves the PR) · 1–2 PRs · no precedent for snapshots here; precedent for a next channel: 18.0.0-next.0–5 under pre mode. Plus one approval click a day.
C Keep today's process: release when the RC sweep closes. App repos wait for the sweep; deltas stay at about a week of merges. None.

四轴分析

  • 项目长远合理性:两年后成熟平台的发布形态是「稳定版按 QA 节奏 + 每日可安装的预发布通道」,Next.js 的 canary、React canary、Supabase CLI 的 beta 通道都是这样;稳定版不必为了快而降低把关。B 是这个形态;A 用节奏换增量大小,但仍要在快和稳之间二选一;C 让每次发布越来越大,出问题越难定位。
  • 实际业务拉动:有。应用仓按「可安装」解锁(跨仓解锁判据),今天 fix(plugin-security): an app permission set's readable:false on a sys_* field also masks platform admins who hold that set #29106 等卡就是应用仓在 18.2.0 上实测的;修复在 main 上已合,用户却装不到。
  • 防 AI 犯错:发布增量越大,发布后回溯哪个 PR 引入问题越难;B 让应用仓每天在真实安装面上验证,问题更早响亮暴露。A 也缩小增量。C 最差。
  • 创业阶段不扩散:A 不新增任何面;B 新增一个预发布通道和一条 workflow 路径,外加您每天一次点击;C 最省。

os-decision-facets

自检:只看①选 B;②③④ 是否翻转:否(④ 只影响时序:可先试行两周)。

推荐:B。 A 不取:它用节奏缩小增量,但每次仍要在 QA 完整性和速度之间让步。C 不取:增量每周约 1,700 个 PR,持续变大。置信缺口: 快照版本号会在应用仓的锁文件里出现,应用仓多久升一次 next 没有实测;本仓没有快照发布的先例,release.yml 的改动规模未测。

Analysis-tier: claude-opus-5-5 (served at filing; not CONTRACT_REVIEW_TIER).

裁后执行

  • A: one domain:devx card: continuous checklist runs on main and the release-board test as the only release block; the director's daily summary names the next release day.
  • B: one domain:devx card for the snapshot lane in release.yml (Tier H, the maintainer approves), quoting this ruling; app-repo seats are told the channel exists; a two-week trial, then the director reports usage.
  • C: this card closes not_planned.

Activity

  1. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    director#1 · os-support-ai · session_01WGufzg12BtjFc5rHp7YD1J

    Brief-claimed-by: session_01WGufzg12BtjFc5rHp7YD1J · batch #457 · 2026-11-02T15:56Z

    ⛔ Not a claim on the work. The director seat presents this card to the maintainer in batch #457, in the director session, with the analysis on this body.

  2. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: p2 · domain:devx · decision card · 2026-11-02T16:06Z

    ⛔ Not a claim.


    Generated by Claude Code

  3. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    director#1 · os-support-ai · session_01WGufzg12BtjFc5rHp7YD1J

    Ruling: batch #457 item 2 · letter B · maintainer 「同意」 2026-11-02T17:12Z

    • Record: batch [WIP] Update action run logic for improved monitoring #457 as presented in the director session, B recommended for this card; the maintainer answered 「同意」, read as the recommended letters. Brief-claim 6581691182.
    • Letter B: stable releases stay as today (QA sweep, the maintainer's approval under ADR-0125). A next snapshot channel is added: once a day the maintainer approves a snapshot publish (changeset version --snapshot, --tag next) from main; app repos pin next when they need a fix now. AGENTS.md Prime Directive 15 is unchanged: every publish remains the maintainer's own act. Two-week trial, then the director reports usage on this card.
    • Workload of the chosen letter: release.yml gains a snapshot lane (Tier H, the maintainer approves the PR), 1–2 PRs, no snapshot precedent here (precedent for a next channel: 18.0.0-next.0–5 under pre mode); plus one approval click a day.
    • Exit stroke and the release.yml card are the domain:devx seat's (triage 6581920525).
  4. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    director#1 · os-support-ai · session_01WGufzg12BtjFc5rHp7YD1J

    Ruling suspended · 2026-11-02T17:15Z

    • The ruling comment 6583414011 (batch [WIP] Update action run logic for improved monitoring #457 item 2, letter B, read from the maintainer's 「同意」) is suspended, not in force. While it was being written, the maintainer asked in the director session, verbatim: 「29466 发版本节奏还是我人工发布」「29466 你的方案具体说一下」「目前的发版本流程支持吗?需要怎么改造」.
    • So the maintainer has not ruled this card yet. ⛔ No Ruled: line goes on the body, no lane acts on 6583414011, and the card stays needs-user-decision. The director answers the three questions in the session and records the ruling here only on the maintainer's next answer.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions