Files
Stephen M AbbottandClaude Opus 4.8 098a4aa366 Brand assets, link previews, iOS icon, supporter profiles, node --status
Branding & sharing:
- Generated brand mark (cycle arrow around a coin) rendered by a committed,
  reproducible script: favicon.svg/.ico + 16/32/48, apple-touch-icon (180px,
  opaque as iOS requires), 192/512 + maskable PWA icons, 1200x630 OG card
- index.html is now templated so og:image/og:url are absolute (scrapers
  ignore relative URLs); SPARECYCLES_PUBLIC_URL overrides behind a proxy
- site.webmanifest + apple-mobile-web-app-* meta so "Add to Home Screen"
  picks up the icon and name; theme-color per colour scheme
- Assets also served from / (favicon.ico, apple-touch-icon.png, ...) and
  answer HEAD, which link scrapers and uptime checks use
- Static JS/CSS are cache-busted by mtime so a deploy can't leave visitors
  running stale JS against a new API

Supporters & profiles:
- Supporter count is now a button opening a modal listing supporters, their
  node status, and their contribution to that project
- New GET /api/projects/<slug>/supporters and GET /api/accounts/<name>
- Public profile pages at #/u/<name>: submitted apps, donation totals,
  projects supported. Usernames link there from the supporters modal, the
  donor leaderboard, and project bylines. Node names/tokens stay private.

Node visibility:
- node_connector.py --status shows detected runners, pool-side online state,
  served queues and recent jobs; read-only, safe beside a running connector
- New GET /api/nodes/me backs it; Connect page documents backgrounding the
  connector and tailing its log on macOS/Linux/Windows

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 23:55:08 -07:00
..