feat: update rstack-app-switcher categories
- rTube → Creating, rSwag stays in Creating - Rename Social & Media → Sharing, split rData → Observing - Add tube to Creating in MODULE_CATEGORIES and badge comments Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
ef5dca5808
commit
53b4c44576
|
|
@ -0,0 +1,44 @@
|
|||
---
|
||||
id: TASK-51
|
||||
title: Consolidate standalone r*.online domains → rspace.online
|
||||
status: To Do
|
||||
assignee: []
|
||||
created_date: '2026-02-25 07:46'
|
||||
labels:
|
||||
- infrastructure
|
||||
- domains
|
||||
- migration
|
||||
dependencies: []
|
||||
references:
|
||||
- server/index.ts (lines 457-521 — standalone rewrite logic)
|
||||
- shared/module.ts (standaloneDomain interface)
|
||||
- shared/components/rstack-app-switcher.ts (external link arrows)
|
||||
- docker-compose.yml (lines 44-114 — Traefik labels)
|
||||
- src/encryptid/server.ts (allowedOrigins list)
|
||||
- src/encryptid/session.ts (JWT aud claim)
|
||||
priority: high
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||
Migrate ~20 standalone domains (rbooks.online, rmaps.online, rfunds.online, etc.) into path-based routing under rspace.online. Currently these domains are silently rewritten to /:space/:moduleId internally — this migration makes rspace.online the canonical URL, adds 301 redirects, removes dead infrastructure, and lets domains expire.
|
||||
|
||||
Execution order: Phase 2 → 1 → 3 → 4 → 5 → 6 (fix external service URLs before enabling redirects).
|
||||
|
||||
Key risks:
|
||||
- rnetwork.online is dual-purpose (module alias AND TWENTY_API_URL) — must decouple before redirects
|
||||
- sync.rmaps.online is a separate WebSocket service, not the rmaps module
|
||||
- PWA/service worker caches on old domains may need self-unregistering workers
|
||||
- keepStandalone domains (rcart.online, rfiles.online, swag.mycofi.earth, providers.mycofi.earth) need separate evaluation
|
||||
<!-- SECTION:DESCRIPTION:END -->
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 All standalone domain hits return 301 → rspace.online/demo/{moduleId}/...
|
||||
- [ ] #2 No hardcoded references to r*.online domains remain in codebase
|
||||
- [ ] #3 WebAuthn/EncryptID auth works solely on rspace.online
|
||||
- [ ] #4 Standalone Traefik labels and docker-compose.standalone.yml removed
|
||||
- [ ] #5 Standalone .ts entry points deleted
|
||||
- [ ] #6 Domain registrations allowed to expire
|
||||
<!-- AC:END -->
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
id: TASK-51.1
|
||||
title: 'Phase 2: Fix external service URLs (analytics, maps sync, Twenty CRM)'
|
||||
status: To Do
|
||||
assignee: []
|
||||
created_date: '2026-02-25 07:47'
|
||||
labels:
|
||||
- infrastructure
|
||||
- domains
|
||||
- migration
|
||||
dependencies: []
|
||||
parent_task_id: TASK-51
|
||||
priority: high
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||
Update hardcoded references to standalone domains used as service endpoints. Must be done BEFORE Phase 1 redirects to avoid breaking analytics, maps sync, and network module.
|
||||
|
||||
Files: website/index.html, website/create-space.html (collect.js), docker-compose.yml (MAPS_SYNC_URL, TWENTY_API_URL), modules/maps/mod.ts, modules/network/mod.ts.
|
||||
|
||||
DECISION NEEDED: Is Twenty CRM (rnetwork.online) a separate container or proxied through network module?
|
||||
<!-- SECTION:DESCRIPTION:END -->
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 Analytics collect.js loads from relative path on rspace.online
|
||||
- [ ] #2 Maps sync WebSocket connects via new URL
|
||||
- [ ] #3 Network module reaches Twenty CRM without depending on rnetwork.online domain
|
||||
<!-- AC:END -->
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
id: TASK-51.2
|
||||
title: 'Phase 1: Convert standalone domain rewrite to 301 redirects'
|
||||
status: To Do
|
||||
assignee: []
|
||||
created_date: '2026-02-25 07:47'
|
||||
labels:
|
||||
- infrastructure
|
||||
- domains
|
||||
- migration
|
||||
dependencies:
|
||||
- TASK-51.1
|
||||
parent_task_id: TASK-51
|
||||
priority: high
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||
Change server/index.ts standalone domain handling from silent rewrite to 301 redirect for HTML page loads. Keep API/WS rewriting so running apps don't break. Traefik labels stay — domains must still route to the container to serve the 301.
|
||||
|
||||
Target: server/index.ts lines 482-521. Redirect HTML page loads, continue proxying /api/* and /ws/* requests. keepStandalone domains unaffected.
|
||||
<!-- SECTION:DESCRIPTION:END -->
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 rmaps.online/some-room returns 301 to rspace.online/demo/maps/some-room
|
||||
- [ ] #2 rbooks.online/ returns 301 to rspace.online/demo/books
|
||||
- [ ] #3 API and WebSocket requests still proxied without redirect
|
||||
- [ ] #4 keepStandalone domains unaffected
|
||||
<!-- AC:END -->
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
id: TASK-51.3
|
||||
title: 'Phase 3: Update UI links (app switcher, landing page)'
|
||||
status: To Do
|
||||
assignee: []
|
||||
created_date: '2026-02-25 07:47'
|
||||
labels:
|
||||
- infrastructure
|
||||
- domains
|
||||
- migration
|
||||
- ui
|
||||
dependencies:
|
||||
- TASK-51.2
|
||||
parent_task_id: TASK-51
|
||||
priority: medium
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||
Remove standalone domain references from user-facing UI. Remove external link arrow from app switcher, update landing page ecosystem links to path-based routes, remove standaloneDomain from ModuleInfo interface.
|
||||
|
||||
Files: shared/components/rstack-app-switcher.ts, shared/module.ts, website/index.html, website/create-space.html.
|
||||
<!-- SECTION:DESCRIPTION:END -->
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 App switcher shows no external link arrows
|
||||
- [ ] #2 Landing page ecosystem links use /demo/{moduleId} paths
|
||||
- [ ] #3 ModuleInfo no longer exposes standaloneDomain to client
|
||||
<!-- AC:END -->
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
id: TASK-51.4
|
||||
title: 'Phase 4: Simplify EncryptID and WebAuthn for single domain'
|
||||
status: To Do
|
||||
assignee: []
|
||||
created_date: '2026-02-25 07:47'
|
||||
labels:
|
||||
- infrastructure
|
||||
- domains
|
||||
- migration
|
||||
- auth
|
||||
dependencies:
|
||||
- TASK-51.3
|
||||
parent_task_id: TASK-51
|
||||
priority: medium
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||
Prune WebAuthn Related Origins, JWT audience claims, and CORS allowedOrigins now that all modules are on rspace.online.
|
||||
|
||||
Files: server/index.ts (.well-known/webauthn), public/.well-known/webauthn, src/encryptid/session.ts (JWT aud), src/encryptid/server.ts (allowedOrigins + HTML templates).
|
||||
<!-- SECTION:DESCRIPTION:END -->
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 Passkey login works on rspace.online
|
||||
- [ ] #2 No CORS errors for auth flows
|
||||
- [ ] #3 JWT aud is rspace.online only
|
||||
- [ ] #4 .well-known/webauthn no longer lists standalone domains
|
||||
<!-- AC:END -->
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
id: TASK-51.5
|
||||
title: 'Phase 5: Remove standalone domain dead code and infrastructure'
|
||||
status: To Do
|
||||
assignee: []
|
||||
created_date: '2026-02-25 07:48'
|
||||
updated_date: '2026-02-25 07:48'
|
||||
labels:
|
||||
- infrastructure
|
||||
- domains
|
||||
- migration
|
||||
- cleanup
|
||||
dependencies:
|
||||
- TASK-51.4
|
||||
parent_task_id: TASK-51
|
||||
priority: low
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||
After 301 redirects have been live 3-6 months, strip all standalone domain machinery. Delete domainToModule map, keepStandalone set, rewrite/redirect block in server/index.ts. Remove standaloneDomain from RSpaceModule interface and all 22 mod.ts files. Delete all 20 standalone.ts entry points. Remove Traefik labels. Delete docker-compose.standalone.yml.
|
||||
<!-- SECTION:DESCRIPTION:END -->
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 No references to standaloneDomain remain in codebase
|
||||
- [ ] #2 No standalone.ts files exist
|
||||
- [ ] #3 docker-compose.standalone.yml deleted
|
||||
- [ ] #4 Traefik config only has rspace.online and *.rspace.online routers
|
||||
- [ ] #5 All modules work via path-based routing
|
||||
<!-- AC:END -->
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
id: TASK-51.6
|
||||
title: 'Phase 6: DNS cleanup and domain expiry'
|
||||
status: To Do
|
||||
assignee: []
|
||||
created_date: '2026-02-25 07:48'
|
||||
updated_date: '2026-02-25 07:48'
|
||||
labels:
|
||||
- infrastructure
|
||||
- domains
|
||||
- migration
|
||||
- dns
|
||||
dependencies:
|
||||
- TASK-51.5
|
||||
parent_task_id: TASK-51
|
||||
priority: low
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||
Operational phase — no code changes. Monitor Cloudflare analytics on old domains for 3-6 months. Remove tunnel hostname entries, DNS zones. Let Porkbun registrations expire. Keep rspace.online, ridentity.online, rstack.online, rmail.online. Evaluate keepStandalone domains separately.
|
||||
<!-- SECTION:DESCRIPTION:END -->
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 No Cloudflare tunnel entries for expired domains
|
||||
- [ ] #2 No DNS zones for expired domains
|
||||
- [ ] #3 Domain renewals cancelled at Porkbun
|
||||
- [ ] #4 Core domains retained
|
||||
<!-- AC:END -->
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
id: TASK-52
|
||||
title: Redesign canvas toolbar with grouped dropdowns and collapse
|
||||
status: Done
|
||||
assignee:
|
||||
- '@claude'
|
||||
created_date: '2026-02-25 21:07'
|
||||
labels:
|
||||
- ui
|
||||
- canvas
|
||||
dependencies: []
|
||||
priority: medium
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||
The canvas toolbar had 28+ flat tool buttons in a single horizontal row that ran off screen on most displays. Redesigned with grouped dropdown menus and a collapse/minimize toggle.
|
||||
|
||||
**Changes:**
|
||||
- 6 category dropdowns: Create, Media, Embed, AI, Travel, Decide
|
||||
- Direct-access buttons for Connect, Memory, and Zoom controls
|
||||
- Collapse toggle (◀/▶) to minimize toolbar to a single button
|
||||
- Mobile responsive: accordion-style groups instead of floating dropdowns
|
||||
- Click-outside-to-close and auto-close-on-tool-select behavior
|
||||
<!-- SECTION:DESCRIPTION:END -->
|
||||
|
||||
## Final Summary
|
||||
|
||||
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
|
||||
Replaced 28 flat toolbar buttons with 6 grouped dropdowns (Create, Media, Embed, AI, Travel, Decide) plus direct-access Connect/Memory/Zoom buttons. Added collapsible toolbar toggle. Mobile-responsive with accordion-style groups. Commit: 5c3db2c on dev branch.
|
||||
<!-- SECTION:FINAL_SUMMARY:END -->
|
||||
Loading…
Reference in New Issue