Implements the Crowdsurfing protocol (gospelofchange/Crowdsurfing) as an
rSpace module with full local-first Automerge CRDT sync. Users propose
activities with commitment thresholds, others swipe to join and declare
contributions, and activities trigger when enough people commit.
Module includes schemas, local-first client, swipe UI dashboard with
pointer gesture detection, landing page, seed template data, and
Vite build integration.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Wrap formData() in try/catch with logging to diagnose Content-Type
issues through Cloudflare tunnel. Also fix client-side error handling
to clear progress timer and show actual error message on failure.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Default upload mode is now "Generate from Image" instead of splat upload
- Clicking anywhere in the dotted drop area opens the file browser
(not just the "browse" link)
- Add cursor: pointer to upload mode areas
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Make /api/3d-gen async with job queue + email notification on completion
- Add reminder mini-calendar widget to canvas (top-right on shape select)
- Make items draggable across 6 modules (rNotes, rTasks, rFiles, rSplat, rPhotos, rBooks)
- Upgrade rCal drop handler with time-picker popover instead of confirm()
- Show reminder indicators (dots + badges) on calendar days
- Fix subdomain routing: remove space slug from server-rendered sub-nav,
tab bar, and module links in production (/{moduleId} not /{space}/{moduleId})
- Add buildSpaceUrl() helper for correct external URL generation
- Fix rcart payment URLs for subdomain routing
- Fix rSchedule email links to use subdomain format
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Switch to fal.ai queue API (submit/poll/result) with 5-min deadline
to avoid synchronous timeout on long-running textured mesh generation
- Bump controls z-index to 100 so buttons aren't obscured by the
GaussianSplats3D canvas overlay
- Update progress phases for Hunyuan3D timing (60-180s)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Synchronous fal.run endpoint times out for textured mesh generation.
Switch to queue.fal.run submit/poll/result pattern with 5-minute
deadline. Update client progress phases for longer generation time.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
SAM 3D was designed for object segmentation, not full-scene
reconstruction — failed on arbitrary images. Hunyuan3D v2.1 produces
high-quality textured GLB meshes from any single image reliably.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- rtube: 4 live-split proxy routes (start/status/stop/hls), new "360 Live"
mode in folk-video-player with HLS.js multi-view grid player
- rmeets: ?api=1 route for Jitsi External API mode, new folk-jitsi-room
web component with 360° Director panel (canvas captureStream)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
SAM 3D outputs native Gaussian splat .ply files (rendered via existing
initSplatViewer) instead of GLB meshes, with full-scene support including
people and backgrounds. Faster generation (5-30s vs 45-75s), $0.02/gen.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Server-side proxy routes (POST /api/360split, GET status, POST import) fetch
video from R2, submit to video360-splitter, and import results back. Frontend
adds Split 360° button with settings modal, progress polling, and library import.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Board/List view toggle in nav bar. List view shows tasks grouped by status
with checkboxes (check → DONE, uncheck → TODO), priority left-border accent,
and strikethrough for completed items. Board view now shows a blue pulsing
drop indicator line during drag, supports in-column reordering via sort_order,
and cross-column drops land at the cursor position. Cache version bumped.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- "Open in rTasks" button passes ?backlog=TASK-ID query param
- Kanban component reads param and shows indigo banner with task ID
- Dismiss button removes banner and cleans URL
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- checkAC → toggleAC: clicking a checked item unchecks it
- Tokens generated for all items (checked and unchecked)
- Checked items now clickable with green checkmark links
- Uncheck shows amber banner; check shows green banner
- "Open in rTasks" button links to kanban board
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace indeterminate sliding animation with a realistic percentage fill
bar using logarithmic curve (asymptotes at 95%, based on ~60s typical
Trellis 2 timing). Jumps to 100% on completion.
Fix "sign in to save" showing for authenticated users by checking both
localStorage and cookie for auth token, and improving the 401 message
to "Session expired" when a token exists locally.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The checklist check/send endpoints don't need space context — the HMAC
token and API key provide their own auth. Routes are now:
GET /rtasks/check/:token
POST /api/rtasks/send
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
POST /checklist/send builds and emails a styled checklist from backlog AC items.
GET /checklist/:token verifies the HMAC signature, toggles the AC in the
markdown file, and re-renders the page with fresh links for remaining items.
Adds dev-ops volume mount and RTASKS_HMAC_SECRET/RTASKS_API_KEY env vars.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add POST /api/splats/save-generated so AI-generated 3D models persist
- Add "Save to Gallery" button in viewer after AI generation
- Remove non-functional "Upload Photos/Video" tab (no processing worker)
- Add 120s server-side timeout on fal.ai Trellis 2 fetch
- Fix GLB viewer memory leak (animation loop + resize listener on disconnect)
- Show elapsed time + phase messages during generation progress
- Bump CSS v3, JS v4 cache versions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove apple-mobile-web-app-capable (redundant with manifest.json display),
add AbortController timeout + 524 handling for /api/3d-gen fetch, and
downgrade CommunitySync WS error to console.warn since reconnect is automatic.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Graph performance: seed node positions to prevent NaN geometry warnings,
cache sprite textures, reduce simulation ticks (120→50 warmup, 300→150
cooldown), cap particles at 2, lower sphere segments, halve label canvas
size, add sessionStorage graph data cache with 60s TTL.
Mobile PWA: add both mobile-web-app-capable (Chrome/Android) and
apple-mobile-web-app-capable (iOS), viewport-fit=cover for notch support,
apple-mobile-web-app-title, safe-area CSS insets on header/body, fix
admin.html missing all mobile meta tags.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Timeline bar now shows "Repayment Progress" label
- Added minimize button (─/▶) to collapse the bar to a compact toggle
- When minimized, hides the track, label, and tick counter
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- rdesign: linked Affine projects per space
- rdocs: linked Docmost documents per space
- rmeets: meeting scheduling and history
- rmaps: persistent annotations, routes, meeting points
- rforum: local-first-client wrapping existing provision schemas
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contact metadata, relationships, and graph layout positions sync
via CRDT. Delegations remain server-authoritative in PostgreSQL.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a "Layers" toggle to the graph viewer that lets users select 2-3
rApps and visualize them as labeled planes on user-assignable axes
(XY/XZ/YZ) with hub+feed nodes, cross-layer flow wiring via compatible
FlowKinds, animated particle edges, and unrestricted camera orbit.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wraps existing Automerge schemas with DocumentManager/DocSyncManager
for direct client-side sync. CRUD methods for jobs, reminders,
workflows, and execution log.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Shared wallet address watchlist syncs across space members. Click
watched address to load it in the visualizer. Transaction annotations
and dashboard config schema ready for future use.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Weight accounting now uses actual base weights per authority (×100 for
integer tokens). Formula: effective = max(0, base - delegatedAway) + received.
If you have 95 Gov tokens and delegate 48, you retain 47; the recipient
gains 48 on top of their own base.
- Detail panel shows breakdown: base − delegated + received = effective
- Badge shows integer token count per authority
- Member list sidebar shows per-authority G/E/T weights (color-coded)
- Sorted by total effective weight (sum across all authorities)
- No more averages — absolute weight of voice
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Shared design metadata syncs across space members in real-time.
"Space Designs" gallery shows all designs with download links.
Artifact generation auto-publishes design metadata to peers.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Create local-first-client.ts and schemas.ts for real-time collaborative
voting. Dashboard now shows live polls with session cards, vote tallies,
and owner controls (close/delete). Votes sync across tabs via WebSocket.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Zoom: 2x/0.5x steps (was 1.33x/0.75x), 200ms animation, scroll speed 2.5x
- Node sizing: range 6-56px in trust mode (was 4-30px) for dramatic differentiation
- Text labels: 512x96 canvas with 36px font, 14x3.5 sprite scale (was 256x64, 24px, 8x2)
- Member list sidebar: toggled via "List" button, shows admins/members/viewers grouped
with effective weight, click to fly camera to node, responsive mobile stack layout
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace flat ring layout with 3D sphere distribution using Fibonacci
spiral for even node placement. Wireframe sphere guides replace flat
ring guides — visible from every camera angle.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add budget CRUD methods to FlowsLocalFirstClient (saveBudgetAllocation,
addBudgetSegment, removeBudgetSegment, setBudgetTotalAmount)
- Init local-first client in budget view with real-time onChange sync
- extractBudgetState() recomputes collective averages from Automerge doc
- Debounced auto-save (1s) via scheduleBudgetSave() on slider/pie changes
- Interactive pie chart: click wedges to select, drag boundaries between
segments to adjust allocation percentages with angle-to-pct geometry
- Selected segment highlighting (scaled wedge, white border, detail panel,
slider row highlight, legend/table row click-to-select)
- "Apply to Flow" button pushes collective budget into canvas flow as
funnel node with spending allocations mapped to outcome nodes
- LIVE indicator when WebSocket connected
- Falls back to API for demo/unauthenticated users
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Mobile photos (12MP+) were causing generation failures due to large base64 payloads.
Now resizes to max 1024px before sending. Server now returns actual fal.ai error
messages instead of generic "3D generation failed".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Click any person/member node to add them to delegation selection
- Each selected node gets 3 inline sliders (Gov/Econ/Tech) for weight assignment
- Fuzzy search input in delegation panel to find and add members by name
- Remaining weight display per authority
- "Confirm All Delegations" commits all at once, recomputes weights live
- Replaces old two-step popup with single-panel multi-select UX
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
effectiveSpace resolves to 'global' for rnetwork (global-scoped module),
so check the URL space param instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Per-authority effective weight computation (delegated/received/retained)
- Concentric ring layout (admin/member/viewer) with visual guides
- Inline delegation popup with total + domain split sliders
- Authority labels renamed: Gov/Econ/Tech with consistent colors
- Authority-filtered edge view in trust mode
- Demo delegation preview with live graph updates
- Trust API endpoints for delegation CRUD and score queries
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a new "rBudgets" sub-tab to rFlows where participants allocate
budgets across departments via sliders, with a collective SVG pie chart
showing aggregated results. Includes schema v4 migration, budget CRUD
API routes, demo seed data (5 segments, 4 participants, $500k pool),
and slider auto-normalization to 100%. Removes redundant "Flows" and
"Flow Viewer" entries from outputPaths/subPageInfos.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove standalone "Open CRM" button from graph view body and add
"Open Twenty CRM" as an external link in the module sub-nav bar,
next to Community CRM. Dashed border + margin-left:auto pushes it
to the right edge for visual distinction.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use table-layout:fixed with colgroup for consistent APY/30d Avg/TVL
column alignment. Dedicated yield-rates-table class with right-aligned
monospace numeric columns. Bump JS cache v=12.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>