Files
AvianVisitors/avian/frontend
Twarner491 65ac7efef4 Fix atlas-card click + wire live audio + verify pipeline
- Add hidden admin-screen stub to index.html. The live JS calls
  adminEl.setAttribute() on every hashchange (via openAdmin/closeAdmin);
  with the element missing those threw a null-ref that killed
  syncRouter mid-flight, so atlas card clicks set the hash but never
  opened the detail modal. Stub is empty - menu items navigate to
  BirdNET-Pi's stock pages instead of triggering in-app admin.

- Point the live-audio Audio() at /stream (BirdNET-Pi's existing
  icecast reverse-proxy from install_services.sh:189) instead of the
  worker's /birdnet/stream. The drawer's live-audio button now plays
  real BirdNET-Pi audio on local installs.

Verified end-to-end in Docker container:
- Landing collage: 4 tiles render from seeded DB
- Atlas click: detail modal opens with image + sci/common name
- Menu drawer: opens, shows 4 items (no password in local mode)
- Auto-refresh: INSERTed Bubo virginianus into birds.db, forced
  refresh via window picker re-click, tile count 4→5 with the new
  species appearing in the collage.
2026-05-28 12:03:18 -07:00
..