docs(wiki): reconcile with session — booth console, i18n, live WS

File concept pages for the operator-UI architecture ([[booth-console]]: stack,
/api/ws live feed, anti-CSWSH) and [[i18n]] (per-user server-stored language;
resolves a dangling code-comment link). Qualify the stale 'plain React' note on
react-vite-spa. Backfill log entries for the live WebSocket, frontend foundation,
and i18n builds (which had none), plus a reconciliation lint entry. Catalog
booth-exit-flow + the two new pages in index; fix the concept count (27→41).
This commit is contained in:
2026-06-18 11:50:58 +02:00
parent 14c83e182a
commit 48660d3ec8
5 changed files with 165 additions and 8 deletions
+9 -6
View File
@@ -2,14 +2,17 @@
type: entity
tags: [parking, stack, frontend]
sources: [parking-system-architecture]
updated: 2026-06-14
updated: 2026-06-18
---
# React + Vite SPA
The frontend: a React single-page app built with Vite, **served by [[fastify]]** (MIT). Plain
React was chosen over an admin framework — see [[refine]], which was dropped because the
operator UI is simple enough that a framework's abstractions cost more than they save.
(See [[parking-system-architecture]] §2.)
The frontend: a React single-page app built with Vite, **served by [[fastify]]** (MIT).
(See [[parking-system-architecture]] §2.) Part of the [[technology-stack]].
Part of the [[technology-stack]].
> **Updated 2026-06-18:** the original "plain React, no framework" choice (an admin *framework*
> like [[refine]] was rejected) still holds — but the live operator console outgrew bare
> `useState` and now layers in **TanStack Query + Router, Zustand, Tailwind v4, Radix, and
> react-i18next**. These are libraries, not an admin framework, and each earns its place (live
> updates, routing, the terminal theme, [[i18n]]). The full operator-UI architecture — including the
> single `/api/ws` live feed — is in [[booth-console]].