rspace-online/modules
Jeff Emmett 4a54e6af16 fix: enforce subdomain routing — spaces are subdomains, never path segments
Audit and fix ~60 violations across 47 files where URLs were constructed
as /{space}/moduleId instead of /moduleId (subdomain provides the space).

- Add getModuleApiBase() helper to shared/url-helpers.ts
- Fix client components: use getModuleApiBase() for fetch URLs,
  rspaceNavUrl() for navigation
- Fix server routes: use c.get("isSubdomain") for redirects and
  JSON response URLs
- Fix OAuth callbacks (notion, google, clickup): subdomain-aware redirects
- Fix email notification URLs (rvote): use {space}.rspace.online format
- Fix webhook registration (rtasks/clickup): subdomain-aware endpoint URL
- Replace broken #getSpaceSlug() methods in folk-feed, folk-splat
- Replace NODE_ENV checks with proper isSubdomain checks (rdata, rnetwork)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 14:09:53 -07:00
..
crowdsurf fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rbnb fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rbooks fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rcal feat(canvas): module-aware canvas architecture — shapes, tools, and toolbar gated by module 2026-04-01 15:19:12 -07:00
rcart fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rchats feat(rswag): full feature parity — POD clients, dithering, AI gen, fulfillment 2026-03-20 23:21:53 -07:00
rchoices fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rdata fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rdesign feat(canvas): module-aware canvas architecture — shapes, tools, and toolbar gated by module 2026-04-01 15:19:12 -07:00
rdocs revert: remove standalone domains we don't own 2026-03-21 18:31:17 -07:00
rfiles fix(mobile): responsive parity — touch targets, iOS zoom, viewport clamping 2026-03-25 16:59:04 -07:00
rflows feat: migrate to Transak Secure Widget URL API 2026-04-03 03:17:18 +00:00
rforum feat(collab): unified presence system across all 27 rApps 2026-03-24 16:56:06 -07:00
rgov fix(rgov): use path-only href instead of /${space}/ prefix 2026-04-03 13:32:04 -07:00
rinbox fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rmaps fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rmeets fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rnetwork fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rnotes fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rphotos feat(collab): unified presence system across all 27 rApps 2026-03-24 16:56:06 -07:00
rpubs fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rschedule fix(layout): viewport-filling rApp layout — eliminate body scroll 2026-03-31 10:57:09 -07:00
rsheet Fix rSheet: remove space slug from URL paths 2026-03-31 20:19:17 -07:00
rsocials fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rspace refactor: consolidate space settings — both gear icons open same tabbed modal 2026-03-31 10:58:30 -07:00
rsplat fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rswag fix(layout): viewport-filling rApp layout — eliminate body scroll 2026-03-31 10:57:09 -07:00
rtasks fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rtime feat(rtime): unified Canvas view — merge Pool + Weave with pan/zoom 2026-04-03 12:06:58 -07:00
rtrips fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rtube feat(collab): unified presence system across all 27 rApps 2026-03-24 16:56:06 -07:00
rvnb fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rvote fix: enforce subdomain routing — spaces are subdomains, never path segments 2026-04-03 14:09:53 -07:00
rwallet feat(canvas): module-aware canvas architecture — shapes, tools, and toolbar gated by module 2026-04-01 15:19:12 -07:00