Files
warmbly/web
Matthew Meszaros 3b9d2f3b07 feat(admin-ui): worker health banner with filter chips
Workers list now computes a health summary client-side from the existing
queries and shows a yellow banner with a count when any worker needs
attention (errored, offline, or mid-install). Filter chips below the
banner narrow the table by problem category so the admin can drill in
without opening each worker.

Categories surfaced:
  - errored: install_state = "error"
  - offline: installed, but no heartbeat in 5+ minutes
  - in progress: pending / provisioning / uninstalling
  - stale config: profile.updated_at > worker.config_applied_at
  - update available: profile.resolved_image_tag != worker.image_version

Live polling stays at 15s, so a worker going offline shows up within
~75s of the last missed heartbeat. The list also fetches profiles so the
stale-config and update-available chips can compute without extra
round-trips.
2026-05-18 14:55:54 +00:00
..
2026-02-11 17:54:49 +01:00
2026-02-14 05:38:27 +01:00

Warmbly Web App

React + TypeScript frontend for Warmbly.

Stack

  • React 19
  • Vite (Rolldown)
  • TypeScript
  • TanStack Query
  • Zustand
  • Tailwind CSS 4

Prerequisites

  • Node.js 20+
  • pnpm 10+

Setup

cd web
pnpm install
cp .env.example .env

Run

pnpm dev

Default dev URL: http://localhost:5173

Quality Checks

pnpm lint
pnpm test:run
pnpm build

Project Layout

  • src/app route pages and layouts
  • src/components UI and feature components
  • src/lib/api API clients, hooks, and models
  • src/stores Zustand store slices