Commit Graph

32 Commits

Author SHA1 Message Date
Jeff Emmett 8cb3f804b0 feat: add timezone-aware time display across all views
Detects browser timezone, persists in Zustand store, and formats all
event times using explicit timezone via Intl.DateTimeFormat. Adds TZ
badge to calendar header. Affects DayView, WeekView, MonthView,
EventDetailModal, and SpatioTemporalMap.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 17:21:29 -07:00
Jeff Emmett 10b8b42200 Merge branch 'dev' 2026-03-16 04:50:47 +00:00
Jeff Emmett 8730afaf30 feat: add InfoPopup with landing page content on first visit
Shows an informational popup with rich landing page content on first
visit, re-openable via a fixed info button (bottom-right corner).
Dismissible via X button, overlay click, or Escape key. Uses
localStorage to track first-visit state.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 04:50:46 +00:00
Jeff Emmett 2b4e9a9acc brand: add (you)r* prefix to landing page title
Reinforces the r-suite "your tools" philosophy across all rApp landing pages.
Also normalizes title separators to em-dash for consistency.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 04:50:46 +00:00
Jeff Emmett a793b151be chore: add backlog-notify onStatusChange hook
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 15:30:57 -07:00
Jeff Emmett a305d05092 brand: add (you)r* prefix to landing page title
Reinforces the r-suite "your tools" philosophy across all rApp landing pages.
Also normalizes title separators to em-dash for consistency.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 04:30:03 +00:00
Jeff Emmett d93ba4175c docs: add backlog tasks for landing page redesign and zoom/demo features
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 15:28:48 -08:00
Jeff Emmett cd7f4adf5e feat: add Day/Week views, view switcher, demo data with map transit lines
- Add DayView (24h time grid with events) and WeekView (7-day columns)
- Add ViewSwitcher icon bar in header for quick Day/Week/Month/Season/Year/Decade switching
- Fix zoom to properly route each granularity to its dedicated view
- Normalize all views to consistent h-full flex-col container pattern
- Change YearView default from fullscreen portal to inline compact/glance
- Add FullscreenToggle wrapper for opt-in fullscreen on any view
- Add ~40 demo events with real coordinates (Berlin, Amsterdam, Munich, Paris, Prague, Lisbon, Barcelona, Brussels)
- Add DemoDataSeeder to pre-populate React Query cache on demo page
- Add TransitLines component drawing dashed polylines between event locations on the map
- Extend EventListItem type with latitude/longitude/coordinates fields
- Add CSS fade transition between view switches

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 15:27:58 -08:00
Jeff Emmett 5641dba450 fix: add Traefik priority 130 to override rspace-online routing
rspace-online claims all rApp base domains at priority 120.
Individual apps need higher priority to serve their own content.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 14:26:36 -08:00
Jeff Emmett 3c0dc2839d fix: increase Node heap size for Docker build
Add NODE_OPTIONS --max_old_space_size=4096 to prevent SIGSEGV during
Next.js build in Docker.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 14:19:31 -08:00
Jeff Emmett 51b9b2f079 feat: standardize header, categories, cross-app spaces
- AppSwitcher: rTube/rSwag → Creating, rSocials → Sharing, rData → Observing
- EcosystemFooter: updated link order to match new categories
- UserMenu: 🔑 Sign In button, 🔐 lock when logged in
- SpaceSwitcher: reads EncryptID token, sends Bearer header
- /api/spaces proxy: forwards to rspace.online (canonical spaces)
- /api/me: verifies EncryptID token for auth status
- Header.tsx: standardized bg-slate-900/85 across all apps

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 14:16:51 -08:00
Jeff Emmett f46575989f feat: redesign landing page and add demo.rcal.online subdomain
Replace the minimal landing page with a full rStack-style marketing page
featuring hero with gradient text, 4-card principles grid, feature pillars,
temporal zoom visualization, four-view showcase, ecosystem integration
cards, and CTA section.

Move the calendar app to /demo route served at demo.rcal.online via
middleware subdomain routing. Add per-route layouts for Header placement
so the landing page controls its own chrome.

