Skip to content

fix(wall): keep navbar visible during calibration; graceful camera placeholder#40

Merged
rwlove merged 1 commit into
mainfrom
fix/wall-calib-navbar-and-cam-placeholder
Jun 12, 2026
Merged

fix(wall): keep navbar visible during calibration; graceful camera placeholder#40
rwlove merged 1 commit into
mainfrom
fix/wall-calib-navbar-and-cam-placeholder

Conversation

@rwlove

@rwlove rwlove commented Jun 12, 2026

Copy link
Copy Markdown
Owner

What

The AI page (/wall/) header was hidden whenever calibration was pending, and the camera previews rendered as broken-image icons.

Header not visible (real bug — fixed)

.wall-calib used position: fixed; inset: 0; z-index: 1000, painting the calibration takeover over the entire viewport — navbar included. The kiosk operator couldn't navigate away from the AI page while calibration was pending.

  • Anchor the overlay below the navbar (top: var(--wall-navbar-h)) instead of inset: 0.
  • wall.js now measures the real navbar height into --wall-navbar-h (the 56px fallback was ~25px short of the actual ~81px navbar, which also subtly mis-sized the grid height calc).
  • Bump wall-sw CACHE_NAMEv5 so kiosks flush the old precached shell assets.

Camera previews (UX hardening)

While pump-cv has no decoded frame yet, the snapshot endpoint 404s (cold start / RTSP disconnect), so the <img> showed a broken-image icon. Now both the calibration wizard previews and the live wall-cam tiles show a "waiting for camera…" placeholder instead.

What this does NOT fix

The live broken feeds are not a code bug. pump-cv cannot open either RTSP source — its log loops cannot open source rtsp://user:password123@gym-front:554/... (and gym-back) every 30s. DNS, DHCP reservations, and the CiliumNetworkPolicy (TCP/554 to 10.10.40.0/24) all check out, so the cause is the camera credential/config in home-ops (the rendered password is password123, sourced from the pump/frigate 1Password items via the pump-cv ExternalSecret). Tracked separately.

Test

  • node --check on wall.js / wall-sw.js
  • go build ./...

🤖 Generated with Claude Code

…aceholder

The AI page's calibration takeover used position:fixed; inset:0; z-index:1000,
painting over the shared navbar entirely whenever calibration was pending — so
the kiosk operator couldn't navigate away from /wall/. Anchor the overlay below
the navbar instead (top: var(--wall-navbar-h)), and have wall.js measure the
real navbar height into --wall-navbar-h (the prior 56px fallback was ~25px
short, which also mis-sized the grid height calc).

Camera previews now show a "waiting for camera…" tile instead of a broken-image
icon while pump-cv has no decoded frame yet (the snapshot endpoint 404s during
RTSP cold start / disconnect). Applies to both the calibration wizard previews
and the live wall-cam tiles.

Bump wall-sw CACHE_NAME to v5 so kiosks flush the v4 precache and pick up the
changed shell assets.

Note: this does not fix the live broken feeds — pump-cv cannot open either RTSP
source (gym-front/gym-back); that is a camera-config/credential issue in
home-ops, tracked separately.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@rwlove rwlove merged commit fb8c64b into main Jun 12, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant