Skip to content

Commit 072806a

Browse files
os-zhuangclaude
andauthored
chore(console): 刷新 objectui pin 到 785b8a5d432c —— 2026-08-02 的 7 个 PR 进入 v17 (#4732)
* chore: bump objectui to 785b8a5d432c fix(fields)!: FieldWidgetComponentProps stops claiming to have every key (#3221) (#3230) objectui@785b8a5d432cf009389a1a9180fdac2a8297543f * docs(changeset): carry the objectui batch's authoring semantics into the pin changeset The auto-generated pin changeset lists commit subjects only, so the one author-BREAKING change in the range (objectui#3203 — `ActionParam` loses the nine resolved-only picker keys) would have reached the release notes as a one-line Chinese subject with no migration and no rationale. Spell out the FROM/TO prescription and why the removal is not a regression (the keys were never storable: `ActionParamSchema` is `.strict()` and its alias table names `referenceto -> reference`), plus the author-visible halves of objectui#3196 / #3204 / #3210. Also drops the two `fix(ci)` lines from the enumerated range: they release nothing and are not in the shipped bundle, so listing them as "frontend changes" overstates what the artifact carries. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015Br2xsJsczFsTR9bvbh2Ny --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 69b509f commit 072806a

2 files changed

Lines changed: 103 additions & 1 deletion

File tree

.changeset/console-785b8a5d432c.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
---
2+
"@objectstack/console": minor
3+
---
4+
5+
Console (objectui) refreshed to `785b8a5d432c` — the 2026-08-02 objectui batch reaches v17 (#4665).
6+
7+
Until this pin moves, a merged objectui fix exists only on objectui's `main`: the
8+
release pipeline clones objectui at `.objectui-sha`, so anything newer is simply not
9+
in the artifact the platform ships, and its frontend changeset never reaches the
10+
platform's release history (#3340). Four of the seven PRs merged that day changed
11+
published packages, and one of them is **breaking for authoring** — so that
12+
migration is written out here, in the layer the release notes are compiled from,
13+
rather than left implicit in a SHA.
14+
15+
## Breaking for authoring — an action param's picker target is `reference`, and only `reference` (objectui#3203)
16+
17+
`ActionParam` in `@object-ui/types` no longer declares the nine resolved-side picker
18+
keys: `referenceTo`, `displayField`, `idField`, `descriptionField`, `titleFormat`,
19+
`lookupColumns`, `lookupFilters`, `lookupPageSize`, `dependsOn`.
20+
21+
Migration:
22+
23+
- **Inline picker target** — rewrite to `reference`:
24+
FROM `{ name: 'account_id', type: 'lookup', referenceTo: 'account' }`
25+
TO `{ name: 'account_id', type: 'lookup', reference: 'account' }`
26+
- **The other eight** — make the param **field-backed** and it inherits the whole
27+
picker group from the object field: `{ field: 'account_id' }`.
28+
29+
**This removes a compile-time illusion, not a capability.** Those keys were never
30+
storable: `@objectstack/spec`'s `ActionParamSchema` is `.strict()`, its authorable key
31+
list carries `reference` and not `referenceTo`, and its alias table names
32+
`referenceto → reference` by hand — so an authored `referenceTo` has always been a
33+
hard parse rejection on the server. Only `tsc` waved it through, against objectui's
34+
public type, which meant the mistake surfaced at publish time instead of at the
35+
authoring keystroke. `ActionParam` is now derived from the spec schema
36+
(`Omit< z.input< typeof ActionParamSchema >, 'type' >`), so the authoring type and
37+
the parser can no longer disagree about a spelling, and `resolveActionParams()`
38+
additionally names any resolved-only key it meets in a dev-mode warning with the
39+
prescription above — covering params authored in plain JS or JSON, which `tsc` never
40+
sees.
41+
42+
## Also author-visible in this batch
43+
44+
- **An unrecognised dashboard date-filter value is skipped and named, not compared**
45+
(objectui#3196, `@object-ui/core` minor — the other half of #4475). A `date` /
46+
`dateRange` value that is neither a known preset nor a parseable date used to fall
47+
through to "bare string means equality on that day", so a typo
48+
(`defaultValue: 'last_7_dayz'`) reached the backend as `WHERE created_at = $1` and
49+
answered `200 OK` with zero rows — indistinguishable from "this range has no data".
50+
Such a filter is now dropped with a `console.warn` naming the filter, the offending
51+
value and the accepted spellings; the widget's numbers go from 0 to unfiltered.
52+
- **`record:activity` fetches a feed instead of rendering a permanently empty one**
53+
(objectui#3204, `@object-ui/plugin-detail`). The block's eleven declared inputs were
54+
filters over a hard-coded `items={[]}`; the feed now resolves from `items` → a
55+
mounted `DiscussionContext` → a self-fetch of `sys_activity` scoped to the bound
56+
record, and the read-side inputs actually filter. `showSubscriptionToggle` is
57+
labelled `NOT IMPLEMENTED` in its own input description rather than left looking
58+
configurable.
59+
- **A fetching activity feed says "loading", not "No activity recorded"**
60+
(objectui#3210, `@object-ui/plugin-detail` patch). The declared `loading` prop was
61+
destructured into `_loading` and never read, so the panel asserted the record had no
62+
activity for the whole duration of every fetch.
63+
- **`managedBy: 'system'``'system-data'` follow-through** (objectui#3214): the
64+
Console now speaks the vocabulary this platform's retirement left standing.
65+
66+
Full frontend range below. `fix(ci)` / CI-only commits are omitted — they release
67+
nothing and are not in the shipped bundle.
68+
69+
- fix(fields)!: FieldWidgetComponentProps stops claiming to have every key (#3221) (#3230)
70+
- fix(app-shell): inspectors read and write the expression envelope (#3218) (#3228)
71+
- fix(app-shell): flow simulator evaluates a `{ dialect, source }` edge guard (#3216) (#3217)
72+
- feat(types,core,app-shell)!: follow the `managedBy: 'system'``'system-data'` retirement (objectstack#3355) (#3214)
73+
- fix(app-shell): flow branch editor stamps an id on the edges it creates (#3202) (#3215)
74+
- fix(plugin-detail): a fetching activity feed says "loading", not "No activity recorded" (#3205) (#3210)
75+
- feat(plugin-detail): record:activity fetches a feed instead of rendering an empty one (#3165) (#3204)
76+
- fix(types,app-shell)!: `reference` 是 action param 唯一可作者化的 picker 目标 (#3174) (#3203)
77+
- fix(deps): #3184 可合并版 —— focus-scope 栈驱逐竞态补丁,解冲突 + 补丁存废说明 (#3200)
78+
- fix(core): 未知的 date filter 值改为跳过并警告,不再降级成永不命中的等值 (#3151) (#3196)
79+
- fix(types): retarget the objectstack#4171 inverted pins at their real trigger (#3177) (#3194)
80+
- fix(components,grid): a grid's search box searches the list, not the page you can see (#3118) (#3192)
81+
- feat(core): declare the 18 spec-owned action keys ActionDef absorbed silently (#3190)
82+
- fix(app-shell): actually compile `spec-symbol-parity.test.ts`'s type assertions (#3181) (#3187)
83+
- feat(app-shell): wire navigation action items to the console action runtime (framework#4509) (#3180)
84+
- feat(deps)!: upgrade to @objectstack/spec 17.0.0-rc.1 and retire the wait timeout fields (#3101) (#3178)
85+
- fix(studio,timeline,list): 表单设计器解析对象翻译;timeline 认它自己配置的日期字段 (#3134, #3129) (#3175)
86+
- feat(flow-designer)!: the script node authors a function call, and nothing else (framework#4343) (#3170)
87+
- fix(studio): stop offering the retired `action.shortcut` / `action.bulkEnabled` keys (#3154)
88+
- fix(dashboard): date 型 globalFilter 的预设名默认值应提升为区间 (objectstack#4475) (#3150)
89+
- fix(dashboard,report): honor the declared percent scale so a ratio of 1 renders as 100.0% (#3136) (#3140)
90+
- fix(charts): name the slices — pie/donut legends lost their labels to a `type` dimension (#3135) (#3138)
91+
- fix(approvals): record-header Reject fires after one dialog again (#3126) (#3128)
92+
- fix(console): binding-reach 探针少报了自己 6 个块的覆盖面,而且是静默的 (#3149) (#3153)
93+
- fix(flow-designer): the default path is the edge marker, not the branch (#3148)
94+
- fix(plugin-list,plugin-form): 在注册表路径上把 dataSource 接到 list-view / embeddable-form (#3144) (#3147)
95+
- fix(actions): one placement rule for `locations` — declare it or it renders nowhere (#3145)
96+
- fix(app-shell): datasource preview 不再报告读副本数量 (objectstack#4468) (#3143)
97+
- feat(grid): aggregate single-call mode for bulk actions — execution: 'aggregate' (#3141)
98+
- fix(form): `required` is presence, not truthiness — `false` and `0` are values (#3137)
99+
- fix(environment): localize the entitlement dialog + read cloud's nested error envelope (#3130)
100+
- fix(i18n): resolve qualified view ids (#3132)
101+
102+
objectui range: `7d9734d5e321...785b8a5d432c`

.objectui-sha

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7d9734d5e3212c565d824c717354a4a2fddbfce2
1+
785b8a5d432cf009389a1a9180fdac2a8297543f

0 commit comments

Comments
 (0)