Release summaries
relationship-detail-rendering
Declare relationships on a DataView detail config and render related records inside EntityDetailPanel (web + native), reusing the per-field formatting/intelligent-action machinery.
maintainer
contracts-spec adds an additive DataViewSectionRelationship primitive (DataViewSections gains optional kind/relationship; fields relaxed to optional). design-system adds RelationshipSection/RelationSwitcher (web+native, no ARIA tablist roles) and an optional fieldActions prop on the shared DataViewList(.native) (default off; existing consumers byte-identical). WEB LIST ROW ELEMENT: rows with interactive descendants (fieldActions='auto' or a renderActions slot) are no longer a native <button> — to avoid nesting focusable controls they render as a plain clickable region plus a primary <button data-row-select> keyboard affordance, with actions as valid siblings; rows with no interactive descendants stay a native <button> (byte-identical). EntityWorkspace(web+native) and EntityDetailPanel/DataViewDetail forward optional relationData/getRelationData/onOpenRelated/dataViewRegistry props.
integrator
Authors declare relationships (cardinality, displayMode table/list/compact-list, inline fields or child specKey, limit, emptyState). Related records are host-supplied — embedded dataPath, a relationData map / getRelationData resolver, the RelationDataContext provider, or the new optional EntityWorkspace/EntityDetailPanel/DataViewDetail props (relationData, getRelationData, onOpenRelated, dataViewRegistry); the declared OpRef is executed by the host. Drill-in via onOpenRelated(relationKey, record); read-only when omitted. The design-system performs no I/O. NOTE for DataViewList consumers: rows that render per-field actions or a renderActions slot are now a clickable region with a [data-row-select] keyboard affordance instead of a wrapping <button> (no-actions rows are unchanged) — update any tests/selectors that assumed the row is always a <button>.
customer
Detail views can show related records (e.g. a client's addresses) inline, switch between relations or view all stacked, and open a related record — on web and mobile.
