First-run onboarding: empty states, upload feedback & first-chat path (JOB-5)#59
Open
Pragadeesh122 wants to merge 2 commits into
Open
First-run onboarding: empty states, upload feedback & first-chat path (JOB-5)#59Pragadeesh122 wants to merge 2 commits into
Pragadeesh122 wants to merge 2 commits into
Conversation
First-run flow improvements for the create-project -> upload -> first
grounded answer path (JOB-5):
- Empty-project chat area now guides the user to upload their first
document (working drag/click dropzone) instead of showing generic
tool prompts; shows an "indexing" state and surfaces upload errors.
- Once documents are indexed, the empty state suggests grounded
questions (summarize / ask about your documents).
- Upload failures are surfaced inline (type/size pre-validation mirrors
the backend) instead of failing silently to the console.
- Per-document status line now explains "Indexing…" and shows failure
reasons.
- No-projects sidebar state is now a real CTA ("Create your first
project") and project creation shows a spinner + inline errors.
- Fixed an incorrect "Up to 25 MB" hint — the backend allows 100 MB;
added a shared lib/upload.ts so client limits track the backend.
Co-Authored-By: Paperclip <[email protected]>
Pragadeesh122
force-pushed
the
job-5-first-run-onboarding
branch
from
July 17, 2026 02:17
7944d8e to
5958a41
Compare
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.
Summary
Tightens the first five minutes for a new user: create project → upload first doc → first grounded answer (JOB-5). Frontend-only, no backend changes.
First-run audit — friction points found
handleUploadFileswallowed errors toconsole.error; a bad type / too-large file / backend error left the spinner stopping with no explanation.api/projects.py) allows 100 MB.+.Changes
ChatArea— project-aware empty state: when a project has no ready document, a hero upload dropzone (drag + click, wired to the real upload handler) with an indexing state and inline errors; once docs are ready, suggestions switch to grounded questions (summarize / ask about your documents).ProjectPage— pre-flight validation + inline upload-error state, threaded into both the sidebar and the chat hero.ProjectSidebar— corrected size copy (100 MB), inline upload-error banner, and a clearer per-document status line ("Indexing… ready to chat shortly" / failure reason).Sidebar— no-projects CTA ("Create your first project"); project creation now shows a spinner and surfaces errors inline.lib/upload.ts— single source of truth for supported types / size limit, kept in sync with the backend so client validation can't drift.Verification
tsc --noEmitpasses (exit 0). Productionnext buildcould not run in the isolated worktree (Turbopack rejects the cross-rootnode_modulessymlink used to typecheck) — type/compile correctness is covered bytsc./chatshows the "Create your first project" CTA..zipand a >100 MB file → friendly inline errors, no silent failure.🤖 Generated with Claude Code