You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 9c43e19
Browse filesBrowse the repository at this point in the historyBrowse files
<!-- claude-projects-attribution: {"github_login":"marchtian"} -->
_Requested by **田騏** · [project
thread](https://claude.ai/code/project/chan_01VmuUhXU9SSUzqJYyXSmYSi?thread=cmsg_01VmuUhXU9SSUzqJYyXSmYSiRwWtsarkLPmw9fMYiFZ3LY)_
## Summary
Three more changesets reached `main` after #25553 was compiled at
`19d3720af1`. They are still before the 18.1.0 cut. This PR folds them
into the 18.1.0 notes. It changes docs only.
- **#25550** is breaking (`minor`, narrowed). The permission save door
now refuses a row policy that reads a membership key nothing owns. An
object write that breaks a stored policy is refused too. Both are added
under "Metadata the build and the save doors now refuse".
- **#25541** is semantic. An `external` holder is now its own posture,
with an owner-only org-wide default. It is added under "Semantic
changes".
- **#25429** is a fix to the skills docs. It is counted under other
fixes.
The counts become 253 entries, split 78 / 9 / 47 / 2 / 117 across the
five sections. 87 changesets are declared breaking, 48 `minor` and 39
`patch`. `check-adr-0087-registration --list` confirms 87 out of 87. The
counts are updated on the 18.1 page, the v18 index, the releases index
and Backward Compatibility.
## Checks
These all pass locally:
- `check:role-word`
- `check:release-notes`
- `check:release-page-status`
- `check:release-index-currency-sync`
- `check:doc-anchors`
- `check:docs-audit-scope`
- `check:docs-single-h1`
- an MDX compile of the page
Clause-②: no
Metadata-protocol: none
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01At7xrR4rgknXtej5ZkMJHd
Co-authored-by: Claude <noreply@anthropic.com>
**The v18 line has exited prerelease mode.** While Changesets was in pre mode with the tag `next`, every release cut from `main` was the next `18.0.0-next.N` on npm's `next` tag, and `scripts/check-changeset-no-major.mjs` stood aside in pre mode, so a pull request could declare a major bump. Changesets has exited pre mode, so the line's GA version is `18.0.0`, which publishes to npm's `latest` tag, and the guard again fails a pull request that declares a `major` bump. See [how a breaking stage lands on the v18 line](/docs/releases/v18#how-a-breaking-stage-lands-on-this-line).
21
21
22
-
**After 18.0.0, a breaking change ships in a MINOR or a PATCH release.** The maintainer's 2026-10-21 ruling ([#25105](https://github.com/objectstack-ai/objectstack/issues/25105)) keeps the no-major guard and grades each change by the metadata protocol: a key, value or metadata type added, narrowed or given a new meaning takes MINOR, and every other change takes PATCH, breaking or not. A non-protocol breaking change (a REST response, a boot refusal, a CLI exit status, a removed runtime export) keeps its `**BREAKING**` banner and ships as a PATCH. 18.1.0, the first release under the rule, is a MINOR that carries 86 changesets declared breaking.
22
+
**After 18.0.0, a breaking change ships in a MINOR or a PATCH release.** The maintainer's 2026-10-21 ruling ([#25105](https://github.com/objectstack-ai/objectstack/issues/25105)) keeps the no-major guard and grades each change by the metadata protocol: a key, value or metadata type added, narrowed or given a new meaning takes MINOR, and every other change takes PATCH, breaking or not. A non-protocol breaking change (a REST response, a boot refusal, a CLI exit status, a removed runtime export) keeps its `**BREAKING**` banner and ships as a PATCH. 18.1.0, the first release under the rule, is a MINOR that carries 87 changesets declared breaking.
23
23
</Callout>
24
24
25
25
ObjectStack follows [Semantic Versioning 2.0.0](https://semver.org/) (`MAJOR.MINOR.PATCH`). The table below describes what each component means; which version a breaking change ships in depends on the line, as the callout above says.
0 commit comments