Polish onboarding avatar capture#2118
Conversation
wesbillman
left a comment
There was a problem hiding this comment.
This is not yet safe as UI-only polish.
The production diff changes camera behavior: the onboarding modal passes autoStartCamera, and entering the Animated tab now immediately selects a source and calls getUserMedia; it also adds a new retry path after startup failure. That changes permission timing and capture lifecycle rather than only presentation. The 13-file / 1,543-line diff also refactors shared profile-editor components used outside onboarding, which makes the regression surface much larger than this onboarding polish requires.
Please keep the existing camera-start/selection behavior and narrow the change to onboarding presentation (or split the camera lifecycle work into a separately reviewed behavior PR). The current CI is green and the head is based on current main; this request is about scope and behavior safety, not test status.
|
Follow-up after product clarified that justified behavior changes are in scope: I re-reviewed this as a complete UX change. The behavioral delta is limited to the onboarding avatar modal: selecting Animated now auto-selects the preferred camera and requests camera access, and a failed request exposes an explicit retry. Camera cleanup, recording, review, upload/apply, profile save, and onboarding navigation remain on the existing paths; the focused E2E covers failure → retry → record → review → save. The shared-file changes are largely presentation-specific extraction guarded by I consider that behavior coherent and adequately covered, so my scope objection is cleared. I am not approving this stale head: current |
Refine the onboarding avatar editor, preserve existing onboarding lifecycle semantics, and add a recoverable camera retry flow with animated-capture E2E coverage. Co-authored-by: npub19x6jnl6rhepymwyl2xlltz3ce7rfg2ktllle3g2vu59n3s490k8s9n40l3 <29b529ff43be424db89f51bff58a38cf86942acbffff98a14ce50b38c2a57d8f@sprout-oss.stage.blox.sqprod.co> Signed-off-by: npub19x6jnl6rhepymwyl2xlltz3ce7rfg2ktllle3g2vu59n3s490k8s9n40l3 <29b529ff43be424db89f51bff58a38cf86942acbffff98a14ce50b38c2a57d8f@sprout-oss.stage.blox.sqprod.co>
Restore the profile locator used by the avatar modal assertions after combining the latest onboarding layout test with the profile polish coverage. Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co> Signed-off-by: Wes <wesbillman@users.noreply.github.com>
8bf0153 to
3017cee
Compare
Match the deep-link onboarding smoke test to the profile field's polished accessible name. Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co> Signed-off-by: Wes <wesbillman@users.noreply.github.com>
wesbillman
left a comment
There was a problem hiding this comment.
Re-review complete on head 2afef64: the original behavior/scope concern is cleared, all applicable CI is green, and the branch is mergeable. Approving under the owner’s explicit decision to accept the known stale-base risk.
Summary
Testing
pnpm checkpnpm typecheckpnpm buildpnpm exec playwright test tests/e2e/onboarding.spec.ts tests/e2e/animated-avatar.spec.ts— 44 passedcancelled_turn_with_usage_emits_notification_before_response, thensteer_folds_into_active_turn_without_cancelling)