Skip to content

feat: builder app UI improvements#192

Merged
calreynolds merged 4 commits intomainfrom
feat/app-improvements
Feb 27, 2026
Merged

feat: builder app UI improvements#192
calreynolds merged 4 commits intomainfrom
feat/app-improvements

Conversation

@calreynolds
Copy link
Collaborator

@calreynolds calreynolds commented Feb 26, 2026

Screenshot 2026-02-26 at 2 17 46 PM

Loom vid: https://www.loom.com/share/ded8d1ac348846948ead71a06eebb02b

Only issues yet left to solve: chats need to be executing separately and potentially concurrently.

Summary

  • Redesigned homepage with animated gradient header, project cards with monograms, and inline rename
  • Overhauled conversation UI: iMessage-style right-aligned user bubbles, Databricks logo for assistant avatar, expandable tool tracking per response
  • Scoped streaming state to owning conversation so switching chats doesn't leak streaming UI
  • Left-justified loader/thinking indicators, collapsible config panel with custom resource dropdowns showing cluster/warehouse status
  • Simplified docs page to use MainLayout, removed Tools & Skills section
  • Added favicon

Test plan

  • Verify homepage renders with new design, project creation/rename/delete works
  • Test conversation UI: user messages right-aligned, assistant messages with Databricks logo
  • Verify tool tracking badge appears after agent responses using tools
  • Test switching conversations during active streaming - streaming should stay in original chat
  • Verify config panel opens/closes, resource dropdowns show status indicators
  • Check docs page renders correctly with MainLayout

🤖 Generated with Claude Code

calreynolds and others added 4 commits February 26, 2026 14:16
- Redesign homepage with animated gradient header, project cards with monograms, and inline rename
- Overhaul conversation UI: iMessage-style user bubbles, Databricks logo for assistant, tool tracking per response
- Scope streaming to owning conversation so switching chats doesn't leak state
- Left-justify loader/thinking indicators, collapsible config panel with custom resource dropdowns
- Simplify docs page to use MainLayout, remove Tools & Skills section
- Add favicon

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When conversation.created fired during streaming, streamingConversationIdRef
was set to the new ID but currentConversation was still null, causing
isStreamingHere to evaluate to false and hiding the loader/streaming UI.

Fix: set currentConversation immediately on conversation.created so the IDs
match and isStreamingHere stays true. Also refetch full conversation in onDone
to get the proper title.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace global isStreaming boolean with per-conversation streaming state
using allStreamsRef and streamingConvIds. Each conversation can now stream
independently - starting a new chat while another is processing no longer
blocks the input. Stream data is tracked per-conversation and synced to
UI state when switching between conversations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update currentConvIdRef immediately on conversation switch (not via
  useEffect) so stream callbacks resume updating state without a gap
- Store pending user messages in allStreamsRef so they're visible when
  switching back before the DB has saved them
- Fix empty state condition: show message thread (with loader) whenever
  isStreamingHere is true, even if messages array is empty and no text
  has streamed yet (e.g. during thinking phase)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@calreynolds calreynolds marked this pull request as ready for review February 26, 2026 21:15
@calreynolds calreynolds merged commit 0ca48c2 into main Feb 27, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants