1.4 KiB
1.4 KiB
| id | title | status | assignee | created_date | updated_date | labels | dependencies | parent_task_id |
|---|---|---|---|---|---|---|---|---|
| TASK-HIGH.1 | Bare-domain module routing — rspace.online/{moduleId} as default | Done | 2026-02-26 03:34 | 2026-02-26 06:20 | TASK-HIGH |
Description
App dropdown links go to rspace.online/r* (bare domain) instead of demo.rspace.online/r*. Only 'Try Demo' button links to demo subdomain. Server internally rewrites bare-domain module paths to /demo/{moduleId}.
Acceptance Criteria
- #1 App dropdown generates bare-domain URLs (/{moduleId}) on rspace.online
- #2 Server rewrites rspace.online/{moduleId} → /demo/{moduleId} internally
- #3 url-helpers isBareDomain() + getCurrentSpace/Module handle bare domain
- #4 Try Demo button visible on bare domain, hidden on demo.rspace.online
- #5 Auto-provision redirects authenticated users to personal subdomain
Implementation Notes
Implemented in commit a732478. Changed url-helpers.ts (isBareDomain, rspaceNavUrl), server/index.ts (fetch handler rewrite), server/shell.ts (data-hide + client JS for Try Demo). Merged to main.
Follow-up fix (c15fc15): app switcher fallback was 'personal' → 'demo', landing page demo links & ecosystem app links updated to use rspace.online/r* bare domain pattern