You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
plugin-chatbot / app-shell: an assistant answer's chart is gone after a reload — no hydration path keeps data-chart parts #25908
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".
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.
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.
Activity
objectstack-fleet commentedon Oct 25, 2026
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.
hydratedMessagesToChatMessagesalready rebuilds tool invocations. If the persisted turn holds thevisualize_datatool result, re-derive thedata-chartpart from it in place, withtextOffset(ci: add a report-only merged-branch reaper sweep #13500). That needs nothing new from spec or cloud.IAIConversationService), and that goes to spec, then to the maintainer, as a protocol change. The dev measures this first.Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
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 isui/apps/console, the librariesui/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:dispatchedor assignee to strip.Generated by Claude Code