examples/app-showcase/src/ui/pages/task-visualizations.pages.ts — TaskMapPage (showcase_task_map, "Work Map") — declares its whitelist but no map field bindings:
exportconstTaskMapPage=definePage({
...base,name: 'showcase_task_map',interfaceConfig: {source: 'showcase_task',columns: [...cols,'location'],appearance: {showDescription: true,allowedVisualizations: ['map']},
...
},});With nothing declared, objectui's InterfaceListPage auto-derives the binding via defaultMapFromObject, which returns { locationField } only — no marker-title field. The renderer's flat-form branch then defaults titleField to 'name':
titleField: schema.titleField||'name',// plugin-map ObjectMap.tsx getMapConfig
The measurement
examples/app-showcase/src/data/objects/task.object.ts declares:
line 30: title: Field.text({ label: 'Title', required: true, ... })
line 75: location: Field.location({ label: 'Work Location' })
The object has title, not name. So every marker on the showcase Work Map reads record['name'] — undefined — and renders the placeholder. That is the original reported symptom behind the objectui map family (objectui#5001, transferred to objectstack#9340).
Why this is filed now
objectstack-ai/objectui#5908 (draft) makes the spec's view-level map block actually reach the renderer. It does not change this page, because this page declares no block — the forward has nothing to carry. Declaring one is the showcase half of objectui#5042's own "Done when":
The showcase task map view renders marker titles from its declared map: { titleField: 'title', locationField: 'location' }
Blocked-by: objectstack-ai/objectui#5908 for the end-to-end effect (the block is inert until that merges and the objectui pin refreshes); the declaration itself is independent and correct either way.
Note for triage — there is a second, broader option
The narrow fix is to declare the block on this page. But defaultMapFromObject deriving no title binding affects every ADR-0047 interface page that whitelists map, not just the showcase — its sibling derivers (defaultKanbanFromObject, defaultGalleryFromObject) do bind their display field. That half would land in objectui and is filed there separately. These two are not alternatives so much as different scopes; whoever triages may want to route them together.
Filed by the objectui os-dev seat on objectui#5042 (session 01EuPCi56cnGyykygi3z9w4m), unassigned.
Generated by Claude Code
examples/app-showcase/src/ui/pages/task-visualizations.pages.ts—TaskMapPage(showcase_task_map, "Work Map") — declares its whitelist but no map field bindings:With nothing declared, objectui's
InterfaceListPageauto-derives the binding viadefaultMapFromObject, which returns{ locationField }only — no marker-title field. The renderer's flat-form branch then defaultstitleFieldto'name':The measurement
examples/app-showcase/src/data/objects/task.object.tsdeclares:The object has
title, notname. So every marker on the showcase Work Map readsrecord['name']—undefined— and renders the placeholder. That is the original reported symptom behind the objectui map family (objectui#5001, transferred to objectstack#9340).Why this is filed now
objectstack-ai/objectui#5908 (draft) makes the spec's view-level
mapblock actually reach the renderer. It does not change this page, because this page declares no block — the forward has nothing to carry. Declaring one is the showcase half of objectui#5042's own "Done when":Blocked-by: objectstack-ai/objectui#5908for the end-to-end effect (the block is inert until that merges and the objectui pin refreshes); the declaration itself is independent and correct either way.Note for triage — there is a second, broader option
The narrow fix is to declare the block on this page. But
defaultMapFromObjectderiving no title binding affects every ADR-0047 interface page that whitelistsmap, not just the showcase — its sibling derivers (defaultKanbanFromObject,defaultGalleryFromObject) do bind their display field. That half would land in objectui and is filed there separately. These two are not alternatives so much as different scopes; whoever triages may want to route them together.Filed by the objectui
os-devseat on objectui#5042 (session01EuPCi56cnGyykygi3z9w4m), unassigned.Generated by Claude Code