# holger-server-ui — crate card
## Reverse-engineered (from source — verify, don't trust the name)
- **One-line pitch:** Operator/admin UI for holger over the `HolgerObject` core API — a transport-agnostic view-model plus an optional egui (facett) presentation.
- **Does:** Two layers. `data` (default build, deps only on `traits`) drives the core `HolgerObject` API (satisfied by `LocalHolger` direct calls or `RemoteHolger` gRPC) and turns each response into a plain view struct exposing `state_json()` — so the UI is headlessly testable with no display/server ("see-what-the-user-sees as data"). `app` (behind the `gui` feature) is the egui + facett presentation with one blocking core call per action. Also `demo` (gui, real crates.io packages into a dev store + a robot walk) and operator tool panes: #1 holger-ds bench, #2 migrate/suck (agent connectors), #3 warehouse-backed security scan (modgunn), #5 airgap populate.
- **Key deps:** `traits` (always); under `gui`: `eframe`/`egui`/`facett`/`facett-helix`, `server-lib`, `bench-scenarios[served]`, `agent-lib`, `world-connector`, `znippy-rust-repo`, `modgunn[scan,warehouse]`, `image`. `holger-airgap` always. Robot tests use `nornir-robotui` + `egui_kittest`.
- **Shape:** both — lib (data/app/demo) + `holger-server-ui` bin (required-features=["gui"]). Package and all four bins were renamed from `holger-ui*` → `holger-server-ui*` on 2026-08-01, so the name says WHICH component the UI drives; the published `holger-ui` 0.1.4 on crates.io is a dead end (0 reverse deps, left unyanked). ~5 source files.
- **Observed role in the workspace:** The GUI front door for operators; aggregates the server + agent + bench + airgap + security tools into one pane. Default (non-gui) build is the fast headless test surface.
## Fill in (one line each — only the human knows these)
- Primary consumer(s):
- Why it exists (vs the obvious alternative):
- Hard constraint (airgap / no-C-deps / no-FFI / pure-Rust / etc.):
- Release cadence & independence (rides a parent? own repo someday?):
- Status (production / prototype / experimental / stubbed):
- Must-NOT-change invariant:
- Biggest known gap or TODO:
- Anything a newcomer would get wrong about it: