Commit Graph

1959 Commits

Author SHA1 Message Date
Jeff Emmett 415c80a5fb Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m3s Details
2026-04-16 15:19:06 -04:00
Jeff Emmett 1f084fa674 fix(mi-voice): big-endian header parse, apply gain, softer voice defaults
- Parse WS frame header length as big-endian (server uses struct.pack('>I')).
  Previous little-endian read always failed, silently forcing the browser
  Web Speech fallback.
- Apply header volume via GainNode so quieter actually plays quieter.
- Default voice en-US-AriaNeural -> en-US-AvaMultilingualNeural, with
  rate -8% / pitch -2Hz / volume 0.55 for a calmer, less grating output.
  Browser fallback gets matching rate/pitch/volume.
2026-04-16 15:18:40 -04:00
Jeff Emmett db7e49ee92 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m8s Details
2026-04-16 15:01:39 -04:00
Jeff Emmett 9daeb60895 fix(collab): dedup cursors by username + same-page-only visibility
- Deduplicate cursor rendering using #uniquePeers() (was showing
  multiple cursors per user from different tabs/sessions)
- Strict same-page filtering: cursors only visible when peers share
  the same effectiveViewId (viewId ?? moduleId)
- Users on different rApps no longer see each other's cursors
- Applied same fixes to focus rings and panel "different view" badge

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 15:00:11 -04:00
Jeff Emmett 2b75651655 Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m6s Details
2026-04-16 14:56:12 -04:00
Jeff Emmett c885773844 fix(shell): move tab bar up 2px more, reduce left padding for full-width span
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 14:56:05 -04:00
Jeff Emmett 9b9170c90b Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m9s Details
2026-04-16 12:47:14 -04:00
Jeff Emmett c5a58e1908 feat(rfeeds): add landing page and standalone domain (rfeeds.online)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 12:47:05 -04:00
Jeff Emmett 31a0b93310 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m27s Details
2026-04-16 12:44:33 -04:00
Jeff Emmett 1bc2a0af8c fix(encryptid): add missing welcome-email.ts to Docker build
Dockerfile.encryptid was missing COPY for server/welcome-email.ts,
causing container crash on startup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 12:44:25 -04:00
Jeff Emmett 052be5159e Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m31s Details
2026-04-16 12:39:23 -04:00
Jeff Emmett 97c1b02c58 feat(rnetwork): power indices for DAO governance analysis
Banzhaf & Shapley-Shubik power index computation via DP, integrated
into trust engine 5-min cycle. Power tab in rNetwork 3D graph viewer
with animated bar chart, Gini/HHI gauges, and Banzhaf-scaled node
sizes. On-demand computation when DB empty. Left-drag now rotates.

New files:
- src/encryptid/power-indices.ts (pure math: Banzhaf DP, SS DP, Gini, HHI)
- modules/rnetwork/components/folk-power-indices.ts (standalone component)

API: GET /api/power-indices, GET /api/power-indices/:did,
     POST /api/power-indices/simulate

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 12:39:01 -04:00
Jeff Emmett 67b5d8e7f0 Merge branch 'dev'
CI/CD / deploy (push) Failing after 1m56s Details
2026-04-16 12:19:33 -04:00
Jeff Emmett b0049ba8f4 fix(shell): close header-tabbar gap, minimize all 3 header bars together
- Move tab row up 1px (top: 55px) to overlap header border, eliminating gap
- Minimize toggle now hides header + tab row + subnav (was leaving subnav visible)
- Floating restore button (top-right, semi-transparent) when headers minimized
- Smooth transition on subnav hide/show

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 12:19:26 -04:00
Jeff Emmett 24543b678d Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m4s Details
2026-04-16 11:04:25 -04:00
Jeff Emmett a2f74faa3e feat(rtime): split-screen layout — commitment form left, pool viz right
Restructured rTime from pool+weaving side-by-side to commitment entry
form (left 50%) and pool orb visualization (right 50%). Inline form
replaces modal for pledging time. Commitments list shows below form.
Weaving SVG moved to separate toggled view via "Weave" button.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 11:04:14 -04:00
Jeff Emmett 8592abd467 feat(rmeets): chat popup notifications + right-side chat panel
- Enable chat notifications (brief popup for all participants)
- Move chat panel to right side via CHAT_PANEL_POSITION
- Applied to both clean room mode and folk-jitsi-room shell mode

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 09:36:29 -04:00
Jeff Emmett 12cc724291 fix(rmeets): add recording button + post-meeting transcript link
- Add "recording" to Jitsi toolbarButtons in both clean room mode
  and folk-jitsi-room shell mode so users can trigger Jibri recording
- Add "View Transcript & Summary" link on meeting-ended screen
- Jibri network connectivity fixed on Netcup (was on wrong Docker
  network, couldn't reach Prosody XMPP)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 09:09:30 -04:00
Jeff Emmett 694f47e363 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m4s Details
2026-04-16 08:47:42 -04:00
Jeff Emmett b1dfbfd3e9 feat(rfeeds): Phase 1+2 — RSS dashboard with rApp activity adapters & user feed profiles
Phase 1: External RSS/Atom import, manual posts, OPML import, combined
Atom 1.0 output feed, background sync loop, reshare curation.

Phase 2: 8 activity adapters (rcal, rtasks, rdocs, rnotes, rsocials,
rwallet, rphotos, rfiles) read Automerge docs directly — no circular
deps. Activity cache in FeedsDoc, configurable per-module toggles.
User feed profiles with personal Atom feeds at /user/{did}/feed.xml
subscribable cross-space via existing RSS import.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 08:47:29 -04:00
Jeff Emmett ae1ab57a99 Merge branch 'dev'
CI/CD / deploy (push) Has been cancelled Details
2026-04-16 08:45:30 -04:00
Jeff Emmett d49b4ea2dc feat(rsocials): graph-based campaign creation with brief-to-canvas pipeline
Add campaign planner as primary creation tool. Brief inputs in collapsible
sidebar generate editable node graph via Gemini 2.5 Flash. New input node
types (goal, message, tone) with feeds edges to downstream post/thread nodes.
Stale tracking propagates when inputs change; batch regen + single-node AI fill.

- schemas: goal/message/tone node types, feeds edge, stale tracking, schema v8
- mod: 3 API endpoints (from-brief, regen-nodes, ai-fill-node) + /campaign-flow page
- planner: ports, wiring, rendering, inline config, brief sidebar, context menu
- css: brief panel, platform chips, stale badges, feeds edge styles

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 08:45:22 -04:00
Jeff Emmett c3f8e9ef1b Merge branch 'dev'
CI/CD / deploy (push) Has been cancelled Details
2026-04-16 08:45:11 -04:00
Jeff Emmett fec934b8a3 fix(persistence): flush docs on shutdown, fix eviction race, mobile flush
- Add saveDocImmediate() for synchronous awaitable saves (no debounce)
- Add SyncServer.flushAll() to iterate all in-memory docs
- Fix eviction race: onDocEvict now uses saveDocImmediate instead of
  debounced saveDoc (which could fire after doc deleted from memory)
- Add SIGTERM/SIGINT handlers with 10s timeout safety net
- Add visibilitychange flush on client (reliable on mobile/bfcache)
- Flush pending IDB saves in DocSyncManager.disconnect()

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 08:45:01 -04:00
Jeff Emmett 79ea868234 Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m12s Details
2026-04-16 08:17:32 -04:00
Jeff Emmett 63c6fcc941 fix(auth): preserve current page on login instead of redirecting
Only redirect to personal dashboard when on demo landing page.
Logging in from any module page now reloads in place.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 08:17:24 -04:00
Jeff Emmett af9a7582b9 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m41s Details
2026-04-15 21:29:47 -04:00
Jeff Emmett 3ec8ac5308 fix(auth): auto-focus passkey input for mobile autofill
Remove readonly and auto-focus the username webauthn input so mobile
browsers show passkey suggestions immediately when the sign-in modal
opens, matching the desktop experience.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 21:29:40 -04:00
Jeff Emmett 887d6cf24d Merge branch 'dev'
CI/CD / deploy (push) Failing after 1m58s Details
2026-04-15 19:23:38 -04:00
Jeff Emmett efe3615228 fix(auth,rcred): passkey autofill for mobile + rcred write access
- Add conditional mediation to sign-in modal so mobile browsers show
  saved passkeys with usernames in the autofill area (desktop parity)
- Add publicWrite to rcred module so recompute route's own auth runs
  instead of being blocked by the global write-access middleware

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 19:23:28 -04:00
Jeff Emmett c2fb1b2858 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m28s Details
2026-04-15 17:32:24 -04:00
Jeff Emmett 932e550c66 fix(shell): eliminate phantom tab persistence — validate + dedup on restore
Filter restored tabs against valid moduleIds from moduleList, deduplicate
on every restore path (localStorage, server sync, BroadcastChannel).
Add closed-module tracking to renderExternalAppShell to prevent server
sync from resurrecting tabs closed in the current session.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 17:32:15 -04:00
Jeff Emmett cb521cad12 feat(rtime): shell tab bar + pool legend, remove internal tabs/stats bar
- Add shell tabs: Commitment Pool, Fulfillment, Open in Cyclos
- Move stats (hours, contributors, skill breakdown) into pool legend
- Remove internal tab-bar and stats-bar from component
- Listen for rapp-tab-change shell events for view switching
- Legacy routes redirect to new tab paths

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 17:27:46 -04:00
Jeff Emmett 9f258702a1 Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m32s Details
2026-04-15 17:19:44 -04:00
Jeff Emmett c82eca38fa fix(server): add styled 404 page + stop SPA fallback serving stale HTML
Add app.notFound() handler with themed 404 page instead of Hono's
plain "404 Not Found". Restrict canvas.html SPA fallback to /rspace
sub-paths only — was serving index.html for all unmatched routes,
causing stale "Activated" page to appear on navigation errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 17:19:41 -04:00
Jeff Emmett 7214599f5a Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m7s Details
2026-04-15 17:16:58 -04:00
Jeff Emmett 72587ef690 feat(canvas): wire commitment weaving data flow between rTime and rTasks applets
Add pool-out port to folk-commitment-pool, two new applets (weaving-coverage
for rTime, resource-coverage for rTasks), fetchLiveData polling in FolkApplet,
and canvas AI tool declarations for both new applets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 17:16:48 -04:00
Jeff Emmett 4097a5eeac Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m30s Details
2026-04-15 17:12:56 -04:00
Jeff Emmett 8146f97550 fix(rnetwork): consolidate to single sub-tab menu, remove empty nav items
- Reduce tabs to Members (default), Trust, CRM
- Remove empty outputPaths (Connections, Groups placeholders)
- Hide subnav when tabbar is present (avoid double menu)
- CRM tab redirects to the CRM sub-app

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 17:12:50 -04:00
Jeff Emmett e9e2d6922b Merge branch 'dev'
CI/CD / deploy (push) Failing after 1m56s Details
2026-04-15 17:03:02 -04:00
Jeff Emmett 992d974449 fix(rcred): add cache-bust version to dashboard script tag
Cloudflare was serving stale HTML with old /dist/ path. Add ?v=1 to
force fresh load.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 17:02:59 -04:00
Jeff Emmett 6e3d9ef900 Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m2s Details
2026-04-15 16:58:06 -04:00
Jeff Emmett b2c2faee76 fix(rcred): correct script path — /modules/ not /dist/modules/
serveStatic resolves relative to dist/, so /dist/modules/ doubled the
prefix and 404'd. All other modules use /modules/rcred/file.js.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 16:57:59 -04:00
Jeff Emmett d0db0ffde7 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m19s Details
2026-04-15 16:54:57 -04:00
Jeff Emmett 123d61109e feat(rnetwork): add shell tab bar to graph view with Members as default
Replace inline filter buttons with standard shell sub-tabs (Members,
People, Companies, Trust, Layers). Default view now renders the 3D graph
on the Members tab with proper shell navigation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 16:54:50 -04:00
Jeff Emmett 5c035ac5ce Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m30s Details
2026-04-15 16:48:38 -04:00
Jeff Emmett 127d692058 fix(rcred): add Vite build entry + fix script path + darken badge color
Dashboard was empty because folk-cred-dashboard.ts had no Vite build
entry — the JS never got compiled. Add build step to vite.config.ts,
fix script src to /dist/modules/rcred/folk-cred-dashboard.js, and
darken badge background from #fbbf24 to #d97706 so it doesn't blend
with the  emoji.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 16:48:30 -04:00
Jeff Emmett 12b42b3c61 Merge branch 'dev'
CI/CD / deploy (push) Failing after 2m17s Details
2026-04-15 16:41:41 -04:00
Jeff Emmett a92b5fc100 feat(ui): add rcred badge + orange 'r' prefix in all badge pills
Add r badge for rcred in favicon, app-switcher, and tab-bar badge
maps. Render 'r' with #dc8300 orange in badge pills across all three
components (favicon SVG tspan, app-switcher HTML spans, tab-bar HTML
spans). App names (e.g. "rDocs") intentionally left uncolored.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 16:41:31 -04:00
Jeff Emmett fbffe01fa4 Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m21s Details
2026-04-15 16:31:30 -04:00