Release 0.11.3
The last of the buildings-and-levels bugs, and the shop-floor clients brought into the product. Anyone on 0.11.0 through 0.11.2 should take this. Every hover mini-map in the product reported "this asset has a position but no level" - the levelid prop added in 0.11.0 was passed by none of its seven call sites - and the map PDF printed markers from every floor onto one sheet, which nobody can correct once it is carried onto the floor. The legacy import loader, still to run against production, created markers with no level at all. The gate that should have caught all three asked whether a FILE mentions levelid rather than whether each position does. It now checks per occurrence. Also: printers can be assigned to a MACHINE and reach whichever PC controls it, so a reimaged bay reinstalls its own printers with nothing saved off the old PC; printerdrivers can name a vendor, so two rows cover 41 of 44 printers instead of twenty-one near-duplicates; and the collector reporter and EventSaver now live in the repository with no site baked into either, the reporter generated per site on request. The client scripts were validated on Windows 11 against a live ShopDB, not only by the suite: a bay with no rows of its own created both queues from its machine's assignment, bound them to the right universal drivers, and set the per-user default. The version and the changelog are the release; the detail is in the entry.
This commit is contained in:
64
CHANGELOG.md
64
CHANGELOG.md
@@ -10,6 +10,70 @@ ADR-007 and ADR-002.
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.11.3] - 2026-08-19
|
||||
|
||||
Fixes the last of the buildings-and-levels bugs, and brings the shop-floor
|
||||
clients into the product: the collector reporter, EventSaver and a printer
|
||||
assignment feature that lets a bay install its own printers.
|
||||
|
||||
**Anyone on 0.11.0-0.11.2 should take this.** The hover preview reported "this
|
||||
asset has a position but no level" for every asset, and the map PDF printed
|
||||
markers from every floor onto one sheet.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Every hover mini-map said "no level".** When 0.11.0 gave LocationMapTooltip a
|
||||
levelid, none of its seven call sites were taught to pass one - printer,
|
||||
machine and PC detail, the toner report, enforcement reports, the warranty chip
|
||||
and the dashboard cards. Two payloads behind them also emitted coordinates with
|
||||
no level.
|
||||
- **Map PDF export printed other floors' markers.** It plotted every filtered
|
||||
asset onto one sheet, which is worse than the on-screen version was: nobody can
|
||||
correct a sheet once it is printed and carried onto the floor.
|
||||
- **The legacy import loader created undrawable markers**, sending mapleft/maptop
|
||||
with no level at three call sites. That loader is the one still to run against
|
||||
production.
|
||||
- The build gate that should have caught all of this asked whether a FILE
|
||||
mentions `levelid`, not whether each position does - one module emitted `mapx`
|
||||
six times and `levelid` once and passed. It now checks per occurrence, covers
|
||||
`scripts/`, and fails any Vue file that binds tooltip coordinates without a
|
||||
level.
|
||||
|
||||
### Added
|
||||
|
||||
- **Printer assignment.** Printers belong to the MACHINE and reach whichever PC
|
||||
controls it, so a reimaged or swapped PC comes back with the bay's printers and
|
||||
nothing had to be saved off the old one. New `usesprinter` relationship type,
|
||||
propagating through `controls` at read time; `GET /api/printers/for-host/<host>`
|
||||
for the client; `PUT /api/printers/assignments/for-asset/<id>` to reconcile a
|
||||
whole set in one call.
|
||||
- **`printerdrivers.vendorid`**, so one row serves a make. HP and Xerox universal
|
||||
drivers cover 41 of the reference site's 44 printers; binding a driver to a
|
||||
single model meant 21 near-duplicate rows. Resolution is model, then vendor,
|
||||
then the pre-vendorid name convention.
|
||||
- **Client scripts** in `plugins/printers/client/`: stage a site's driver set
|
||||
(`Install-ShopdbPrinterDrivers.ps1`, with `-TestOnly` for DSC), converge a
|
||||
bay's queues (`Set-ShopdbPrinters.ps1`), and apply the per-user default
|
||||
(`Apply-ShopdbDefaultPrinter.ps1`).
|
||||
- **The collector reporter is in the repository** at
|
||||
`plugins/computers/client/`, with no site in it, and the server generates a
|
||||
copy carrying this site's URL and ranges: Settings > Computers > Asset
|
||||
reporter, or `GET /api/computers/client-script`. The collector key is
|
||||
deliberately never stamped into it.
|
||||
- **EventSaver source** at `plugins/slides/client/`. The site UNC that was
|
||||
compiled into it is gone; a missing ini now fails visibly rather than pointing
|
||||
a new site at the reference site's file server.
|
||||
- Settings: `computers_routableranges` (replaces two hardcoded VLANs) and the
|
||||
buildings-and-levels admin gains editable width AND height.
|
||||
|
||||
### Changed
|
||||
|
||||
- The map editor accepts a click. Its handler was bound only if the map was
|
||||
already a picker when it mounted, and the editor opens with nothing selected,
|
||||
so placing a marker by hand was impossible for the life of the page.
|
||||
- Global search orders every query before truncating, so the same search cannot
|
||||
return a different subset twice.
|
||||
|
||||
## [0.11.2] - 2026-08-17
|
||||
|
||||
Bug fixes for the buildings-and-levels work in 0.11.0, all found by using it.
|
||||
|
||||
Reference in New Issue
Block a user