Skip to content

feat: builder app UI improvements#192

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

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

Conversation

@calreynolds
Copy link
Copy Markdown
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
@calreynolds calreynolds deleted the feat/app-improvements branch March 17, 2026 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants