Skip to content

feat(chat): shared skeleton/loading primitives for hero agent demos#1459

Merged
michaelassraf merged 14 commits into
mainfrom
feat/hero-agent-demos
Jul 15, 2026
Merged

feat(chat): shared skeleton/loading primitives for hero agent demos#1459
michaelassraf merged 14 commits into
mainfrom
feat/hero-agent-demos

Conversation

@michaelassraf

@michaelassraf michaelassraf commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

What & why

Chat-component changes backing the multi-platform-hub homepage hero rebuild (hub #848). Everything here is a shared root primitive so the hub carries zero skeleton/loading duplication.

Changes (6 commits)

  • ChatMessageSkeleton bodyLines prop — single-line skeleton rows for short scripted turns.
  • ChatMessageListSkeleton fill mode — top-anchored rows + overflow clip so the skeleton covers the whole panel at any height instead of clustering at the bottom.
  • Agent-accent selected chipTag selectedCyan + QuickAction selectedAccent, so a selected quick-action chip uses the agent's theme accent (Fae pink / Mingo cyan) instead of the yellow primary.
  • ChatPanelHeader compact mode — embedded chat keeps the small header bar on mobile.
  • Preview EmbeddableChat in-chrome message skeletonisMessagesLoading renders the message-list skeleton inside the real header + composer chrome (only the thread refreshes).
  • ChatQuickActionRow loading/skeletonCount — wrap-aware shared chip skeleton (real QuickActionChipSkeleton, 1:1 geometry), so the hub's chip wall no longer hand-rolls placeholder bars.
  • Exported mapProcessedToUnified from the chat barrel for the hub's Mingo leg.

Reviewer note

  • Base main, self-contained. This branch was cut from feature/info-card-row, so its InfoCardRow commits are included here too. feat(ui): add InfoCardRow component #1449 stays as a standalone PR of just that work; merge whichever lands first and the other rebases cleanly.
  • Additive/backward-compatible: new optional props + one new barrel export.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Added responsive info card rows with optional icons and statistics.
    • Added compact chat headers for embedded previews.
    • Added configurable loading placeholders for chat messages and quick actions.
    • Added selected quick-action styling, including a cyan accent option.
    • Embedded previews now display loading conversation content instead of the welcome state.
    • Expanded public UI component exports.

juraj-outloud and others added 13 commits July 14, 2026 12:00
…es [preview:none]

Lets short-message chat surfaces (e.g. hero-demo turns) render 1 body line per row instead of the default 3, so the skeleton matches real message height. Default 3 keeps existing consumers unchanged.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
…eview:none]

fill=true top-anchors the rows and clips overflow so, with a generous messageCount, the skeleton covers the whole panel at any height instead of bottom-clustering. Default keeps the existing bottom-anchored scroll behavior.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
…n selectedAccent) [preview:none]

Adds a cyan twin of the Tag 'selected' variant and plumbs a selectedAccent through QuickActionChip -> QuickActionChipButton, so an agent's chip group can show its own theme accent (fae pink / mingo cyan) for the active chip instead of the fixed pink / default yellow.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
…ll bar on mobile [preview:none]

previewMode surfaces (hero demo tabs) forced the phone full-screen header (large text-h2 title) below md. Add compact prop -> always render the h-14 desktop-style bar, skip ChatPanelHeaderMobile; EmbeddableChat passes compact={previewMode}.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
…ia isMessagesLoading [preview:none]

hasConversation now includes (previewMode && isMessagesLoading), so an embedded preview (no dialog manager to set isOpeningDialog) can render the message-list skeleton inside the real header + composer chrome instead of the new-user welcome. Lets hosts refresh only the thread.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
…ed chip skeleton) [preview:none]

The row now draws the real QuickActionChipSkeleton chips in its own wrap/inline layout when loading, so consumers get a 1:1 chip skeleton instead of hand-rolling bars.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 5c96a701-4f29-44ef-910b-aab0060d86d6

📥 Commits

Reviewing files that changed from the base of the PR and between 75ba7e8 and e5f0cbd.

📒 Files selected for processing (10)
  • openframe-frontend-core/src/components/chat/chat-message-skeleton.tsx
  • openframe-frontend-core/src/components/chat/chat-panel-header.tsx
  • openframe-frontend-core/src/components/chat/chat-quick-action-row.tsx
  • openframe-frontend-core/src/components/chat/embeddable-chat.tsx
  • openframe-frontend-core/src/components/chat/hooks/use-nats-chat-adapter.ts
  • openframe-frontend-core/src/components/chat/quick-action-chip.tsx
  • openframe-frontend-core/src/components/ui/index.ts
  • openframe-frontend-core/src/components/ui/info-card-row.tsx
  • openframe-frontend-core/src/components/ui/tag.tsx
  • openframe-frontend-core/src/stories/InfoCardRow.stories.tsx

📝 Walkthrough

Walkthrough

Walkthrough

The chat UI gains configurable loading skeletons, loading quick-action placeholders, selected accent styling, and compact preview headers. A reusable responsive InfoCardRow component is also added with public exports and Storybook stories.

Changes

Chat loading and preview states

Layer / File(s) Summary
Configurable message skeleton layouts
openframe-frontend-core/src/components/chat/chat-message-skeleton.tsx
Message skeletons support configurable body-line counts and list fill mode with conditional scrolling, clipping, and anchoring.
Quick-action loading and selected accents
openframe-frontend-core/src/components/chat/chat-quick-action-row.tsx, openframe-frontend-core/src/components/chat/quick-action-chip.tsx, openframe-frontend-core/src/components/ui/tag.tsx
Quick-action rows render deterministic skeleton chips while loading, and selected chips can use the new cyan tag variant.
Preview conversation and compact header wiring
openframe-frontend-core/src/components/chat/embeddable-chat.tsx, openframe-frontend-core/src/components/chat/chat-panel-header.tsx, openframe-frontend-core/src/components/chat/hooks/use-nats-chat-adapter.ts
Preview loading enters the conversation branch, uses the compact header layout, and exposes processed-message mapping for host reuse.

Info card row component

Layer / File(s) Summary
Responsive info-card row component
openframe-frontend-core/src/components/ui/info-card-row.tsx, openframe-frontend-core/src/components/ui/index.ts, openframe-frontend-core/src/stories/InfoCardRow.stories.tsx
Adds typed lead and stat sections, responsive rendering, public UI exports, and stories with and without icons.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant EmbeddableChatInner
  participant ChatPanelHeader
  participant ChatMessageListSkeleton
  EmbeddableChatInner->>EmbeddableChatInner: detect previewMode and isMessagesLoading
  EmbeddableChatInner->>ChatPanelHeader: pass compact=true
  ChatPanelHeader->>ChatPanelHeader: render compact desktop bar
  EmbeddableChatInner->>ChatMessageListSkeleton: render conversation loading branch
Loading

Possibly related PRs

Suggested reviewers: pavlo-flamingo

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/hero-agent-demos

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@michaelassraf
michaelassraf changed the base branch from feature/info-card-row to main July 15, 2026 20:12
@michaelassraf
michaelassraf merged commit d0b04e8 into main Jul 15, 2026
5 of 6 checks passed
@michaelassraf
michaelassraf deleted the feat/hero-agent-demos branch July 15, 2026 20:20
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