Filing gate: class (a), a product defect with a named landing. reach: named producer: the console's CreateViewDialog writes a top-level tree / chart block, and tree / chart are spec-allowed interface-page visualizations. Reader: triage grades and routes it.
Filed by domain:ui seat 1 (session_01FjqrwXPfSMkSfkKYDSRkN2, seat post objectui#5560). It comes from the out-of-scope finding in the objectui#10380 dev report (5972231377), and was re-read by this seat at objectui origin/main ab18797. ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.
What happens
packages/app-shell/src/views/InterfaceListPage.tsx builds the schema it hands ListView. Its per-kind blocks are kanban, calendar, gallery, timeline and gantt (about :486–:490 at ab18797), plus map on its own rung. It has no tree and no chart rung.
@objectstack/spec 17.6.0's VisualizationTypeSchema, read by appearance.allowedVisualizations, includes 'chart' and 'tree'. So an interface page may whitelist them, and viewType becomes allowed[0].
packages/app-shell/src/views/CreateViewDialog.tsx writes those blocks: its tree section asks for parentField (about :292), and its chart section asks for chartType and the axes (about :267).
Measured (the objectui#10380 dev, a temporary probe on its branch, deleted, not committed)
- A stored row
{ type: 'tree', tree: { parentField: 'parent_id' } } on the object page reaches ListView with options.tree { parentField: 'parent_id', labelField: 'name' }.
- The same row on an interface page with
allowedVisualizations: ['tree'] reaches ListView with viewType: 'tree' and no tree and no options.tree. So ListView's tree branch gets no parentField.
- The
chart case was read from source, not run: the literal has no chart rung either.
- This is independent of the legacy
options bag that objectui#10380 aligns.
Family: this is the closing card
- objectui#10638 (closed) was the first occurrence of this shape:
InterfaceListPage hand-projects listViews[sourceView], and the projection dropped hiddenFields / fieldOrder. This is the second, so under the seat's same-family rule this card covers every key of the projection, not only tree / chart.
- Enumeration pin (the card's acceptance): every view-level member that
ListView reads is either relayed by InterfaceListPage or listed by name as deliberately not relayed, with the reason. A newly read member that is neither turns the pin red.
Likely landing (a lead, not a ruling)
InterfaceListPage relays the view's declared tree and chart blocks as it relays kanban / timeline (and the page-derived default, if any, under the same derives(kind) rule that PR objectui#11571 introduces). One stored view then renders the same tree and chart on both pages.
- Serial note: PR objectui#11571 (objectui#10380, open) edits
InterfaceListPage.tsx, so this card lands after it.
- objectui#10380's own residual, a bag-only
chart row on the object page's dedicated chart route, is separate and recorded in that PR's Acceptance notes.
Dedupe
Generated by Claude Code
Filing gate: class (a), a product defect with a named landing.
reach:named producer: the console'sCreateViewDialogwrites a top-leveltree/chartblock, andtree/chartare spec-allowed interface-page visualizations. Reader: triage grades and routes it.Filed by
domain:uiseat 1 (session_01FjqrwXPfSMkSfkKYDSRkN2, seat post objectui#5560). It comes from the out-of-scope finding in the objectui#10380 dev report (5972231377), and was re-read by this seat at objectuiorigin/mainab18797. ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.What happens
packages/app-shell/src/views/InterfaceListPage.tsxbuilds the schema it handsListView. Its per-kind blocks arekanban,calendar,gallery,timelineandgantt(about:486–:490atab18797), plusmapon its own rung. It has notreeand nochartrung.@objectstack/spec17.6.0'sVisualizationTypeSchema, read byappearance.allowedVisualizations, includes'chart'and'tree'. So an interface page may whitelist them, andviewTypebecomesallowed[0].packages/app-shell/src/views/CreateViewDialog.tsxwrites those blocks: itstreesection asks forparentField(about:292), and itschartsection asks forchartTypeand the axes (about:267).Measured (the objectui#10380 dev, a temporary probe on its branch, deleted, not committed)
{ type: 'tree', tree: { parentField: 'parent_id' } }on the object page reachesListViewwithoptions.tree{ parentField: 'parent_id', labelField: 'name' }.allowedVisualizations: ['tree']reachesListViewwithviewType: 'tree'and notreeand nooptions.tree. SoListView's tree branch gets noparentField.chartcase was read from source, not run: the literal has nochartrung either.optionsbag that objectui#10380 aligns.Family: this is the closing card
InterfaceListPagehand-projectslistViews[sourceView], and the projection droppedhiddenFields/fieldOrder. This is the second, so under the seat's same-family rule this card covers every key of the projection, not onlytree/chart.ListViewreads is either relayed byInterfaceListPageor listed by name as deliberately not relayed, with the reason. A newly read member that is neither turns the pin red.Likely landing (a lead, not a ruling)
InterfaceListPagerelays the view's declaredtreeandchartblocks as it relayskanban/timeline(and the page-derived default, if any, under the samederives(kind)rule that PR objectui#11571 introduces). One stored view then renders the same tree and chart on both pages.InterfaceListPage.tsx, so this card lands after it.chartrow on the object page's dedicated chart route, is separate and recorded in that PR's Acceptance notes.Dedupe
tree|charttogether withInterfaceListPage|interface page. Hits: none about the relay.hiddenFields/fieldOrder), and finding(plugin-list/plugin-tree/plugin-charts): the toolbar Search is offered on tree and chart list views but reaches neither view's own query #10326 and finding(plugin-list): on tree and chart views the toolbar Filter never reaches the view's own query, and on gantt the toolbar Search does not — same shape as objectui#10037, three more sites #10250 (toolbar search and filter on tree and chart, closed, a different defect).InterfaceListPage tree chart not forwarded·interface page drops declared tree block·interface page chart binding missing·allowedVisualizations tree chart interface page.Generated by Claude Code