Commit Graph

34 Commits

Author SHA1 Message Date
Jeff Emmett c95a99794f 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:25:13 +00:00
Jeff Emmett fe8043b1d7 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:59 -08:00
Jeff Emmett 4736c202bc feat: update AppSwitcher categories in inline HTML
- rTube/rSwag → Creating, rSocials → Sharing, rData → Observing
- Rename Social & Media to Sharing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 14:17:40 -08:00
Jeff Emmett 1a2ae11c3d 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:20:28 -08:00
Jeff Emmett 48bd5d1c07 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:05 -08:00
Jeff Emmett 5589d95d1f feat: add rStack AppSwitcher dropdown to header
Adds the unified rStack app switcher as pure HTML/CSS/JS 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:56 -08:00
Jeff Emmett f99a38b243 Add Docker healthcheck to docker-compose.yml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:49:16 -07:00
Jeff Emmett 1e6ea61d35 Add .dockerignore for optimized Docker builds
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:49:10 -07:00
Jeff Emmett f197a20d0f fix: improve balance river accuracy, scaling, and waterfall flow direction
Switch to all-transactions API endpoint for proper tokenInfo with correct
decimals (fixes ERC20 amounts like USDC/6 decimals being treated as 18).
Fix flow scale to use maxTx instead of maxBalance so individual flows are
visible. Change waterfall flows from vertical to diagonal down-right curves.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 12:53:29 -07:00
Jeff Emmett a6be330708 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 eb5f93e445 fix: sequential Safe API calls + sankey-proportional waterfalls
Fix 429 rate limiting by making chain detection and data fetching
sequential with delays. Update waterfall viz to use bezier curves with
widths proportional to river width at entry/exit points.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 10:32:09 +00:00
Jeff Emmett 900c93793d chore: harden rwallet container with read-only fs and cap_drop
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 09:45:59 +00:00
Jeff Emmett 62ab606791 feat: standardize ecosystem footer with all 16 r-suite apps
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 09:45:59 +00:00
Jeff Emmett 63adc79e73 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 4c25ccd2ee 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:22 -07:00
Jeff Emmett 584b63e77f feat: migrate to EncryptID SDK browser bundle
Replace 261-line custom IIFE with SDK browser bundle import.
Keep localStorage migration from old rwallet_encryptid key.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:36:03 -07:00
Jeff Emmett 13e3c64572 feat: add r* ecosystem footer to static HTML
Add ecosystem footer with all 10 r* app links to the wallet
visualization landing page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 08:58:48 -07:00
Jeff Emmett 822582b1fd feat: require EncryptID auth for wallet visualizations
Add requireAuth() gate to all visualization pages. Unauthenticated users
are redirected to the home page with a login prompt and auto-redirect
back after signing in.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 11:54:22 -07:00
Jeff Emmett 04f2a5a913 Add backlog task-5: view navigation and zoomable diagrams
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:51:42 -07:00
Jeff Emmett 6970e22b0e Add moneybag emoji favicon to all pages
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:44:16 -07:00
Jeff Emmett c02fa2652b Add view navigation tabs and zoomable diagrams
Users can now switch between Multi-Chain Flow, Balance River, and
Single-Chain Sankey views without returning to the homepage — wallet
address is preserved across navigation. Added d3.zoom() to Sankey
and multi-chain flow charts with pan, scroll-zoom, and reset controls.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 08:47:26 -07:00
Jeff Emmett 391db9aa20 Robust rate limiting: concurrency pool, graceful failures, longer backoff
- Add pooled() concurrency limiter (2 chains data, 3 chains detection)
- fetchJSON returns null on exhausted retries instead of throwing
- Backoff starts at 2s, doubles up to 32s, 5 retries
- fetchAllChainsData: failed chains skipped, partial data still renders
- fetchChainData: 300ms delay between requests within same chain
- Cache bust v4

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 07:51:40 -07:00
Jeff Emmett 1c2e0fc9bb Combine chain selector with legend, move spam warning to bottom
- Chain buttons now serve as both selector and color legend (dot + name)
- Removed redundant color-bar and logo circle, replaced with simple dot
- Moved spam warning below transfer tables, made it subtle
- Added "tx" suffix to transfer counts for clarity

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 07:45:44 -07:00
Jeff Emmett 9dc2b01896 feat: add optional EncryptID passkey authentication
Add passkey sign-in to the static wallet explorer:
- Add js/encryptid.js with WebAuthn registration/authentication
- Add auth button to hero section of index.html
- Persists auth state in localStorage
- No backend required — all client-side

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 07:34:41 -07:00
Jeff Emmett d7892f4404 Speed up data fetching: parallel across chains, sequential within
Each chain has its own API server (different subdomain) so rate limits
are independent. Now fetches all chains in parallel while keeping
requests within each chain sequential. Removes unnecessary sleep()
delays between requests to the same server.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 07:17:36 -07:00
Jeff Emmett 72efe9731b Fix persistent 429: bust JS cache, stagger all API calls sequentially
- Add ?v=2 cache busting to all JS script tags (old version was cached)
- Reduce nginx JS cache from 1y to 1h with must-revalidate
- fetchChainData now sequential (was 4 parallel requests per chain)
- Increase chain detection delay from 150ms to 300ms

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 07:12:02 -07:00
Jeff Emmett 7c3f825c80 Force 4-column layout for How It Works steps
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 07:10:23 -07:00
Jeff Emmett 057931f02a Update backlog: add task-4 rate limiting fix
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 07:09:03 -07:00
Jeff Emmett c6df6de6d3 Fix 429 rate limiting: add retry backoff and stagger API requests
- fetchJSON retries up to 4 times with exponential backoff on 429
- detectSafeChains checks chains sequentially with 150ms delay
- fetchAllChainsData fetches chains sequentially with 200ms delay

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 03:46:06 -07:00
Jeff Emmett c6264af4cb Update backlog: add task-3 hero title styling
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 03:44:19 -07:00
Jeff Emmett bfdb422f1e Reorder hero title: management on first line (blue), communities on second (white)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 03:40:35 -07:00
Jeff Emmett c2b3c1e955 Add backlog task tracking for rWallet.online platform
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 03:35:05 -07:00
Jeff Emmett d0c75aba8f Transform into generalized rWallet.online platform
Replace hardcoded single-wallet static site with a dynamic platform
that can explore any Safe multi-sig wallet across 7 chains via live
Safe Global API data.

New files:
- js/safe-api.js: Browser-side Safe Transaction Service API client
- js/data-transform.js: API response to D3 visualization transforms
- js/router.js: URL-based state management and shared address bar

Modified:
- index.html: Rich homepage with wallet input, ELI5, viz cards, demo CTA
- wallet-visualization.html: Dynamic single-chain Sankey from live data
- wallet-timeline-visualization.html: Dynamic Balance River from live data
- wallet-multichain-visualization.html: Dynamic multi-chain flow from live data
- Dockerfile: Copy js/ directory alongside HTML files
- docker-compose.yml: Add rwallet.online domain to Traefik routing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 03:32:54 -07:00
Jeff Emmett 995a54565a Initial commit: Wallet visualization tools
- Balance river timeline with zoom/pan controls
- Multi-chain flow analysis (Gnosis, Ethereum, Avalanche, Optimism, Arbitrum)
- Gnosis chain Sankey overview
- Docker setup for deployment at wallets.bondingcurve.tech

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 13:56:42 +00:00