Skip to content

Add new UI components, enhance UX, fix dev mode detection#365

Open
milog1994 wants to merge 7 commits intorowboatlabs:mainfrom
milog1994:claude/nostalgic-tharp
Open

Add new UI components, enhance UX, fix dev mode detection#365
milog1994 wants to merge 7 commits intorowboatlabs:mainfrom
milog1994:claude/nostalgic-tharp

Conversation

@milog1994
Copy link

Summary

  • Add 6 new reusable UI components: TypingIndicator, ConfirmDialog, StatusIndicator, KeyboardShortcut/ShortcutHint, EmptyState, SkeletonVariants (Text/Avatar/Card/Paragraph/Message/List)
  • Enhance Progress bar with labels, percentages, color variants, animated striped fill, and glow effects
  • Wire TypingIndicator into chat flow replacing Shimmer "Thinking..." in both App.tsx and ChatSidebar
  • Polish chat input with glassmorphism, focus glow ring, rounded corners
  • Add animated empty state with subtitle and keyboard shortcut hint
  • Fix dev mode detection using process.defaultApp instead of app.isPackaged (which was unreliable with esbuild-bundled .cjs)
  • Set BrowserWindow show: true to prevent invisible window issues
  • Simplify all new components: extract shared patterns, remove duplicates, flatten nesting (-239 lines in cleanup pass)

Test plan

  • Verify app launches and window is visible in dev mode
  • Verify empty chat state shows "What are we working on?" with subtitle and Enter hint
  • Send a message and confirm TypingIndicator (bouncing dots) appears while assistant is thinking
  • Verify chat input has rounded corners, backdrop blur, and focus glow ring
  • Verify scroll-to-bottom button appears with glass effect when scrolled up
  • Verify npm run lint shows only pre-existing errors (12 in core/main packages)
  • Verify production build still works (npm run package)

🤖 Generated with Claude Code

vboi and others added 2 commits February 15, 2026 07:59
- Add TypingIndicator (bouncing dots), ConfirmDialog, StatusIndicator,
  KeyboardShortcut, EmptyState, and SkeletonVariants components
- Enhance Progress bar with labels, percentages, color variants,
  animated striped fill, and glow effects
- Wire TypingIndicator into chat flow replacing Shimmer "Thinking..."
- Polish chat input with glassmorphism, focus glow ring, rounded corners
- Enhance empty state with staggered animations and keyboard hint
- Improve scroll-to-bottom button with glass effect and transitions
- Fix dev mode detection using process.defaultApp instead of
  app.isPackaged which was unreliable with esbuild-bundled .cjs
- Set BrowserWindow show: true to prevent invisible window issues

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Extract shared AvatarHeader in skeleton-variants, eliminating
  duplicated avatar+text pattern between Card and Paragraph
- Extract glowShadow helper in progress.tsx, deduplicating 5 identical
  shadow strings across variant configs
- Merge sizeConfig into single object in keyboard-shortcut, removing
  the ternary chain in ShortcutHint
- Flatten EmptyState icon wrapper: extract visual/showIconBadge vars,
  remove nested cn() call, deduplicate action buttons with array map
- Simplify ConfirmDialog: inline handlers, use Loader2Icon instead of
  hand-rolled spinner, remove unnecessary React namespace import
- Replace manual KeyboardShortcut assembly in App.tsx empty state with
  the ShortcutHint component, cutting 7 lines of JSX
- Remove unused Shimmer imports from App.tsx and chat-sidebar.tsx
- Add eslint-disable for process.defaultApp any cast in main.ts
- Net reduction: -239 lines across 8 files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vercel
Copy link

vercel bot commented Feb 15, 2026

Someone is attempting to deploy a commit to the RowBoat Labs Team on Vercel.

A member of the Team first needs to authorize it.

vboi and others added 4 commits February 15, 2026 08:48
- Rename HTML title, theme storage key, onboarding CTA, help URLs
- Extract shared Intl formatters (currency, percent, compact) to lib/formatters.ts
- Extract getTokenCost helper to deduplicate 4x cost calculations in context.tsx
- Extract sectionHeader constant to deduplicate h4 classes in tool.tsx
- Update Google setup guide URL to openclaw-ai org

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Copilot instructions: system prompt identity → OpenClaw Copilot
- Agent name: rowboatx → openclaw (with backward compat in runtime)
- Welcome text: config.ts and welcome.md → OpenClaw
- Package: name/productName → openclaw/OpenClaw
- OAuth client: RowboatX Desktop App → OpenClaw Desktop App
- MCP client: rowboatx → openclaw
- Fireflies MCP: rowboatx-fireflies → openclaw-fireflies
- Composio: rowboat-{slug} → openclaw-{slug}, rowboat-user → openclaw-user
- Models.dev UA: Rowboat → OpenClaw
- Note: ~/.rowboat/ filesystem paths preserved for backward compatibility

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When the LLM calls multiple tools in a single response, they now
execute concurrently instead of sequentially. Regular tools run via
Promise.all() and agent sub-flows stream via merged async generators.
A new parallel-dispatch event notifies the renderer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add error handlers on process.stdout/stderr to gracefully ignore
EPIPE errors. These occur when the workspace file watcher logs
ENOSPC warnings after the parent pipe closes in dev mode.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@milog1994
Copy link
Author

Recreating PR from origin branch to avoid Vercel fork authorization issues

@milog1994 milog1994 closed this Feb 15, 2026
@milog1994 milog1994 reopened this Feb 15, 2026
HTML code blocks (```html) now render with a Code/Preview toggle.
Preview mode uses a sandboxed iframe (srcdoc, no same-origin) with
auto-height. Extends the existing markdown-code-override to detect
language-html blocks and route them to the new HtmlPreview component.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.

1 participant