tallyard v0.4.0-rc1 This is the first rc for the upcoming major release 0.4.0, which changes the protocol to require that voters provide zero-knowledge proofs that their ballots are valid. David Florness (44): Remove unused files Move device display name code out of main Set device name if it's changed Move TUI-specific auth code to main package Put election filter after main function Generalize ElectionsMap to work without a file Don't allow zero for inputs Don't participate in elections with fewer than two voters Don't participate in election if we didn't join Implement zero-knowledge proofs for evaluations and summations Upgrade gnark and gurvy (now gnark-crypto) Remove infinite retries for reading proving keys Redact all events (except Sum) we sent once the election is over Use one witness for evals circuits TUI: notify user when keys are being sent Do not proceed to ballot TUI if we're missing proving keys Fix lagrange test Fix voter JSON marshalling Use cached list of hash seeds Insert panic to help root out bug Use t.Fatal instead of panicking in tests Start and join events for keys msgs must belong to the same election Use syncer hooks instead of recurring updates for TUI Use logger and close TUI (if present) when handling panics README: update info on zk-SNARKS Bump dependencies Better filename and remove unneeded functions Move version.go to root module Don't lazy load member events zk: derive one hash seed by combining each "part" sent by voters Upgrade mautrix and tidy dependencies Properly display errors from Sync goroutine Allow disabling of message redactions Log uploads to file Properly close file Explicitly don't allow showing results of election we're not in TUI: properly handle panics inside goroutine Send human-readable event on election creation Don't panic in event handlers on nil event TUI: don't display user ID more than once if user rejoins Add hash commitments to messages to ensure integrity Upgrade gnark Upgrade dependencies Use fork of mautrix-go with bugfix