Changelog
Last updated: 2026-04-13
All notable changes to the Foundation platform are documented in this file. The format is based on Keep a Changelog.
[v14] - 2026-04-13 — DB Validator, Multi-Tenant Plan, Growth Strategy
Added
- Firestore DB Validator — schema validation for 11 collections, referential integrity checks (7 cross-entity relationships), aggregate consistency checks (vote counts, duplicate detection). Dedicated Admin Panel tab with progress bar and expandable results.
- Dynamic Action Items — migrated from hardcoded arrays to Firestore-backed CRUD with real-time subscriptions, inline editing, quick status changes, and full history preservation (23 historical items seeded).
- Growth Strategy document — $100 sign-up bonus design, two-sided referral program, organizational partnership playbook. Backed by PayPal, Robinhood, Dropbox, Nextdoor case studies with real numbers.
- Multi-Tenant Architecture plan — phased approach from tenant_id field (Phase 1) to full isolation (Phase 2) to self-service provisioning (Phase 3). Covers Firestore, Solana, auth, routing, security rules.
- 3 new E2E test specs — admin-tools, proposal-flow, api-health (Playwright).
- Admin tools documentation page added to docs-site.
- Both strategy docs registered in docs-site and YC site ("Growth & Architecture" nav section).
Changed
- Updated all 6 existing E2E tests for pillar rebrand and consistent AccessGate bypass.
- Action Items UI improved — removed text truncation, increased icon/badge sizes, better multi-line readability.
action_itemsadded to Firestore security rules (full CRUD for devnet).action_itemsincluded in DB Validator schema checks and Reset All tool.
Fixed
- Biometric login session timeout — extended from 5 minutes to 2 hours on devnet (30 min production). Now clears both JWT and
svote_accesstogether on timeout to prevent half-authenticated state. - Login flash on reload —
isAuthenticatednow initializes synchronously from in-memory JWT instead of waiting for async Firestore fetch, eliminating the brief "Login" button flash. - ResultsDashboard crash on proposals with empty options maps.
[v13] - 2026-04-13 — Admin Tools, Biometric Fixes, Branding
Added
- Reset All & Re-seed tool — clears all collections and re-seeds fresh demo data.
- Reset Voters tool — batch-deletes all voter records with progress indicator.
- Population Seeder — address picker + configurable 100–100K voter generation.
- Vote Seeder — per-proposal vote injection with distribution patterns (random, landslide, head-to-head).
- Progress bars for all long-running admin operations.
- ID Reviews admin tab with Firestore composite index.
Changed
- Pillar rebrand — "Your Voice / Your Share / Your Market" across all UI, docs, tests, hero section.
- Pillar filtering — proposals, results dashboard, and active proposal banners now filter by pillar context.
- Admin panel — Governance tab renamed to Workflows, date range filter added to Reports.
- Hero section — stacked pillar lines with icons, aligned flush left.
- Voter names anonymized (Anon-XXXXXXXX format).
- Vote seeding uses UUID option keys and creates matching voter records.
Fixed
- Biometric login loop — 4 incremental fixes: set
svote_accessafter WebAuthn success, grant access on devnet even if server verification fails, show authenticated state after reload, demo fallback for JWT. - Reset Voters — switched to raw Firestore batch queries (no
orderBy) to catch all documents. - Backend health check — corrected Cloud Run endpoint URL (applied before the backend consolidation).
- Reports crash on proposals with empty options.
- Data Stats permissions error on restricted collections.
[v12] - 2026-04-11/12 — Proof-of-Humanity (Self Protocol + Semaphore)
Added
- PoH Phase 0 —
identity_proofscollection scaffolded with nullifier-keyed documents. - PoH Phase 1 — Self Protocol ZK enrollment via
verifyPassportProofCloud Function. Groth16 verifier validates passport proofs server-side. - PoH Phase 1.5 —
identity_proofslocked to server-only writes (Admin SDK bypass). - PoH Phase 1.6 — Country coverage matrix, mdl-iso18013 type surface, credential expiry policy.
- PoH Phase 2a — Device-side Semaphore identity generation (commitment from passport nullifier).
- PoH Phase 2b —
attachSemaphoreCommitmentCloud Function links Semaphore commitment to identity proof. - PoH Phase 3 — Semaphore group management, anonymous voting circuit, ZK proof generation and verification.
- PoH Phase 3a — Manual review fallback for non-ePassport users.
- E2E tests for auth → PoH → vote flow across pilot countries.
- Action items tracker in Admin Panel (initial hardcoded version).
- Self Protocol open-source contribution — IL/PT CSCA/DSC coverage issue filed.
- Legal pages (Security, Resources, Legal) added to footer.
- Supabase completely removed; migrated to Firestore-only.
[v11.5] - 2026-04-09/10 — Three-Pillar Platform, YC Site
Added
- YC application site (
solanavote-yc.web.app) — React + Spectacle presentation decks, markdown document viewer, Google auth gate. - Three-pillar documentation — whitepapers, summaries, deck outlines, and demo plans for all three pillars.
- Pillar 2 (Your Share) — Community Fund with fund management, distribution tracking, allocation voting.
- Pillar 3 (Your Market) — Cooperative Commerce with product requests, supplier bidding, demand aggregation.
- API Playground — interactive explorer for the backend HTTP endpoints (later superseded by the Cloud Functions admin-testing panel).
- Governance State Machine — XState v5 engine with 5 predefined workflow templates (Standard, Express, Constitutional, Emergency, Community Budget).
- AI Constitution Review — Claude AI evaluates proposals against community-authored principles.
- Multi-site Firebase Hosting — 5 sites (devnet, docs, yc, foundation-vote, foundation-platforms).
- Admin Testing & Tools tab — health check, voting simulation, data seeding, data stats.
- Sign-out button in navbar to return to access gate.
- Firestore data layer for all three pillars with real-time subscriptions.
- E2E test suite (Playwright) — 6 initial specs.
Changed
- Rebranded SolanaVote → Foundation across all UI and docs.
- Google auth added to docs site.
- CORS configuration reads from environment variables.
[v11] - 2025-08-16 — FROZEN BASELINE
Core Voting System (Original Release)
- Smart Contract — Rust/Anchor voting contract on Solana with
create_population,register_voter,create_proposal,support_proposal,cast_vote. - REST API — Node.js/Express server (later migrated to Rust/Rocket) with complete endpoint coverage.
- Testing — Automated API testing, performance benchmarks (Artillery/k6), security testing framework.
- Deployment — One-command deployment with
deploy-evoting.sh, system monitoring withsystem-status.sh. - Documentation — README, Smart Contract docs, API reference, Deployment guide, Testing guide.
- Security — PDA-based duplicate prevention, authority access control, time-based deadlines, input validation.
[v11.1–v11.4] - 2026-03-21/25 — Pre-Platform Prep
Added
- Access code gate for platform entry.
- Biometric (WebAuthn) registration and login.
- OCR name parsing for identity documents.
- Footer pages (Security, Resources, Legal).
- Location services integration (free API).
Fixed
- OCR name parsing edge cases.
- Biometric login flow issues.
Version Summary
| Version | Date | Highlights |
|---|---|---|
| v14 | 2026-04-13 | DB Validator, Multi-Tenant plan, Growth Strategy, Dynamic Action Items |
| v13 | 2026-04-13 | Admin tools suite, pillar rebrand, biometric fixes |
| v12 | 2026-04-11 | Proof-of-Humanity (Self Protocol + Semaphore ZK) |
| v11.5 | 2026-04-09 | Three-pillar platform, YC site, governance engine |
| v11.1–v11.4 | 2026-03-21 | Access gate, biometric auth, OCR |
| v11 | 2025-08-16 | Original Solana voting contract + API (frozen baseline) |