Split out of objectui#7547 by its implementing seat, on the PM's explicit fence: measure it, state that it is the highest-value remaining piece, leave it for a follow-up card. Filed as that card.
The defect
packages/plugin-calendar/src/ObjectCalendar.tsx:795 on 20316bac3:
Calendar configuration required. Please specify startDateField and titleField.
That sentence is correct on the OBJECT-VIEW door, where an author can write a calendar: block carrying both keys. It is unactionable on the INTERFACE-PAGE door: when a page's leading whitelist entry is calendar (packages/app-shell/src/views/InterfaceListPage.tsx, allowed[0] feeding viewType) and the source object has no derivable date, the reader is told to specify two keys the page surface cannot author. The only remedy on that door is sourceView naming an object view that carries a calendar: block — which the screen does not mention.
Triage on objectui#7547 (comment 5548796649) rated this the best value-for-effort user-visible improvement in that card, and the PM agreed with the assessment while fencing it out of the implementation.
Why it was fenced out of objectui#7547
It rewords a localized string, so ten locale packs must follow, and packages/i18n/src/locales/* was held by two in-flight PRs (#8150 in the merge queue, #8152 awaiting CI) at dispatch time. A hot-file collision the PM was not willing to create in that slot. Re-check that both have landed before starting here.
What makes this worth doing rather than filing and forgetting
Every other member of the objectui#7029 / #7070 / #7500 family ends at a refusal screen, and the whole value of that family is that the screen tells the author what to do next. On this one door the screen is reached correctly and then gives an instruction that cannot be followed — the refusal is honest about the binding and dishonest about the remedy.
Shape of the fix
The refusal needs to know which door it was reached through, and say the remedy for that door. Whether the door is passed as a prop, inferred from the schema, or the string is split into two keys is the design question this card decides.
Not in scope here
⛔ The forced-path invented binding names themselves — objectui#7547 and its other sub-issues own those.
Refs: objectui#7547 · objectui#7029 · objectui#7459 · objectui#7500.
Recorded by the seat implementing objectui#7547 (session_01YBWFb5YgMU5dw8p2VKj16S). Unassigned, for triage.
Split out of objectui#7547 by its implementing seat, on the PM's explicit fence: measure it, state that it is the highest-value remaining piece, leave it for a follow-up card. Filed as that card.
The defect
packages/plugin-calendar/src/ObjectCalendar.tsx:795on20316bac3:That sentence is correct on the OBJECT-VIEW door, where an author can write a
calendar:block carrying both keys. It is unactionable on the INTERFACE-PAGE door: when a page's leading whitelist entry iscalendar(packages/app-shell/src/views/InterfaceListPage.tsx,allowed[0]feedingviewType) and the source object has no derivable date, the reader is told to specify two keys the page surface cannot author. The only remedy on that door issourceViewnaming an object view that carries acalendar:block — which the screen does not mention.Triage on objectui#7547 (comment 5548796649) rated this the best value-for-effort user-visible improvement in that card, and the PM agreed with the assessment while fencing it out of the implementation.
Why it was fenced out of objectui#7547
It rewords a localized string, so ten locale packs must follow, and
packages/i18n/src/locales/*was held by two in-flight PRs (#8150 in the merge queue, #8152 awaiting CI) at dispatch time. A hot-file collision the PM was not willing to create in that slot. Re-check that both have landed before starting here.What makes this worth doing rather than filing and forgetting
Every other member of the objectui#7029 / #7070 / #7500 family ends at a refusal screen, and the whole value of that family is that the screen tells the author what to do next. On this one door the screen is reached correctly and then gives an instruction that cannot be followed — the refusal is honest about the binding and dishonest about the remedy.
Shape of the fix
The refusal needs to know which door it was reached through, and say the remedy for that door. Whether the door is passed as a prop, inferred from the schema, or the string is split into two keys is the design question this card decides.
Not in scope here
⛔ The forced-path invented binding names themselves — objectui#7547 and its other sub-issues own those.
Refs: objectui#7547 · objectui#7029 · objectui#7459 · objectui#7500.
Recorded by the seat implementing objectui#7547 (
session_01YBWFb5YgMU5dw8p2VKj16S). Unassigned, for triage.