Record the tab title and Guides packaging fixes in the changelog
Some checks failed
CI / backend (push) Has been cancelled
CI / naming (push) Has been cancelled
CI / frontend (push) Has been cancelled
CI / migrations-mysql (push) Has been cancelled

This commit is contained in:
cproudlock
2026-08-26 13:13:41 -04:00
parent ed5d64fa3e
commit 580c0d0c80
2 changed files with 22 additions and 2 deletions

View File

@@ -90,6 +90,24 @@ ADR-007 and ADR-002.
### Fixed ### Fixed
- **Every detail page had the same browser tab title.** A machine, a PC and a
printer all read "West Jefferson ShopDB - Machine" or the equivalent, so two
tabs on two different records were indistinguishable, a bookmark said nothing
about what it pointed at, and a link shared into Teams previewed as the
section rather than the thing. Detail pages now name the record: machines,
PCs, printers, network devices, subnets, measuring tools, USB devices,
printed parts, applications, employees, knowledge base articles and guides.
A record with no usable name, or one that failed to load, keeps the section
name, and a long name is cut at a word boundary. Report pages gained proper
titles too, which also fixes "Pc Relationships".
- **Guides would have been dropped at provisioning.** The plugin was missing
from `deploy/site-profile-universal.json`, the profile the released Windows
installer is built from, so the wizard would not have offered it and
`flask plugin prune-schema` drops the tables of any plugin absent from the
profile (ADR-014). Its model also imported core directly rather than through
`shopdb.api`, which the contract test catches.
- **The shipped catalog offered two ways to spell the same vendor, and one row - **The shipped catalog offered two ways to spell the same vendor, and one row
that should never have left a test.** `HP Inc.` and `Zebra Technologies` were that should never have left a test.** `HP Inc.` and `Zebra Technologies` were
empty rows duplicating `HP` and `Zebra`, which carry every model between empty rows duplicating `HP` and `Zebra`, which carry every model between

View File

@@ -28,6 +28,7 @@ with `flask plugin upgrade-all`. Both are needed on a deploy.
| computers | `computers0001anchor` | | computers | `computers0001anchor` |
| employees | `employees0002photo` | | employees | `employees0002photo` |
| geenforce | `geenforce0004minlib` | | geenforce | `geenforce0004minlib` |
| guides | `guides0001baseline` |
| knowledgebase | `knowledgebase0001anchor` | | knowledgebase | `knowledgebase0001anchor` |
| machines | `machines0002rename` | | machines | `machines0002rename` |
| measuringtools | `measuringtools0001baseline` | | measuringtools | `measuringtools0001baseline` |
@@ -40,7 +41,7 @@ with `flask plugin upgrade-all`. Both are needed on a deploy.
| usb | `usb0002dropmachineid` | | usb | `usb0002dropmachineid` |
| warranty | `warranty0002proof` | | warranty | `warranty0002proof` |
## Bundled plugins (15) ## Bundled plugins (16)
| plugin | version | core_version | owns migrations | | plugin | version | core_version | owns migrations |
|---|---|---|---| |---|---|---|---|
@@ -48,6 +49,7 @@ with `flask plugin upgrade-all`. Both are needed on a deploy.
| computers | 1.0.0 | >=0.20.0,<1.0.0 | yes | | computers | 1.0.0 | >=0.20.0,<1.0.0 | yes |
| employees | 1.0.0 | >=0.1.0,<1.0.0 | yes | | employees | 1.0.0 | >=0.1.0,<1.0.0 | yes |
| geenforce | 0.1.0 | >=0.18.0,<1.0.0 | yes | | geenforce | 0.1.0 | >=0.18.0,<1.0.0 | yes |
| guides | 1.0.0 | >=0.1.0,<1.0.0 | yes |
| knowledgebase | 1.0.0 | >=0.1.0,<1.0.0 | yes | | knowledgebase | 1.0.0 | >=0.1.0,<1.0.0 | yes |
| machines | 1.0.0 | >=0.20.0,<1.0.0 | yes | | machines | 1.0.0 | >=0.20.0,<1.0.0 | yes |
| measuringtools | 1.0.0 | >=0.20.0,<1.0.0 | yes | | measuringtools | 1.0.0 | >=0.20.0,<1.0.0 | yes |
@@ -86,6 +88,6 @@ Manifest-less directories under `plugins/` are core frontend surface and always
## Size ## Size
- test functions defined: **1256** (parametrised cases collect higher) - test functions defined: **1305** (parametrised cases collect higher)
- documented API paths: **285** (`docs/openapi.json`, regenerate with `scripts/gen_openapi.py`) - documented API paths: **285** (`docs/openapi.json`, regenerate with `scripts/gen_openapi.py`)