Patch Changes
- 8ac586b: Dedup the client-side list pipeline across storage adapters (#1192, KPI-5). The byte-identical sort/search/paginate blocks in MemoryStorage, LocalStorage, MockApiStorage and SdkStorage now live in one shared
query/clientFilter.ts(sortItems/filterItems/searchItems/paginate/defaultGenerateId— new public exports). Filtering keeps its historical per-adapter semantics via an explicitstringMatchmode (includesfor Memory/Sdk,exactfor Local); MockApiStorage keeps delegating operator filters to QueryExecutor.StorageErrormoved tostorage/errors.ts(still re-exported from MemoryStorage and the storage barrel — no import breaks). The triplicatedgenerateIddefault loses its deprecatedString.substr. Pure behavior-preserving refactor.