FolkJS collaborative canvas with subdomain routing for community spaces
Go to file
Jeff Emmett 1ff0f69218 feat: wire up account settings endpoints (email, device, guardians)
Server (src/encryptid/server.ts):
- POST /api/account/email/start — send 6-digit verification code via SMTP
- POST /api/account/email/verify — verify code and set email on account
- POST /api/account/device/start — WebAuthn creation options for same-device
  passkey registration (authenticated, reuses existing userId)
- POST /api/account/device/complete — store additional credential under
  existing account

DB (src/encryptid/db.ts):
- Add 'device_registration' to StoredChallenge.type union
- Add 'email_verification' to StoredRecoveryToken.type union

Client (shared/components/rstack-identity.ts):
- Rewrite social recovery modal to use existing guardian API:
  GET /api/guardians, POST /api/guardians, DELETE /api/guardians/:id
- Loads existing guardians on open, adds/removes in real-time
- Shows guardian status (accepted/pending), invite emails sent on add
- Two name+email inputs (max 3 guardians, server-enforced)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 14:57:32 -08:00
backlog feat: update rstack-app-switcher categories 2026-02-25 14:17:30 -08:00
db Add rSplat module — Gaussian splat viewer with x402 gated uploads 2026-02-21 20:55:45 +00:00
docs feat: add folk-canvas shape, WS cascade enforcement, and at-rest encryption 2026-02-24 18:43:30 -08:00
lib feat: add folk-canvas shape, WS cascade enforcement, and at-rest encryption 2026-02-24 18:43:30 -08:00
modules feat: notes module reads from Automerge docs via WebSocket sync (Tier 1) 2026-02-25 08:32:37 +00:00
public/.well-known fix: change WebAuthn RP ID from jeffemmett.com to rspace.online 2026-02-18 14:32:57 -07:00
server feat: redesign identity modal and space switcher UX 2026-02-25 14:50:35 -08:00
shared feat: wire up account settings endpoints (email, device, guardians) 2026-02-25 14:57:32 -08:00
src feat: wire up account settings endpoints (email, device, guardians) 2026-02-25 14:57:32 -08:00
types fix: resolve all TypeScript build errors across modules 2026-02-23 19:42:44 -08:00
website Redesign canvas toolbar with grouped dropdowns and collapse 2026-02-25 13:07:24 -08:00
.dockerignore fix: make Docker build self-contained with local context 2026-02-16 18:51:24 -07:00
.gitignore Wire real auth and backends into all 21 rSpace modules 2026-02-21 19:37:26 +00:00
Dockerfile feat: wire rspace to pull secrets from Infisical at startup 2026-02-23 19:36:27 -08:00
Dockerfile.encryptid Fix EncryptID Docker build to include encryptid-sdk dependency 2026-02-14 21:23:18 -07:00
MODULE_SPEC.md docs: add MODULE_SPEC.md with permission model and capabilities 2026-02-17 12:30:14 -07:00
bun.lock chore: update bun lockfile 2026-02-16 18:51:56 -07:00
docker-compose.encryptid.yml feat: add auth.ridentity.online as EncryptID route alias 2026-02-24 21:47:47 -08:00
docker-compose.standalone.yml Add standalone docker-compose for all 20 modules 2026-02-22 03:07:09 +00:00
docker-compose.yml feat: wire DocSyncManager into rSpace WebSocket server 2026-02-25 05:19:21 +00:00
entrypoint.sh feat: wire rspace to pull secrets from Infisical at startup 2026-02-23 19:36:27 -08:00
package-lock.json fix: switch all module shell themes from light to dark 2026-02-24 19:42:33 -08:00
package.json Add rSplat module — Gaussian splat viewer with x402 gated uploads 2026-02-21 20:55:45 +00:00
tsconfig.json fix: resolve all TypeScript build errors across modules 2026-02-23 19:42:44 -08:00
vite.config.ts feat: notes module reads from Automerge docs via WebSocket sync (Tier 1) 2026-02-25 08:32:37 +00:00