Commit 2e8e118
docs(engine): state the ruled readonly-on-INSERT contract at the seven non-published prose sites (#17020)
* docs(engine): state the ruled readonly-on-INSERT contract at the seven non-published prose sites
The 2026-09-03 maintainer ruling (option C, #14147) put the static `readonly`
strip inside `engine.insert` under the same `isSystem` gate as `engine.update`
and deleted the metadata-protocol ingress copy. PR #15395 fixed every site that
reached a published artefact; the 2026-09-05 E3 ruling carded the rest.
These seven prose sites still stated the superseded contract in the present
tense — that a non-system INSERT is exempt from the static strip, or that the
strip lives at the DataProtocol create ingress. Each is rewritten to the ruled
state, following the R3/R4 corrections in rest-server.ts, settings-service.ts
and crud-nodes.ts:
- objectql/src/readonly-strict-errors.ts — the module docblock's account of
what the refusal union contains on INSERT (the `operation` TSDoc 190 lines
below was already corrected in R4 and disagreed with it).
- service-settings settings-secret-rotation.test.ts (header + a helper) and
sys-secret-orphan-report.test.ts (a helper) — sys_setting's INSERT is still
outside the strip, but by the platform-object carve-out in
staticReadonlyInsertSubject (#15719), not by #3413.
- rest/src/rest-batch-endpoint.test.ts — the create-ingress-parity comment; the
routing it pins is unchanged, only the stated reason was superseded.
- service-automation crud-dropped-fields.test.ts — the "future insert-side
strip" is live.
- spec/scripts/liveness/proof-registry.mts — the provenance comment on the
readonly-static-write proof, which covers both write paths.
Comments only: no behaviour change, no test deleted, skipped or reassigned, no
exported symbol and no published payload key touched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ADLdAs2pVcH17h9tZKWMBg
* chore: add the patch changeset the readonly-INSERT prose diff was measured to need
Measured, not assumed: the five touched packages were built before and after
the edit and every dist file hashed, with `npm pack --dry-run` read for what
ships. Two released packages publish changed bytes — @objectstack/objectql
(4 sourcemaps) and @objectstack/rest (2 sourcemaps, because its bundle inlines
objectql's source and the comment moves its line numbers). Every emitted .js /
.mjs / .cjs and every .d.ts / .d.mts / .d.cts is byte-identical.
skip-changeset is for a diff that publishes nothing from any released package,
so it does not apply here.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ADLdAs2pVcH17h9tZKWMBg
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent ba17017 commit 2e8e118
7 files changed
Lines changed: 68 additions & 25 deletions
File tree
- .changeset
- packages
- objectql/src
- rest/src
- services
- service-automation/src/builtin
- service-settings/src
- spec/scripts/liveness
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
28 | 31 | | |
29 | 32 | | |
30 | 33 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
305 | 305 | | |
306 | 306 | | |
307 | 307 | | |
308 | | - | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
313 | 319 | | |
314 | 320 | | |
315 | 321 | | |
| |||
Lines changed: 8 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
142 | 142 | | |
143 | 143 | | |
144 | 144 | | |
145 | | - | |
146 | | - | |
147 | | - | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
148 | 153 | | |
149 | 154 | | |
150 | 155 | | |
| |||
Lines changed: 15 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
13 | | - | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
14 | 19 | | |
15 | 20 | | |
16 | 21 | | |
| |||
186 | 191 | | |
187 | 192 | | |
188 | 193 | | |
189 | | - | |
190 | | - | |
191 | | - | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
192 | 202 | | |
193 | 203 | | |
194 | 204 | | |
| |||
Lines changed: 9 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
187 | 187 | | |
188 | 188 | | |
189 | 189 | | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
194 | 199 | | |
195 | 200 | | |
196 | 201 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
156 | | - | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
157 | 161 | | |
158 | 162 | | |
159 | 163 | | |
| |||
0 commit comments