Commit Graph

1881 Commits

Author SHA1 Message Date
Jeff Emmett 344729d5c1 Merge branch 'dev'
CI/CD / deploy (push) Has been cancelled Details
2026-04-15 12:01:07 -04:00
Jeff Emmett 1fe9b1c8bd feat(canvas): add Extract to Canvas button on all generator shapes
One-click extraction of generated artifacts (images, videos, SVGs) from
generator tools into standalone canvas objects visible to all collaborators.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 12:00:57 -04:00
Jeff Emmett 738f6bf9dc Merge branch 'dev'
CI/CD / deploy (push) Failing after 1m58s Details
2026-04-15 11:46:21 -04:00
Jeff Emmett 219fd45ad7 fix(rdata): use outputPaths instead of tabs for single sub-nav bar
Replaced dual-bar layout (subnav + tabbar) with standard outputPaths
so rData views (Content Tree, Cloud, Analytics) render in the unified
subnav pill bar like all other modules.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 11:46:19 -04:00
Jeff Emmett a653f94774 Merge branch 'dev'
CI/CD / deploy (push) Failing after 1m58s Details
2026-04-15 11:38:42 -04:00
Jeff Emmett 2b33479f7b fix: skip landing pages — go straight to interactive demo app
Bare-domain rspace.online/{moduleId} now rewrites directly to demo
space instead of rendering marketing landing pages. Also removed
auto-show info panel on first visit — info panel now only opens
via the info button.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 11:38:36 -04:00
Jeff Emmett bccb47c73c Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m8s Details
2026-04-15 11:33:48 -04:00
Jeff Emmett 0d5aeebd8e fix: PWA install banner uses root-domain cookie for cross-subdomain dismiss
localStorage is per-subdomain so dismissing on demo.rspace.online didn't
persist to jeff.rspace.online. Now uses a .rspace.online cookie (10yr
max-age) so one dismiss covers all subdomains.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 11:33:44 -04:00
Jeff Emmett 3f333ee125 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m3s Details
2026-04-15 11:15:41 -04:00
Jeff Emmett a2dbf4533a feat(rchats): add global chat widget + unread count endpoint
Persistent chat panel accessible from any page via header icon.
Sliding right panel (360px) with channel selector, message feed,
composer, and unread badge. REST polling with localStorage state
persistence. Includes unread-count API endpoint for badge updates.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 11:15:33 -04:00
Jeff Emmett 7bbbd57a55 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m29s Details
2026-04-15 11:12:06 -04:00
Jeff Emmett 0f6b5ecd8d fix: disable all feature tours — shell welcome tour, TourEngine, landing links
Tours were demoing stale features and auto-triggering annoyingly.
TourEngine.start() now returns immediately (no-ops). Shell welcome
tour JS/CSS/HTML removed. "Start Guided Tour" links stripped from
all 27 landing pages. Tour CSS selectors removed from info panel.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 11:12:00 -04:00
Jeff Emmett 1ca61c3a29 Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m0s Details
2026-04-15 10:30:38 -04:00
Jeff Emmett a5aeb9fef5 fix(rtime): remove empty shell subnav + compact mobile tab/stats bars
Shell subnav now skips rendering when module has no outputPaths/subPageInfos
(rTime uses internal tab-bar). Mobile CSS tightened: smaller tabs, condensed
stats-bar, skill legend hidden on narrow screens.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 10:30:29 -04:00
Jeff Emmett a4b5f2972a Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m14s Details
2026-04-14 23:29:23 -04:00
Jeff Emmett 9002e0ffb3 fix(rmeets): replace Jitsi MI button with custom toolbar link + serve favicon.ico
Jitsi's built-in meetingintelligence toolbar button hit their paid API
(404). Replaced with customToolbarButtons entry that opens our own MI
page. Also serve favicon.png for /favicon.ico requests (was 503).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 23:29:07 -04:00
Jeff Emmett 89234000a8 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m8s Details
2026-04-14 23:23:17 -04:00
Jeff Emmett d9f5546b74 Add sablier override for encryptid scale-to-zero
Labels for encryptid + encryptid-db to join encryptid sablier group.
30m session timeout, routing via sablier dynamic config.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 23:22:57 -04:00
Jeff Emmett 4c91ba4c6d fix(rtime): remove duplicate header tabs in sub-navigation
The shell's rapp-subnav rendered Canvas/Collaborate/Fulfillment pills
(from outputPaths) while the folk-timebank-app component also rendered
its own tab-bar with the same three views. Remove outputPaths and add
explicit routes for /canvas and /collaborate so URLs still work but
navigation only appears once via the component's internal tab-bar.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 00:27:34 +00:00
Jeff Emmett 5720286667 Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m47s Details
2026-04-14 17:44:50 -04:00
Jeff Emmett f735f2beb2 feat(canvas): register 6 missing shape types for cross-rApp interop
Gov shapes (quadratic, conviction, multisig, sankey), exchange node,
and ASCII gen existed in lib/ with ports + serialization but were never
imported/defined/registered in canvas.html — now wired with toolbar
buttons, SHAPE_TO_MODULE gating, and click handlers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 17:44:03 -04:00
Jeff Emmett 38582a5d12 Merge branch 'dev'
CI/CD / deploy (push) Successful in 5m39s Details
2026-04-14 17:12:06 -04:00
Jeff Emmett f43b02d7c5 fix(canvas): eliminate triple reload + toolbar flash on /rspace
Guard SW controllerchange to only reload on updates (not first install),
remove duplicate SW registration from canvas.html, skip async module
fetch when shell already provided data, hide module-gated toolbar items
by default via CSS. Also collapse toolbar on click-off.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 17:11:57 -04:00
Jeff Emmett b3b5a2146b Merge branch 'dev'
CI/CD / deploy (push) Has been cancelled Details
2026-04-14 17:10:33 -04:00
Jeff Emmett 2ba20fabbb feat(rtime): use rTasks as task source — WeavingDoc overlay integration
rTime now pulls tasks from rTasks boards instead of maintaining its own
Task type. New WeavingDoc stores canvas overlay data (needs, position,
notes, links) while rTasks BoardDoc remains source of truth for task
metadata. 6 new /api/weave routes, updated connections/exec-state to
WeavingDoc, compat shims on legacy endpoints, task picker for unplaced
rTasks items, MCP tools updated (rtime_list_woven_tasks, rtime_place_task),
migration script for existing data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 17:09:01 -04:00
Jeff Emmett 35cd64f3fe Merge branch 'dev'
CI/CD / deploy (push) Has been cancelled Details
2026-04-14 16:43:08 -04:00
Jeff Emmett 240131ae70 feat(rflows): outcome→rTasks integration + overflow pipe interactivity
- Add linkedTaskIds/linkedBoardId to OutcomeNodeData (schema v5)
- Enhanced outcome modal: linked tasks list, create/link/unlink actions, task picker, deep links to rTasks
- 5 new API endpoints for outcome-task CRUD + board task listing
- Bidirectional status sync: all linked tasks DONE → outcome completed; any IN_PROGRESS → outcome in-progress
- Overflow pipe click-to-configure: popover with allocation sliders per target
- Animated flow stripes on active overflow pipes (CSS keyframe + SVG dash)
- Single click outcome → modal (was inline edit); dblclick still opens inline edit
- Blue count badge on outcome basin when tasks linked
- Outcome basin hover glow + cursor pointer

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 16:41:18 -04:00
Jeff Emmett 105a914139 Merge branch 'dev'
CI/CD / deploy (push) Has been cancelled Details
2026-04-14 16:38:45 -04:00
Jeff Emmett dc5dfcccc8 fix(canvas): position toolbar sub-menus beside toolbar instead of on top
Panel now opens to the right of the vertical toolbar (desktop) or left
(mobile), aligned vertically with the clicked group.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 16:38:05 -04:00
Jeff Emmett 8867c7d456 Merge branch 'dev'
CI/CD / deploy (push) Failing after 19m26s Details
2026-04-14 11:49:13 -04:00
Jeff Emmett 2e43b6aadc fix(rtime): pool circle resize + remove hex port dots + auto-weave + tooltip
- Fix pool circle not resizing: clear inline canvas dimensions before
  measuring, observe pool panel via ResizeObserver, use rAF for layout
- Remove visible port dot on hexagon commitment nodes — lines connect
  directly to hex edge, invisible hit area preserved
- Auto-weave: dropping commitment on canvas auto-connects to nearest
  unfulfilled task (was showing suggestion preview requiring confirmation)
- Add SVG tooltip on proposed connections: "{name} has been notified of
  this proposed commitment, and can approve/deny for 48 hours"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 11:49:06 -04:00
Jeff Emmett 2d2dbd0f98 Merge branch 'dev'
CI/CD / deploy (push) Failing after 11m49s Details
2026-04-14 11:27:15 -04:00
Jeff Emmett d998409b7d fix(landing): remove (you) prefix from hero wordmark
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 11:27:08 -04:00
Jeff Emmett 36f6715055 Merge branch 'dev'
CI/CD / deploy (push) Failing after 15m17s Details
2026-04-14 10:43:28 -04:00
Jeff Emmett e2e9bc42fd feat(landing): full redesign — 8-section layout with tabbed app categories
Hero with animated CSS orbs + grid overlay, stats bar, flow stories with
accent borders, 9-category tabbed showcase (all 37 rApps), 3-step how-it-works
with dotted connectors, EncryptID, final CTA, categorized footer columns.
Fixes hero hiding behind 56px header. New lp-* CSS prefix, reduced-motion
support, light/dark mode.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 10:43:18 -04:00
Jeff Emmett fe7fff5278 Merge branch 'dev'
CI/CD / deploy (push) Failing after 3m35s Details
2026-04-13 23:32:43 -04:00
Jeff Emmett 70cb919541 fix(rnetwork): add auth headers to graph viewer API calls; add Blender multi-user
- Fix 401 errors on rNetwork by passing encryptid-token as Bearer auth
  on /api/info, /api/graph, /api/workspaces fetch calls
- Add blender-multiuser replication server (multi-user-server:0.5.8)
  to docker-compose with health check and resource limits
- Add Multiplayer tab to folk-blender shape with connection info,
  server status check, and setup instructions
- Add /api/blender-multiuser/status endpoint for TCP health probe

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 23:32:33 -04:00
Jeff Emmett 61106c8d9d Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m23s Details
2026-04-13 13:37:57 -04:00
Jeff Emmett dc30b8f2e6 feat(rdocs): auto-scaffold "New Documents" notebook with blank note on first use
- Real spaces: if no notebooks exist after loadNotebooks(), auto-creates
  a "New Documents" notebook via API with a blank "Untitled" note inside
  it, expanded and opened for editing
- Demo mode: prepends "New Documents" notebook with blank starter note
  as the first item; auto-opens it on both fresh load and localStorage
  restore so rDocs always starts with a ready-to-edit blank document

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 13:37:47 -04:00
Jeff Emmett 76913cd004 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m32s Details
2026-04-13 13:31:16 -04:00
Jeff Emmett 10e70ba132 feat(security): add Traefik rate limit middleware labels
Coarse edge defense: 120 req/min average, burst 30, applied to both
rspace-main and rspace-canvas routers. Layer 1 flood cap before
Hono-level per-IP tiered limiting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 13:31:06 -04:00
Jeff Emmett ddbe5300b8 feat(security): harden MI endpoints — CORS, rate limiting, prompt sanitization
CI/CD / deploy (push) Successful in 2m24s Details
- Restrict CORS to known rSpace domains (no more open wildcard)
- Add tiered rate limiting per IP (anon vs authenticated, per endpoint tier)
- UA filtering blocks scrapers/scanners, allows browsers and AI agents
- Prompt injection sanitization: strip MI_ACTION markers, system tags, and
  known attack patterns from user-supplied content before LLM ingestion
- Space access control: private/permissioned spaces gate MI data to members
- Auth required on /triage, /execute-server-action, data-driven /suggestions
- MCP guard: require auth or agent UA for /api/mcp/*
- Anonymous WebSocket cap: max 3 per IP with proper cleanup on close
- Knowledge index + conversation memory gated to members+ (viewers get
  public canvas data only)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 13:27:16 -04:00
Jeff Emmett 4d5c394e9e fix(rdocs): persist demo notebook state in localStorage
Demo mode edits were lost on page reload — now debounce-saved to
localStorage and restored on next visit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 13:27:16 -04:00
Jeff Emmett e78b768f04 feat(security): harden MI endpoints — CORS, rate limiting, prompt sanitization
- Restrict CORS to known rSpace domains (no more open wildcard)
- Add tiered rate limiting per IP (anon vs authenticated, per endpoint tier)
- UA filtering blocks scrapers/scanners, allows browsers and AI agents
- Prompt injection sanitization: strip MI_ACTION markers, system tags, and
  known attack patterns from user-supplied content before LLM ingestion
- Space access control: private/permissioned spaces gate MI data to members
- Auth required on /triage, /execute-server-action, data-driven /suggestions
- MCP guard: require auth or agent UA for /api/mcp/*
- Anonymous WebSocket cap: max 3 per IP with proper cleanup on close
- Knowledge index + conversation memory gated to members+ (viewers get
  public canvas data only)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 13:26:53 -04:00
Jeff Emmett 6e9de87074 fix(rdocs): persist demo notebook state in localStorage
Demo mode edits were lost on page reload — now debounce-saved to
localStorage and restored on next visit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 13:26:11 -04:00
Jeff Emmett 432a3597de Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m16s Details
2026-04-13 15:51:56 +00:00
Jeff Emmett 93d75aba81 fix(rtime): split pool and weaving as interactive 50/50 on mobile
Replace scrollable stacked layout with flex: 1 split so both
visualizations are visible and interactive simultaneously without
scrolling. Sidebar capped at 80px to save vertical space.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 15:51:47 +00:00
Jeff Emmett c4bc26359c Merge branch 'dev'
CI/CD / deploy (push) Has been cancelled Details
2026-04-13 15:51:29 +00:00
Jeff Emmett 18a688bade feat(rauctions): add rAuctions module with hub page and external app embed
Registers rauctions as an embedded rSpace module that proxies the
standalone rauctions.online Next.js app. Includes hub page with active
auction listings, landing page, and MODULE_META entry for canvas display.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 15:51:10 +00:00
Jeff Emmett b877f28abc Merge branch 'dev'
CI/CD / deploy (push) Successful in 3m0s Details
2026-04-13 11:23:17 -04:00