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
Studio: a controlled-by-parent object's optional master can be neither authored nor shown, after #30905 made required: false on its master valid #30974
Filing gate: ① a named location, from the dev report on #30905 (comment 6685276956, out-of-scope finding) and the full Test UI run on PR #30940; ruling A on #30905 is record 6687830530. ⛔ Not a claim.
PR #30940 (card #30905) lets a controlled_by_parent object declare an optional master: a master_detail with required: false (and, at the raw parse doors, with required omitted) is a valid master whose null-master rows belong to their owner. Studio still assumes every master is required:
Display.ui/packages/app-shell/src/views/studio-design/owd-sharing.ts about :49 (deriveMasterObject) names a master only when def.required === true, and about :82 forces required: true. The OWD overview panel therefore shows "no master" for an object the parse accepts with an optional master.
Save.PackageOwdOverviewPanel.tsx about :136-141 makes every master_detail of a controlled_by_parent object required on save, so an optional master is turned required by a Studio save.
Authoring.ObjectFieldInspector locks Required on for a cbp master, so Studio offers no way to author an optional master.
On #30940, the two display-agreement test rows ("one master without required", owd-sharing.test.ts about :80 and PackageOwdOverviewPanel.cbpRequiredMaster-12326.test.tsx about :72) are re-labelled to record this gap, not fixed.
Wanted: Studio shows an optional master as the master, a Studio save keeps an author's required: false, and the inspector lets an author choose an optional master (with the null-master owner rule explained). The re-labelled rows flip back to agreement.
Suggested grade: p2, domain:ui. Serial: after PR #30940 lands.
p2 rather than p3: a Studio save silently changes an authored field from optional to required, which rewrites the access model the author chose. Lane domain:ui (ui/packages/app-shell).
Activity
objectstack-fleet commentedon Nov 6, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: audit · p2 ·
domain:ui·pm:blocked· 2026-11-06T15:58Z⛔ Not a claim.
domain:ui(ui/packages/app-shell).Generated by Claude Code