Release 0.8.1

This commit is contained in:
2026-08-05 14:53:54 -04:00
parent c965494189
commit 307de925f1
3 changed files with 57 additions and 2 deletions

View File

@@ -10,6 +10,61 @@ ADR-007 and ADR-002.
## [Unreleased]
## [0.8.1] - 2026-08-05
Everything here shipped after v0.8.0 was tagged the same morning, driven by two
sites putting real data in for the first time. Most of it is defects that only
appear when somebody who did not build the software tries to use it.
### Fixed
- A blank optional code could be saved once and never again. A unique nullable
column accepts any number of NULLs but exactly one empty string, so the second
business unit with no code collided with the first and returned 500 from a
field the form correctly showed as optional. Blank now stores as NULL, which
covers every unique nullable column - asset numbers, hostnames, item codes,
subnet names, gage-lab tags - not just the one that was reported. A genuine
duplicate answers 409 with a readable message instead of a bare 500.
- A lobby display with exactly two slides never changed between them. The
slideshow was started twice, and two timer chains advancing one slide each
landed back on the first every cycle. With three or more slides it advanced by
two and merely skipped one, which is why it went unnoticed. The per-slide
duration the feed has always sent was also ignored in favour of a hardcoded
ten seconds.
- Clicking slightly outside a modal discarded a part-filled form, in 35 modals
across 30 files. Confirmation dialogs still dismiss that way, since they hold
nothing to lose.
- Selecting a filter while past page one returned an empty list, because the
filter asked for page five of a result set that now had one page.
- Model photos could not be saved: an uploaded photo sets the field to an
application path, and the input was type="url", which demands an absolute
address. The upload button was also hidden when creating a model.
- An empty bordered box appeared after Notes on the network device form.
### Added
- The equipment catalog travels. `flask seed catalog` loads 53 vendors, 128
models with photos, 146 printer supply part numbers and every type vocabulary,
so a new site can start adding printers immediately instead of retyping a
catalog another site spent a year building. Idempotent and additive; catalog
only, with nothing site-specific. Offered by the installer as a tick-box and
by the operator console.
- `shopdb-admin.ps1 repair` completes an interrupted provisioning, and `check`
now says when a server is not fully provisioned instead of leaving it to be
inferred from 500s on unrelated pages.
- Network devices can be linked to a catalog model, and their map position is
picked on the floor plan rather than typed as coordinates.
- An asset's vendor and type can be derived from its catalog model, by exact
name match only, with a reviewable backfill script.
### Changed
- Labels say whose type they mean: Machine Type, PC Type, Printer Type, Device
Type, next to the catalog's Model type.
- The 3D parts kiosk label prefix is a setting rather than one site's initials
hardcoded in the source.
- The operator console menu is grouped by what each action touches.
## [0.8.0] - 2026-08-05
First release to carry the Windows installer. Everything below shipped after

View File

@@ -1,6 +1,6 @@
{
"name": "shopdb-frontend",
"version": "0.8.0",
"version": "0.8.1",
"private": true,
"type": "module",
"scripts": {

View File

@@ -42,7 +42,7 @@ __contract_version__ = '0.15.0'
# plugin-contract version above are distinct series with independent
# bump rules. Not part of the shopdb.api contract surface, so it is
# not re-exported there.
__version__ = '0.8.0'
__version__ = '0.8.1'
def create_app(config_name: str = None) -> Flask: