You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Three pieces glue the v3 client flow to the existing UI:
1. Create-poll form: a "Maximum privacy (v3)" checkbox
(poll-max-privacy) with an inline disclaimer about the
creator-key backup risk and the 8-choice limit. createPoll
already reads this id (B5.8b) so checking the box opts in.
2. Vote view: a v3-privacy banner mirrors the existing v2-backup
banner with copy specific to the homomorphic-tally privacy
model. loadPoll picks exactly one of the two banners based on
the poll's voteSchemaVersion.
3. Closed-poll handling: v3 polls render "Tallies have been
published" instead of the v1/v2 reveal button — the reveal
server endpoint already returns 404 for v3 (B5.5) so the
button has nowhere to go. Close button labeled
"Close & Publish Tallies" for v3 to surface that the action
is one-step.
4. Results panel: v3 reads tallies from data.tally.tallies (the
embedded HomomorphicTallyArtifact) instead of data.tallies,
and renders a clean per-vote-data-free results panel with
pointers to /votes and /tally for inspection. The v1/v2
tally-proof refresh path is suppressed for v3 since that
produces a different artifact shape.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Per-voter choices are encrypted under a creator-only key and never decrypted individually — only the aggregate is. Removes the reveal phase entirely.
191
+
<spanstyle="display:block; color:#ff8844; margin-top:6px;">Requires a creator key. A backup file will download automatically — <strong>lose both browser storage and the file and the poll cannot be closed.</strong></span>
192
+
<spanstyle="display:block; margin-top:4px;">Limited to <strong>8 choices</strong>.</span>
<strong>Coercion-resistant poll (v2):</strong> when you cast your vote, your browser will automatically download a small backup JSON. Keep it safe — without it, a cleared browser cache means your vote cannot be revealed. The older "re-sign to recover" path has been removed so that a captured wallet signature alone can't deanonymize your vote.
<strong>Maximum privacy (v3):</strong> your choice is encrypted in your browser under the creator's public key and only ever decrypted in aggregate. There is no reveal phase — results appear once the creator publishes the tally. A backup file will download with your vote so you can re-prove if needed; it does not contain your choice.
0 commit comments