chore: add backlog tasks TASK-59 and TASK-60

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jeff Emmett 2026-02-25 16:45:04 -08:00
parent cc116e6be8
commit fcf350d40a
2 changed files with 98 additions and 0 deletions

View File

@ -0,0 +1,39 @@
---
id: TASK-59
title: Add rPhotos module + finish header standardization across all rApps
status: Done
assignee:
- '@claude'
created_date: '2026-02-26 00:06'
labels:
- photos
- headers
- modules
dependencies: []
priority: high
---
## Description
<!-- SECTION:DESCRIPTION:BEGIN -->
Created modules/photos/ with Immich API proxy, gallery component (shared albums, lightbox viewer), and standard rapp-nav header. Registered in server/index.ts with vite build step. Fixed remaining module headers in books (shelf + reader), splat, swag, tube. All 23 modules now use consistent rapp-nav pattern. Immich confirmed running at demo.rphotos.online, landing page live at rphotos.online.
<!-- SECTION:DESCRIPTION:END -->
## Acceptance Criteria
<!-- AC:BEGIN -->
- [ ] #1 modules/photos/ created with mod.ts, component, and CSS
- [ ] #2 Immich API proxy routes for albums, assets, thumbnails
- [ ] #3 folk-photo-gallery component with rapp-nav header
- [ ] #4 Module registered in server/index.ts
- [ ] #5 Vite build step added in vite.config.ts
- [ ] #6 books shelf-header and reader-header replaced with rapp-nav
- [ ] #7 splat h1 branding removed
- [ ] #8 swag h2 branding removed
- [ ] #9 tube tabs converted to rapp-nav
<!-- AC:END -->
## Final Summary
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Commit eba0aaf merged to main. All 23 modules standardized with rapp-nav headers. rPhotos module added as #23 with Immich gateway. Both rphotos.online (landing) and demo.rphotos.online (Immich) confirmed live and healthy.
<!-- SECTION:FINAL_SUMMARY:END -->

View File

@ -0,0 +1,59 @@
---
id: TASK-60
title: Canonical subdomain routing + rSwag landing page simplification
status: Done
assignee:
- '@claude'
created_date: '2026-02-26 00:44'
labels:
- routing
- infrastructure
- simplification
dependencies: []
references:
- server/index.ts
- server/shell.ts
- shared/url-helpers.ts
- shared/components/rstack-app-switcher.ts
- shared/components/rstack-space-switcher.ts
- shared/components/rstack-identity.ts
- website/shell.ts
priority: high
---
## Description
<!-- SECTION:DESCRIPTION:BEGIN -->
Consolidated URL routing so all rApps flow through `{space}.rspace.online/{moduleId}` as the canonical URL pattern, replacing the previous silent URL rewriting from standalone domains.
**rspace-online changes:**
- Subdomain handler now routes ALL modules (previously only served canvas)
- Standalone domains (rvote.online, rphotos.online, etc.) now 301 redirect to canonical `{space}.rspace.online/{moduleId}`
- Created `shared/url-helpers.ts` with `rspaceNavUrl()`, `getCurrentSpace()`, `getCurrentModule()`, `isSubdomain()`
- Updated app-switcher, space-switcher, identity component, and tab-bar navigation to use subdomain-aware URL generation
- Shell inline scripts use global `__rspaceNavUrl()` for all URL generation
- Path-based `rspace.online/:space/:moduleId` still works as fallback
- WebSocket connections on standalone domains still rewritten (WS can't follow redirects)
**rswag-online changes:**
- Replaced full Next.js + FastAPI + PostgreSQL + Redis docker-compose with simple static nginx landing page
- Updated landing page CTA: "Try the Demo" → `https://rspace.online/demo/swag`
- Aligns with the "simple components, JS and HTML wherever possible" philosophy
<!-- SECTION:DESCRIPTION:END -->
## Acceptance Criteria
<!-- AC:BEGIN -->
- [ ] #1 demo.rspace.online/vote serves vote module in demo space
- [ ] #2 Standalone domains (rvote.online etc) 301 redirect to canonical subdomain URL
- [ ] #3 App-switcher and space-switcher generate subdomain-aware links
- [ ] #4 Auto-provision redirect uses subdomain URL pattern
- [ ] #5 Path-based rspace.online/:space/:moduleId still works
- [ ] #6 rswag.online serves static landing page instead of Next.js app
- [ ] #7 TypeScript compiles cleanly
<!-- AC:END -->
## Final Summary
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Implemented canonical subdomain routing `{space}.rspace.online/{moduleId}` across rspace-online and simplified rswag-online from Next.js to static landing page.\n\nCommits:\n- rspace-online `eab24e2`: feat: canonical subdomain routing\n- rswag-online `1eca70d`: feat: replace Next.js app with static landing page, add demo CTA\n\nBoth repos pushed to main on Gitea.
<!-- SECTION:FINAL_SUMMARY:END -->