FolkJS collaborative canvas with subdomain routing for community spaces
Go to file
Jeff Emmett 91cb68a09f feat: implement nested spaces architecture with permission cascade
Spaces are now nestable — any space can embed references to other spaces
via SpaceRef, with a permission cascade model (most-restrictive-wins at
each nesting boundary). Every EncryptID registration auto-provisions a
sovereign space at <username>.rspace.online with consent-based nesting
controls.

Key additions:
- NestPolicy per space (open/members/approval/closed consent levels)
- SpaceRef CRUD with allowlist/blocklist, permission ceiling enforcement
- Approval flow for nest requests with admin review
- Reverse lookup (nested-in) so owners see where their space appears
- Source space admins can always revoke (sovereignty guarantee)
- cascadePermissions() for multi-depth permission intersection
- Client-side types for nested space rendering
- Full spec at docs/SPACE-ARCHITECTURE.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 18:27:10 -08:00
backlog backlog: add system clock heartbeat service task (TASK-47) 2026-02-18 14:19:42 -07:00
db Add rSplat module — Gaussian splat viewer with x402 gated uploads 2026-02-21 20:55:45 +00:00
docs feat: implement nested spaces architecture with permission cascade 2026-02-24 18:27:10 -08:00
lib feat: implement nested spaces architecture with permission cascade 2026-02-24 18:27:10 -08:00
modules feat: rFunds landing page overhaul with EncryptID auth and space-scoped flows 2026-02-25 02:19:23 +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: implement nested spaces architecture with permission cascade 2026-02-24 18:27:10 -08:00
shared feat: scrollable categorized rApp dropdown, rSpaces rename, overlap prevention 2026-02-23 16:20:41 -08:00
src feat: implement nested spaces architecture with permission cascade 2026-02-24 18:27:10 -08:00
types fix: resolve all TypeScript build errors across modules 2026-02-23 19:42:44 -08:00
website feat: add admin dashboard at /admin with space overview 2026-02-24 15:29:15 -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 chore: migrate SMTP from mx.jeffemmett.com to mail.rmail.online 2026-02-20 20:14:58 +00: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 rspace to pull secrets from Infisical at startup 2026-02-23 19:36:27 -08:00
entrypoint.sh feat: wire rspace to pull secrets from Infisical at startup 2026-02-23 19:36:27 -08:00
package-lock.json Wire real auth and backends into all 21 rSpace modules 2026-02-21 19:37:26 +00: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: add admin dashboard at /admin with space overview 2026-02-24 15:29:15 -08:00