Commit Graph

53 Commits

Author SHA1 Message Date
ff9ae693a6 Remediate the 2026-09-03 feature-test findings 2026-09-03 17:14:53 -04:00
4b21aa3887 Gate both kiosks behind a device token, and make an unreachable setting a test failure 2026-09-02 18:11:01 -04:00
0e3d5a6226 Promote the 2026-08-30 review security fixes and supplies ordering to main 2026-08-31 09:24:13 -04:00
870e068c44 Rebuild the dashboard around what needs a person
The board was one card per source in a fixed grid: every source got the same
small box whatever it had to say (warranties showed 5 of 50), and a box per
source flattened priority, while the largest type on the page belonged to counts
that need nobody.

Now a severity rollup, one worst-first queue of everything needing a person, and
a row of context beneath. The queue is full width, capped per source so a noisy
check cannot bury a rare one, and names what did not fit with a link to it. Chips
filter the queue by check as well as by severity; both narrow what is already
loaded, so the counts and rows cannot disagree.

Dropped: an 'All assets' tile shown beside its own four addends, a printer strip
carrying the same count a third time, three cards whose job was to display 0, and
a Recent Devices table listing five machines all 'In Use'.

Contract 0.26.0 adds optional 'shortname' on dashboard cards - a title is written
as a heading and ran wider than the hostname it qualified as a row badge.

Also: the supplies card reported 'Low Supplies 0' when Zabbix was unreachable,
which reads as reassurance rather than the truth that nothing could see the
cartridges. It now distinguishes unreachable (says so) from unconfigured (stays
quiet - the site declined the feature) from a real zero.

Full suite 2182 passed, frontend 314 passed.
2026-08-29 21:35:03 -04:00
4da6c6aa36 guest role; guide section ticking 2026-08-27 13:02:35 -04:00
376298dc02 Navigation sections declared, guide editor drag + references, USB settings, permission refresh 2026-08-27 09:30:08 -04:00
271d558f8b An unmeasurable backup must not hide a working one 2026-08-26 10:07:51 -04:00
fa856c1f94 Judge a PC's backup by its stalest kind, not its newest 2026-08-25 13:56:53 -04:00
f109dd1349 Plugin baselines skip tables that already exist 2026-08-24 09:28:52 -04:00
09e9d5f047 Carry the level everywhere a position is drawn, and gate it per occurrence 2026-08-18 09:37:29 -04:00
fbd99041b0 Buildings and levels for the floor map, and make every identifier searchable 2026-08-17 13:03:54 -04:00
265ca2eb01 Security hardening, multi-site portability, and a documentation and API-surface sweep 2026-08-14 16:28:34 -04:00
72f8da0e58 Shadow runs in-cycle; guarded share path 2026-08-13 14:54:06 -04:00
7517146238 Backup hover names the check and the capture separately 2026-08-13 13:35:17 -04:00
376b8df0fb Shadow task fixes, asset link ids, backup verdict 2026-08-13 13:20:24 -04:00
70c5bced37 Shadow-mode client script and cutover doc correction 2026-08-13 11:23:27 -04:00
3abf724ae6 Stale enforcement reports judge both clocks 2026-08-13 09:54:05 -04:00
5dcc7e30af Display role vocabulary, migration commit fix, stale enforcement reports 2026-08-13 09:30:40 -04:00
d327ea1a5c Self-updating GE-Enforce client module on displays 2026-08-12 17:21:29 -04:00
d6b433e5f4 Kiosks report their display type; whole-chain DDL parity 2026-08-12 17:07:21 -04:00
50578f33bd Full-width GE-Enforce pages; asset column no longer echoes the host 2026-08-12 17:01:10 -04:00
2c822e462d Fix reports 500 on MySQL; enforcement report asset context 2026-08-12 16:49:58 -04:00
8d1f442daf Enforcement reports with asset context; contract 0.17.0 2026-08-12 16:41:16 -04:00
e8f33cffa1 Enforcement reports with asset context and backup state; manifest editor spacing 2026-08-12 16:35:46 -04:00
ee7f8640d1 Publish gate: refuse a manifest the fleet's enforcer lib cannot read 2026-08-12 15:26:27 -04:00
c0c2982810 One-shot Edge force-update for the shopfloor displays 2026-08-12 12:26:35 -04:00
d32513727b Tech Tools section with a code generator, toner report that names the part, toner forecasting, warranty proof of cover, application uploads 2026-08-12 11:51:38 -04:00
34cb9a5e3e Dashboard polish 2026-08-11 15:28:29 -04:00
0ed8be75d9 Dashboard cards, backup last-seen 2026-08-11 14:01:57 -04:00
acadddb917 kiosk watchdog: require a visible window, kill orphans, refuse SYSTEM 2026-08-10 09:03:31 -04:00
e68f522132 display kiosk watchdog: relaunch Edge when it goes away 2026-08-10 07:54:03 -04:00
07d390789a Modal overlay-close removed from data-entry; console menu grouped 2026-08-05 13:49:34 -04:00
3d43cb3d86 Windows installer: payload hash-locking, SBOM, client-IP handling, operator docs 2026-08-03 15:08:20 -04:00
d6e3edb33f geenforce display dispatcher: purge legacy autostart in Wow6432Node + all hives 2026-07-30 15:54:19 -04:00
98a40e0d77 geenforce display dispatcher: revert to direct Edge shortcut 2026-07-30 15:37:26 -04:00
87785007a2 geenforce display dispatcher: wait for kiosk URL before launching Edge 2026-07-30 15:33:49 -04:00
4610108a0c geenforce display dispatcher: purge legacy HKLM Run autostart 2026-07-30 14:30:04 -04:00
488fa0e4a7 ui: audit-log column clipping + ge-enforce report modal width 2026-07-29 08:56:16 -04:00
02147827f0 display FQDN keying + kiosk dropdown + dispatcher + multi-word search 2026-07-29 07:45:33 -04:00
14c0d4be1e geenforce re-publish FK fix (MySQL) + payload-count guard 2026-07-28 18:56:29 -04:00
cf7b8bc49a dashboard employee names + GE monogram fallback + kiosk startup sweep 2026-07-28 18:24:19 -04:00
3ed3857d4f geenforce: broaden kiosk startup sweep to catch imaging-installer launchers 2026-07-28 18:09:12 -04:00
2f6163e864 geenforce: fix http-payload path doubling + kiosk startup cleanup 2026-07-28 17:49:56 -04:00
8f0c110dda geenforce: harden allowlist + fix share-less kiosk client and display scope 2026-07-28 17:09:35 -04:00
9b133b0cce geenforce: import-share recognizes the display scope 2026-07-27 14:54:13 -04:00
90cd85b268 geenforce: settings in the Settings rail 2026-07-27 14:44:26 -04:00
a733586c47 geenforce client: token-optional for IP-allowlisted kiosks 2026-07-27 14:22:41 -04:00
4ed1296d5e geenforce: IP allowlist for client endpoints + admin Settings tab 2026-07-27 14:13:50 -04:00
c355eaae43 printers low-toner alerts; geenforce display readiness + token scope-binding; air-gap docker deploy kit 2026-07-23 14:37:00 -04:00
23efd760d6 notifications recognition dates + geenforce B2 client 2026-07-21 10:56:00 -04:00