Skip to content

fix(web): wire API reachability, lenient string search params, sidebar state, chart and cache memoization - #2445

Merged
Makisuo merged 18 commits into
perf/audit-backend-servicesfrom
fix/audit-frontend-fixes
Nov 10, 2026
Merged

Makisuo merged 18 commits into
perf/audit-backend-servicesfrom
fix/audit-frontend-fixes

Merge branch 'perf/audit-backend-services' into fix/audit-frontend-fixes

7f3f5b0
Select commit
Loading
Failed to load commit list.
Maple Review Bot / Maple / review succeeded Nov 10, 2026 in 3m 46s

Confidence 10/10 · No issues found

🟢 Confidence 10/10 · safe to merge. Mechanical, well-tested changes: each new behavior has a test and the cache memoization is a pure function of the rows array.
no findings · tests covered · risk medium

Wires the API reachability clock the HTTP client writes into the warehouse layer, makes string search params accept an unquoted number/boolean/null, reads the sidebar cookie at boot, and memoizes bar-chart rows and cache use times. Safe to merge.

  • withRequestTimeout marks an origin reachable on any response, unreachable on transport failures
  • StringParam accepts number, boolean and null and prints them back as text
  • shell.flags reads sidebar_state so a collapsed sidebar stays collapsed
  • rowsCache and collectUnused keep chart rows and prune cache use times

Before merge

  • Manual · Check the collapsed sidebar and a hand-written ?userId=12345 link in the preview:web deploy; nothing was run in a browser
What was checked
  • LenientString's forbidden encode never runs: the string member encodes first, pinned by the hrefOf round trip (route.test.ts:58)
  • bucketBarSeries/seriesDefinitionsOf depend on the rows array alone and the cache is a WeakMap (chart-spec.ts:508)
  • Timeouts still mark the origin unreachable through the tapError TransportError branch

7f3f5b0 · Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.