v1.2.0
Strata v1.2.0 is a minor release adding six UI improvements to the asset detail page, dashboard, and asset types management.
UI Improvements
Section titled “UI Improvements”Net worth and snapshot values — no decimal places
Section titled “Net worth and snapshot values — no decimal places”The net worth KPI on the dashboard and all asset snapshot value cells now display whole numbers (e.g. €10,000 instead of €10,000.00). Financial rounding is cleaner for assets tracked in large amounts.
Snapshot dates — date only, no time
Section titled “Snapshot dates — date only, no time”Snapshot dates in the asset detail table previously showed a time component (e.g. “10 mai 2026, 02:00”) caused by UTC midnight rendering in local timezone. Dates now show only the date portion (“10 mai 2026”).
Delete snapshot — per-row action with confirmation dialog
Section titled “Delete snapshot — per-row action with confirmation dialog”Each snapshot row in the asset detail page now has a trash icon. Clicking it opens the standard DeleteConfirmDialog (“Delete Snapshot”), identical in design to the asset delete flow. Confirming calls DELETE /api/v1/assets/:id/snapshots/:snapshotId and refreshes the snapshot list.
Asset type delete — proper confirmation dialog
Section titled “Asset type delete — proper confirmation dialog”Asset type deletion previously used the browser’s native window.confirm() popup. It now uses the same DeleteConfirmDialog component, keeping the UX consistent with asset and snapshot deletion.
Snapshot table pagination
Section titled “Snapshot table pagination”The snapshot table now supports pagination with a page size selector (10 / 20 / 50 / 100 / All). Default is 10 rows per page. Previous/next controls appear when there are more rows than the selected page size.
Sort by date toggle
Section titled “Sort by date toggle”The Date column header in the snapshot table is now clickable. Clicking toggles between descending (newest first, default) and ascending (oldest first) sort order. A chevron icon indicates the current direction.
Backend
Section titled “Backend”New endpoint: DELETE /api/v1/assets/:id/snapshots/:snapshotId
Section titled “New endpoint: DELETE /api/v1/assets/:id/snapshots/:snapshotId”Full hexagonal implementation following the established pattern:
IAssetSnapshotRepository.delete(id)— repository portPrismaAssetSnapshotRepository.delete(id)— Prisma implementationAssetSnapshotService.delete(id)— use case (findById → delete → recalculate portfolio snapshot from date)AssetController—@Delete(':id/snapshots/:snapshotId')with@HttpCode(204)and Swagger decorators- Bruno collection:
.bruno/Strata/Assets/DeleteAssetSnapshot.bru
DeleteConfirmDialog — generalized
Section titled “DeleteConfirmDialog — generalized”The component now accepts optional title?: string (default "Delete Asset") and message?: string props, making it reusable across snapshot delete and asset type delete without changing existing call sites.
| Gate | Result |
|---|---|
| Backend unit | ✅ 319 tests (30 suites) |
| Backend e2e | ✅ 70 tests (8 suites) |
| Frontend unit | ✅ 400 tests (63 files) |