feat(feedback): implicit signals — copy and continue (response-feedback PR-2) - #1146
Open
philmerrell wants to merge 1 commit into
Open
philmerrell wants to merge 1 commit into
philmerrell wants to merge 1 commit into
Conversation
…ck PR-2)
Spec §10: denser than thumbs, no UI cost. Copy and Continue in the message
actions rail POST a kind code to /sessions/{id}/messages/{messageId}/signals
(fire-and-forget, once per message per kind per page load). Rows share the
F# family under their own key — F#{session}#{message}#{kind} — with
signal="implicit", kind, and an ADDed count, so they never collide with the
thumb and every thumb reader keeps filtering them out. The profile reports
feedback.implicit as messages touched per kind, on its own line: explicit
and implicit are never summed.
Edit-and-resend has no SPA affordance to hook; abandonment is deferred by
design (spec §13). Spec status and §13 updated.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
docs/specs/response-feedback.md§11 PR-2, off develop after #1142 and #1145 merged.Why
Thumbs cover a few percent of turns and skew negative. §10's implicit signals cover nearly every turn at no UI cost, and the row family has carried the
signaldiscriminator since #1142 precisely so this could land without a backfill.What
F#family, own key —SK F#{session}#{message}#{kind},GSI_SK F#{message}#{kind}— so a signal never collides with the thumb on the same message.signal: "implicit",kind(closed enum), anADDedcount,updatedAt, TTL. No session rollup: the rows are the read model.POST /sessions/{id}/messages/{messageId}/signalswith{kind}; 204 once accepted, same ownership check andRESPONSE_FEEDBACK_ENABLEDkill switch as the thumbs.MessageFeedbackService.recordSignal, fire-and-forget, deduped per message per kind per page load. Nothing in the UI waits on it or shows a failure.feedback.implicit = {copied, continued}as messages touched per kind (a message copied three times counts once),nullwhen none; its own line under the Feedback tile.FEEDBACK_ROW_PROJECTIONgainskindandcount; the content-policy walk covers them.What this does not change
Tests
countreaches 2 on a repeat, the thumb untouched, thumb readers and rollups blind to the implicit rows, unknown kind refused, other user not owned, preview sessions write nothing.nullwhen none; the existing never-summed test still holds.message-feedback.servicespec (+2: once per message per kind and failure never surfaces; no server index / unavailable short-circuits),message-actionsspec (+1: Continue records and still emits),session-profile.utilspec (+1), anatomy page spec — 70 passed across those files.ng build(AOT) clean.🤖 Generated with Claude Code