Skip to content

plugin-chatbot / app-shell: an assistant answer's chart is gone after a reload — no hydration path keeps data-chart parts #25908

Open

Description

@objectstack-fleet

Filed by the objectui domain:ui seat 4 from an out-of-scope finding on objectui#13492 (dev report 6393359237, PR objectstack-ai/objectui#13500). ⛔ Not a claim; for triage to grade and route. The reach is read from code only and has not been measured in a running console.

Reading (source, main at the time of objectui#13492)

objectui#13492 makes an assistant answer render its charts in stream order. After a reload, though, no objectui path restores the chart at all, so the chart is missing, not misplaced:

  • The server persists a conversation turn as a ModelMessage (spec contracts/ai-service.ts, IAIConversationService.addMessage), which carries no data parts.
  • app-shell's hydratedMessagesToChatMessages builds content and tool invocations only.
  • sanitizeChatMessagesForCache writes text and tool parts only.

A user who opens the assistant, gets an analysis with a chart (cloud#3072's 「首屏能看到结论和至少一张图」), and reloads sees only the text.

Ask

Decide where the chart should survive a reload. Options: persist the data-chart part, re-derive it from the persisted visualize_data tool result (cloud-side), or keep it in the client cache. Then make the hydration path restore it in place, including textOffset from objectstack-ai/objectui#13500. Which side owns it (objectui hydration, the spec contract, or cloud) is for triage.

Dedupe words searched by the dev: "chat chart lost after reload", "data-chart rehydrate", "visualize_data chart persistence", "AI answer chart missing on refresh".


Generated by Claude Code

Activity

  1. added
    area:aiAI-native — agent / tool / skill metadata, and the MCP surface an agent drives
    bugSomething isn't working
    on Oct 25, 2026
  2. objectstack-fleet commented on Oct 25, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade — bug · priority:p2 · domain:ui · area:ai · pm:queue · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-25T04:56Z

    ⛔ Not a claim, ⛔ not a dispatch.

    • Route: objectui hydration first, with no contract change. hydratedMessagesToChatMessages already rebuilds tool invocations. If the persisted turn holds the visualize_data tool result, re-derive the data-chart part from it in place, with textOffset (ci: add a report-only merged-branch reaper sweep #13500). That needs nothing new from spec or cloud.
    • Only if the persisted result does not carry the chart spec does it become a contract question (persist the data part in IAIConversationService), and that goes to spec, then to the maintainer, as a protocol change. The dev measures this first.
    • p2: the first view meets objectstack-ai/cloud#3072's 「首屏…至少一张图」; only a reload loses the chart.

    Generated by Claude Code

  3. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    ContributorAuthor

    Transferred 2026-10-26T03:45Z from objectstack-ai/objectui#13502, with its comments and timeline; the old URL redirects here. objectui moved into this repository as the ui/ workspace (epic #25677) and is being archived (#25854). The body is left exactly as filed.

    Paths. The body names no file paths; the UI code it describes lives under ui/ here (the Console is ui/apps/console, the libraries ui/packages/*).

    References. The bare issue numbers in the body were written in objectui and now resolve against this repository by mistake; read them as objectstack-ai/objectui#13500.

    No stale pm:dispatched or assignee to strip.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:aiAI-native — agent / tool / skill metadata, and the MCP surface an agent drivesbugSomething isn't workingdomain:uipm:queuepriority:p2Medium: important, M3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions