Add sampled session feedback survey - #215
Conversation
Co-authored-by: Amp <amp@ampcode.com> Amp-Thread-ID: https://ampcode.com/threads/T-019fbabe-6c0e-70ab-8559-31ba601d4897
Amp-Thread-ID: https://ampcode.com/threads/T-019fbabe-6c0e-70ab-8559-31ba601d4897 Co-authored-by: Amp <amp@ampcode.com>
…ck-survey * ccroom/response-feedback-ui: Remove response feedback appearance events Amp-Thread-ID: https://ampcode.com/threads/T-019fbabe-6c0e-70ab-8559-31ba601d4897 Co-authored-by: Amp <amp@ampcode.com> # Conflicts: # src/features/chat/response-feedback/feedbackSurveySink.ts # src/features/chat/ui/MessageBubble.tsx
…ck-survey * ccroom/response-feedback-ui: Synchronize response feedback across renderers
There was a problem hiding this comment.
🤖 Product-semantics question for the stack: the basis-point rate is currently applied to every eligible completion until one is selected, not once per session. At 2.5%, 20 eligible opportunities produce about a 40% chance of a prompt and 100 produce about 92%, weighting the sample toward long, active sessions. If this is intentionally an opportunity hazard rate, the PR should name it that way; if it is meant to be a 2.5% session rollout, sample once and persist the sampled-out result.
…o ccroom/session-feedback-survey * origin/ccroom/response-feedback-ui: Separate human feedback capability Amp-Thread-ID: https://ampcode.com/threads/T-019fbabe-6c0e-70ab-8559-31ba601d4897 Co-authored-by: Amp <amp@ampcode.com> # Conflicts: # src/features/chat/response-feedback/feedbackSurveyEvents.ts # src/features/chat/response-feedback/feedbackSurveySink.ts
Amp-Thread-ID: https://ampcode.com/threads/T-019fbabe-6c0e-70ab-8559-31ba601d4897 Co-authored-by: Amp <amp@ampcode.com>
|
Charlie confirmed the 250-bp sampling behavior is intentionally a per-eligible-completion opportunity hazard because it matches Claude and Amp. PR text, code comments, and tests now name that behavior rather than implying a 2.5% allocation of sessions. — Amp 🤖 |
This PR description was generated by AMP.
Summary
This builds the generic sampled session survey on top of the response-feedback seam. It is stacked on the response-feedback PR and should merge after it.
After five visible user turns and ten minutes, each eligible completed response gets a distribution-owned basis-point sampling opportunity, matching Claude and Amp. A selected prompt starts a persisted 27–29 hour cooldown, with arbitration serialized within the app process; this best-effort feedback path intentionally does not coordinate independent app processes. Dismiss is the default focus, Escape dismisses only while the visible survey owns focus, and focus returns to its prior target. Stock Berd still sends nothing; distributions own transport and rollout values.
Virtualized transcripts include the survey in offscreen height measurements without letting the hidden measurement copy focus or emit feedback.
Related issue
N/A — no duplicate issue or PR found. Depends on response-feedback PR #214.
Testing
bin/just check bin/pnpm vitest run src/features/chat/response-feedback src/shared/runtime-config/schema.test.ts bin/just _tauri-cargo-unix test --lib feedback_survey bin/just tauri-checkAI tool validation prompt
Copy and paste into your AI tool: