feat(web): add starter suggestions to the empty conversation screen - #113
feat(web): add starter suggestions to the empty conversation screen#113elkaix wants to merge 1 commit into
Conversation
The empty session showed only a blank composer. It now offers four starter prompts below the hero text. A click fills the composer for editing and does not send the message.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
Included review availability: Your plan includes up to 3 reviews per rolling hour; 2 remain after this review. 📝 WalkthroughWalkthroughThe web UI now shows four localized starter suggestions in empty conversations. Selecting a suggestion loads its prompt into the composer without sending it. Responsive styling, reduced-motion support, tests, and a release changeset were added. ChangesEmpty conversation suggestions
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to This localized UI change adds clickable starter suggestions without changing message submission behavior; no actionable merge-blocking risk remains beyond normal checks and review. Sequence Diagram(s)sequenceDiagram
participant User
participant ConversationPane
participant EnglishSuggestions
participant ComposerTextarea
User->>ConversationPane: Click starter suggestion
ConversationPane->>EnglishSuggestions: Resolve localized prompt
EnglishSuggestions-->>ConversationPane: Return prompt text
ConversationPane->>ComposerTextarea: Populate prompt without submission
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Comment |
commit: |
|
Closing: merged locally into main; a new PR will follow. |
Summary
The empty conversation screen showed the mascot, a title, a line of text, and a blank composer. A new user had nothing to click. This adds four starter prompts below the hero text.
prefers-reduced-motionthrough the block that already covers the hero.loadForEditpath and focuses it. It does not send the message.Suggestion text lives in a new
suggestionsi18n namespace, English only. Nothing outsideapps/pythinker-webis touched.Verification
Run from the repository root:
pnpm run lint— exit 0, no error linespnpm -C apps/pythinker-web run typecheck— exit 0pnpm -C apps/pythinker-web exec vitest run— 333 passed, 59 filesSeven new tests in
test/empty-suggestions.test.tscover render-only-when-empty, the click path, the no-submit rule, the flat styling, the reduced-motion rule, and a guard againstdark:utilities and new colour literals. Two of them were mutation-checked by hand after the run: removing.empty-suggestionfrom the reduced-motion block and making the click handler a no-op each turned the suite red.Summary by CodeRabbit
New Features
Tests