Releases: votekitorg/votekit
Release list
VoteKit v0.12.6
VoteKit v0.12.6
Configurable results access
- Election setup now asks who can view the final results.
- Organisers can choose public link access or eligibility verification.
- The choice autosaves with setup drafts and appears in review and private
proofing views. - Publishing persists the choice immediately, while Owners retain the existing
management control to change it later. - Public-result elections do not ask voters to save or re-enter voting codes
solely to see results.
Simpler optional verification
- The post-vote verification area is collapsed by default.
- One
Download verification receiptaction replaces the visible list of
receipt codes. - The downloaded text receipt contains the election name, results link and
clearly labelled codes for each question, or the complete encrypted ballot. - Receipt-based ballot verification remains available without making it feel
like a required completion step.
Verification
- Setup draft persistence and publish-time results visibility
- Public and eligible-only voter guidance
- Collapsed, labelled receipt download
- Results access-control regression coverage
- Full application test, lint, type, build, regression and production checks
VoteKit v0.12.5
VoteKit v0.12.5
Election setup drafts and proofing
- The four-step election wizard now autosaves incomplete work server-side.
- Organisers can leave setup and continue their drafts from the dashboard.
- Every setup draft has a private, read-only proofing link for reviewing the
full election wording, timing and ballot before publication. - The final action is now the deliberate
Publish Electionstep. - Publication validates and creates the election atomically, then removes the
setup draft. - Published election wording, questions, access method and dates are locked for
election integrity. Voters or anonymous codes can still be configured before
voting opens.
Verification
- Draft ownership and permission isolation
- Autosave create, update and resume behaviour
- Proofing-link rendering and no-index protection
- Failed-publication retention and successful atomic cleanup
- Post-publication configuration locking
- Full application test, lint, type, build, regression and production checks
VoteKit v0.12.4
VoteKit v0.12.4
VoteKit v0.12.4 resolves GitHub issue #15 by allowing election creators to
include multiple clickable links directly in an election description.
Changes
- Every valid
http://orhttps://URL in an election description is
displayed as a safe clickable link. - Multiple links and surrounding text retain their original order, line breaks
and sentence punctuation. - The create-election form explains that multiple links are supported.
- The existing Additional Information URL remains available for compatibility.
- Description text remains plain text; arbitrary HTML and non-HTTP URL schemes
are not rendered as links. - Regression coverage verifies multiple links, punctuation and inert HTML-like
content.
This release changes presentation only. It has no database migration and does
not alter elections, voters, ballots, results or access controls.
Release procedure
- Confirm the candidate branch is clean.
- Run
npm ci,npm run lint,npm test,npm run regression-check,
npm run type-check,npm run build, andnpm audit --audit-level=moderate. - Review database migration and rollback implications.
- Merge and push the approved commit.
- Create an annotated release tag.
- On production, run
deploy-release.sh <tag>. - Verify
/api/health, main pages, admin login, and a test election flow. - Verify the backup produced immediately before deployment.
VoteKit v0.12.3
VoteKit v0.12.3
VoteKit v0.12.3 resolves GitHub issue #13, where voters using direct personal
links could miss the election description and mistake an automatically
prefilled voting code for one they still needed to find.
Changes
- Anonymous access-code screens now show the election title and description.
- Direct personal links say that the voting code is ready and was entered
automatically. - Manual visitors continue to see the standard voting-code entry prompt.
- Regression coverage protects both access paths and the election context.
This release changes presentation only. It has no database migration and does
not alter elections, voters, ballots, results or access controls.
Release procedure
- Confirm the candidate branch is clean.
- Run
npm ci,npm run lint,npm test,npm run regression-check,
npm run type-check,npm run build, andnpm audit --audit-level=moderate. - Review database migration and rollback implications.
- Merge and push the approved commit.
- Create an annotated release tag.
- On production, run
deploy-release.sh <tag>. - Verify
/api/health, main pages, admin login, and a test election flow. - Verify the backup produced immediately before deployment.
VoteKit v0.12.2
VoteKit v0.12.2
VoteKit v0.12.2 resolves GitHub issue #11, where ranked-ballot previews showed
each preference number twice.
Changes
- Ranked and Condorcet ballot previews now show one distinct rank badge beside
each option. - Option text remains visually separate from the rank, including when the text
itself begins with a number. - Regression coverage prevents the duplicate numbering from returning.
- Next.js, PostCSS and Sharp receive patch-level security updates.
This release changes presentation and dependencies only. It has no database
migration and does not alter elections, voters, ballots, results or access
controls.
VoteKit v0.12.1
VoteKit v0.12.1
VoteKit v0.12.1 resolves GitHub issue #9, where the administration dashboard
could extend beyond the visible screen on iPads and other narrower devices.
Changes
- The fixed administration sidebar is replaced by an accessible menu below the
desktop breakpoint. - The main administration panel can shrink within its flex layout.
- Wide election tables scroll within their card instead of widening the page.
- Dashboard statistics use tablet-safe responsive breakpoints.
- Regression guardrails cover both iPad portrait and landscape layouts.
This release changes presentation only. It has no database migration and does
not alter elections, voters, ballots, results or access controls.
VoteKit v0.12.0
VoteKit v0.12.0
VoteKit v0.12.0 addresses GitHub feedback #4 through #8.
Voter and administrator experience
- Form fields remain readable when a device prefers dark mode.
- Holders of valid private voting links or anonymous codes now see the election
name and scheduled opening time before voting opens. Invalid visitors still
receive the non-disclosing generic response. - Election creation requires a deliberate fixed Australia/Brisbane closing
time instead of silently pre-filling a deadline from the start of setup.
Ballot publication privacy
- New and existing elections use a minimum public anonymous-ballot threshold
of 20 by default. - Owners may choose a higher threshold or explicitly choose always-publish
while an election remains a draft. The setting is locked after opening and
every change is audited. - Aggregate outcomes remain available when individual ballots are suppressed.
- Private receipt lookup remains available for encrypted complete-ballot
receipts and legacy per-question receipts below the public threshold.
Alternative counts
- Owners and Returning Officers can run IRV or Condorcet against a closed
ranked ballot set without replacing the declared result. - Every count run records its algorithm and settings, result snapshot, IRV tie
decisions, creator, time, frozen ballot-set fingerprint and result
fingerprint. - Alternative counts appear on the results page and in PDF and CSV exports.
- Unresolved IRV ties pause for the existing audited tie-resolution workflow;
the continued count is stored as a new immutable run.
Verification
- 103 automated tests passed, with one environment-gated migration rehearsal
run separately against a private production database copy. - Lint, type checking, production build, regression checks and dependency audit
passed.