Appearance
August 7, 2026 — Backend
Release date: Friday, August 7, 2026
Summary
This period centered on insurance portfolio operations and a major workbook rename. Coverage lines gained mid-term expire/reissue, ACTIVE-year drift detection, and prorated future starts. Manual building value and special tariff now share one workbook approval queue. BuildingInsuranceProfile is renamed to BuildingWorkbook across schema, API, and docs.
Shipped
- Manual building value approvals: Request / approve / reject flow for override building values (permissions, notifications, audit, OpenAPI,
http/api.http). - Unified workbook approvals: Special tariff and manual building value share a single pending-approval surface on the workbook (dedicated
workbook-approvalservice). - BuildingWorkbook rename: Prisma model/module/API paths and docs move from insurance-profile naming; deprecations tracked in
docs/deprecations.md. - Bulk coverage expire: Mid-term expiry for portfolio lines; void projected renewal children; honor
shouldRenewon reissue. - Bulk coverage reissue: ACTIVE-year reissue for outdated lines; bulk payload requires
isOutdated. - Coverage drift: Detect outdated issued lines on ACTIVE years so the UI can drive reissue.
- Future starts / proration: Allow future coverage start dates; prorate partial-year issue premiums.
- Leaner list API: Drop server-side aggregates from the coverage-lines list response (clients compute as needed).
- Address registry: Geonorge search for building address forms; OpenAPI refresh (including
TablePreferenceDtoexport fix). - Seed: Re-enable roles and permissions seed steps in
prisma/seed.ts.
Engineering (commit recap)
Backend — week of July 27 – August 7, 2026
Window: 2026-07-24 < commit date < 2026-08-08 (git log --no-merges).
Summary
Eighteen non-merge commits landed between July 27 and August 3 (no further commits through August 7). Early work hardened ACTIVE-year coverage lifecycle (drift, reissue, expire, period validation). August 3 delivered the manual-value workflow, unified workbook approvals, then the full BuildingWorkbook rename with OpenAPI/docs alignment and seed restore.
Themes
- Workbook approvals: Manual building value introduced as its own workflow, then folded with special tariff into one pending table and
workbook-approvalmodule; audit action names aligned tobuilding_manual_valuestyle. - Domain rename: Module rename → Prisma
BuildingWorkbookmigration → service/API renames → docs/OpenAPI/http/api.httpplus agent rules for deprecation tracking. - Coverage lifecycle: Bulk expire and reissue on insurance-year routes; projected-renewal sync on expire;
isOutdatedgate on reissue lines; period validation for future starts and proration. - Drift and list shape: ACTIVE-year drift detection feeds outdated flags; list response no longer embeds server aggregates.
- Address / OpenAPI: Geonorge registry search for address forms; contract regeneration and DTO export fix for table preferences.
- Ops seed: Roles and permissions seed steps turned back on after earlier disable.
Notable fixes or risks (if any)
- Deploy: Run insurance migrations for manual value, unified approvals, and
BuildingWorkbookrename in order; re-seed permissions/role-permissions and notification templates for approval flows. - Client break: Insurance-profile routes/types and coverage-lines list aggregates are gone—UI must use workbook paths and compute aggregates locally; treat old AuditLog
subjectType/actions as historical (seedocs/deprecations.md). - Reissue contract: Bulk reissue rejects lines without
isOutdated; expire voids projected renewal children—verify renewal UI after mid-term expiry.