Conversation
The chat-app transcript dropped every session item without text content, so re-hydrating the log (page reload, opening a session, or the Capabilities refresh) silently lost assistant tool-call turns. Clicking Capabilities ↻ mid-conversation made messages disappear. Make re-hydrate lossless rather than avoiding one trigger: - runtime/ui.py: keep session items carrying tool_calls even without content. - ui/app.js renderSessionTranscript: render an assistant tool-call as a "Tool request" bubble (mirrors the streaming path) and skip only genuinely empty items. Applied to both chat-app templates (agent-langgraph, agent-openai) with a unit test for the kept-tool-call case. Co-authored-by: Isaac <no-reply@databricks.com>
akansal2
force-pushed
the
fix/mason-chat-capabilities-refresh
branch
from
September 11, 2026 17:50
9d07bb5 to
9cafe34
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The chat-app transcript is rebuilt from the persisted Session-Store transcript on every re-hydrate — page reload, opening a saved session, and the Capabilities ↻ refresh.
renderSessionTranscriptdropped any session item without text content, so assistant tool-call turns (which carrytool_callsbut no text) silently disappeared. The most visible symptom was the one this PR originally targeted: clicking Capabilities ↻ mid-conversation made tool-call bubbles vanish.The original version of this PR avoided that one symptom by not re-hydrating on the Capabilities refresh. Since then the chat UI was refactored on
main(thehydrateChatsplit, model picker, decluttering), and the better fix is to make re-hydrate itself lossless — so reload and open-session keep tool calls too.Fix
runtime/ui.py(_chat_session_items): keep session items that carrytool_callseven when they have nocontent.ui/app.js(renderSessionTranscript): render an assistant tool-call as a "Tool request" bubble (mirroring the streaming path), and skip only genuinely empty items.Applied to both chat-app templates (
agent-langgraph,agent-openai), with a unit test for the kept-tool-call case.Testing
node --checkon bothapp.js._chat_session_itemsfor both templates: a tool-call-without-content item is kept, a genuinely empty item is dropped, and the existing exclusion test still holds.This pull request and its description were written by Isaac.