|
| 1 | +--- |
| 2 | +"@object-ui/app-shell": minor |
| 3 | +"@object-ui/types": minor |
| 4 | +"@object-ui/plugin-dashboard": patch |
| 5 | +"@object-ui/plugin-report": patch |
| 6 | +--- |
| 7 | + |
| 8 | +Upgrade to `@objectstack/spec@17.0.0-rc.1`, stop offering the retired `wait` timeout fields (#3101), and route the newly-adopted `combo` chart type. |
| 9 | + |
| 10 | +**Breaking for authoring, and the reason to do it now**: the `wait` panel no longer offers |
| 11 | +`waitEventConfig.timeoutMs` or `.onTimeout`. Both are `retiredKey()` tombstones as of spec |
| 12 | +17.0.0-rc.1 (framework#4158), which means a value written there is **rejected at load** — |
| 13 | +so until this lands, Studio can produce flow metadata the author's own runtime refuses. |
| 14 | +That hazard opened the moment rc.1 published, independent of when this repo bumps. |
| 15 | + |
| 16 | +`wait` never had a timeout: `onTimeout` had zero readers, so neither `'fail'` nor |
| 17 | +`'continue'` ever happened, and `timeoutMs`'s only reader used it as the timer **duration** |
| 18 | +when `timerDuration` was absent. Use **Duration** — it accepts a bare number as |
| 19 | +milliseconds, making the old `timeoutMs: 60000` and `timerDuration: '60000'` the same wait. |
| 20 | +Stored flows are converted by framework's D2 conversion; the designer simply stops offering |
| 21 | +the entry. The two `zh` label overrides go with the fields. |
| 22 | + |
| 23 | +#3101 asked for this to ride along with the bump rather than land alone, and that is |
| 24 | +load-bearing: the sibling-block assertion is **bidirectional**, so deleting the fields |
| 25 | +against a spec that still declares them fails in the other direction. |
| 26 | + |
| 27 | +**`combo` is now a spec chart type** — the sole addition to `ChartTypeSchema` in rc.1 (19 |
| 28 | +members → 20). It had been a renderer-local family the chart renderer derived from the |
| 29 | +series, so nothing classified it on the two surfaces that route a *spec* chart type: a |
| 30 | +spec-valid `combo` fell through to the red "Unknown component type" panel on a dashboard |
| 31 | +and to the out-of-spec notice on a report. Both now route it |
| 32 | +(`widgetDispatch.SERIES_CHART_TYPES`, `planReportChart`). The renderer-local derivation |
| 33 | +stays — it is what makes an authored `type: 'combo'` render rather than merely validate. |
| 34 | + |
| 35 | +**Retired spec exports this repo bound to**, all removed upstream in spec 17.0.0: |
| 36 | + |
| 37 | +- `JoinStrategy` / `WindowFunction` (framework#4286 tombstoned `query.joins` and |
| 38 | + `query.windowFunctions`: no engine or driver ever read either on the query path). They |
| 39 | + were derived off the spec enums under objectstack#4115's "come off the spec enum, not a |
| 40 | + restatement" rule; with no enum left, `data-protocol.ts` now restates the members locally |
| 41 | + — verbatim from the last spec that published them — as the objectui query-AST vocabulary |
| 42 | + they have become. The AST itself is unchanged. |
| 43 | +- `PerformanceConfig`, retired with `dashboard.performance` (framework#3896). Nothing bound |
| 44 | + to it — `@object-ui/react`'s `usePerformance` declares its own interface and is untouched. |
| 45 | + The dashboard form is derived from the spec's own `dashboardForm`, so the field |
| 46 | + disappears from the inspector for free; its test now pins the absence. |
| 47 | + |
| 48 | +**Three inverted pins fired, and are recorded rather than resolved.** objectstack#4171's |
| 49 | +tripwires asserted that `NavigationItem`, `FormField` and `ConditionalValidation`'s branches |
| 50 | +still erased to `any`/`unknown` upstream — the premise that justified objectui keeping local |
| 51 | +declarations. rc.1 types them properly, so the assertions are inverted to state the new |
| 52 | +fact. The burn-down each one asks for — deriving those types from the spec — touches |
| 53 | +widely-used public types and is deliberately **not** bundled into a version bump; it is |
| 54 | +tracked in #3177. `JoinNode`'s pin is gone outright: the symbol no longer exists. |
| 55 | + |
| 56 | +**What the bump arms.** The reconciliation ledger's `subflow` and `decision` panels |
| 57 | +feature-detect their spec exports and had never actually run — rc.0 predates the exports |
| 58 | +(framework#4278). They now execute and pass. The `script` panel's full bidirectional check |
| 59 | +stays deliberately skipped: rc.1 predates framework#4343, so the retired dispatch branches |
| 60 | +are still contract keys there, and only the "offers nothing the executor ignores" direction |
| 61 | +is meaningful. It arms itself on the next rc. |
0 commit comments