Skip to content

Bump the objectui pin to current main — 149 commits of frontend are outside the release record #10129

Description

@os-project-manager

Measured on origin/main, not recalled:

.objectui-sha (objectstack) 82a94170c4058d45 — objectui, 2026-08-17 21:51
objectui origin/main 0fd11444a89e5711 — 2026-08-20 04:51
commits in between 149

Why this matters beyond "it's old"

The platform ships as one version-locked train and the frontend enters the changesets pipeline exactly once: when .objectui-sha moves and bump-objectui.sh writes the @objectstack/console changeset for the range it crossed. Everything objectui merged after the pin is, by construction, in no changeset, no CHANGELOG and no release page. That is the failure scripts/check-objectui-pin-fresh.mjs exists for (#3340) — cutting v16 that way lost four frontend changes, two of them minor features.

That gate is enforcing on the Version Packages / release PR. So this is not cosmetic staleness: at the next GA cut it is red, and 149 commits of frontend are missing from the record.

Procedure — use the script, do not hand-edit the pin

scripts/bump-objectui.sh              # bumps .objectui-sha to ../objectui HEAD + writes the changeset
pnpm sdui:manifest                    # the other half (ADR-0082 D4 parity ratchet)

scripts/bump-objectui.sh --help prints the full contract. Two things it does that a manual edit does not: it derives the @objectstack/console changeset from objectui's own declared changesets over the range (package names decide inclusion, declared level decides the bump — nothing inferred from commit subjects, #4731), and it refuses to pretend a truncated walk is a complete one.

The trap that is live right now

The local objectui checkout is shallowgit -C ../objectui rev-parse --is-shallow-repository returns true. This is exactly the shape of objectstack#9408: a walk that stops inside the range still answers, and the oldest visible commit (shown as parentless, diffed against the empty tree) absorbs a whole batch. On the bump that produced the current pin's changeset, that credited 36 of 119 entries to a single commit that adds exactly one.

So:

  • Do NOT set OBJECTUI_NO_DEEPEN=1. Let the script deepen (git fetch --unshallow, measured ~6 s / ~4 MB on objectui).
  • After the bump, verify the changeset is not the degraded one. The degraded path labels itself — ⚠️ Degraded list — and names only the tip subject. A degraded entry becomes permanent published CHANGELOG text. If you get one, deepen and re-run rather than editing the table by hand.
  • The range is long enough that CONSOLE_CHANGES_MAX (default 100) may fire. If it caps, the script says so with the real count — carry that number into the PR body rather than letting it read as a complete list.

A free correctness check on the digest

The range contains objectui's @changesets/cli v3 migration (objectui e7c3b3e91, PR objectui#5307). That PR ships a changeset with empty frontmatter — changesets' own "releases nothing". So it must not appear in the @objectstack/console list. If it does, the digest is reading commit subjects instead of declarations and the whole list is suspect.

Acceptance

  • .objectui-sha equals objectui's main tip at bump time; record which SHA and its date in the PR body.
  • Exactly one @objectstack/console changeset, derived (no ⚠️ Degraded list banner), with the resolved bump level and why it resolved that way.
  • pnpm sdui:manifest actually run — Playwright chromium is pre-installed in this environment at /opt/pw-browsers and PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 is set, so do not run playwright install. If it produces parity changes, include them; if it cannot run, say so explicitly rather than skipping in silence (the gate exits 1 on a missing manifest since check:react-declaration-parity 是唯一没接进任何 workflow 的源码审计门禁,且无 MANIFEST 时静默 skip 退出 0 —— 它现在永远不可能红 #4690, so "it passed" without running it is not a thing).
  • CI's Console Pin Gate green (does the pinned SHA still build) — note this is a different question from freshness; both must be green.

Non-goals

  • No release. No publish, no version tag, no release-workflow dispatch, no merging of a Version Packages PR.
  • Do not touch .github/workflows/cut-rc.yml — it has its own pin handling and its own gate.
  • Do not edit content/docs/releases/**. The changeset is this PR's input to the release notes; release notes are written centrally at release time.
  • objectui's own version PR (objectui#4655, would cut 17.6.0) is open and unmerged and is none of this card's business — the pin is a SHA, not an npm version.

Activity

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

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions