Commit Graph

50 Commits

Author SHA1 Message Date
Jeff Emmett 50fbb7808c 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:50 +00:00
Jeff Emmett 8b2282a615 Merge branch 'dev' 2026-02-25 14:31:23 -08:00
Jeff Emmett e6591594ba fix: add Traefik priority 130 to override rspace-online routing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 14:31:20 -08:00
Jeff Emmett c623a6a600 Merge branch 'dev' 2026-02-25 14:22:29 -08:00
Jeff Emmett 8ce24be479 feat: standardize header, categories, cross-app spaces
- AppSwitcher: rTube/rSwag → Creating, rSocials → Sharing, rData → Observing
- EcosystemFooter: updated link order to match new categories
- UserMenu: 🔑 Sign In button, 🔐 lock when logged in
- SpaceSwitcher: reads EncryptID token, sends Bearer header
- /api/spaces proxy: forwards to rspace.online (canonical spaces)
- /api/me: verifies EncryptID token for auth status
- Header.tsx: standardized bg-slate-900/85 across all apps

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 14:17:13 -08:00
Jeff Emmett 3ca157a588 Merge branch 'dev'
# Conflicts:
#	app/layout.tsx
#	app/page.tsx
#	components/AppSwitcher.tsx
#	docker-compose.yml
2026-02-25 13:37:24 -08:00
Jeff Emmett 6c23811516 feat: add space subdomain routing and ownership support
- Traefik wildcard HostRegexp for <space>.rfunds.online subdomains
- Middleware subdomain extraction and path rewriting
- Provision endpoint with owner_did acknowledgement

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 13:22:49 -08:00
Jeff Emmett 5f04086606 feat: add space subdomain routing and ownership support
- Traefik wildcard HostRegexp for <space>.r*.online subdomains
- Middleware subdomain extraction and path rewriting
- Provision endpoint with owner_did acknowledgement
- Registry enforces space ownership via EncryptID JWT

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 13:19:47 -08:00
Jeff Emmett 5b22245076 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:07 -08:00
Jeff Emmett 07a9d48f71 Add 💰 emoji favicon to rFunds
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 12:39:51 -08:00
Jeff Emmett 1c9130aa2a Add internal provision endpoint for rSpace Registry
Simple acknowledge endpoint — no DB to provision. Returns ok status
when called by the registry during space activation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:30:14 -08:00
Jeff Emmett f5df44b7a5 Merge remote-tracking branch 'gitea/main' 2026-02-25 00:06:13 -08:00
Jeff Emmett 63164a00ad feat: add demo space auth bypass in middleware
Skip EncryptID token check for demo subdomains when
ENCRYPTID_DEMO_SPACES env var is set. Uses isDemoRequest()
from @encryptid/sdk v0.2.0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:06:07 -08:00
Jeff Emmett f4629a48c2 feat: standardize Header, EcosystemFooter, and shared components
Move nav to shared Header in layout.tsx, remove inline header/footer
from page.tsx. Add UserMenu, SpaceSwitcher, and updated AppSwitcher.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:04:29 -08:00
Jeff Emmett b7308ffabc fix: landing page improvements and SpaceSwitcher domain support
- SpaceSwitcher auto-derives domain from window.location
- Fix landing page issues (redirect bug, duplicate footers,
  broken links, missing content)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 23:32:47 -08:00
