Skip to content

Releases: votekitorg/votekit

VoteKit v0.12.6

Choose a tag to compare

@JudDredd JudDredd released this 29 Jul 14:40
a2d391e

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 receipt action 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

Choose a tag to compare

@JudDredd JudDredd released this 29 Jul 06:00
4ba5465

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 Election step.
  • 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

Choose a tag to compare

@JudDredd JudDredd released this 29 Jul 05:19
107e88e

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:// or https:// 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

  1. Confirm the candidate branch is clean.
  2. Run npm ci, npm run lint, npm test, npm run regression-check,
    npm run type-check, npm run build, and npm audit --audit-level=moderate.
  3. Review database migration and rollback implications.
  4. Merge and push the approved commit.
  5. Create an annotated release tag.
  6. On production, run deploy-release.sh <tag>.
  7. Verify /api/health, main pages, admin login, and a test election flow.
  8. Verify the backup produced immediately before deployment.

VoteKit v0.12.3

Choose a tag to compare

@JudDredd JudDredd released this 29 Jul 04:54
62edc18

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

  1. Confirm the candidate branch is clean.
  2. Run npm ci, npm run lint, npm test, npm run regression-check,
    npm run type-check, npm run build, and npm audit --audit-level=moderate.
  3. Review database migration and rollback implications.
  4. Merge and push the approved commit.
  5. Create an annotated release tag.
  6. On production, run deploy-release.sh <tag>.
  7. Verify /api/health, main pages, admin login, and a test election flow.
  8. Verify the backup produced immediately before deployment.

VoteKit v0.12.2

Choose a tag to compare

@JudDredd JudDredd released this 29 Jul 02:57
3b76ab3

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

Choose a tag to compare

@JudDredd JudDredd released this 21 Jul 08:01
c14850a

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

Choose a tag to compare

@JudDredd JudDredd released this 21 Jul 05:21

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.