Repository navigation
WP-07: Voice onboarding + settings - #9
Merged
Merged
Conversation
Onboarding step 2 (M1, MK-2, U3): paste 1-3 past show notes (>=150 words, word counters, + add another), Learn my voice -> chips/sliders/segmented editor with preview, Skip for now -> §7.4 default via read-time resolution. Settings -> Voice (M9, MK-8): chips + sliders + Never say / Always include + samples list; preview card with Update preview. Routes (§7.5): POST /api/show/voice/learn and /api/show/voice/preview via lib/show/voice.ts; persistence through the @/db/queries boundary (shows.voice_profile / voice_samples). Deterministic no-AI learn/preview added at the lib/ai boundary (labelled 'Basic', never passed off as AI); learn/preview provider timeout capped at 12 s for the U3 <=15 s budget. Tests: 28 unit (default byte-for-byte, deterministic path, word-count validation, boundary-mocked route behaviour), 8 e2e (learn flow, skip, tone chip gating, settings preview + keyless save copy). Fixture tests/fixtures/voice-sample.txt is synthetic productivity-podcast text.
# Conflicts: # docs/relaunch/DECISIONS.md # web/lib/copy.ts # web/tests/e2e/settings.spec.ts
# Conflicts: # docs/relaunch/DECISIONS.md # web/lib/copy.ts
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.
WP-07: Voice onboarding + settings
Continued and landed by the integrator after the original agent hit a usage limit mid-task (its backend work was committed; integration + verification completed here). Base includes WP-08 (merged mid-flight; conflicts resolved: DECISIONS.md both-sets, copy.ts both-sets, settings.spec.ts updated so Voice+Billing are real tabs and Account remains the stub).
Acceptance — U3 ✅
voice.spec.ts > learn flow: paste sample → Learn → chips/sliders → Continue → step 3skip for now lands on step 3 without learningEach example needs at least 150 words.), max 3 examples, removable tone chips, ≤15 s deterministic learn path (no AI keys exist — GLM key in env is a placeholder; deterministic learn produces the profile, labelled honestly per U3/U10 copy)default §7.4 profile renders keyless with preview and samples block,Update preview re-renders; Save keyless shows the preview copy,adding a sample requires 150 words; remove worksVerification (integrator-run on the merged tree)
pnpm lint✓ ·pnpm typecheck✓ ·pnpm test355 passed / 2 skipped (skips = WP-04 CI-excluded live tests) ·pnpm build✓pnpm e2e(production server, port 3107): 31 passed incl. all WP-07 voice specsDecisions
Logged in docs/relaunch/DECISIONS.md by the agent (voice copy constants in lib/copy.ts per §0.4 rule 4, honest "Basic profile" labelling, §7.4 tone count gating) plus the integrator conflict resolutions noted above.
Hand-offs