The "should load X page" specs asserted the URL stays on the protected route,
but an unauthenticated run — as in CI, which starts a fresh dev server with no
session — correctly redirects to /login. They passed locally only by racing an
already-warm reused server. Accept either the target route or /login, matching
the tolerance the sibling assertions in this file already use.
Confirmed with the full e2e suite (60 tests, chromium) under CI conditions
(fresh server, single worker, JWT keys).
Production deploy completed (DigitalOcean Droplet, self-hosted Supabase,
Caddy + Let's Encrypt, GitHub Actions auto-deploy on push to main, daily
pg_dumpall backups). This commit lands the work that came out of the
deep audit pass and the open-source release prep.
Audit fixes:
- Webhook signing secret is now displayed in the settings UI with
show/hide and copy-to-clipboard; the broken external docs.hackerspace.sh
link is replaced with a link to the new local docs.
- Settings updateSpaceSettings parameter type now includes
mission_statement so the field persists.
- members page enforces member_directory_visibility for non-admin viewers
(admin_only, board_visible, members_visible).
- Mobile responsiveness pass: Projects Kanban grid, Members + Payments
tables (column hiding on small screens), Proposal tally + voting
buttons (2-col on mobile).
Open-source release scaffolding:
- LICENSE (MIT).
- CONTRIBUTING.md with dev setup, conventions, PR flow.
- SECURITY.md with disclosure policy.
- CHANGELOG.md.
- docs/WEBHOOKS.md with Node and Python signature verification examples.
- README.md rewritten for an open-source audience.
Removed v0/Vercel references:
- @vercel/analytics dependency removed.
- app/layout.tsx no longer imports Analytics, drops generator: 'v0.app'.
- Canonical deployment docs (docs/DEPLOYMENT.md, docs/README.md,
docs/ARCHITECTURE.md, DATABASE.md, CLAUDE.md, README.md) now describe
the self-hosted Droplet target only.
- e2e console-error check no longer filters [v0] noise.
Landing page:
- GitHub icon link to the public repo in the nav and footer.
Set up Vitest for unit/integration tests and Playwright for E2E tests; add configs, tests, and documentation
Co-authored-by: Moheeb Zara <[email protected]>