docs(ui): audit ui-kit for existing chat-adjacent UI primitives - #6474
Merged
loopover-orb[bot] merged 1 commit intoJul 16, 2026
Merged
Conversation
…bored#6244) Research-only groundwork for JSONbored#6230's eventual chat interface: an inventory of what apps/loopover-ui and packages/loopover-ui-kit already have that a future chat surface could reuse against the four primitives it will need (message list, composer, streaming renderer, typing indicator). - Reusable as-is: state-views.tsx's loading/empty/error scaffolding, scroll-area.tsx, avatar.tsx, and the raw textarea/input/button primitives. - Close but needs adaptation: audit-feed.tsx (filtered live-data list, but table-rendered, not bubble-rendered), command-palette.tsx (the only text-input + filtered-list combo, but click-to-navigate, no Enter-to-submit), animated-terminal.tsx (interval-driven typewriter reveal over static scenes, the closest streaming-text precedent). - Entirely absent: a submit-on-Enter composer, any real streaming consumer (grepped for EventSource/ReadableStream/text/event-stream across apps/loopover-ui/src — the one hit is a comment explaining why analytics-proxy.ts deliberately avoids a streaming body), a chat-bubble/message-list component, and an inline typing indicator. No functional code changes accompany this doc, per the issue's own scope ("do not build anything new"). Closes JSONbored#6244
Contributor
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Contributor
|
Important 🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪 🔍 LoopOver is reviewing…AI analysis is in progress. This comment will update when the review is complete. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed · 🟪 Reviewing |
This was referenced Jul 16, 2026
Closed
Closed
23 tasks
Closed
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #6244
Summary
Research-only groundwork for #6230's eventual chat interface spec (still open). Audits
apps/loopover-ui/src/components/**andpackages/loopover-ui-kit/src/components/**for anything already resembling the four primitives a chat surface will need — a scrollable message/timeline list, a text composer with submit-on-enter, a streaming/incremental text renderer, and a typing/in-progress indicator — and writes up what's reusable, what's close but needs adaptation, and what's entirely absent. Per the issue's own scope, no functional code changes accompany this:apps/loopover-ui/src/chat-ui-primitives-audit.mdis the sole deliverable, following the same design-doc pattern as PR #5794 (#3048).state-views.tsx'sLoadingState/EmptyState/ErrorState/StateBoundary,scroll-area.tsx,avatar.tsx, and the rawtextarea.tsx/input.tsx/button.tsxprimitives.audit-feed.tsx(filtered, live-fetched list — but table-rendered, not a bubble/timeline layout),command-palette.tsx(the only text-input + filtered-list combo in the app — but click-to-navigate, noEnter-to-submit handling),animated-terminal.tsx(interval-driven typewriter reveal with reduced-motion handling — the closest streaming-text precedent, but over a hardcoded static scene array, not a live stream).apps/loopover-ui/srcforEventSource|ReadableStream|text/event-stream|streaming— the one hit is a comment inanalytics-proxy.tsexplaining why it deliberately avoids a streaming request body); a chat-bubble/message-list component; an inline typing indicator.Scope
type(scope): short summaryConventional Commit format.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Validation
git diff --checknpm run actionlintnpm run docs:drift-checknpm run manifest:drift-checknpm run command-reference:checknpm run ui:lint— 0 errors, only pre-existing warnings in unrelated files.npm run ui:typecheck/npm run ui:build— both fail identically on a cleanmaincheckout in this sandbox, verified viagit stash:ui:typecheckcan't resolve the codegen modulescollections/browser/collections/server(missing a content-collections build step in this environment), andui:buildcan't resolve@scalar/api-referencefrom@scalar/api-reference-react's dist output. Neither references this PR's new file (apps/loopover-ui/src/chat-ui-primitives-audit.md— a.mdfile not imported anywhere) and both reproduce byte-for-byte on unmodifiedmain.npm run typecheck/npm run test:coverage— not run; this sandbox's root typecheck reliably OOMs regardless of diff content (reproduced repeatedly across prior PRs this session viagit stashcomparison), and this PR has nosrc/**code changes for Codecov to measure.npm audit --audit-level=moderate— 0 vulnerabilities.If any required check was skipped, explain why:
ui:typecheck/ui:build: pre-existing sandbox environment issues (a missing codegen step and an unresolvable third-party subpackage), confirmed unrelated to this diff by reproducing the identical failure on a cleanmaincheckout before and after stashing this PR's single new file.typecheck/test:coverage: this sandbox's established OOM pattern (unrelated to diff content, confirmed repeatedly this session), and moot here since nosrc/**files changed.Safety
UI Evidencesection below with screenshots. — N/A, no visible UI change (a new internal doc file only).CHANGELOG.mduntouched.Notes