Appearance
May 22, 2026 — Frontend
Release date: Friday, 2026-05-22
Summary
BMS expanded beyond buildings with feature-flagged dams, vessels, and platforms (list, map, table, and detail flows behind env flags). Coverage lines moved to dedicated pages with clearer valuation fields, year-end renewal rules, and alignment to backend validation (no strictIssue). Maps and location gained a reusable picker with geocoding on the building location form. In-app notifications wired to the new me-notifications API, and insurance UI split risk profile from workbook display per the latest OpenAPI contract.
Shipped
- Dams, vessels, platforms: Optional modules (
VITE_DAM_ACTIVE,VITE_VESSEL_ACTIVE,VITE_PLATFORM_ACTIVE) with mock APIs, list/map/table views, detail tabs, routes, and conditional shell navigation. - Coverage lines: Dedicated create and detail pages;
valuationBasisat issue time; objektverdi separated from premiegrunnlag; default end dates andshouldRenewgated on 31 December; human-readable tariff breakdown labels; helper text on issue form; removedstrictIssuefrom client and form. - Insurance workbook: UI split between risk profile and workbook; building value breakdown restored on workbook views.
- Maps:
LocationPickerMap(Places + Geocoding) with docs; coordinate picker and address geocoding on building location form. - Notifications: Me-notifications API client; header bell and profile notification views.
- Icons: Boat, Dam, and Train icons plus docs page examples; DamIcon viewBox fix.
- OpenAPI: Regenerated client for building risk-profile split and auth device DTOs.
- Branding: Title management and branding updates in BMS shell.
Engineering (commit recap)
Frontend — week of May 18 – May 24, 2026
Window: --after="2026-05-15" --before="2026-05-23" (--no-merges).
Summary
Thirty-four non-merge commits landed, led by three parallel “asset class” surfaces (dams, vessels, platforms) built from the same pattern—types, mock API helpers, list/map/table UI, routes, and feature guards. Coverage and insurance work focused on issuance UX (dedicated routes, valuation fields, renewal/date rules) and contract sync (risk profile vs workbook, dropping strictIssue). Maps, notifications, and shared icons rounded out the week.
Themes
- Alternate asset modules (dams / vessels / platforms): Env-gated feature flags; typed models and mock list/risk helpers; map + table + detail tab shells; conditional nav entries and route wiring; demo sidebar on dam detail.
- Coverage line issuance: New create/detail pages;
valuationBasison issue; objektverdi vs premiegrunnlag; 31 December end-date defaults andshouldRenewbehavior; tariff breakdown labels; issue-form helper copy;strictIssueremoved from API client and form. - Insurance workbook & risk profile: OpenAPI-aligned split—workbook UI vs risk profile; building value breakdown on workbook; issue-form and display utilities updated for backend validation changes.
- Maps & building location:
LocationPickerMapin@sod/ui/maps; coordinate picker modal and geocoded address fields on location form; Maps docs page. - In-app notifications:
me-notificationsclient; notification bell in shell; profile views for notification preferences/history (paired with backend notification platform). - Shared icons: Boat, Dam, Train SVG components; Icons docs examples; DamIcon viewBox correction.
- Shell & branding: Title management enhancements and branding pass on BMS chrome.
- Tooling: Concise communication Cursor rule (no product surface).
Notable fixes or risks (if any)
- Feature flags: Dams, vessels, and platforms use mock APIs until backend endpoints ship—verify env vars before demoing each module.
- Coverage validation: Client no longer sends
strictIssue; issuance depends on server-side valuation and overlap rules—retest preview/issue after pulling backend May 22 changes. - Google Maps: Location picker requires Maps/Places API configuration in app env; failures surface in picker modal only.
- OpenAPI churn: Risk-profile split and device DTOs require regenerated types—run typecheck and smoke-test Forsikring and profile devices after sync.