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
{{ message }}
Repository navigation
Commit 0de68bb
Browse filesBrowse the repository at this point in the historyBrowse files
feat(plugin-detail): record:related_list reads its declared actions, host-bridge actions stay the default (objectui#11163)
The maintainer ruled ENFORCE on objectstack-ai/objectstack#20665:
`record:related_list.actions` ("Action IDs available for related records")
was declared, published and parsed, and no renderer read it.
The renderer now reads it. Absent, the host bridge's actions render
exactly as before and no lookup is made. Authored, the authored list is
what renders, in authored order: each id resolves against the related
object's registered actions (useMetadataItem + resolveDeclaredActionIds,
the lookup record:quick_actions.actionNames uses) and is placed by its own
locations (list_toolbar -> header button, list_item -> row menu), run by
the host's executor. `[]` draws no actions. An id that does not resolve,
or whose action declares no list location, is named in a role="status"
notice on the list instead of being dropped.
The parity ledger's NO_READ_SITE_TO_PIN exemption becomes a member pin;
MEMBER_PIN_EXEMPTION_CEILING 5 -> 4 (the four remaining units are the
objectui#11111 bookings owed to objectui#11168).
Claude-Session: https://claude.ai/code/session_0122Knsowci76D2rBWReCzzZ
Co-authored-by: Claude <noreply@anthropic.com>
pins: 'The BLOCK-LEVEL gate (`required.every((p) => perms.can(objectName, p))`) that hides the whole bar before any action is drawn — distinct from an `ActionDef`\'s own per-action `requiredPermissions`, which `record-quick-actions.declared-action-ids-7182.test.tsx`\'s `gated` fixture already covers. No key at all: the bar renders on the (empty) grant set, so the gate is provably driven by the key\'s PRESENCE. A single held permission gates as expected, and the discriminating row is a PARTIAL grant on a two-entry array — gated only when read as `.every` over the WHOLE array rather than its first element — with the all-granted case as that row\'s own positive control. New file: no existing test drove `schema.requiredPermissions` itself, only the unrelated per-action field of the same name (objectui#8071).',
pins: 'Members are action-id STRINGS resolved against the RELATED object\'s own `actions` — the `useMetadataItem` + `resolveDeclaredActionIds` lookup `record:quick_actions.actionNames` resolves through — and placed by each action\'s own `locations`, read through the real `SchemaRenderer`, this block\'s registration, the real `RelatedList` and the real data table. An authored list renders IN AUTHORED ORDER (`list_toolbar` members as header buttons, `list_item` members in each row\'s menu, one list feeding both) and REPLACES the host bridge\'s default rather than adding to it; an ABSENT key leaves the bridge\'s actions exactly as they were and makes no lookup at all (the control); `[]` draws none while the built-in New stays, because New is not an action id; and an authored action runs through the host\'s executor with its resolved definition. The refusals are member facts too: an id the registry cannot resolve and an id whose action declares neither list location are each named in a `role="status"` notice while the resolvable members still render, an array of inline action objects is refused whole, nothing is refused while the lookup is in flight, and with no host the list stays read-only while a bad id is still refused, so the refusal is the registry\'s and not the host\'s. New file (objectui#11163, the ENFORCE ruling on objectstack#20665), replacing the `NO_READ_SITE_TO_PIN` exemption this key carried since objectui#8071 slice 2.',
pins: 'Every spec member key of `add` must be discoverable from its description, the published defaults must be the RENDERER\'s rather than the spec\'s prose, and `picker.filter` must be documented as a real restriction (objectui#3808).',
0 commit comments