v1.3.1
Release v1.3.1
Section titled “Release v1.3.1”Released: 2026-08-01
🐞 Bug Fixes
Section titled “🐞 Bug Fixes”Asset detail page rendered blank for assets with snapshots
Section titled “Asset detail page rendered blank for assets with snapshots”After the v1.3.0 asset history feature, some asset detail pages
(/assets/detail?id=xxx) rendered blank — inconsistently: some assets worked,
a hard refresh sometimes helped, and it reproduced in both Docker and the
desktop build.
Root cause: AssetValueChart called a useMemo after its conditional
early returns, violating the Rules of Hooks. Assets with snapshots crashed
with React error #310 (“Rendered more hooks than during the previous render”)
once data finished loading; assets without snapshots and warm-cache refreshes
kept a constant hook count and were unaffected.
Fix: the chartData useMemo now runs unconditionally, before every early
return.
Desktop: “Cannot Load Services…” on launch
Section titled “Desktop: “Cannot Load Services…” on launch”The Tauri desktop build injected the backend URL/token into sessionStorage
before navigating, and the value did not survive the navigation. It now uses
localStorage (with a sessionStorage fallback for legacy sessions).
The desktop
lib.rschange was not run-verified in a live desktop build for this release; the frontend contract is covered by unit tests.
🔧 Improvements
Section titled “🔧 Improvements”Code quality (SoC / SRP / DRY)
Section titled “Code quality (SoC / SRP / DRY)”AssetValueChartnow renders its empty-state and chart from a singleCardshell (no duplicated header / time-range toggle).- Asset-id resolution extracted from
AssetDetailPageinto a dedicated, hydration-safe, unit-testeduseResolvedAssetIdhook.
🧪 Testing
Section titled “🧪 Testing”- Regression guard: the
AssetValueCharttest no longer mocksuseMemo, so a loading→data transition now genuinely fails on a hook-order violation (Bug-to-Test). - Frontend unit: 437 tests passing, coverage ≥ 90/80/90/90.
- Frontend e2e: 4/5 asset-history UI tests pass; the remaining failure is a pre-existing seed-recency data check (green on a fresh CI DB).
- Backend: no changes.
🔗 Related
Section titled “🔗 Related”- Plan & execution summary: 2026-08-01 Fix asset detail blank page