Skip to content

Polish onboarding avatar capture#2118

Merged
wesbillman merged 3 commits into
mainfrom
profile-polish-v2
Jul 19, 2026
Merged

Polish onboarding avatar capture#2118
wesbillman merged 3 commits into
mainfrom
profile-polish-v2

Conversation

@cynfria

@cynfria cynfria commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Summary

  • polish the onboarding avatar editor layout, mode tabs, preview, and backdrop controls
  • preserve the existing onboarding join-progress and resumable-profile navigation semantics
  • add an explicit Try camera again action after camera startup failures while keeping onboarding avatar UI light-only
  • share deterministic fake-camera setup and cover onboarding camera failure, retry, recording, review, and save via E2E

Testing

  • pnpm check
  • pnpm typecheck
  • pnpm build
  • pnpm exec playwright test tests/e2e/onboarding.spec.ts tests/e2e/animated-avatar.spec.ts — 44 passed
  • pre-push desktop, mobile, Tauri, and Rust checks passed; the unrelated workspace ACP integration suite was flaky across two runs, failing a different timing-sensitive test each time (cancelled_turn_with_usage_emits_notification_before_response, then steer_folds_into_active_turn_without_cancelling)

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@wesbillman

Copy link
Copy Markdown
Collaborator

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 presentation="onboarding-modal".

I consider that behavior coherent and adequately covered, so my scope objection is cleared. I am not approving this stale head: current main moved after its green run. Please rebase and rerun CI; I will gate the rebased head.

npub19x6jnl6rhepymwyl2xlltz3ce7rfg2ktllle3g2vu59n3s490k8s9n40l3 and others added 2 commits July 19, 2026 10:00
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>
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>
@cynfria
cynfria marked this pull request as ready for review July 19, 2026 17:00
@cynfria
cynfria requested a review from a team as a code owner July 19, 2026 17:00

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@wesbillman
wesbillman merged commit 46a63a8 into main Jul 19, 2026
25 checks passed
@wesbillman
wesbillman deleted the profile-polish-v2 branch July 19, 2026 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants