Demo fixes: real media, LND QR/balances, mempool.guide, overlay sessions, mobile scroll #76

Merged
lfg2025 merged 6 commits from demo-fixes-20260714 into main 2026-07-14 02:50:02 +00:00
Owner

Fixes the reported demo issues and two prod UI behaviors:

  • Cloud media: serve the committed demo/content library (music/photos/docs were never loaded — loader only read empty demo/files); WAV/SVG fallback for unbacked seeds; no more fake Videos; no supported source error gone
  • LND custom UI: connect QR + details now render (cert/macaroon/ports were missing from /lnd-connect-info); new on-chain + Lightning balance cards
  • Mempool demo proxies mempool.guide (mempool.space blocks embedding) + WS upgrade passthrough
  • Monitoring page fully dummied (correct MetricSnapshot shapes); Networking Profits streaming.list-services mocked
  • App icons fixed (lnd.svg → lnd.png + 15 other broken paths)
  • 8 more installed demo apps with placeholder dashboards; non-demoable apps say Not available in demo (no more Checking…)
  • Reconnect banner: server.get-state implemented + WS heartbeat 20s (proxy idle timeouts)
  • App sessions overlay the current page in every display mode — open tx never navigates away
  • Mobile: dashboard pinned to 100dvh across ≤920px so pages scroll clear of the browser tab bar

Verified with a 21-point Playwright walk against the local DEMO stack (21/21 pass); vue-tsc clean; 672/672 unit tests pass.

🤖 Generated with Claude Code

Fixes the reported demo issues and two prod UI behaviors: - Cloud media: serve the committed demo/content library (music/photos/docs were never loaded — loader only read empty demo/files); WAV/SVG fallback for unbacked seeds; no more fake Videos; no supported source error gone - LND custom UI: connect QR + details now render (cert/macaroon/ports were missing from /lnd-connect-info); new on-chain + Lightning balance cards - Mempool demo proxies mempool.guide (mempool.space blocks embedding) + WS upgrade passthrough - Monitoring page fully dummied (correct MetricSnapshot shapes); Networking Profits streaming.list-services mocked - App icons fixed (lnd.svg → lnd.png + 15 other broken paths) - 8 more installed demo apps with placeholder dashboards; non-demoable apps say Not available in demo (no more Checking…) - Reconnect banner: server.get-state implemented + WS heartbeat 20s (proxy idle timeouts) - App sessions overlay the current page in every display mode — open tx never navigates away - Mobile: dashboard pinned to 100dvh across ≤920px so pages scroll clear of the browser tab bar Verified with a 21-point Playwright walk against the local DEMO stack (21/21 pass); vue-tsc clean; 672/672 unit tests pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
lfg2025 added 6 commits 2026-07-14 02:44:39 +00:00
- Serve committed demo/content (music/photos/documents) alongside demo/files
  drop-ins, normalizing top-level folder names; Dockerfile now COPYs it. This
  is why Cloud music failed: the real library sat in demo/content while the
  loader only read the empty demo/files.
- Drop unbacked seeded Videos; runtime WAV/SVG fallback for any seeded media
  without a real file so playback never hits 'no supported source'.
- monitoring.current/history/alerts/alert-rules/export rewritten to the exact
  MetricSnapshot shapes Monitoring.vue expects (epoch-second timestamps,
  containers with limits/block IO, rpc_latency_ms, ws_connections).
- streaming.list-services + configure-service (Networking Profits page was
  erroring with Method not found).
- server.get-state snapshot so the 30s resync / reconnect path stops erroring.
- lnd-connect-info now returns cert/macaroon base64url + grpc/rest ports (the
  lnd-ui shell only renders the wallet QR + details when they're present);
  LND REST balance endpoints for the shell's new balance cards.
- Fix broken icon paths (lnd.svg → lnd.png and 15 others) against real assets.
- containers-scanned: true so app cards never sit on 'Checking…'.
- 8 new installed demo apps with placeholder dashboard UIs (btcpay-server,
  grafana, nextcloud, jellyfin, vaultwarden, nostr-rs-relay, searxng,
  uptime-kuma) via the previously unused demoAppShell.
- WS heartbeat 45s → 20s (+ping 25s) so idle-timeout proxies in front of the
  public demo stop killing the socket (the 'always reconnecting' report).
- nginx demo proxy: mempool.space → mempool.guide (mempool.space blocks the
  proxied embed) + WebSocket upgrade passthrough; txid hydration follows.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Launching an app (or opening a tx in mempool from Home/wallet/channels) used
to router.push the app-session page in overlay/fullscreen modes, swapping the
page underneath — confusing and lossy. All display modes are now store-driven:
panel renders beside the page, overlay/fullscreen render above it (teleported
to body), and the route never changes. Deep-link paths (/tx/<hash>) ride along
via the launcher's panelPath instead of a route query; closing always returns
exactly where the user was. The app-session route stays for direct links.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Register the 8 new placeholder apps in DEMO_MOCK_UI so they're launchable
  and installable in the demo.
- Demo bypasses the new-tab/tab-launch lists for demoable apps — they're
  served same-origin by the mock backend with no framing headers, so they
  render in the in-app session instead of opening broken localhost tabs.
- Non-demoable apps now say 'Not available in demo' instead of 'No demo'.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The 100dvh pin only applied below 768px; between 768–920px mobile browsers
still sized the dashboard to 100vh, hiding the bottom of every page behind
the browser tab bar with no way to scroll it into view. Apply the same pin
at ≤920px so pages always scroll fully clear with the scroll-pad margin.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fetched from /proxy/lnd/v1/balance/{blockchain,channels}; the cards stay
hidden when the endpoints are unavailable so older deployments are unaffected.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
lfg2025 merged commit 85f9fc2296 into main 2026-07-14 02:50:02 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lfg2025/archy#76
No description provided.