Jeff Emmett 5ff8b8a83f fix: space links use subdomain URLs instead of rspace.online path
Space links now go to <space>.<app-domain> (e.g., myspace.rfunds.online)
instead of rspace.online/<space>. Domain derived from window.location
when not explicitly provided.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 23:18:57 -08:00
Jeff Emmett 3323f7c9bf fix: nest Sign Out under username dropdown in UserMenu
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 23:09:15 -08:00
Jeff Emmett ce1804298a feat: add wildcard subdomain routing for rSpace spaces
All registered spaces (e.g. demo.rfunds-online.online) now route to this
app at Traefik priority 100. Bare domain stays at priority 120.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 08:08:31 +01:00
Jeff Emmett c8eaa420fa feat: standardize header with AppSwitcher, SpaceSwitcher, and UserMenu
- Replace inline nav/Navbar with shared Header component
- Header pattern: AppSwitcher dropdown / SpaceSwitcher / actions / Sign In
- SpaceSwitcher and UserMenu work without SDK dependency
- Consistent across all r*Apps

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 23:03:11 -08:00
Jeff Emmett 00fc152ed2 feat: standardize AppSwitcher and EcosystemFooter across all rApps
- Update AppSwitcher with all 26 r*Apps in 8 categories
- Add EcosystemFooter component with consistent ecosystem links
- Categories: Creating, Planning, Communicating, Deciding,
  Funding & Commerce, Social & Media, Work & Productivity,
  Identity & Infrastructure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 22:48:03 -08:00
