Skip to content
Strata v1.3.1

v1.3.1

Released: 2026-08-01

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.rs change was not run-verified in a live desktop build for this release; the frontend contract is covered by unit tests.

  • AssetValueChart now renders its empty-state and chart from a single Card shell (no duplicated header / time-range toggle).
  • Asset-id resolution extracted from AssetDetailPage into a dedicated, hydration-safe, unit-tested useResolvedAssetId hook.
  • Regression guard: the AssetValueChart test no longer mocks useMemo, 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.