Chat UX: streaming feedback, remove Action Timeline, fix history leak#13
Open
davewaring wants to merge 6 commits intomainfrom
Open
Chat UX: streaming feedback, remove Action Timeline, fix history leak#13davewaring wants to merge 6 commits intomainfrom
davewaring wants to merge 6 commits intomainfrom
Conversation
Two UX fixes for the chat experience:
1. Remove the Action Timeline card entirely — it shows operational
detail (tool calls, approval results) that has no user value and
makes the UI feel frozen during onboarding.
2. Keep tool status feedback ("Reading from your library...",
"Writing to your library...") visible even after text has started
streaming. Previously, the typing indicator disappeared once the
first text-delta arrived, leaving the user with no feedback during
subsequent tool calls (like writing the spec/plan).
Before: isTyping = isLoading && !hasStartedAssistantReply
After: isTyping = isLoading && (!hasStartedAssistantReply || !!toolStatus)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When switching to a project with no saved conversation (draft mode), use empty messages instead of externalMessages, which may be stale from the previous project's history that hasn't cleared yet. This fix was on the onboarding-flow-updates branch but was lost when we created the clean fix/hide-action-timeline branch from main. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The previous fix only handled draft projects (null conversationId). Projects WITH saved conversations had the same race condition: when the cacheKey effect runs, externalMessages still holds the previous project's history because setHistoryMessages([]) hasn't re-rendered yet. Fix: always start with empty messages on conversation switch. The secondary effect at line 199 applies the correct history once the async fetch completes. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Previously, the typing indicator disappeared once text started
streaming. If the AI paused between text and tool calls (e.g.,
deciding to write spec/plan), the UI showed nothing — felt frozen.
Now shows "Thinking..." or tool status ("Writing to your library...")
for the entire duration the AI is loading. Composer stop button
behavior preserved (only shows before text starts).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Don't show "Thinking..." when the AI is blocked on a pending approval card — the AI isn't thinking, it's waiting for the user. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
After user approves a tool call, show the friendly tool status
("Writing to your library...") instead of "Approval approved".
The user cares about what's happening, not the approval mechanics.
- resolveApproval: captures tool name before removing approval,
sets toolStatus to the tool name (not "Approval {decision}")
- approval-request event: sets toolStatus to tool name directly
(not "Approval required: tool_name") so formatToolStatus works
- approval-result event: no longer sets toolStatus (resolveApproval
already handled it)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.
Summary
Files changed
client_web/src/components/chat/ChatPanel.tsx— removed Action Timeline section, updated typing indicator logicclient_web/src/api/useGatewayChat.ts— fixed conversation history isolation, improved approval status feedbackTest plan
🤖 Generated with Claude Code