Commit Graph

22 Commits

Author SHA1 Message Date
Jeff Emmett ab1d0d5014 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:28:58 +00:00
Jeff Emmett b90c16e072 feat: update AppSwitcher categories in inline HTML
- rTube/rSwag → Creating, rSocials → Sharing, rData → Observing
- Rename Social & Media to Sharing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 14:17:46 -08:00
Jeff Emmett 441327622e 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:57:13 -08:00
Jeff Emmett 0d3cee5afc 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:12 -08:00
Jeff Emmett 61add7bc56 feat: add rStack AppSwitcher dropdown to header
Adds the unified rStack app switcher as pure HTML/CSS/JS 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:55 -08:00
Jeff Emmett 4b229aeffd 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 2610d8a30d feat: add ecosystem footer with all 16 r-suite apps
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 09:43:28 +00:00
Jeff Emmett 67fbdf0cb0 chore: add rInbox to r* Ecosystem footer
Add rinbox.online link to the ecosystem footer navigation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 18:31:22 -07:00
Jeff Emmett b5251be1a2 feat: redesign landing page to match rStack design paradigm
New landing page with gradient hero text, feature grid, how-it-works
steps, CTA card, and ecosystem footer — matching the design language
of rstack.online, rwallet.online, and other r* apps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 15:30:18 -07:00
Jeff Emmett 9c07471229 fix: add missing migration and encryptid.browser.js placeholder
- Add migration 0003 for visibility and owner_did fields on SharedSpace
  (fields were in model but migration was never created, causing 500s)
- Add placeholder encryptid.browser.js to fix staticfiles manifest error

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 15:15:20 -07:00
Jeff Emmett 0f76ae63a4 feat: add EncryptID passkey login to frontend templates
Add SDK browser bundle to base template and shared space login page.
Passkey auth alongside existing password form.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:36:05 -07:00
Jeff Emmett 629e61de0a Add emoji favicon (📁) for browser tab
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 19:13:39 -07:00
Jeff Emmett 284a73d3fa feat: enforce space visibility on uploads and API views
Add visibility and owner_did fields to SharedSpace model. Protect upload
endpoints with check_space_access(). Add SpacePermission DRF permission
class to MediaFileViewSet.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 11:54:15 -07:00
Jeff Emmett 5aae2776ed Remove background SW uploads, use simple direct fetch instead
SW was causing issues. Reverted to straightforward XHR uploads with
progress bar, duplicate detection, and overwrite/skip. No IndexedDB,
no SW messaging. SW is now minimal (cache-only for static assets).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 18:18:35 +00:00
Jeff Emmett 6c4c21591f Fix SW not ready: add registration + wait for controller
The service worker was never registered. Added registration in the
base template. Upload logic now waits for the SW to claim the page
instead of erroring, with a direct-fetch fallback if SW times out.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 18:14:53 +00:00
Jeff Emmett 0ce44383b5 Add background uploads via Service Worker + IndexedDB
Uploads now continue even if the user navigates away from the page.
Files are stored in IndexedDB, the SW handles the actual fetch to
direct.rfiles.online, and results are broadcast back to any open tab.
Shows a notification if no tab is focused when upload completes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 18:11:55 +00:00
Jeff Emmett 9214aed499 Remove chunked upload code (no longer needed with direct bypass)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 18:04:16 +00:00
Jeff Emmett 8220ad5d3b Route uploads through direct.rfiles.online to bypass Cloudflare 100MB limit
- Add direct.rfiles.online A record (DNS only, not proxied through CF)
- Add TLS-enabled Traefik router with Let's Encrypt for direct subdomain
- Add DirectUploadAPIView that accepts space slug as form field
- All uploads now go to https://direct.rfiles.online/api/upload/
- CORS allows *.rfiles.online origins
- Middleware treats 'direct' as reserved (not a shared space)
- Removes chunked upload complexity (no longer needed)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 18:02:14 +00:00
Jeff Emmett 6eabd8eaa2 Add chunked upload to bypass Cloudflare 100MB limit
Cloudflare free plan caps request bodies at 100MB. Files > 90MB now
upload in 80MB chunks: init session, send chunks sequentially, server
reassembles and creates MediaFile. Small files still use direct upload.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:47:29 +00:00
Jeff Emmett d1b44e9b1e Add duplicate file detection with skip/overwrite options
When uploading a file that already exists in a shared space (same filename),
the UI now shows the existing file info with Overwrite and Skip buttons
instead of silently creating a duplicate.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:25:13 +00:00
Jeff Emmett 8c53efe43d Remove file size limit
- Django upload limit raised to 10GB
- SharedSpace max_file_size_mb default changed to 0 (unlimited)
- Server-side and client-side checks skip when limit is 0
- Upload UI shows "No file size limit"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:06:33 +00:00
Jeff Emmett cf9cc22c58 Initial commit: rfiles.online standalone file sharing platform
Extracted from PKMN (personal-knowledge-management-network) into its own
repo with separate database, file storage, and Docker stack.

- files app: SharedSpace, MediaFile, PublicShare, FileAccessLog models
- portal app: Landing page, upload, file management, shared space views
- Host-based URL routing for subdomain shared spaces (*.rfiles.online)
- PWA with service worker and share target support
- Celery tasks for expired share cleanup and file processing
- Docker Compose for dev and production (Traefik + PostgreSQL + Redis)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 15:46:31 +00:00