diff --git a/.changeset/23528-exposure-refusal-code.md b/.changeset/23528-exposure-refusal-code.md index 5719714dea0..1cab86f517d 100644 --- a/.changeset/23528-exposure-refusal-code.md +++ b/.changeset/23528-exposure-refusal-code.md @@ -2,6 +2,8 @@ '@objectstack/runtime': patch --- +**Shipped in 18.0.0-next.2**, whose CHANGELOG missed this entry (#23818); listed here one prerelease late. + fix(runtime): `callData`'s exposure refusal for the object a request addresses carries the data door's code, `OBJECT_API_DISABLED` (404) or `OBJECT_API_METHOD_NOT_ALLOWED` (405), on the dispatcher's `/data` routes, the `/mcp` data tools and declared endpoints (#23528) Clause-②: no diff --git a/.changeset/23609-legacy-org-read-seam.md b/.changeset/23609-legacy-org-read-seam.md index b3de2b0619f..e89d7bd6a9d 100644 --- a/.changeset/23609-legacy-org-read-seam.md +++ b/.changeset/23609-legacy-org-read-seam.md @@ -5,6 +5,8 @@ '@objectstack/spec': patch --- +**Shipped in 18.0.0-next.2**, whose CHANGELOG missed this entry (#23818); listed here one prerelease late. + fix(metadata-protocol,metadata): on a database the organization-ownership ceremony has not migrated, the paged family reads, `DatabaseLoader`'s count and the package rollback agree with the environment-only reads; the ceremony's apply is named with `--plan-file` (ADR-0131 D6/D7) Clause-②: no diff --git a/.changeset/23610-page-isdefault-template-slots.md b/.changeset/23610-page-isdefault-template-slots.md index 553c4327f92..c3b45189ad4 100644 --- a/.changeset/23610-page-isdefault-template-slots.md +++ b/.changeset/23610-page-isdefault-template-slots.md @@ -3,6 +3,8 @@ '@objectstack/objectql': patch --- +**Shipped in 18.0.0-next.2**, whose CHANGELOG missed this entry (#23818); listed here one prerelease late. + feat(spec)!: a page declares nothing the console does not honour — `isDefault: true` is refused off a record page bound to an object, `template` closes to the registered layouts, and a region the template does not place is refused Clause-②: yes (narrowing) diff --git a/.changeset/23634-stack-datasource-default-refused.md b/.changeset/23634-stack-datasource-default-refused.md index 28acd9d61cc..aa02acfdb13 100644 --- a/.changeset/23634-stack-datasource-default-refused.md +++ b/.changeset/23634-stack-datasource-default-refused.md @@ -2,6 +2,8 @@ '@objectstack/spec': minor --- +**Shipped in 18.0.0-next.2**, whose CHANGELOG missed this entry (#23818); listed here one prerelease late. + feat(spec)!: a stack's `datasources` collection refuses a datasource named `default`, the name the host reserves for its primary datasource Clause-②: no (narrowing) diff --git a/.changeset/23712-draft-save-d99-address.md b/.changeset/23712-draft-save-d99-address.md index 0a9253f04e5..3d37ed4b0fc 100644 --- a/.changeset/23712-draft-save-d99-address.md +++ b/.changeset/23712-draft-save-d99-address.md @@ -2,6 +2,8 @@ '@objectstack/metadata-protocol': minor --- +**Shipped in 18.0.0-next.2**, whose CHANGELOG missed this entry (#23818); listed here one prerelease late. + fix(metadata-protocol)!: a draft save naming no package of an object its package-less definition owns is refused when its draft address is a package's draft, with a way out to the package-less draft (ADR-0029 D9.9) Clause-②: no (narrowing) diff --git a/.changeset/23714-unique-violation-arm-relay.md b/.changeset/23714-unique-violation-arm-relay.md index d50ebce3126..a667bda2d74 100644 --- a/.changeset/23714-unique-violation-arm-relay.md +++ b/.changeset/23714-unique-violation-arm-relay.md @@ -3,6 +3,8 @@ '@objectstack/runtime': patch --- +**Shipped in 18.0.0-next.2**, whose CHANGELOG missed this entry (#23818); listed here one prerelease late. + refactor(plugin-hono-server,runtime): the Hono doors and the HTTP dispatcher read the duplicate-record wire code off the shared error classification instead of spelling it themselves (#23714) **No behaviour change.** A repeated unique value still answers `409 UNIQUE_VIOLATION` at both Hono doors (a `HonoHttpServer` route or raw mount, and `createHonoApp`'s catch arms through `declaredEnvelopeForThrow`) and at the dispatcher's doors (`HttpDispatcher`'s thrown-error envelope), with the same `message`, the same `details` (`developerMessage`, `object`, and `field` when the driver named the column) and the same envelope keys. The answers were compared byte for byte at those doors before and after. A client or an app author has nothing to change. diff --git a/.changeset/23723-sandbox-unreadable-rejection.md b/.changeset/23723-sandbox-unreadable-rejection.md index b52626524a5..a551dc6d034 100644 --- a/.changeset/23723-sandbox-unreadable-rejection.md +++ b/.changeset/23723-sandbox-unreadable-rejection.md @@ -2,6 +2,8 @@ '@objectstack/runtime': patch --- +**Shipped in 18.0.0-next.2**, whose CHANGELOG missed this entry (#23818); listed here one prerelease late. + fix(runtime): a sandboxed body that throws a value no read can flatten (`throw ''`, a null-prototype object, an object whose `message` getter throws) now ends its run at once with the sentence `the script threw a value that could not be read`, instead of waiting for the wall-clock ceiling (#23723) **Latency and answer change, for these values only.** The QuickJS runner's reject handler records a body's rejection as a flattened string, and the run ends only once that string is non-empty. For these values the read threw or gave `''`, so nothing was recorded: the run waited for the sandbox's wall-clock ceiling (30 s by default) and ended as a budget error with no business message, which the doors answer as a crash. The handler now records the fixed sentence above for any value it cannot read, and the run ends on the same path as any other rejection. The sentence names nothing the value carried and no stack. diff --git a/.changeset/23732-attachment-readable-ids.md b/.changeset/23732-attachment-readable-ids.md index 94466de4346..10ef892ed8e 100644 --- a/.changeset/23732-attachment-readable-ids.md +++ b/.changeset/23732-attachment-readable-ids.md @@ -2,6 +2,8 @@ '@objectstack/service-storage': minor --- +**Shipped in 18.0.0-next.2**, whose CHANGELOG missed this entry (#23818); listed here one prerelease late. + feat(service-storage): the `sys_attachment` read gate writes one `ReadableIds` leaf per parent object and does no pre-scan, so a broad read is judged over every row, not a 2,000-row window (ADR-0139 D4, D5) Clause-②: yes diff --git a/.changeset/23735-reference-deleted-when.md b/.changeset/23735-reference-deleted-when.md index 09153ec28ef..3da4128967e 100644 --- a/.changeset/23735-reference-deleted-when.md +++ b/.changeset/23735-reference-deleted-when.md @@ -5,6 +5,8 @@ '@objectstack/platform-objects': patch --- +**Shipped in 18.0.0-next.2**, whose CHANGELOG missed this entry (#23818); listed here one prerelease late. + feat(spec): `referenceDeletedWhen` beside `referenceVia` marks a polymorphic pointer's target as platform-deleted Clause-②: yes diff --git a/.changeset/23740-form-section-columns-no-default.md b/.changeset/23740-form-section-columns-no-default.md index 588a177e433..07c6d3f5615 100644 --- a/.changeset/23740-form-section-columns-no-default.md +++ b/.changeset/23740-form-section-columns-no-default.md @@ -2,6 +2,8 @@ "@objectstack/spec": minor --- +**Shipped in 18.0.0-next.2**, whose CHANGELOG missed this entry (#23818); listed here one prerelease late. + feat(spec)!: a form section's `columns` has no default — undeclared, the density is the renderer's (by available width); declared, it is the author's ceiling Clause-②: no diff --git a/.changeset/console-daeb77fc84dd.md b/.changeset/console-daeb77fc84dd.md index 87c9c8e6933..163f9e4098d 100644 --- a/.changeset/console-daeb77fc84dd.md +++ b/.changeset/console-daeb77fc84dd.md @@ -2,6 +2,8 @@ "@objectstack/console": minor --- +**Shipped in 18.0.0-next.2**, whose CHANGELOG missed this entry (#23818); listed here one prerelease late. + Console (objectui) refreshed to `daeb77fc84dd`. Frontend changes in this range: Derived from the changesets objectui declared over the range — 4 releasing of 4 changesets added across 5 non-merge commits; omitted: 1 commit carrying no changeset (they ship no package code).