You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(spec): let an inline lookup action param declare its reference target (#3405)
`ActionParamSchema` had no way to name the object an inline record-picker param
should search. Authors reasonably wrote the same key the field schema uses —
`{ name: 'inspector', type: 'lookup', reference: 'sys_user' }` — and the schema
stripped it as an unknown key, silently. Downstream the param dialog saw a
picker with no target and degraded it to a "paste the record id (UUID)" text
input, so the authored intent was dropped and the user was handed a control a
human cannot reasonably operate (found on a QC dispatch assign/transfer action).
- Added `reference` to `ActionParamSchema`, spelled to match
`FieldSchema.reference` so one spelling works in both places. It joins the
existing inline widget config (`multiple` / `accept` / `maxSize`), which had
covered the file/image params but not the picker ones.
- A `lookup` / `master_detail` param declared inline with no `reference` is now
a parse-time error pointing at the missing key, instead of degrading at
render time. Field-backed params are unaffected: they inherit the target from
the referenced field's metadata, which is not visible at parse time.
- app-showcase's action-param gallery gains the inline picker specimen it could
not previously express, next to the other widget types.
Verified: `objectstack validate` on app-showcase fails with the new message when
`reference` is removed and passes with it, and the param renders a working
searchable picker in the console (see objectui's companion change).
Refs #3405
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
'ActionParam with type "lookup"/"master_detail" requires "reference" (the target object) when declared inline — without it the param dialog degrades to a raw record-id text input. Set `reference: \'<object>\'`, or use a field-backed param (`{ field: \'<lookup_field>\' }`) to inherit it.',
0 commit comments