Fixes from real fresh-install feedback (Framework node .81) + its log bundle:
Backend:
- websocket: subscribe before initial snapshot — broadcasts in the gap were
silently lost, stranding clients on stale state until a hard refresh
(the "everything needs ctrl-r" bug: My Apps stuck Loading, App Store
stuck Checking, containers-scanned never arriving)
- crash recovery: check the crash marker BEFORE writing our own PID —
recovery had never run on any node (always saw its own PID and skipped);
PID-reuse guard via /proc cmdline
- boot status: pending-boot-starts registry (recovery, stack recovery,
reconciler, adoption) — scanner overlays queued-but-down apps as
Restarting instead of Stopped after a reboot; scanner-authored
Restarting resolves immediately on a settled scan (no transitional wedge)
- install deps: bounded wait (36x5s) when a dependency is installed but
still starting ("Waiting for Bitcoin to start…") instead of instant
rejection; dependency-gate rejections remove the optimistic entry (no
phantom Stopped tile) and surface as a notification
- seed backup: auth.setup persists the onboarding mnemonic as the
encrypted seed backup (reveal previously failed on EVERY node — nothing
ever wrote master_seed.enc); seed.restore stashes too; error sanitizer
lets seed/2FA errors through instead of "Check server logs"
- lnd: bitcoind.rpchost resolved from the running Bitcoin variant
(hardcoded bitcoin-knots broke Core nodes); manifest uses derived_env
- bitcoin status: clean human message for connection-reset/startup; raw
URLs + os-error chains no longer reach the app card
- fedimint-clientd: chown /var/lib/archipelago/fmcd to 1000:1000 (root-
created dir crash-looped the rootless container, EACCES) — first-boot
script + pre-start self-heal
- log volume (>1GB/day on a day-old node): journald caps drop-in (ISO +
bootstrap self-heal), bitcoind -printtoconsole=0 everywhere (90% of the
journal was IBD UpdateTip spam), tracing default debug→info
Frontend:
- Login: Enter advances to confirm field then submits; submit always
clickable with inline errors (was silently disabled on mismatch);
Restart Onboarding needs a confirming second click (the mismatch →
"onboarding restarted" trap)
- sync store: 30s state reconciliation + refetch on re-entrant connect;
20s containers-scanned escape hatch so Checking can never show forever;
fresh empty node reaches the real "no apps yet" state
- intro video: CRF20 re-encode (SSIM 0.988) + faststart — moov was at EOF
so playback needed the full 15MB first (the intro lag)
- backgrounds: 10 heaviest JPEGs → WebP q90 (9.4MB→6.6MB); 7 stayed JPEG
(WebP larger on noisy sources)
- Web5ConnectedNodes: drop unused template ref that failed vue-tsc -b
ISO/kiosk:
- nginx: /assets/ 404s no longer cached immutable for a year; HTTPS block
gained the missing /assets/ location (served index.html as images)
- kiosk: launcher/service spliced from configs/ at ISO build (stale
heredoc force-disabled GPU); MemoryHigh/Max 1200/1500→2200/2800M (kiosk
rode the reclaim throttle = the lag); firmware-intel-graphics +
firmware-amd-graphics (trixie split DMC blobs out of misc-nonfree)
Verified: cargo test 898/898 green, npm run build green with dist
contents confirmed (webp refs, lnd.png, faststart video, new strings).
Handover for ISO build + deploy: docs/HANDOVER-2026-07-02-iso-feedback.md
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
85 lines
2.8 KiB
Markdown
85 lines
2.8 KiB
Markdown
# Replace Intro & Dashboard Backgrounds
|
||
|
||
To change the intro splash and dashboard tab backgrounds **without touching any code**, overwrite these files with your own assets. Use the exact names and locations below.
|
||
|
||
**Location:** All images go in `neode-ui/public/assets/img/`
|
||
**Format:** JPG recommended. Portrait or landscape; they use `background-size: cover` and `center center`.
|
||
|
||
---
|
||
|
||
## Intro Background
|
||
|
||
| Filename | Used for |
|
||
|----------|----------|
|
||
| **`bg-intro.jpg`** | Intro splash (alien typing + video poster + fallback), Dashboard default |
|
||
|
||
---
|
||
|
||
## Intro Video
|
||
|
||
| Filename | Where | Used for |
|
||
|----------|-------|----------|
|
||
| **`video-intro.mp4`** | `neode-ui/public/assets/video/` | Welcome Noderunner + logo, onboarding, login |
|
||
|
||
**Format:** MP4 (H.264). Keep under ~5MB for web. See `VIDEO_COMPRESSION_GUIDE.md` for optimization.
|
||
|
||
---
|
||
|
||
---
|
||
|
||
## Dashboard Tab Backgrounds
|
||
|
||
| Filename | Tab |
|
||
|----------|-----|
|
||
| **`bg-home.webp`** | Home |
|
||
| **`bg-web5.jpg`** | Web5 |
|
||
| **`bg-network.jpg`** | Server / Network |
|
||
| **`bg-settings.webp`** | Settings |
|
||
| **`bg-myapps.webp`** | My Apps |
|
||
| **`bg-appstore.webp`** | App Store / Marketplace |
|
||
| **`bg-cloud.webp`** | Cloud |
|
||
| **`bg-intro.jpg`** | Default (also intro) |
|
||
| **`bg-intro-3.jpg`** | Alternate layer during transitions |
|
||
|
||
---
|
||
|
||
## Intro Flow Backgrounds (onboarding)
|
||
|
||
| Filename | Used for |
|
||
|----------|----------|
|
||
| **`bg-intro-1.webp`** | Onboarding done, login |
|
||
| **`bg-intro-2.jpg`** | Onboarding verify |
|
||
| **`bg-intro-3.jpg`** | Onboarding path, dashboard transition layer |
|
||
| **`bg-intro-4.webp`** | Onboarding options |
|
||
| **`bg-intro-5.webp`** | Onboarding did |
|
||
| **`bg-intro-6.webp`** | Onboarding backup |
|
||
|
||
---
|
||
|
||
## Quick Reference
|
||
|
||
| Asset | Full path |
|
||
|-------|-----------|
|
||
| Intro image | `neode-ui/public/assets/img/bg-intro.jpg` |
|
||
| Intro video | `neode-ui/public/assets/video/video-intro.mp4` |
|
||
| Home | `neode-ui/public/assets/img/bg-home.webp` |
|
||
| Web5 | `neode-ui/public/assets/img/bg-web5.jpg` |
|
||
| Network | `neode-ui/public/assets/img/bg-network.jpg` |
|
||
| Settings | `neode-ui/public/assets/img/bg-settings.webp` |
|
||
| My Apps | `neode-ui/public/assets/img/bg-myapps.webp` |
|
||
| App Store | `neode-ui/public/assets/img/bg-appstore.webp` |
|
||
| Cloud | `neode-ui/public/assets/img/bg-cloud.webp` |
|
||
| Default | `neode-ui/public/assets/img/bg-intro.jpg` |
|
||
| Transition | `neode-ui/public/assets/img/bg-intro-3.jpg` |
|
||
| Intro 1–6 | `neode-ui/public/assets/img/bg-intro-1.webp` … `bg-intro-6.webp` (intro-2 and intro-3 remain `.jpg` — WebP came out larger for those) |
|
||
|
||
---
|
||
|
||
## Steps to Replace
|
||
|
||
1. Put your images in `neode-ui/public/assets/img/` with the exact filenames above.
|
||
2. Put your video in `neode-ui/public/assets/video/video-intro.mp4`.
|
||
3. Run `npm run build` (or deploy) so the new assets are included.
|
||
|
||
No code changes required.
|