feat(onboarding): make the first page a try-voice step - #552
Closed
sol-wizard wants to merge 7 commits into
Closed
sol-wizard wants to merge 7 commits into
sol-wizard wants to merge 7 commits into
Conversation
Adds the four onboarding_voice_* events and an onboarding_ai task source. Nothing calls them yet. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Moves draft saving and the task_created tracking out of handleAddAll so onboarding can reuse it. The sheet's behaviour is unchanged. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Pulls the hold-to-talk press handling and the mic permission check out of the AI sheet so onboarding can reuse them. The sheet's behaviour is unchanged. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
useAiTaskGenerator takes optional onComplete and onError callbacks, so a screen can react to an empty result or a failure instead of only a toast. The AI sheet passes neither and behaves as before. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
IntroCarousel gains scrollEnabled, getPrimaryAction and a navigation source on onItemViewed. Defaults keep onboarding and What's New as they are. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The first onboarding page now asks the user to hold the mic and say one thing to do today, shows the drafted task, and saves it from an "Add & continue" button. Mic refusal falls back to typing, and empty results or network errors show what to do next; Skip always works. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- Send needed two taps with the keyboard open (carousel now persists taps) - A failure notice from voice mode stayed up after switching to typing - The text field had no visible background - The draft panel filled the page for a single card; it now hugs the cards Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Contributor
Test Results126 tests 126 ✅ 8s ⏱️ Results for commit 9f400ef. |
Contributor
|
4 tasks
Owner
Author
|
Superseded by #554. Same goal, but it guides the user to the real AI sheet after onboarding instead of building a second voice UI inside the carousel. |
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
~31% of signed-in users never create a task or note, and onboarding only described voice. The first page now has the user hold the mic, say one thing to do today, and save the drafted task with "Add & continue", so Today is not empty on arrival.
useSaveAiResults,useHoldToTalk,resolveMicPermission;useAiTaskGeneratorgains optionalonComplete/onError. Sheet behaviour unchanged.IntroCarousel: swipe lock, per-item primary button,keyboardShouldPersistTaps.onboarding_voice_*events,task_created.source = "onboarding_ai".Tested on a real iPhone: typed flow to a DB row and the Today list, hold-vs-swipe, Skip, server unresponsive, sheet regression. Not exercised: spoken audio, mic-refusal prompt.
Release note
Status:
🤖 Generated with Claude Code