Problem
ADR 0001 and ui-components.md state that packages/ui/src/components/* is vendored from the coss registry and local edits are discarded on refresh. Durable product UI belongs in ai-elements/ or feature wrappers (exceptions: carousel, splitter).
The entire Tiptap subtree is hand-written application code sitting under the vendored tree:
packages/ui/src/components/tiptap/suggestion-menu.tsx
packages/ui/src/components/tiptap/suggestion-list.tsx
packages/ui/src/components/tiptap/suggestion-menu-utils.ts
packages/ui/src/components/tiptap/suggestion-menu-types.ts
packages/ui/src/hooks/tiptap/use-floating-element.ts
packages/ui/src/hooks/tiptap/use-menu-navigation.ts
packages/ui/src/hooks/tiptap/use-tiptap-editor.ts
Why it matters
The next shadcn add @coss/ui --overwrite can wipe or conflict with this code. It also blurs the vendored vs. owned boundary the ADR exists to enforce.
Suggested fix
Move Tiptap UI to packages/ui/src/ai-elements/tiptap/ (or apps/app/src/features/chat/components/input/ if chat-only). Keep components/ strictly vendored.
Severity
P2
Problem
ADR 0001 and
ui-components.mdstate thatpackages/ui/src/components/*is vendored from the coss registry and local edits are discarded on refresh. Durable product UI belongs inai-elements/or feature wrappers (exceptions:carousel,splitter).The entire Tiptap subtree is hand-written application code sitting under the vendored tree:
packages/ui/src/components/tiptap/suggestion-menu.tsxpackages/ui/src/components/tiptap/suggestion-list.tsxpackages/ui/src/components/tiptap/suggestion-menu-utils.tspackages/ui/src/components/tiptap/suggestion-menu-types.tspackages/ui/src/hooks/tiptap/use-floating-element.tspackages/ui/src/hooks/tiptap/use-menu-navigation.tspackages/ui/src/hooks/tiptap/use-tiptap-editor.tsWhy it matters
The next
shadcn add @coss/ui --overwritecan wipe or conflict with this code. It also blurs the vendored vs. owned boundary the ADR exists to enforce.Suggested fix
Move Tiptap UI to
packages/ui/src/ai-elements/tiptap/(orapps/app/src/features/chat/components/input/if chat-only). Keepcomponents/strictly vendored.Severity
P2