Found while closing #8882 (the v17 GA page compile). Same defect class, different major — and it is older than the v17 one: it was already false before 17.0.0 shipped, so it is not a consequence of the GA cut.
The stale surfaces
1. content/docs/releases/v16.mdx, the release-status blockquote (currently lines 16-20):
Release status: the 16.0.0 train is currently published as
16.0.0-rc.0. This page describes the 16.0.0 content; section headings say
16.0.0 for brevity.
2. content/docs/releases/index.mdx, the v16 entry (currently line 22) ends (current series: 16.0.0-rc.0).
What actually shipped
| tag | published | prerelease |
|---|
@objectstack/spec@16.0.0 | — | false |
@objectstack/spec@16.1.0 | 2026-07-22T01:09:22Z | false |
git tag --list '@objectstack/spec@16*' returns exactly 16.0.0, 16.0.0-rc.0, 16.0.0-rc.1, 16.1.0. So the v16 series went GA and then took a minor; it did not stop at rc.0.
Why the index entry is the sharper of the two
index.mdx uses two parenthetical forms, and they encode series state:
- closed series →
(final release: 15.1.1), (final release: 14.8.0) — both match their last tag. - current series →
(current series: ...).
v16 is a closed series (v17 is GA as of 2026-08-14) still carrying the current-series form, and carrying a version that is two releases behind its own last tag. After #8882 marks v17 as the current series, v16 is the second entry on that list claiming to be current.
Suggested fix
Two files, one PR, docs-only, skip-changeset:
Worth checking in the same pass whether the v16 page has any other pre-mode framing the 16.0.0 cut falsified, and whether a Landed since 16.0.0-rc.N window was left open the way v17's rc.6 window was.
Why this was not fixed in #8882
#8882's scope ceiling is content/docs/releases/v17.mdx + content/docs/releases/index.mdx. v16.mdx is outside it, and fixing only the index line would leave the page and its index entry disagreeing with each other — so both belong in one follow-up rather than split across two PRs.
Per AGENTS.md Documentation Guardrails, content/docs/releases/ is release-owned: this needs a dedicated docs-only PR, never a rider on a code change.
Generated by Claude Code
Found while closing #8882 (the v17 GA page compile). Same defect class, different major — and it is older than the v17 one: it was already false before 17.0.0 shipped, so it is not a consequence of the GA cut.
The stale surfaces
1.
content/docs/releases/v16.mdx, the release-status blockquote (currently lines 16-20):2.
content/docs/releases/index.mdx, the v16 entry (currently line 22) ends(current series: 16.0.0-rc.0).What actually shipped
prerelease@objectstack/spec@16.0.0@objectstack/spec@16.1.0git tag --list '@objectstack/spec@16*'returns exactly16.0.0,16.0.0-rc.0,16.0.0-rc.1,16.1.0. So the v16 series went GA and then took a minor; it did not stop atrc.0.Why the index entry is the sharper of the two
index.mdxuses two parenthetical forms, and they encode series state:(final release: 15.1.1),(final release: 14.8.0)— both match their last tag.(current series: ...).v16 is a closed series (v17 is GA as of 2026-08-14) still carrying the current-series form, and carrying a version that is two releases behind its own last tag. After #8882 marks v17 as the current series, v16 is the second entry on that list claiming to be current.
Suggested fix
Two files, one PR, docs-only,
skip-changeset:index.mdxv16 entry ⇒(final release: 16.1.0), matching the v15/v14 house style.v16.mdxblockquote ⇒ rewritten as shipped, the way docs(releases): v17.0.0 shipped on 2026-08-14 but the release page still says the train is in pre-mode with an open rc.6 window #8882 did for v17. The "section headings say 16.0.0 for brevity" sentence explained a pre-mode convention and can go with it.Worth checking in the same pass whether the v16 page has any other pre-mode framing the 16.0.0 cut falsified, and whether a
Landed since 16.0.0-rc.Nwindow was left open the way v17's rc.6 window was.Why this was not fixed in #8882
#8882's scope ceiling is
content/docs/releases/v17.mdx+content/docs/releases/index.mdx.v16.mdxis outside it, and fixing only the index line would leave the page and its index entry disagreeing with each other — so both belong in one follow-up rather than split across two PRs.Per
AGENTS.mdDocumentation Guardrails,content/docs/releases/is release-owned: this needs a dedicated docs-only PR, never a rider on a code change.Generated by Claude Code