|
1 | 1 | # @objectstack/example-showcase |
2 | 2 |
|
| 3 | +## 0.3.14-rc.1 |
| 4 | + |
| 5 | +### Patch Changes |
| 6 | + |
| 7 | +- e8d0c21: feat(spec): `FormSection.pane` — explicit split-pane placement (objectui#2153 follow-up) |
| 8 | + |
| 9 | + A `type: 'split'` form view had no way to say which pane a section renders in: |
| 10 | + the renderer hardcoded "first section left, everything else right". That |
| 11 | + positional rule is invisible in the metadata — nothing in the JSON records the |
| 12 | + assignment — so reordering sections silently moved them across the divider, and |
| 13 | + an author (human or AI) could not place two sections side by side on the left at |
| 14 | + all. |
| 15 | + |
| 16 | + `FormSectionSchema` gains an optional `pane: 'primary' | 'secondary'`: |
| 17 | + |
| 18 | + - **Explicit and per-section**, so placement survives reordering and an agent |
| 19 | + editing the view can see — and must preserve — where each section lives. |
| 20 | + - **Omitted → the legacy rule** (first section `primary`, others `secondary`), |
| 21 | + so existing keyless metadata keeps its exact layout. |
| 22 | + - **Split-only, enforced loudly**: a `FormViewSchema` refinement rejects `pane` |
| 23 | + on any other form type at parse (covering the legacy `groups` alias and the |
| 24 | + defaulted `type: 'simple'`). "Accepted but ignored" is the failure mode this |
| 25 | + key must never have — a silent no-op reads as working, especially to an AI |
| 26 | + author. zod 4 keeps refinements through `.extend()`, so the flattened |
| 27 | + runtime-overlay variant in `ViewMetadataSchema` enforces it too. |
| 28 | + - Strict two-value enum, not free text — a typo (`'left'`) is a parse error. |
| 29 | + |
| 30 | + The `'split'` type's enum comment claimed "Master-Detail split"; master-detail |
| 31 | + already has two homes (`subforms` on the form, related lists on record pages), |
| 32 | + so the comment now states split's actual, non-redundant meaning: side-by-side |
| 33 | + resizable panes with sections placed via `section.pane`. |
| 34 | + |
| 35 | + The showcase task form's `split` view previously declared a single section — |
| 36 | + which renders as a plain (unsplit) form — and now demonstrates the feature: |
| 37 | + two sections with explicit panes. |
| 38 | + |
| 39 | + Renderer support ships in ObjectUI (`SplitForm` → `FormSchema.fieldPanes`, |
| 40 | + whose pane keys are already named `primary`/`secondary` — a 1:1 mapping). |
| 41 | + |
| 42 | +- d6bfb3d: refactor(spec)!: remove the RLS-policy `priority` key — it promised conflict resolution that cannot exist (#3896 audit) |
| 43 | + |
| 44 | + `RowLevelSecurityPolicySchema.priority` was documented as _"Policy priority for |
| 45 | + conflict resolution"_. The 2026-07-30 security-subset liveness re-verification |
| 46 | + found that **nothing ever read it** — and, stronger, that nothing ever could: |
| 47 | + applicable policies **OR-combine** (any match allows access, most permissive |
| 48 | + wins — the schema's own describe said so), so there is never a conflict to |
| 49 | + order and evaluation order cannot change an outcome. A semantically-void knob |
| 50 | + on a security policy is worse than dead: an author — very often an AI |
| 51 | + (ADR-0033) — reads it as a precedence lever and reasons about policy |
| 52 | + interactions that do not exist. |
| 53 | + |
| 54 | + Removed per the `tool.requiresConfirmation` (#3715) / `DynamicLoadingConfig` |
| 55 | + (#3950) precedent, inside the v17 breaking window: |
| 56 | + |
| 57 | + - **Tombstoned, not silently stripped** (`retiredKey`, #3855 pattern): an |
| 58 | + authored `priority` fails `tsc` (the input type is `never`) and rejects at |
| 59 | + parse with the prescription itself — _"policies OR-combine (most permissive |
| 60 | + wins), so there is no conflict to order. Delete the key — policy outcomes are |
| 61 | + unchanged."_ |
| 62 | + - **ADR-0087 D2 conversion + D3 chain step** (`permission-rls-priority-removed`): |
| 63 | + `os migrate meta` deletes the key from authored sources mechanically — a pure |
| 64 | + lossless delete, no semantic residue. spec-changes.json and the protocol |
| 65 | + upgrade guide carry the entry. |
| 66 | + - The policy factory helpers (`ownerPolicy`, `tenantPolicy`, …), the showcase |
| 67 | + example's permission sets, and `content/docs/permissions/rls.mdx` no longer |
| 68 | + author it; the docs table's `enabled` row now states the (since-enforced) |
| 69 | + contract instead. |
| 70 | + - Liveness ledger entry updated to record the removal; the tombstone and entry |
| 71 | + age out ~two majors from now. |
| 72 | + |
| 73 | + Dropping the key changes **no policy outcome anywhere** — that impossibility of |
| 74 | + effect is the entire reason for the removal. |
| 75 | + |
| 76 | +- Updated dependencies [bc35e00] |
| 77 | +- Updated dependencies [6e141bc] |
| 78 | +- Updated dependencies [48fcf70] |
| 79 | +- Updated dependencies [06772eb] |
| 80 | +- Updated dependencies [0c90ece] |
| 81 | +- Updated dependencies [195ad76] |
| 82 | +- Updated dependencies [c2bbd97] |
| 83 | +- Updated dependencies [698cbc2] |
| 84 | +- Updated dependencies [270650f] |
| 85 | +- Updated dependencies [3aef718] |
| 86 | +- Updated dependencies [ffb003c] |
| 87 | +- Updated dependencies [1ea6bce] |
| 88 | +- Updated dependencies [c1dcacd] |
| 89 | +- Updated dependencies [ad303ed] |
| 90 | +- Updated dependencies [32ccb23] |
| 91 | +- Updated dependencies [f5a4ef0] |
| 92 | +- Updated dependencies [2d3e255] |
| 93 | +- Updated dependencies [7d7521f] |
| 94 | +- Updated dependencies [5dc4d02] |
| 95 | +- Updated dependencies [6fa1827] |
| 96 | +- Updated dependencies [05154a1] |
| 97 | +- Updated dependencies [0f12193] |
| 98 | +- Updated dependencies [9b6fe7c] |
| 99 | +- Updated dependencies [8c711fb] |
| 100 | +- Updated dependencies [09e4547] |
| 101 | +- Updated dependencies [820eff9] |
| 102 | +- Updated dependencies [8d895ff] |
| 103 | +- Updated dependencies [f6472d7] |
| 104 | +- Updated dependencies [62a789b] |
| 105 | +- Updated dependencies [789ad63] |
| 106 | +- Updated dependencies [2af1988] |
| 107 | +- Updated dependencies [0af50a3] |
| 108 | +- Updated dependencies [2e836de] |
| 109 | +- Updated dependencies [7309c81] |
| 110 | +- Updated dependencies [12a19a8] |
| 111 | +- Updated dependencies [41dcda3] |
| 112 | +- Updated dependencies [a225ef5] |
| 113 | +- Updated dependencies [7bf5349] |
| 114 | +- Updated dependencies [c9d254a] |
| 115 | +- Updated dependencies [42e3b01] |
| 116 | +- Updated dependencies [c8124e5] |
| 117 | +- Updated dependencies [39eb01b] |
| 118 | +- Updated dependencies [c3bcb42] |
| 119 | +- Updated dependencies [a1a4140] |
| 120 | +- Updated dependencies [c20b875] |
| 121 | +- Updated dependencies [217e2e6] |
| 122 | +- Updated dependencies [0373d52] |
| 123 | +- Updated dependencies [4f30943] |
| 124 | +- Updated dependencies [86a71d1] |
| 125 | +- Updated dependencies [d5c75e2] |
| 126 | +- Updated dependencies [03d26f7] |
| 127 | +- Updated dependencies [bb192c4] |
| 128 | +- Updated dependencies [98e7cc7] |
| 129 | +- Updated dependencies [4cf7c61] |
| 130 | +- Updated dependencies [3c628ce] |
| 131 | +- Updated dependencies [347f460] |
| 132 | +- Updated dependencies [8a341a4] |
| 133 | +- Updated dependencies [7cb922e] |
| 134 | +- Updated dependencies [1d22114] |
| 135 | +- Updated dependencies [dc530b4] |
| 136 | +- Updated dependencies [e59786e] |
| 137 | +- Updated dependencies [bcf1112] |
| 138 | +- Updated dependencies [9774b78] |
| 139 | +- Updated dependencies [6f98c2d] |
| 140 | +- Updated dependencies [385c4b0] |
| 141 | +- Updated dependencies [a648e96] |
| 142 | +- Updated dependencies [a47ac06] |
| 143 | +- Updated dependencies [e4c61a7] |
| 144 | +- Updated dependencies [e8d0c21] |
| 145 | +- Updated dependencies [45dc446] |
| 146 | +- Updated dependencies [ab9fb5c] |
| 147 | +- Updated dependencies [9a4932a] |
| 148 | +- Updated dependencies [f9fc874] |
| 149 | +- Updated dependencies [011b386] |
| 150 | +- Updated dependencies [7777e8f] |
| 151 | +- Updated dependencies [507b92a] |
| 152 | +- Updated dependencies [ac1cc8c] |
| 153 | +- Updated dependencies [99b4392] |
| 154 | +- Updated dependencies [974c6d4] |
| 155 | +- Updated dependencies [7309c81] |
| 156 | +- Updated dependencies [20bc1ec] |
| 157 | +- Updated dependencies [90c2b15] |
| 158 | +- Updated dependencies [33a5ff4] |
| 159 | +- Updated dependencies [9e01213] |
| 160 | +- Updated dependencies [39eb01b] |
| 161 | +- Updated dependencies [42eeb7d] |
| 162 | +- Updated dependencies [01e124d] |
| 163 | +- Updated dependencies [7733604] |
| 164 | +- Updated dependencies [40e420f] |
| 165 | +- Updated dependencies [d13004a] |
| 166 | +- Updated dependencies [be7360c] |
| 167 | +- Updated dependencies [3fe0ff1] |
| 168 | +- Updated dependencies [cc2de0e] |
| 169 | +- Updated dependencies [5b47ab5] |
| 170 | +- Updated dependencies [8675db6] |
| 171 | +- Updated dependencies [59b85c0] |
| 172 | +- Updated dependencies [6e357ed] |
| 173 | +- Updated dependencies [d6938bf] |
| 174 | +- Updated dependencies [62f8017] |
| 175 | +- Updated dependencies [a831df1] |
| 176 | +- Updated dependencies [f752ee3] |
| 177 | +- Updated dependencies [cd6b9f2] |
| 178 | +- Updated dependencies [2cb6d3c] |
| 179 | +- Updated dependencies [3ba8d77] |
| 180 | +- Updated dependencies [ec796d5] |
| 181 | +- Updated dependencies [a3cb9c8] |
| 182 | +- Updated dependencies [4be9d99] |
| 183 | +- Updated dependencies [c65e529] |
| 184 | +- Updated dependencies [5b08389] |
| 185 | +- Updated dependencies [3ca34c1] |
| 186 | +- Updated dependencies [94a0bbc] |
| 187 | +- Updated dependencies [d6bfb3d] |
| 188 | +- Updated dependencies [0931185] |
| 189 | +- Updated dependencies [1d5dc46] |
| 190 | +- Updated dependencies [627b188] |
| 191 | +- Updated dependencies [8d4eae7] |
| 192 | +- Updated dependencies [857a6cf] |
| 193 | +- Updated dependencies [1e38158] |
| 194 | +- Updated dependencies [65a3a84] |
| 195 | +- Updated dependencies [de6daa5] |
| 196 | +- Updated dependencies [d5749d7] |
| 197 | +- Updated dependencies [ccd9397] |
| 198 | +- Updated dependencies [bca935b] |
| 199 | +- Updated dependencies [75b9e51] |
| 200 | +- Updated dependencies [0a2f233] |
| 201 | +- Updated dependencies [8621cdd] |
| 202 | +- Updated dependencies [c53aa53] |
| 203 | +- Updated dependencies [6f23667] |
| 204 | +- Updated dependencies [77a77fd] |
| 205 | +- Updated dependencies [d82f8c0] |
| 206 | +- Updated dependencies [19365b7] |
| 207 | +- Updated dependencies [2053714] |
| 208 | +- Updated dependencies [b3a3d83] |
| 209 | +- Updated dependencies [7a55913] |
| 210 | +- Updated dependencies [35accbf] |
| 211 | +- Updated dependencies [6038de7] |
| 212 | +- Updated dependencies [7309c81] |
| 213 | +- Updated dependencies [eb95d97] |
| 214 | +- Updated dependencies [e4c2dc8] |
| 215 | +- Updated dependencies [43fc039] |
| 216 | +- Updated dependencies [1bd2795] |
| 217 | +- Updated dependencies [8186a70] |
| 218 | +- Updated dependencies [a329cca] |
| 219 | +- Updated dependencies [6eec18c] |
| 220 | +- Updated dependencies [4d7bebf] |
| 221 | +- Updated dependencies [821ac7a] |
| 222 | +- Updated dependencies [8f81731] |
| 223 | +- Updated dependencies [8c2db68] |
| 224 | +- Updated dependencies [22b5e54] |
| 225 | +- Updated dependencies [0166bd5] |
| 226 | +- Updated dependencies [9b702dc] |
| 227 | +- Updated dependencies [ab16331] |
| 228 | + - @objectstack/runtime@17.0.0-rc.1 |
| 229 | + - @objectstack/spec@17.0.0-rc.1 |
| 230 | + - @objectstack/driver-sql@17.0.0-rc.1 |
| 231 | + - @objectstack/cloud-connection@17.0.0-rc.1 |
| 232 | + - @objectstack/connector-mcp@17.0.0-rc.1 |
| 233 | + - @objectstack/connector-openapi@17.0.0-rc.1 |
| 234 | + - @objectstack/connector-rest@17.0.0-rc.1 |
| 235 | + - @objectstack/connector-slack@17.0.0-rc.1 |
| 236 | + - @objectstack/service-datasource@17.0.0-rc.1 |
| 237 | + |
3 | 238 | ## 0.3.14-rc.0 |
4 | 239 |
|
5 | 240 | ### Patch Changes |
|
0 commit comments