Added structured changelog documentation: - Created releases/memory/ directory to track changes between tags - Each version has a .md file (v1.2.1.md, etc.) documenting commits and impact - Updated CLAUDE.md with release notes reference - Updated README.md with releases section - Updated .gitignore to track releases/memory/ while ignoring other release artifacts This helps reviewers and developers understand changes between versions before making new updates to the codebase. Initial entry: v1.2.1.md documenting the pricelist refactor and configurator component substitution fix. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2.9 KiB
v1.2.1 Release Notes
Date: 2026-02-09 Changes since v1.2.0: 2 commits
Summary
Fixed configurator component substitution by updating to work with new pricelist-based pricing model. Addresses regression from v1.2.0 refactor that removed CurrentPrice field from components.
Commits
1. Refactor: Remove CurrentPrice from local_components (5984a57)
Type: Refactor Files Changed: 11 files, +167 insertions, -194 deletions
Overview
Transitioned from component-based pricing to pricelist-based pricing model:
- Removed
CurrentPriceandSyncedAtfrom LocalComponent (metadata-only now) - Added
WarehousePricelistIDandCompetitorPricelistIDto LocalConfiguration - Removed 2 unused methods: UpdateComponentPricesFromPricelist, EnsureComponentPricesFromPricelists
Key Changes
-
Data Model:
- LocalComponent: now stores only metadata (LotName, LotDescription, Category, Model)
- LocalConfiguration: added warehouse and competitor pricelist references
-
Migrations:
- drop_component_unused_fields - removes CurrentPrice, SyncedAt columns
- add_warehouse_competitor_pricelists - adds new pricelist fields
-
Quote Calculation:
- Updated to use pricelist_items instead of component.CurrentPrice
- Added PricelistID field to QuoteRequest
- Maintains offline-first behavior
-
API:
- Removed CurrentPrice from ComponentView
- Components API no longer returns pricing
2. Fix: Load component prices via API (acf7c8a)
Type: Bug Fix Files Changed: 1 file (web/templates/index.html), +66 insertions, -12 deletions
Problem
After v1.2.0 refactor, the configurator's autocomplete was filtering out all components because it checked for the removed current_price field on component objects.
Solution
Implemented on-demand price loading via API:
- Added
ensurePricesLoaded()function to fetch prices from/api/quote/price-levels - Added
componentPricesCacheto cache loaded prices in memory - Updated all 3 autocomplete modes (single, multi, section) to load prices when input is focused
- Changed price validation from
c.current_pricetohasComponentPrice(lot_name) - Updated cart item creation to use cached API prices
Impact
- Components without prices are still filtered out (as required)
- Price checks now use API data instead of removed database field
- Frontend loads prices on-demand for better performance
Testing Notes
- ✅ Configurator component substitution now works
- ✅ Prices load correctly from pricelist
- ✅ Offline mode still supported (prices cached after initial load)
- ✅ Multi-pricelist support functional (estimate/warehouse/competitor)
Known Issues
None
Migration Path
No database migration needed from v1.2.0 - migrations were applied in v1.2.0 release.
Breaking Changes
None for end users. Internal: ComponentView no longer includes CurrentPrice in API responses.