Skip to content

Commit 15283cf

Browse files
os-zhuangclaude
andauthored
docs(releases): record the 17.0.0 GA cut on the v17 release page (#8882) (#8888)
The page was compiled FOR the 17.0.0 cut (#8642) and never updated after it, so a third-party developer was told the train had not shipped. GA published to `latest` on 2026-08-14T08:00-08:02Z, `prerelease: false`, and `.changeset/ pre.json` is gone from `main`. Five stale surfaces, not the three the report listed: 1. The release-status blockquote — rewritten as shipped. The `^16.x` caret paragraph is kept verbatim; the "section headings say 17.0.0 for brevity" sentence is dropped, since it explained a pre-mode convention that no longer exists. 2. The `Landed since 17.0.0-rc.6` opener — closed against what GA actually released, in the shape #8642 used to close the rc.5 window. 3. `index.mdx`'s v17 entry — no longer a pre-release. 4. The `New in Console` subsection of the rc.6 window still said the three pin moves were "not yet released". 5. The Console pin chain in the rc.0 window ended "under *rc.5*, which is still open" — a window this same page now records as released by rc.6. The window count is measured, not inherited. The drafted "374 pending — 11 major-class, 99 minor, 264 patch" was counted at 98eec7e; one more changeset (#8620) landed at 01a7337 before the cut, so GA released 375 — 11 major-class, 99 minor, 265 patch, none that release nothing. 2079 is the whole train's total, not this window's: pre-mode accumulates changesets and consumes them all at `pre exit`. The counting method reproduces the rc.6 window's published numbers exactly (425 / 36 / 123 / 266) and rc.5's (10 / 2 / 4 / 4). #8620 was documented nowhere on the page, so it gains a bullet, as #8642 did for its own post-draft landings. Claude-Session: https://claude.ai/code/session_013gLCsJ1sDoJZZruDKMsHH3 Co-authored-by: Claude <noreply@anthropic.com>
1 parent cc5c07b commit 15283cf

2 files changed

Lines changed: 37 additions & 21 deletions

File tree

content/docs/releases/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ migration steps, then covers new capabilities and notable fixes.
1818

1919
## Versions
2020

21-
- [v17.0.0](/docs/releases/v17) — Files become owned `sys_file` records with server-enforced `accept`/`maxSize` and a governed download path, bulk export becomes its own opt-in privilege, the SDK is reconciled against the routes the server actually mounts (21 dead methods out, 40+ real ones in), approval nodes route approvers dynamically via CEL expressions and decision outputs, a datasource that cannot connect fails the boot, and Node 22 becomes the supported floor (current series: 17.0.0-rc.N, pre-release).
21+
- [v17.0.0](/docs/releases/v17) — Files become owned `sys_file` records with server-enforced `accept`/`maxSize` and a governed download path, bulk export becomes its own opt-in privilege, the SDK is reconciled against the routes the server actually mounts (21 dead methods out, 40+ real ones in), approval nodes route approvers dynamically via CEL expressions and decision outputs, a datasource that cannot connect fails the boot, and Node 22 becomes the supported floor (current series: 17.0.0, released 2026-08-14).
2222
- [v16.0.0](/docs/releases/v16) — One org identifier (`organizationId`) across hooks and actions, quorum + per-group sign-off (会签) approvals with metadata-declared decision actions, time-relative automations, filtered roll-ups, strict dashboard widgets, an identity-scoped MCP stdio transport, and a platform-wide enforce-or-remove sweep that makes dead metadata loud (current series: 16.0.0-rc.0).
2323
- [v15.0.0](/docs/releases/v15) — Explain record access layer by layer, a docked AI workspace in the Console, project-ready Gantt charts, and phone sign-in; 15.1 adds permission-following attachments, no-code third-party connectors, dashboard-wide filters, pinyin search, and whole-record inline editing — with materially safer multi-tenant and write-path defaults (final release: 15.1.1).
2424
- [v14.0.0](/docs/releases/v14) — ADR-0090 vocabulary convergence completed, object `enable.*` flags become real gates, admin user management, phone/SMS auth, book-audience enforcement, data-lifecycle contract, and effective-dated grants (final release: 14.8.0).

content/docs/releases/v17.mdx

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,15 @@ readable by everyone in the tenant. Alongside that, `agent.tools[]`, the
1313
GraphQL surface, the `ObjectStackProtocol` alias, and a long tail of
1414
parsed-but-never-enforced spec clusters are removed rather than maintained.
1515

16-
> **Release status: development is complete and the train is preparing to
17-
> ship.** The latest published pre-release is **17.0.0-rc.6** (cut 2026-08-10);
18-
> one window of 374 changesets is still open on `main` and rolls into the cut
19-
> that exits pre-mode. Until `changeset pre exit`, the 17.0.0 train ships
20-
> through Changesets **pre-mode**, so it publishes as `17.0.0-rc.N` and nothing
21-
> reaches the `latest` tag. Section headings say 17.0.0 for brevity. Caret ranges on
22-
> `^16.x` hold at 16.x until you opt in, which is the reason this train is a
23-
> major at all: its breaking density (the `ApiMethod` shrink, the GraphQL
24-
> removal, the ADR-0104 write cutover, the dead-cluster retirements) is too high
25-
> to auto-upgrade `^16.x` consumers into on their next install.
16+
> **Release status: 17.0.0 is released.** It was published to the `latest` tag
17+
> on 2026-08-14, closing a train that ran through `17.0.0-rc.0``rc.6` (the
18+
> last of them cut 2026-08-10). `changeset pre exit` ran with the cut, so the
19+
> `@objectstack/*` packages no longer publish as `17.0.0-rc.N` and a plain
20+
> install resolves 17.0.0. Caret ranges on `^16.x` hold at 16.x until you opt
21+
> in, which is the reason this train is a major at all: its breaking density
22+
> (the `ApiMethod` shrink, the GraphQL removal, the ADR-0104 write cutover, the
23+
> dead-cluster retirements) is too high to auto-upgrade `^16.x` consumers into
24+
> on their next install.
2625
2726
## Highlights — 17.0.0
2827

@@ -2063,8 +2062,8 @@ move is reported under the *Landed since* window that shipped it — never
20632062
folded into an earlier window's range — so the chain reads end to end:
20642063
`4a4829d0ef39 → 7d9734d5e321` here (released as `rc.1`), `→ f5bc4c78be76`
20652064
under *rc.1* (`rc.2`), `→ f995a452d2ca` under *rc.2* (`rc.4`),
2066-
`→ 7dfbeb704e1e` under *rc.4* (`rc.5`), and `→ 0cf8f0f70d10` under *rc.5*,
2067-
which is still open. The two author-facing breaking migrations the bundle
2065+
`→ 7dfbeb704e1e` under *rc.4* (`rc.5`), and `→ 0cf8f0f70d10` under *rc.5*
2066+
(`rc.6`). The two author-facing breaking migrations the bundle
20682067
carries (objectui#3233, objectui#3172) arrived with `f995a452d2ca` and are
20692068
documented under *Breaking changes & migration* above.
20702069

@@ -2849,12 +2848,14 @@ changeset of their own.
28492848

28502849
## Landed since 17.0.0-rc.6
28512850

2852-
This window is **open**, and it is the last one: v17 development is complete,
2853-
so these changes roll into the cut that exits Changesets pre-mode and publishes
2854-
**17.0.0** on `latest`. Measured from the changesets added since the `rc.6`
2855-
version commit: **374 pending — 11 `major`-class, 99 `minor`, 264 `patch`**,
2856-
and none that release nothing. These numbers move until the cut; once it lands
2857-
the package changelogs are authoritative.
2851+
These changes are on `main` after the `rc.6` cut and **ship in 17.0.0** — the
2852+
last window of the train, released by the cut that exited Changesets pre-mode
2853+
and published to `latest` on 2026-08-14. The cut released **375 changesets — 11
2854+
`major`-class, 99 `minor`, 265 `patch`**, and none that release nothing, making
2855+
it the train's second-largest round behind `rc.6`'s 425 and ahead of `rc.4`'s
2856+
360. The window was still open when the entries below were first written
2857+
against 374 pending changesets; the one landing between that draft and the cut
2858+
is called out under *Metadata, packages & authoring gates*.
28582859

28592860
As in the windows above, landings that belong to a section higher up the page
28602861
are documented **there** rather than repeated here.
@@ -3119,6 +3120,20 @@ Beyond the credential doors above:
31193120
artifact-backed field PUT is refused rather than accepted 200 — and an
31203121
object's overlay row is treated as a base layer, not its resolved schema
31213122
(#8027).
3123+
- **A tenant's own rename beats a package extension's scalar** (#8620,
3124+
ADR-0029 D9.2a) — the one landing between this section's draft and the cut.
3125+
`mergeObjectDefinitions` applied an `objectExtensions` entry's `label` /
3126+
`pluralLabel` / `description` last, onto whatever base it was handed — and
3127+
D9.2 makes the tenant's overlay that base. So a rename saved through Studio
3128+
answered 200, was visible under `?layers=true`, and was overwritten inside
3129+
the fold before any read served it. An extender's scalar now applies only
3130+
while the fold's base still carries the packaged owner's value; a base that
3131+
has diverged was authored by the tenant, and the extender yields. It is the
3132+
comparison-based mechanism #8284 established for the i18n catalog one layer
3133+
up — the same predicate, now exported from `@objectstack/spec` and imported
3134+
by the registry rather than re-spelled — so one rule covers both layers. No
3135+
provenance flags and no migration: the question is answered from two values
3136+
at fold time.
31223137
- **`OS_METADATA_WRITABLE` no longer unlocks a write into a read-only package**
31233138
(#8146), and the metadata write refusal stops depending on deployment
31243139
topology (#8184) while reporting the package door it hit —
@@ -3213,8 +3228,9 @@ Beyond the credential doors above:
32133228

32143229
### New in Console — bundled objectui advanced `0cf8f0f70d10 → 665661ab0932`
32153230

3216-
**Three pin moves** in this window, not yet released — the enumerations are
3217-
`console-6314e87f2d49`, `console-6d77acfe3125` and `console-665661ab0932`:
3231+
**Three pin moves**, released as **@objectstack/console 17.0.0** — the
3232+
enumerations are `console-6314e87f2d49`, `console-6d77acfe3125` and
3233+
`console-665661ab0932`:
32183234

32193235
| Range | objectui commits | changesets releasing |
32203236
| :-- | --: | --: |

0 commit comments

Comments
 (0)