Restore confidential and configurable Rust voting presentation
Outcome Restore the retained privacy and presentation behavior on top of the single Rust voting runtime, without a Rails ballot fallback or duplicate poll model. Confirmed gaps - StartInput, Gateway, PollView and voting-run controllers reject every non-public meeting/case, so confidential voting cannot start, render or recover. - PollView hard-codes public_result? to true. Every current run is therefore publishable, while the legacy per-run public-result switch is gone. - Editable run title and summary are absent; PollView always derives the title and returns no summary. - Private flows have no authenticated/Vault/BankID browser coverage or audience-safe personalized broadcasts. Product decision Anonymous ballots are not a Kaukus feature and are out of scope. Production scope is the existing confidentiality model only: authorized private meetings/cases and per-run hidden public results. Rust may retain voter-choice linkage for authorized secretary/history/reporting use; no anonymity or unlinkability contract should be introduced. Acceptance criteria - Authorized confidential meetings/cases can run all retained ballot/lifecycle modes through Rust; existing Vault/BankID and case-access rules are enforced on every read, mutation and rendered audience. - Private lifecycle updates reach only authorized/personalized streams and never public-info or bigscreen channels; reload queries Rust and outages fail closed. - Each run preserves and enforces its public-result visibility. Hidden runs do not expose tallies, verdicts or voter identities through public reads, broadcasts, reloads, reports or exports. - The agreed title/summary editing behavior is restored or explicitly removed by product decision, with historical/import semantics defined. - Authorization, privacy/redaction, reconnect, missed-broadcast and authenticated browser tests cover public, hidden and confidential cases. - No anonymous-ballot mode, voter-choice unlinkability, anonymous migration branch or related UI is introduced.
Checklist
1 of 4 complete- Keep anonymous ballots out of scope; implement only authorized private meetings/cases, per-run hidden public results, and the agreed run title/summary metadata.
- Implement authorized confidential start/read/mutation flows with Vault/BankID checks and private personalized broadcasts only.
- Restore per-run public-result enforcement and the agreed title/summary workflow across public reads, broadcasts, reports and exports.
- Verify public, hidden and confidential behavior with authorization, redaction, reconnect/reload and authenticated browser tests.
- Area
- Kaukus
- Kind
- Feature
- Priority
- High
- Task ID
tsk_ughjhrr9bt- Updated