Development Timeline
A chronological log of architectural decisions, phase completions, and shipped
features. Each entry cross-references the source commit(s) so the code-truth is
one click away. The timeline feeds the /development dev-timeline view in the
yc-site; keep it narrative-first and reader-facing.
Entries are reverse-chronological within each month. Each cluster of work has a "why" (what was the problem) and a "what shipped" so that a YC reviewer — or future-you — can reconstruct the story without reading every commit.
April 2026 — Security hardening sprint + YC readiness push
2026-04-20 — Security sprint
Focused six-commit push to close the gaps opened by the Rocket retirement and
the external review of the @plantagoai/* shared packages.
- App Check enforced on all 25 callables (
b997a66c) - Governance writes now validated client-and-server via Zod schemas (
5e4792ab), with a Phase 0 auth hotfix (9d8e23ca) in front - CSP widened narrowly for reCAPTCHA Enterprise (
52ee1cb4,a726374f) - Manual-review ID photos moved from Firestore to Cloud Storage (
ed6381bf) - PoH Phase 4: abuse registry + threat model + E2E coverage (
2f5ccd5b) - identity_proofs lockdown scaffolding + App Check opt-in (
4498a330)
Full write-up: docs/security-hardening-2026-04.md. Remediation backlog:
docs/security-fix-plan-2026-04-20.md.
2026-04-19 — Rocket retirement
The Rust evoting-rocket-server/ REST gateway is gone. A week of Phase 3 → 5
work collapsed three domains into Firebase Cloud Functions.
- PoH proxy collapsed (
d092f0eb) — Self Protocol ZK verification now direct inverifyPassportProof - Auth surface retired (
58846ed7) — Firebase Auth email-link invites replace the Rust gateway's auth routes - Solana-write client + access routes dropped (
2b6a0b4a) - Final deletion (
e3420e43) — ~22k LOC of Rust source + build scripts removed - WebAuthn/Rocket-era dead code swept (
6b2c0207) - Anchor Phase 2 shipped: 5 onCall Functions running the Solana write path
end-to-end (
d92d627b) - Phase 2 WIP — per-user Solana custody via KMS envelope encryption (
8ab4231e, blocked → unblocked ind92d627b)
See docs/architecture_backend-consolidation-2026-04-18.md for the current
backend architecture. Retired source: archive/rocket-retirement-2026-04-19/.
2026-04-18 — Phase 1 Cloud Functions Solana client + PoH tier derivation
- Phase 0: honest PoH tier derivation in
functions/lib/tier.js(95317930) - Phase 1: Cloud Functions Anchor client (
functions/lib/solana.js) plumbed with program deployment from fresh repo source scripts/sync-idl.shformalized as the single path for IDL sync
2026-04-15/16 — Shared-package adoption + architecture docs
@plantagoai/firebase-coreintegrated on the Foundation frontend (97db471a)@plantagoai/aiintegrated intoevaluateProposalfor Claude prompt caching (979cd9e7)@plantagoai/messagingpowering in-app notifications (7cd8ac6c)- Foundation Cloud Functions upgraded to
firebase-admin@13,firebase-functions@7, ESM (6e207150) - Architecture docs consolidated (
ca8467bf, +docs/architecture_wave3-2026-04-16.md,docs/architecture_components-2026-04-16_01-30.md)
2026-04-13 — Multi-tenant rollout + pillar rebrand
- Multi-tenant Phase 1 —
tenant_idfield, routing, data migration (8acd6d7e) - Multi-tenant Phase 2 — branding, admin panel, memberships (
17d0fb05) - Pillars rebranded: Your Voice / Your Share / Your Market (
08c23e13) - Branding sweep across docs, UI, tests (
7078946c) - Admin panel: Governance tab renamed to Workflows; date-range Reports filter
(
a0a666d4)
2026-04-11 → 12 — Proof-of-Humanity Phase 1 → 3
- Phase 1: Self Protocol ZK enrollment via
verifyPassportProof(e1b3d494) - Phase 1.5: identity_proofs locked to server-only writes (
6a641d82) - Phase 1.6: coverage matrix + mDL ISO 18013 type surface (
06406283) - Phase 2a: device-side Semaphore identity generation (
cfa25919) - Phase 2b:
attachSemaphoreCommitmentCloud Function (5e070712) - Phase 3: anonymous voting over Semaphore, manual-review fallback for docs
without MRZ (
bc9a098a) - Phase 3 follow-up: document-type selector + IL/PT copy, mDL documented
(
f834435f)
Core doc: docs/foundation_poh-2026-04-11_00-46.md. Country-specific status:
docs/poh-mdl-status.md, docs/zk_il_pt-20260414:0937.md.
March 2026 — Foundation + PoH Phase 0
Groundwork for the April sprint: multi-tenant plan, admin tools shipped, shared infrastructure framing solidified.
- DB Validator (Firestore schema + referential integrity + aggregate checks) across 11 collections, admin-panel UI
- Dynamic Action Items migrated from hardcoded arrays to Firestore-backed real-time CRUD
- Growth Strategy doc ($100 sign-up bonus, two-sided referrals, org partnerships) backed by PayPal / Robinhood / Dropbox / Nextdoor case studies
- Multi-Tenant Architecture plan: tenant_id → full isolation → self-service provisioning, three phases
- 3 new E2E Playwright specs (admin-tools, proposal-flow, api-health)
- PoH Phase 0 audit: realistic assessment of what passport flow actually
verifies (
docs/poh-phase0-audit.md)
See readme/CHANGELOG.md for the v14/v13 release notes in release format.
February 2026 — Initial shape
Foundation devnet-v6 branched from devnet-v5 with three axes of change:
- Move off the Node.js testing gateway into a compiled server tier (later retired — see April 2026 entries).
- Adopt Firebase Auth + Firestore as the primary user + data plane, leaving Solana as the verifiable-audit layer only.
- Bet on the three-pillar vision as the long-term thesis: one identity + governance engine, three product wedges.
The Rocket tier later got retired (April 2026) in favor of Cloud Functions — but the Firebase-primary decision survived and became the spine of the current architecture.
How this doc is maintained
- Append new entries at the top. Don't rewrite history unless correcting an error.
- Each major commit or architectural decision gets at least a 1-line mention with its SHA.
- When a phase completes, replace any "WIP/blocked" entries with the resolving commit so the timeline is accurate to current state.
- The yc-site
/developmenttimeline view renders this file verbatim — keep it reader-first (no internal-only jargon, no "TODO: flesh out later").