archy/.claude/plans/prancy-scribbling-pnueli.md
Dorian 302f22019d fix: BUG-33 CPU threshold, TASK-27 tab icons, TASK-36 iframe errors
- BUG-33: CPU load alert threshold increased from 2x to 4x core count
  (8→16 on 4-core machine) to reduce false alerts during container ops
- TASK-27: Launch buttons for new-tab apps now show external link icon
  (BTCPay, Grafana, PhotoPrism, Portainer, OnlyOffice, etc.)
- TASK-36: Iframe error screen now distinguishes between X-Frame-Options
  blocked vs container not reachable, with appropriate messaging

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 19:24:52 +00:00

3.7 KiB

Plan: Demo Seeding, Dev Environment Fix, and Developer Onboarding

Context

After the repo cleanup (docs/scripts archived to ~/Projects/archy-archive/), several dev scripts reference deleted files. Additionally, the demo needs better seeding for Portainer showcase, ThunderHub + Fedimint need to be visible, and a new developer needs docs to onboard.

Changes

1. Fix broken dev scripts

neode-ui/start-dev.sh — Remove lines 72-110 (Docker Desktop check + start-docker-apps.sh call). Replace with a one-liner noting mock backend handles simulation.

neode-ui/stop-dev.sh — Remove lines 66-74 (Docker container stop block calling stop-docker-apps.sh).

neode-ui/package.json — Remove the prebuild script (line 22) that references archived ../../loop-start.mp3. File already exists at public/assets/audio/.

scripts/dev-start.sh — Fix option 2 (Full Stack) lines 67-84 that reference start-docker-apps.sh. Guard with a skip message instead of failing.

2. Add ThunderHub (Lightning management UI)

Files: mock-backend.js, Marketplace.vue, appLauncher.ts, new icon SVG

  • Port: 3010 (3000 taken by Grafana)
  • Docker image: apotdevin/thunderhub:v0.13.31
  • Add to portMappings, marketplaceMetadata, staticDevApps, marketplace.get() in mock-backend.js
  • Add to getCuratedAppList() in Marketplace.vue (after LND entry)
  • Add to recommended tier in getAppTier()
  • Add '3010': 'thunderhub' to PORT_TO_APP_ID in appLauncher.ts
  • Create neode-ui/public/assets/img/app-icons/thunderhub.svg (Bitcoin-orange lightning bolt icon)

3. Improve Fedimint in demo

mock-backend.js:

  • Add fedimint to staticDevApps (pre-installed, running, port 8175)
  • Update marketplace.get() version from 0.4.30.10.0
  • Fix portMappings.fedimint from 8174 → 8175 (Guardian UI port)

4. Add realistic notifications

mock-backend.js — Replace empty node.notifications with 5 realistic entries: Bitcoin sync, LND channel opened, disk warning, system update, Fedimint guardian connected.

5. Rewrite README for developer onboarding

neode-ui/README.md — Full rewrite:

  • Quick start (npm install, npm start, localhost:8100, password123)
  • Architecture overview
  • Dev modes (setup/onboarding/existing/boot)
  • Mock backend capabilities (8 static apps, 30+ marketplace, WebSocket, FileBrowser API, Claude proxy)
  • Demo deployment (docker-compose.demo.yml, Portainer, ANTHROPIC_API_KEY)
  • Design system (glassmorphism classes, tokens)
  • Build commands
  • Remove Angular references and outdated sections

neode-ui/DEV-SCRIPTS.md — Update "Available Test Apps" section to list the 8 actual static apps, remove Docker apps references.

6. Verify Docker demo build

Confirm docker-compose.demo.yml paths still valid after cleanup:

  • demo/aiui/ exists (for Dockerfile.web COPY)
  • neode-ui/docker/nginx-demo.conf exists
  • neode-ui/docker/docker-entrypoint.sh exists

Files to modify

  1. neode-ui/start-dev.sh
  2. neode-ui/stop-dev.sh
  3. neode-ui/package.json
  4. scripts/dev-start.sh
  5. neode-ui/mock-backend.js
  6. neode-ui/src/views/Marketplace.vue
  7. neode-ui/src/stores/appLauncher.ts
  8. neode-ui/public/assets/img/app-icons/thunderhub.svg (new)
  9. neode-ui/README.md
  10. neode-ui/DEV-SCRIPTS.md

Verification

  1. cd neode-ui && npm start — should start cleanly, no errors about missing scripts
  2. Visit localhost:8100 → login → Dashboard shows 8 apps (bitcoin, lnd, electrs, mempool, lorabell, filebrowser, thunderhub, fedimint)
  3. Marketplace shows ThunderHub in Bitcoin category
  4. Notifications bell shows 3 unread
  5. npm stop — clean shutdown, no errors
  6. docker compose -f docker-compose.demo.yml build — builds successfully