Skip to content

Memory page node selector: show node titles instead of node IDs #1230

@rowan-stein

Description

@rowan-stein

User request

Memory page has a memory node selector that currently displays node IDs. Change it to display node titles.

Specification (research)

Current behavior / locations

  • Memory node selector labels are built in packages/platform-ui/src/pages/AgentsMemoryManager.tsx and shown in dropdown in packages/platform-ui/src/components/screens/memoryManager/MemoryManager.tsx.
  • Labels are currently based on nodeId (e.g., "{nodeId} (global)", "{nodeId} (thread: ...)").

Where titles come from

  • Memory API items include nodeId, scope, and optional threadId, but do not include title.
  • Node titles can be derived from the Graph + Templates APIs:
    • /api/graph (persisted graph)
    • /api/graph/templates (template metadata)
    • Existing mapper packages/platform-ui/src/features/graph/mappers/index.ts (mapPersistedGraphToNodes) derives node.title from config/template.

Implementation approach

  • Add a shared client hook (suggested): useNodeTitleMap() that fetches graph + templates (via existing graph api module) and returns a Map<nodeId, title>.
  • Update UI to use title (fallback to nodeId if not resolvable):
    1. packages/platform-ui/src/pages/AgentsMemoryManager.tsx
      • Update option label builder to use titleMap.get(nodeId) ?? nodeId.
    2. (Optional but recommended for consistency) packages/platform-ui/src/pages/MemoryNodesListPage.tsx and packages/platform-ui/src/pages/MemoryNodeDetailPage.tsx
      • Replace prominent nodeId display with title, with fallback.

Acceptance criteria

  • Memory node selector shows node titles (derived from graph/templates) instead of raw node IDs.
  • If a title cannot be resolved (loading/error/stale node), UI falls back to showing the node ID.
  • Existing selection behavior remains unchanged (still keyed by nodeId).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions