frontend/src/.
Stack
TanStack Query manages all server state. Long-lived list views (minions, jobs, keys, fleet, etc.) auto-refresh every 30 seconds without any user interaction.
Source layout
features/<area>/ folder mirrors the corresponding backend module. Feature components, hooks, and route definitions live together inside their feature folder.
Theme
The app uses CSS variables for light/dark theming, defaulting to dark mode. The single accent colour is Halite Amber#e5a00d.
Generated API types
The filefrontend/src/shared/api/types.gen.ts is generated from the backend’s OpenAPI schema. Do not hand-edit this file. After changing any backend Pydantic schema or route, regenerate it:
app.openapi(), and pipes the JSON through openapi-typescript to produce types.gen.ts. Commit the regenerated file alongside your backend changes.
gen-types.sh requires the backend’s .venv to exist and have the package installed (pip install -e '.[dev]'). The script activates it automatically — you do not need to activate it yourself first.Related pages
- API Spec — regenerating the OpenAPI spec and types
- Local Development — running the frontend locally