Added
[PERF]SVG icons inGameCardmoved to module-level constants — eliminates 7 JSX object allocations per card render.[PERF]rowItemsarray inShelfViewwrapped inuseMemo(deps:appIds,items, shelf identity) — avoidsflatMapon every re-render unrelated to data changes.[PERF]sortOptionsinEditShelfModalwrapped inuseMemo;BASE_SOURCE_TYPESextracted to module-level constant.
Changed
[DOCS]docs/architecture.md: addedrecentsReplace.tsxto the runtime/ directory listing; added Key Systems entries for Recents Replace and Hide Home Tabs.[DOCS]docs/filters.md: corrected type names (storeTag,achievements,friends); added missing types (isNew,playtimeRange,collection); noted pass-through types not yet evaluated; fixedplaytimeRangeparams (minHours/maxHours).[DOCS]README.md: added "Use first shelf as recents (experimental)" and "Hide home tabs" to the features list.[DOCS]src/core/webpackCompat.ts: added JSDoc to the four public functions (findWebpackHashedClass,buildSelectorFromToken,getRuntimeClassMap,setRuntimeClassMap).
Fixed
[FIX]recentsReplace: silent patch failures (tree walk not finding the recents node, ormutateRecentsElementreturning false) no longer leave the feature in a permanently broken state. After 5 consecutive silent failures the kill-switch is activated, causingHomeInjectto fall back to the standard visual-hide behaviour. The counter resets on any successful mutation and on manual reset.