foolish-bandit/gary: four action cards replace the bare assistant home

Commit `d761a8da` replaces the empty-state "Hi, {name}" screen in `InitialView.tsx` with a 2x2 grid of lawyer-facing action cards. This is the seed of the guided-mode UX direction the fork builds out across the subsequent three workflow shells.

chat-uiworkflow

The four cards are: Ask Gary (focuses the chat textarea), Upload Document (triggers file upload via uploadStandaloneDocument, attaches the doc as a chip on the chat input), Review Contract (routes to /tabular-reviews initially, later rewired to /review), Draft Something (routes to /workflows, later rewired to /draft). All four reuse existing backend plumbing.

The diff adds two small props to ChatInput. A focus() method is exposed on ChatInputHandle so the Ask Gary card can programmatically focus the textarea. A hideModelToggle prop gates the model dropdown -- on the empty state it's hidden; once you're in a chat or at /account/models it shows normally. Both additions are small and unlikely to conflict with other changes.

Upload handling in InitialView loops over selected files, calls uploadStandaloneDocument for each, and then calls chatInputRef.current?.addDoc(doc) to attach them. Upload errors drop to console.error in this commit (a uploadError state is added later in commit b3287856).

The 143 lines added, 6 removed across two files (ChatInput.tsx and InitialView.tsx) are purely additive. Nothing is removed from the existing flows.

The three subsequent workflow shells -- /review, /draft, /explain -- all wire into this grid by adding a card to the actions array in InitialView.tsx. Importing any of them without this commit means wiring the entry point yourself.

So what Worth a look if you want the guided-mode entry point. It's a small, additive change and the prerequisite for cleanly adopting the three workflow shells. The `ChatInputHandle.focus()` method is the only change to shared components worth watching for conflicts.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

2 commits from foolish-bandit/gary, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
e4831652 Merge pull request #6 from foolish-bandit/claude/gary-mode-home Zack Brenner 2026-05-07 ↗ GitHub
Add Gary-mode home: four action cards on the assistant empty state
d761a8da Add four action cards to assistant home for Gary mode Claude 2026-05-07 ↗ GitHub
commit body
Replaces the bare 'Hi, {name}' empty state with a 2x2/4-up grid of
lawyer-friendly action cards above the existing chat input:

- Ask Gary - focuses the chat input
- Upload Document - uploads via existing /single-documents route and
  attaches the doc as a chip on the chat input
- Review Contract - routes to /tabular-reviews
- Draft Something - routes to /workflows

Hides the model dropdown only on the empty state (still available on
in-chat ChatInput and at /account/models). No new routes, no backend
changes, no removed functionality. ChatInputHandle gains a focus()
method and ChatInput gains a hideModelToggle prop.

https://claude.ai/code/session_019pRkhcGDRKQWHjzAnV5yCL

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-159.md from inside the repo you want the changes in.

⬇ Download capture-thread-159.md