diff --git a/CHANGELOG.md b/CHANGELOG.md index 23908dc..f3afba0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,55 @@ ADR-007 and ADR-002. ## [Unreleased] +## [0.11.2] - 2026-08-17 + +Bug fixes for the buildings-and-levels work in 0.11.0, all found by using it. +Anyone on 0.11.0 or 0.11.1 with more than one level should take this: until now +the map drew markers from every level on whichever floor plan was showing. + +### Fixed + +- **Markers from other levels were drawn on the displayed level.** The map + component filtered out positions with no coordinates and drew everything else, + never checking which drawing a position belonged to - the exact failure ADR-017 + exists to prevent, in the one component that draws the map. Markers are now + filtered to the level being shown, and a position with no level is omitted + rather than approximated onto the default. +- **The map page had no way to choose a level.** It read the current level only + to title a PDF export, so a second floor was unreachable from the viewer most + people use. A level selector appears when a site has more than one, and + switching moves the drawing, the bounds, the coordinate space and the markers + together. +- **The map editor never accepted a click.** Its click handler was bound only if + the map was already in picker mode when it mounted, and the editor opens with + nothing selected, so selecting an asset and clicking did nothing at all for the + life of the page. The asset forms were unaffected, because their picker is + mounted inside a dialog that is already in picker mode. +- Existing markers are now drawn while placing one. Positioning an asset relative + to the machines already on the floor is the whole task. +- Searching the map follows results across levels: a search whose matches are all + on another floor showed an empty map while the filter counted them. +- **A level's native size could not be set.** The settings page had a width field + and no height field at all, and locked both once any marker was placed - which + blocked the case the feature was built for, a new blueprint of new dimensions + on a floor that already has markers. Both fields are editable, with a + confirmation and a pointer to landmark recalibration. +- **The same search could return different results.** Fourteen of the sixteen + searchers behind global search truncated with `LIMIT` and no `ORDER BY`, so the + database was free to return a different subset of matching rows each time. + Every searcher now ends in a total order. +- Re-searching a term already in the address bar did nothing: the router treats + it as a duplicate navigation and aborts, so the results page never re-queried. + This is why the sidebar box and the results-page box appeared to disagree. +- The empty legend no longer draws its bar and border, which read as a stray + input box under the map toolbar. +- The map editor's panel header no longer crams a heading and three controls onto + one row, which had squeezed the search box until its placeholder read + "Search na". +- Both map pages had a scrollbar. They subtracted the wrong amount from the + viewport height for the page chrome, so each overflowed by the difference; the + padding is now a value the pages and the layout share. + ## [0.11.1] - 2026-08-17 A patch release: the pagination-cap fixes, plus the documentation that missed the diff --git a/docs/PROJECT-MAP.md b/docs/PROJECT-MAP.md index e1f9602..54c5925 100644 --- a/docs/PROJECT-MAP.md +++ b/docs/PROJECT-MAP.md @@ -11,7 +11,7 @@ never by editing this file. | series | value | governed by | |---|---|---| -| product `__version__` | `0.11.1` | ADR-007 | +| product `__version__` | `0.11.2` | ADR-007 | | plugin contract `__contract_version__` | `0.20.0` | ADR-002 | They move independently. A contract bump is not a release. diff --git a/frontend/package.json b/frontend/package.json index b99bb90..9d8352e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "shopdb-frontend", - "version": "0.11.1", + "version": "0.11.2", "private": true, "type": "module", "scripts": { diff --git a/shopdb/__init__.py b/shopdb/__init__.py index 904a763..d404fb3 100644 --- a/shopdb/__init__.py +++ b/shopdb/__init__.py @@ -63,7 +63,7 @@ __contract_version__ = '0.20.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.11.1' +__version__ = '0.11.2' def create_app(config_name: str = None) -> Flask: