Commit Graph

87 Commits

Author SHA1 Message Date
980b2e8be3 Find a knowledge base article by words from different fields 2026-08-21 09:40:14 -04:00
5a58d33623 Fix what the last round of device fixes broke, and two dips it missed 2026-08-21 08:50:00 -04:00
4f0399b8ac A toner rate needs days behind it 2026-08-20 17:23:59 -04:00
ebb86ccf3b Blank asset numbers, contested device claims, and honest toner forecasting 2026-08-20 17:09:02 -04:00
fa88ef0afe Device identity, collector enrollment file, and network device fixes 2026-08-20 15:10:24 -04:00
d267813999 Printer assignment end to end, and a container that keeps a site's files
Assign printers to a MACHINE and let whichever PC controls it install them, with
the observed half kept strictly apart from the assigned half: a collector report
can never write an assignment row. Adoption is explicit. Adds a singular
relationship type so defaultprinter can mean exactly one, client scripts that
converge a bay's queues and correct a drifted one in place, and a wave gate so a
fleet-wide driver rollout cannot stampede its own share.

On the container side: the compose stack never persisted the instance directory,
so a rebuild discarded plugins.json and every upload. It is a volume now, the
image ships instance/ owned by the app user so the mountpoint is writable, and
the database moves to MySQL 8.4 LTS, which the Windows runbook has recommended
since 8.0 went end of life. The image also could not build at all: the frontend
stage never copied the plugin staging script it runs.

Adds a topology migration guide covering IIS to Docker and back.
2026-08-20 07:46:35 -04:00
49f68081c3 Match the optional identifiers in every list's search box 2026-08-17 13:18:26 -04:00
fbd99041b0 Buildings and levels for the floor map, and make every identifier searchable 2026-08-17 13:03:54 -04:00
47fb65fdd2 Release 0.10.0 2026-08-17 08:37:57 -04:00
265ca2eb01 Security hardening, multi-site portability, and a documentation and API-surface sweep 2026-08-14 16:28:34 -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
6e0d8aec4e Relationship inverse guard, audit command, widened direction fixer 2026-08-13 12:25:35 -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
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
2d19bcdf60 Employee resolve diagnostic 2026-08-11 16:10:21 -04:00
34cb9a5e3e Dashboard polish 2026-08-11 15:28:29 -04:00
f1d46e7ab8 Backup verified column 2026-08-11 15:00:26 -04:00
9ae9879b90 Dashboard fixes: staleness, toner, layout 2026-08-11 14:45:29 -04:00
3b37603691 Dashboard cards: rebuild deployable dists 2026-08-11 14:31:24 -04:00
0ed8be75d9 Dashboard cards, backup last-seen 2026-08-11 14:01:57 -04:00
5c33b06688 Declarative subordinate devices + shared-machine check 2026-08-11 11:14:51 -04:00
321d0a3799 Backups: collection interval is actually readable 2026-08-11 10:08:59 -04:00
2e0f021354 Never file a part marker under its own PC 2026-08-10 17:01:41 -04:00
2924a53346 Part markers become their own assets under the operation they serve 2026-08-10 15:55:36 -04:00
28b1dfb89e Backups: a revision chain belongs to a PC, not just a machine 2026-08-10 15:03:00 -04:00
d40be9ca68 Machine claim vs handover; alerts gated off; ntlars empty-value fix 2026-08-10 14:49:17 -04:00
502728c9f6 Collector: machine number identifies the machine, not the PC; ntlars empty-value fix 2026-08-10 14:26:19 -04:00
acadddb917 kiosk watchdog: require a visible window, kill orphans, refuse SYSTEM 2026-08-10 09:03:31 -04:00
d9d08f53ac remote-access protocol collection; dashboard site timezone + badge alignment 2026-08-10 08:36:39 -04:00
e68f522132 display kiosk watchdog: relaunch Edge when it goes away 2026-08-10 07:54:03 -04:00
4344adabf1 Board row ordering, type-derived row colours, and clearer upcoming events 2026-08-08 14:24:28 -04:00
3ebc1f353a tabbed DNC card, machine-numbered downloads, themed backup history 2026-08-07 15:22:59 -04:00
2487981d91 backups panels show only when the asset has data 2026-08-07 14:53:54 -04:00
64f30f7c9f backups in universal site profile; profile completeness guard 2026-08-07 14:44:42 -04:00
5a0017cd9a backups plugin with NTLARS revision history; shopfloor dashboard upcoming cards and state chips 2026-08-07 14:30:18 -04:00
7c5b1bc74e Per-type board rows with shared categories, a network device IP field, and two dark-mode dialogs 2026-08-07 10:43:32 -04:00
2f15610cfd Per-type expiry tail on the shopfloor board, and a 2x2 recertification block 2026-08-07 09:28:10 -04:00
c674000ccc Show the kiosk label prefix, and let a plugin declare the settings it owns 2026-08-06 18:17:56 -04:00
c51e86e686 Model photo upload fixes; network devices linked to catalog models 2026-08-05 09:09:19 -04:00
d8e3280dfc Release 0.8.0: Windows installer, twelve fixes from a real Server 2019 install, operator docs 2026-08-05 07:36:43 -04:00
208a572fd7 Windows installer: payload hash-locking, SBOM, client-IP handling, operator docs 2026-08-04 07:30:44 -04:00