Commit Graph

1684 Commits

Author SHA1 Message Date
Jeff Emmett f111cb66ad Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m22s Details
2026-04-07 15:29:27 -04:00
Jeff Emmett 64ba4c1f1f feat(rmeets): enable shared video & music toolbar buttons
Add sharedvideo and sharedmusic to Jitsi toolbar config in both
the full-screen view and folk-jitsi-room component. Also set
disableThirdPartyRequests to false so the features aren't blocked.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 15:29:13 -04:00
Jeff Emmett e247befaae Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m6s Details
2026-04-07 14:55:17 -04:00
Jeff Emmett a4a800a498 fix(rmeets): remove loading spinner after Jitsi iframe injection
The "Connecting to meeting..." loading div remained visible on top of
the Jitsi iframe in the minimal view. The iframe is created by the
JitsiMeetExternalAPI constructor, so remove the spinner immediately after.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 14:55:11 -04:00
Jeff Emmett 280fb9426c Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m35s Details
2026-04-07 14:50:49 -04:00
Jeff Emmett a3ec58a4c5 fix(rmeets): correct Jitsi external API script path
The Jitsi server at jeffsi.localvibe.live serves the external API at
/libs/external_api.min.js, not /external_api.min.js (which returns HTML
due to SPA routing). Fixed in both the inline minimal view and the
folk-jitsi-room component's dynamic script loader.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 14:50:44 -04:00
Jeff Emmett bdd6ab35ec Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m19s Details
2026-04-06 21:26:25 -04:00
Jeff Emmett 4918787bb5 fix(rtasks): enable public writes + click-to-create in any column
- Add publicWrite to rtasks module so unauthenticated task creation works
  (was blocked by space auth middleware returning 403)
- Click empty column space or "+ Add task" to open create form in that column
- Tasks created in clicked column get that column's status automatically
- Show error message when task creation fails instead of silent failure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 21:26:18 -04:00
Jeff Emmett 17a17103f4 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m55s Details
2026-04-06 20:27:56 -04:00
Jeff Emmett ab5129d7dc refactor(rtasks): remove workspace list, single board per space
Load kanban board directly on page load instead of showing a workspace
picker first. ClickUp connect button moved into board nav.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 20:27:44 -04:00
Jeff Emmett fc14513fd1 Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m28s Details
2026-04-06 19:00:45 -04:00
Jeff Emmett ccaef33a20 fix(rtasks): exempt rtasks API from space auth middleware
The clf space is private, so all API calls were getting 401'd by the
space access middleware before reaching the rtasks routes. Add
/rtasks/api/ to the public endpoint exemption list (like rwallet,
rdesign, rvote already are).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 19:00:38 -04:00
Jeff Emmett 218ee73993 Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m22s Details
2026-04-06 18:31:15 -04:00
Jeff Emmett ac332468ba fix(rflows): mortgage simulator perf + basic/advanced toggle
Fix event listener accumulation (duplicate handlers on every render),
add partial DOM updates for playback/scrubbing/interactions, debounce
config slider recompute via rAF, and add Basic/Advanced mode toggle
that hides advanced controls (tranches, interest, terms, overpayment,
reinvestment) by default. Also fix pre-existing TS Map iteration errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 18:31:04 -04:00
Jeff Emmett 66f564eadb Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m15s Details
2026-04-06 18:05:43 -04:00
Jeff Emmett 1dc6de7759 fix(rtasks): make all endpoints auth-optional, handle stale tokens
- POST /api/spaces, POST /api/spaces/:slug/tasks, PATCH /api/spaces/:slug
  now work without auth (like PATCH /api/tasks/:id already does)
- Frontend retries without auth headers on 401 (stale token recovery)
- Bump JS cache to v6

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 18:05:34 -04:00
Jeff Emmett 8018acac2c Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m4s Details
2026-04-06 17:21:59 -04:00
Jeff Emmett c00221c1e5 fix(rtasks): replace browser prompt/confirm with inline forms
- Workspace creation uses inline text input instead of prompt()
- Task deletion uses inline confirmation bar instead of confirm()
- Better error display when workspace creation fails (shows server error)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 17:21:52 -04:00
Jeff Emmett e827f1a46f Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m27s Details
2026-04-06 14:53:31 -04:00
Jeff Emmett 4822f0858a fix(rtasks): bump JS cache version to v5 for new frontend features
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 14:53:25 -04:00
Jeff Emmett 4d15a352a6 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m20s Details
2026-04-06 14:50:10 -04:00
Jeff Emmett eeab84e588 feat(rtasks): add detail panel, column management, search/filter, drag polish
- Task detail slide-out panel with inline editing of all fields
- Column/status management via gear icon (add, remove, rename, reorder)
- Search & filter bar with text search, priority dropdown, label click filter
- Enhanced task cards with description preview, due date badge, delete hover
- Drag polish with rotation/scale transform on dragging cards
- Empty drop zones always visible with green highlight on drag-over
- Escape key closes detail panel and column editor
- Individual field saves on blur/change (no full re-render flicker)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 14:49:58 -04:00
Jeff Emmett a401faf19f Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m36s Details
2026-04-06 14:42:30 -04:00
Jeff Emmett c590bacc40 fix(rtasks): add auth headers to all API calls + canvas toolbar to bottom-right
rtasks fetch calls were missing Authorization Bearer headers, causing 401s
on private/permissioned spaces. Added authHeaders() helper using encryptid-token
from localStorage (matching pattern in folk-feed, folk-multisig-email, etc.).

Also includes: due date field, task detail panel, search/filter, column editor,
board PATCH endpoint, and canvas toolbar repositioned to bottom-right corner
(collapsed wrench icon on all screen sizes, panel opens leftward).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 14:42:16 -04:00
Jeff Emmett 0283d52989 Merge branch 'dev'
CI/CD / deploy (push) Has been cancelled Details
2026-04-06 14:40:19 -04:00
Jeff Emmett a76a6a9f6e feat(rcal): add semantic zoom for map and calendar views
Map markers now aggregate by continent/country/city based on spatial
zoom level instead of always showing individual dots. Calendar views
(year, season, multi-year, month) show zoom-aware spatial labels.
New geo-hierarchy.ts provides offline continent/country lookup from
coordinates with breadcrumb generation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 14:40:08 -04:00
Jeff Emmett 1d05e7b64f Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m32s Details
2026-04-06 14:24:25 -04:00
Jeff Emmett 75c230eabe fix(rmeets): correct Jitsi API config and auto-join room from URL slug
Fix configOverwrite/interfaceConfigOverwrite property names (were
configOverrides/interfaceConfigOverrides — silently ignored by Jitsi).
Disable pre-join lobby so rooms render immediately. Add error handling
for script load failures. Use external_api.min.js to match component.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 14:24:15 -04:00
Jeff Emmett 789dddde8a Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m29s Details
2026-04-06 14:11:17 -04:00
Jeff Emmett 13410dd3e7 fix(rmeets): default room view to clean full-screen Jitsi without shell
Swap default /:room route to serve minimal full-screen Jitsi (previously
required ?minimal=1). Shell mode now opt-in via ?shell=1 or director mode.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 14:11:05 -04:00
Jeff Emmett 391d3a0cb6 feat(rflows): port distributed mortgage simulator from rfunds-online
Replaces the simple lending pool dashboard at /mortgage with the full
rfunds-online mortgage simulator. Models community-funded mortgages with
80+ tranches, variable terms, reinvestment loops, secondary markets,
and 5 visualization modes (Network, Flow, Grid, Lender calc, Borrower calc).

