Close the UI-review follow-ups: names typeahead, fleet form, overflow flip.
Some checks are pending
offline / test (push) Waiting to run

Staff pages typeahead customers by name (Ada, not cust_1). Add-machine is
two rows with a wide identity path and filename picker. Overflow menus
flip up near the viewport edge. Customer list no longer leaks password
hashes. UI-REVIEW.pdf remaining list is the three leftover items.
This commit is contained in:
George Lambert 2026-09-11 18:18:37 -04:00
parent 9cc0018708
commit b68fefdea8
41 changed files with 569 additions and 454 deletions

View file

@ -1,44 +1,36 @@
# UI issues still to consider
Second full walkthrough (2026-09-11): 32 screenshots, 0 application console errors on product UIs. Surfaces are visually consistent (indigo, 12px radius, dollars). Primary actions are obvious. Remaining work is listed here for human review. Full screenshot atlas and the same table: [UI-REVIEW.pdf](UI-REVIEW.pdf).
Follow-up to the 2026-09-11 review PDF. Items the review listed as open are now implemented except the three left below.
## Fixed in this pass
## Resolved from the review list
| Item | Result |
|------|--------|
| CS/sales/accounting/access-staff unstyled cents forms | Indigo shell, USD, agent/customer labels, empty illustrations |
| Fleet pause/resume/restart/on/off/pause crowding | One ⋯ menu per replica and per service; Power is status |
| Docs tab bullet dump | Cards matching Fleet |
| Simulator cream/orange brand | Indigo; orange = fault inject only |
| Header LOOPBACK vs 0.0.0.0 bind | `operator LAN · binds 0.0.0.0:3850` |
| Add machine truncated roles field | Chips |
| Admin customers inline-edit table | List + edit drawer |
| Portal API key always visible | Masked + Reveal/Copy/Regenerate |
| Catalog Georgia on indigo | system-ui |
| Trace hop grid clipping names | Wrapping columns |
| Empty “No invoices yet” | Illustrated empty state |
| Fleet on/off looking like toggles | Status pills |
| Department pages a11y | `lang`, skip link, focus-visible |
| Nav hit area/contrast | 44px tabs, `#c7c9ff` on indigo |
| Swagger as customer UI | Labeled stock |
| Severity | Issue | What shipped |
|----------|-------|----------------|
| High | Staff headings showed `cust_1` | Ledger stores names (`customer.put`). Staff UIs typeahead customers from edge (`GET /customers`) and review by name. |
| High | CS/sales/accounting HTML had no login | `verae-staff-session` :3027. Set `STAFF_AUTH=1` and `STAFF_SESSION_URL` on department servers. |
| Med | Catalog was a bibliography | Catalog index is cards (Start here / Architecture / Modules). |
| Med | Fleet identity field truncated | Two-row add-machine form; identity path is a wide field plus a filename picker. |
| Med | Disabled machines looked like faults | Intentionally disabled cards are grey (`disabled`), not degraded yellow. |
| Low | Portal statement empty cells in a table | Empty lists use the same card empty state as invoices. |
| Low | Overflow menus off-screen | Menu flips upward when near the bottom of the viewport. |
| Low | Simulator empty console was a black void | Placeholder: “Run a step to fill this trace.” |
## Still to consider
| Severity | Issue | Suggestion |
|----------|-------|------------|
| High | Staff review headings show `cust_1` because the ledger has no display name | Join statements to zappier-edge customer name, or a customer typeahead |
| High | CS/sales/accounting HTML has no login (LAN trust) | Staff SSO or shared cookie before any non-lab bind |
| Med | Catalog is still a bibliography | Card index like console Docs |
| Med | Swagger remains stock | Keep for integrators; do not skin |
| Med | Fleet add-machine identity path truncates | Two-row form + file picker |
| Med | Intentionally disabled machines use degraded yellow | Neutral grey when disabled on purpose |
| Low | Portal statement empty lists still wrap the illustration in a table row | Same card empty state as invoices |
| Low | Fleet ⋯ can open off-screen at the bottom of a long table | Flip the menu upward |
| Low | access-staff and CS HTML are twins | Share one template |
| Low | Simulator empty console is a black void | Placeholder “Run a step…” |
| Med | Swagger `/docs` remains stock | Keep it for integrators; do not skin. Portal already labels it as stock OpenAPI explorer. |
| Low | access-staff and CS HTML are twins | Share one template file if those packages ever merge. |
| Low | Staff cookie is host-scoped (`127.0.0.1`) | Fine on one operator host. For multiple DNS names, put a reverse proxy in front. |
## Visual revalidation
## How to use each surface
- **Appealing:** staff and console now match portal/admin; simulator no longer looks like a second product.
- **Obvious:** Review account, Apply credit, Edit, Reveal/Copy, Run step, ⋯.
- **Comprehensive:** review, credit, quote, export, fleet power, trace, docs, portal billing, admin customers — covered. Missing: staff identity join and catalog IA (above).
- **Operator** http://127.0.0.1:3850/ — Fleet (replicas, overflow, grey disabled machines), Trace, Docs.
- **Staff CS** :3011 — type a customer name, Review, credit in USD. `STAFF_AUTH=1` redirects to :3027.
- **Sales** :3012 — review / quote by name.
- **Accounting** :3013 — review + QuickBooks IIF / CSV.
- **Staff plane** :3025 — same review/credit after authz.
- **Customers** /portal — masked API key, empty invoice/statement cards.
- **Ops** /admin — customer list + edit drawer.
- **Lab** simulator :3847.
- **Catalog** https://zapier.georgelambert.org/ — card index, system-ui.