Problem
Frontend-state rules say base/composite UI belongs in @vibest/ui, not apps/app/src/components.
Conversation, ConversationContent, and ConversationScrollButton are styled composite wrappers around use-stick-to-bottom and live in the app package. There is no equivalent under packages/ui.
Severity
P3
Affected files
apps/app/src/components/conversation.tsx
- Consumer:
apps/app/src/features/chat/components/chat-transcript.tsx
Suggested fix
Move the conversation compound component to packages/ui (e.g. packages/ui/src/ai-elements/conversation.tsx) and import via subpath (@vibest/ui/ai-elements/conversation). Remove the "use client" directive — it is a Next.js artifact with no effect in this Vite SPA.
Problem
Frontend-state rules say base/composite UI belongs in
@vibest/ui, notapps/app/src/components.Conversation,ConversationContent, andConversationScrollButtonare styled composite wrappers arounduse-stick-to-bottomand live in the app package. There is no equivalent underpackages/ui.Severity
P3
Affected files
apps/app/src/components/conversation.tsxapps/app/src/features/chat/components/chat-transcript.tsxSuggested fix
Move the conversation compound component to
packages/ui(e.g.packages/ui/src/ai-elements/conversation.tsx) and import via subpath (@vibest/ui/ai-elements/conversation). Remove the"use client"directive — it is a Next.js artifact with no effect in this Vite SPA.