Also includes AppSwitcher/EcosystemFooter category reorganization
(rTube/rSwag to Creating, Social & Media split into Sharing + Observing).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 14:13:23 -08:00
Jeff Emmett cf00a77da2 feat: add space subdomain routing and ownership support
- Traefik wildcard HostRegexp for <space>.r*.online subdomains
- Middleware subdomain extraction and path rewriting
- Provision endpoint with owner_did acknowledgement
- Registry enforces space ownership via EncryptID JWT

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 13:19:29 -08:00
Jeff Emmett bb7bdc0b5b Standardize emojis across header, favicons, and ecosystem links
Canonical emoji set for consistency:
- 🕸️ rNetwork (was 🌐), ⚖️ rChoices (was 🔀), 📋 rWork (was 💼)
- 🔐 rIdentity (was 🔑), 📖 rPubs (was 📰), 💸 rFunds (was 💰)
- 💰 rWallet (was 💼 in footer), 📬 rInbox (was ✉️)
- 💭 rForum (was 💬, differentiates from rChats)
- 📢 rSocials (was 📱), 🔨 rAuctions (was 🏛️ in footer)
- 🎬 rTube (was 📹 in footer)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 12:56:53 -08:00
Jeff Emmett b924c547c9 Add internal provision endpoint for rSpace Registry
Simple acknowledge endpoint — calendars associated in future.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:30:20 -08:00
Jeff Emmett 3b6d2ca3dc refactor: move Header to layout for all sub-routes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:04:46 -08:00
Jeff Emmett e6f64f1ec7 fix: space links use subdomain URLs instead of rspace.online path
Space links now go to <space>.<app-domain> (e.g., myspace.rfunds.online)
instead of rspace.online/<space>. Domain derived from window.location
when not explicitly provided.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 23:18:37 -08:00
Jeff Emmett bc400d5bad fix: nest Sign Out under username dropdown in UserMenu
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 23:09:10 -08:00
Jeff Emmett 6cd0a6d279 feat: standardize header with AppSwitcher, SpaceSwitcher, and UserMenu
- Replace inline nav/Navbar with shared Header component
- Header pattern: AppSwitcher dropdown / SpaceSwitcher / actions / Sign In
- SpaceSwitcher and UserMenu work without SDK dependency
- Consistent across all r*Apps

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 23:03:01 -08:00
Jeff Emmett ea1de80ed8 feat: standardize AppSwitcher and EcosystemFooter across all rApps
- Update AppSwitcher with all 26 r*Apps in 8 categories
- Add EcosystemFooter component with consistent ecosystem links
- Categories: Creating, Planning, Communicating, Deciding,
  Funding & Commerce, Social & Media, Work & Productivity,
  Identity & Infrastructure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 22:47:56 -08:00
Jeff Emmett bc00c2e16d refactor: migrate EncryptID URLs from encryptid.jeffemmett.com to auth.ridentity.online
Part of the ridentity.online branding migration. The EncryptID auth
server is now accessible at auth.ridentity.online (with the legacy
encryptid.jeffemmett.com kept as a backward-compatible alias).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 22:20:07 -08:00
Jeff Emmett 403a499e88 fix: dark background + emoji favicon for rStack design consistency
Standardize to dark background (#0f172a / slate-900) and add emoji
data URI favicon matching the rStack ecosystem.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:19:06 -08:00
Jeff Emmett 7af73e4453 feat: add rStack AppSwitcher dropdown to header
Adds the unified rStack app switcher with pastel badges, emoji icons,
and categorized navigation across all 17 rStack apps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 19:15:49 -08:00
Jeff Emmett 001b360510 feat: wire rcal-online to Infisical for secret injection
Add entrypoint.sh that fetches secrets from Infisical at container
startup. DATABASE_URL and POSTGRES_PASSWORD now come from Infisical
instead of being hardcoded in docker-compose environment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 23:07:43 -08:00
Jeff Emmett ac209b5d97 feat: add booking.xhiva.art hostname to Traefik routing
Routes booking.xhiva.art through rcal-online for Xhiva booking page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 12:11:50 -07:00
Jeff Emmett 7fb1f1fe6a Add rData analytics tracking and ecosystem footer link
- Inject rdata.online/collect.js tracking script in layout
- Add rData link to ecosystem footer

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 18:57:08 +00:00
Jeff Emmett 875b74c2fb feat: add EncryptID auth with User model and route guards
User model added to Prisma. AuthProvider wraps existing Providers.
POST/PUT/DELETE routes require auth, GET routes remain open for demo access.
CalendarSource tracks createdById. Dockerfile updated for SDK copy.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 10:20:23 +00:00
Jeff Emmett 961235b7b9 feat: add rAuctions and rPubs to ecosystem footer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 09:43:11 +00:00
Jeff Emmett 0c2e198f26 feat: add landing page, move calendar app to /calendar route
Create marketing landing page at / with hero, features (spatial, zoom,
lunar), how-it-works, ecosystem section, and r-suite footer. Move full
calendar app to /calendar. Add rcal.online domain to Traefik labels.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 09:24:37 +00:00
Jeff Emmett a722aa2fa4 docs: add MODULE_SPEC.md with permission model and capabilities
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 12:30:14 -07:00
Jeff Emmett 618ebf1e1d chore: initialize backlog with deployment task and known bug
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:16:47 -07:00
Jeff Emmett 5fcbfd6fa8 feat: initial rcal-online — semantic calendar engine with lunar overlay
Forked from zoomcal-jeffemmett, unified with cal-jeffemmett into a single
semantically-aware calendar app. Replaces IFC calendar with lunar calendar,
adds 4-tab views (Temporal, Spatial, Lunar, Context), and r* tool integration
layer for cross-tool calendar rendering.

- Phase 0: Forked zoomcal, inlined @cal/shared, added lunarphase-js + suncalc
- Phase 1: New type system (lunar + r* tools), Zustand store with tabs, IFC stripped
- Phase 2: Lunar engine with synodic month tracking, MoonPhaseIcon, LunarTab
- Phase 3: Adapter registry for r* tools, RCalProvider, URL-driven /context route
- Phase 4: Prisma + PostgreSQL backend, 7 API routes (events, sources, lunar, context)
- Phase 5: Docker multi-stage build, hardened docker-compose with PostgreSQL 16

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:01:34 -07:00