New files:
- mortgage-types.ts & mortgage-engine.ts (pure TS, copied verbatim)
- folk-mortgage-simulator.ts (1639-line web component, all views)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 14:10:59 -04:00
Jeff Emmett cff10bee5d Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m24s Details
2026-04-06 14:05:44 -04:00
Jeff Emmett 8321a9015a revert: restore app switcher to left sidebar
Reverts 4420d9c — the FAB change was applied to the wrong component.
The intended target is the rSpace canvas toolbar, not the app switcher.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 14:05:38 -04:00
Jeff Emmett 8f017eb1f5 Merge branch 'dev'
CI/CD / deploy (push) Successful in 3m11s Details
2026-04-06 12:39:45 -04:00
Jeff Emmett f26f7e14bd fix(sw): bump cache version to v6 to flush stale cached 301 redirect
The old service worker cached the root URL (/) as a 301→/rcal during
the standaloneDomain misconfiguration. Bumping the SW cache version
forces a full cache purge on next activation, clearing the stale
redirect for all users.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 12:39:36 -04:00
Jeff Emmett 5af2eec04e Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m20s Details
2026-04-06 12:28:01 -04:00
Jeff Emmett 6c1298b796 fix(routing): prevent cached 301 redirects on root and standalone domains
Root route now sends no-cache headers to bust stale 301s from the
rcal standaloneDomain mishap. Standalone domain redirects changed from
301 (permanent/browser-cached) to 302 (temporary) so misconfiguration
can never stick in user browsers again.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 12:27:53 -04:00
Jeff Emmett c037e13423 feat(rmeets): minimal mode for clean meeting links without rSpace shell
Add ?minimal=1 query param that renders a full-screen Jitsi meeting
page without the rSpace header, tab bar, or module chrome. Used by
scheduled meeting links so guests get a clean, direct video call
experience. Includes prejoin screen, all standard Jitsi controls,
and auto-closes the tab when the meeting ends.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 01:24:31 +00:00
Jeff Emmett 905481eb84 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m22s Details
2026-04-05 16:04:08 -04:00
Jeff Emmett 7e07170304 fix: ranking drag-drop, spider slider drag, video gen timeout & progress
- Ranking: replace broken :hover drop-target with getBoundingClientRect hit testing
- Spider: add #isSliding guard to prevent slider destruction during drag
- Video gen: bump timeout to 10min, show real fal.ai queue position/status
- Fix NotificationCategory type to include 'payment' in db.ts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 16:03:58 -04:00
Jeff Emmett 8d7af7ce29 Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m19s Details
2026-04-05 15:59:49 -04:00
Jeff Emmett 4420d9cafe feat(shell): move app switcher from left sidebar to bottom-right FAB
Repositions the rApp switcher as a floating action button in the bottom-right
corner that expands upward into a rounded panel. Removes all sidebar push-offset
CSS since the panel now overlays content without layout shift.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 15:59:36 -04:00
Jeff Emmett e32e80fc09 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m22s Details
2026-04-05 15:24:47 -04:00
Jeff Emmett 15ca1868b0 fix(rcal): fix calendar view layout bugs — uneven day widths, event overlap, duplicate detail
- Change grid-template-columns from repeat(7, 1fr) to repeat(7, minmax(0, 1fr)) to prevent
  content from stretching day cells unevenly
- Add computeEventColumns() helper using greedy interval-coloring algorithm with per-cluster
  column counts for tiling overlapping events side-by-side
- Apply sub-column layout to day view, week view, and horizontal day view so concurrent events
  no longer render on top of each other
- Guard duplicate day detail rendering when expanded day is at end-of-row or last day of month

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 15:24:30 -04:00
Jeff Emmett 5f00991264 Merge branch 'dev'
CI/CD / deploy (push) Successful in 3m0s Details
2026-04-05 15:14:14 -04:00
Jeff Emmett e4a0ccd80b feat(rtime): add gas tank fuel gauge and mycelial auto-connect suggestion
Replace thin 4px progress bar on task nodes with a prominent 12px fuel
gauge showing committed (green) + proposed (amber) hours vs total needed.
When an orb is dropped on open canvas, auto-find nearest unfulfilled task
and show a pulsing preview wire with confirm/dismiss buttons — human
approval required before creating the connection.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 15:13:54 -04:00
Jeff Emmett 06af5919bb Merge branch 'dev'
CI/CD / deploy (push) Failing after 3m0s Details
2026-04-05 14:29:38 -04:00
Jeff Emmett a43bc3b3ee fix: make profile dropdown buttons clickable (pointerdown→click)
pointerdown on document was hiding the dropdown before click could fire
on My Account / My Spaces / My Wallets buttons. Switching to click lets
stopPropagation in item handlers prevent premature close.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 14:29:20 -04:00
Jeff Emmett 0ed80a935b Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m8s Details
2026-04-04 19:25:22 -04:00
Jeff Emmett 9897bf6517 fix(rcal): revert standaloneDomain to rcal.online — rspace.online hijacked all traffic
Setting standaloneDomain to "rspace.online" caused the domain→module redirect
system to treat ALL rspace.online traffic as rcal, redirecting / to /rcal.
The correct value is "rcal.online" which redirects old rcal.online → rspace.online/rcal.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 19:25:14 -04:00