{"slug":"petitionyour","total":4,"limit":100,"offset":0,"since":null,"commits":[{"hash":"4c541ec","date":"2026-09-09 13:09:09 -0700","author":"Steve Abrams","subject":"fix: invalid ZIP prefixes 000-004 no longer resolve to NY (screenrecord finding); gitignore test artifacts","body":""},{"hash":"78892be","date":"2026-09-09 12:59:42 -0700","author":"Steve","subject":"Add real ZIP-to-congressmen contact flow (senators exact, House by district w/ Census fallback)","body":"- lib/reps.js: resolve senators exactly by state + House rep by district;\n  bundle public-domain unitedstates/congress-legislators data; free Census\n  geocoder (address -> 119th CD) for multi-district ZIPs; at-large states exact.\n- /api/reps + /api/geocode-district endpoints; legacy /api/find-reps kept.\n- Reps panel on petition sign flow + standalone /find-reps: pre-filled editable\n  message, per-rep 'open official .gov contact form' (new tab) + tel: call,\n  copy-to-clipboard. Honest copy: we never send anything.\n- Persist targeted offices on signature; aggregate 'N unique offices' reach tally.\n- scripts/refresh-legislators.js to refresh bundled member data.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01JDeaFL4eeREBZX79tc4cnr"},{"hash":"8d71624","date":"2026-09-09 12:04:46 -0700","author":"Steve Abrams","subject":"deploy: add http-only bootstrap vhost for certbot chicken-and-egg","body":""},{"hash":"4abdcb4","date":"2026-09-09 11:30:51 -0700","author":"Steve Abrams","subject":"Initial build: Petition Your Representatives MVP","body":"Real working civic petition tool for petitionyour.org — browse/create/sign\npetitions with live signature counts + share links, and a free ($0, no\npaid API) ZIP-to-state representative lookup that links to official .gov\nsources instead of a static (and inevitably stale) officeholder list.\n\nExpress + EJS, JSON-file store (atomic writes, zero native deps), dark/light\ntoggle + sort/density grid controls per standing rules. Local-only — no\nprod deploy fired; nginx vhost (IP-bound :443 per the fleet HTTPS-000\nlesson), ecosystem.config.js, and a deploy-kamatera.sh runbook are staged\nas gated artifacts for Steve to run.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01JDeaFL4eeREBZX79tc4cnr\n"}]}