Jeff Emmett bdebf5cda7 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:08 -08:00
Jeff Emmett fcc253e7ca fix: dark background + emoji favicon for rStack design consistency
Standardize to dark background (#0f172a / slate-900) and add emoji
data URI favicon matching the rStack ecosystem.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:19:07 -08:00
Jeff Emmett d97adce1cd Merge branch 'main' of ssh://gitea.jeffemmett.com:223/jeffemmett/rfunds-online
# Conflicts:
#	app/page.tsx
2026-02-24 19:20:45 -08:00
Jeff Emmett bc4bed611c feat: add rStack AppSwitcher dropdown to header
Adds the unified rStack app switcher 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:51 -08:00
Jeff Emmett 047d7c3578 Add Docker healthcheck to docker-compose.yml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:49:12 -07:00
Jeff Emmett 4264ac9be2 feat: add dynamic enoughness layer to Budget River
Funnels can now declare a sufficientThreshold and dynamicOverflow.
When dynamicOverflow is true, surplus routes to the most underfunded
targets by need-weight instead of fixed percentages. Visual layer adds
golden glow on sufficient funnels, sufficiency progress bar, ENOUGH
status pill, and a system-wide Enoughness Score badge.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:38:23 +00:00
Jeff Emmett 15b9ba62a6 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 0afb85e9f7 feat: sankey-proportional waterfalls + multi-chain Safe support
Rewrite budget river waterfalls with bezier-curved tapered shapes where
width encodes flow magnitude (inflows flare into river, outflows taper
out). Add Ethereum, Base, Polygon, Arbitrum to Safe chain detection.
Fetch real transaction history for live inflow rates.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 10:32:07 +00:00
Jeff Emmett e683175c65 feat: add Budget River waterfall visualization view
New /river page showing funding flows as an animated river with waterfalls
cascading in (inflows) and out (spending). SVG-based with CSS animations
for water effects, ripples, and current lines. Supports demo mode with
simulated data and live mode via Safe Global API for real on-chain balances.
Also includes source node type and landing page nav links.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 10:02:49 +00:00
Jeff Emmett cff46bb0fc feat: standardize ecosystem footer with all 16 r-suite apps
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 09:46:01 +00:00
Jeff Emmett 162d39b9d1 docs: add MODULE_SPEC.md with permission model and capabilities
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 12:30:14 -07:00
Jeff Emmett af5b2d1a69 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:21 -07:00
Jeff Emmett 93e426abbe chore: initialize backlog task tracking
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 14:08:58 -07:00
Jeff Emmett 42942cc962 feat: add real-time flow simulation engine and clickable rVote proposal links
Replace random-noise simulation with actual flow logic: inflow accumulation,
threshold-gated overflow distribution to downstream funnels, spending drain
to outcomes, and auto status transitions. Outcomes linked to rVote proposals
are now clickable links opening the live proposal on rvote.online.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:59:13 -07:00
Jeff Emmett 216df8c06a feat: add live demo page with rSpace data via useDemoSync
Replace /demo redirect with full expense tracking demo powered by
real-time WebSocket connection to the shared demo community. Budget
overview, expense editing, balance calculations, and settle-up all
sync across the r* ecosystem in real-time.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:39:15 -07:00
Jeff Emmett 57f3caf8aa feat: migrate auth to EncryptID SDK client
Replace duplicated WebAuthn ceremony code with SDK EncryptIDClient.
Add cookie persistence for server-side token access.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:35:59 -07:00
Jeff Emmett 6411604852 feat: add funding sources — card payments via Transak and funding source management
- FundingSource types: card, crypto_wallet, safe_treasury, bank_transfer
- TransakWidget component with iframe postMessage handling
- FundingSourcesPanel with CRUD, config forms per type, and Fund Now action
- FunnelNode edit modal: new Funding Sources section
- Space page: Fund dropdown with Deposit (Crypto) + Pay with Card options

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:21:44 -07:00
Jeff Emmett f6e3ef6487 feat: add /demo redirect and ecosystem footer
Add demo page that redirects to /tbff (the actual TBFF demo).
Add full r* ecosystem footer with all 10 apps to landing page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 08:58:40 -07:00
Jeff Emmett 2c80f4608e Fix TypeScript build: enable downlevelIteration for Uint8Array spread
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 19:32:29 -07:00
Jeff Emmett 502c96ab45 Fix Docker COPY conflict by copying source before node_modules
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 19:27:38 -07:00
Jeff Emmett bb854e252f Fix Docker build: use parent context for encryptid-sdk
The @encryptid/sdk dependency uses file:../encryptid-sdk which
requires the build context to include the sibling SDK directory.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 19:23:08 -07:00
Jeff Emmett 333a11856e Add emoji favicon (💸) for browser tab
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 19:13:37 -07:00
Jeff Emmett a6190636a8 feat: add EncryptID passkey authentication to space editor
Requires authentication via EncryptID before accessing the flow
editor. Adds AuthButton component, auth store, and middleware.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 11:47:25 -07:00
Jeff Emmett d5d5be3fa6 feat: integrate flow-service backend API for live TBFF deployment
Add Deploy/Sync/Deposit buttons to space editor that connect to the
flow-service backend at rfunds.online/api/flows. Visual designs can
now be deployed as live flows with real threshold logic and overflow
distribution.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 11:14:54 -07:00
Jeff Emmett 8c3baed4b8 feat: add Superfluid stream edges, 0xSplits view, and rVote API client
- StreamEdge component with animated dash pattern for Superfluid flow visualization
  (planned/active/paused status, flow rate + token labels)
- SplitsView component showing recipient addresses, percentage bars, and export config
- rVote API client module (fetchSpace, fetchPassedProposals) via CORS proxy
- Stream-out handle on FunnelNode for creating stream connections
- Splits and streams display in FunnelNode edit modal
- Edge type system refactored to support allocation + stream edge data

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:20:51 -07:00
Jeff Emmett f012502133 feat: add cross-app integration panel for Safe wallets and rVote proposals
Link external data sources to rFunds spaces:
- Safe Global API client (Gnosis + Optimism) for wallet balances → Funnel nodes
- rVote CORS proxy + client for passed proposals → Outcome nodes
- Integration panel UI with preview/import workflow
- Source badges on nodes (chain icon for Safe, rVote score for proposals)
- State persistence for integrations in save/load/share

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:08:19 -07:00
Jeff Emmett 6b29141d1a feat: add +/- buttons on flow edges for inline allocation adjustment
Custom AllocationEdge component renders clickable +/- controls at each
edge's midpoint, allowing users to increment/decrement allocation
percentages by 5% without opening the funnel edit modal. Sibling
allocations are automatically renormalized to sum to 100%.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 09:25:11 -07:00
Jeff Emmett 4cf1e7279b fix: add empty public directory for Docker build
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 08:11:23 -07:00
Jeff Emmett 1f40ab57cf feat: initial rfunds.online with TBFF interactive platform
Landing page explaining threshold-based flow funding, interactive demo at /tbff
with the full Treasury → sub-funnels → outcomes preset, and user-created spaces
at /space with save/load/share functionality via localStorage and URL hash state.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 08:09:16 -07:00
Jeff Emmett 6b3f78d756 Initial commit from Create Next App 2026-02-13 08:02:05 -07:00