ta
TanStack
GitHub
table
Workspace
GitHub
CI Pipeline Executions
Filtered
Runs
Demo
Insights
Compare tasks
Analytics
Sign in
Toggle sidebar
Overview
⌘K
table
Loading workspace stats
Loading workspace insights...
Statistics interval
7 days
30 days
Latest CI Pipeline Executions
Status
Fix filter
Filter
Fuzzy
Filter range
Sort by
Sort by
Start time
Sort ascending
Sort descending
Succeeded
6503
eed3da9c fix(table-core): correct number-range, filter-depth, autoRemove, and custom faceting semantics Four filtering-semantics bugs from the beta triage. filterFn_inNumberRange matched non-numeric values: JavaScript's loose relational coercion let null, '', and booleans slip into a numeric range (null >= 0 && null <= 20 is true), so the auto-selected number filter leaked empty rows into a [0, max] range on nullable numeric columns. The filter now only matches real numbers. Numeric strings also stop matching; `between`/`betweenInclusive` remain the hybrid string/number range filters. When maxLeafRowFilterDepth stopped the root-down filter recursion, the kept rows' unfiltered descendants stayed visible through row.subRows but never entered flatRows or rowsById, so facet counts and other flat-representation consumers under-counted after filtering. Truncated subtrees now join both. Scoped to the root-down path; the leaf-up path drops truncated subRows entirely (pre-existing behavior) and is left as a possible follow-up. shouldAutoRemoveFilter ORed a hardcoded empty-string check over a custom autoRemove, so a filter function that wanted to keep '' as a filter value could not. A provided autoRemove is now authoritative for defined values; undefined always clears, since it is the universal setFilterValue(undefined) sentinel. Built-ins are unaffected: they all test falsy values themselves. Custom facetedUniqueValues/facetedMinMaxValues/facetedRowModel factories were frozen by a redundant memoization layer in columnFacetingFeature. The stock factories already memoize internally with the same dependencies, so the API-layer memoDeps only served to cache custom implementations against inputs they do not depend on. The API layer is now a plain pass-through like every other row model: stock results stay referentially stable and compute once per invalidation (pinned by Map-identity tests), the no-factory fallback keeps a stable empty Map, and custom factories own their memoization (tableMemo is exported for this). The faceting guides now document the contract and their server-side examples read live data through table.options.meta instead of stale closures. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
by Kevin Van ...
K
Canceled
6503
eed3da9c fix(table-core): correct number-range, filter-depth, autoRemove, and custom faceting semantics Four filtering-semantics bugs from the beta triage. filterFn_inNumberRange matched non-numeric values: JavaScript's loose relational coercion let null, '', and booleans slip into a numeric range (null >= 0 && null <= 20 is true), so the auto-selected number filter leaked empty rows into a [0, max] range on nullable numeric columns. The filter now only matches real numbers. Numeric strings also stop matching; `between`/`betweenInclusive` remain the hybrid string/number range filters. When maxLeafRowFilterDepth stopped the root-down filter recursion, the kept rows' unfiltered descendants stayed visible through row.subRows but never entered flatRows or rowsById, so facet counts and other flat-representation consumers under-counted after filtering. Truncated subtrees now join both. Scoped to the root-down path; the leaf-up path drops truncated subRows entirely (pre-existing behavior) and is left as a possible follow-up. shouldAutoRemoveFilter ORed a hardcoded empty-string check over a custom autoRemove, so a filter function that wanted to keep '' as a filter value could not. A provided autoRemove is now authoritative for defined values; undefined always clears, since it is the universal setFilterValue(undefined) sentinel. Built-ins are unaffected: they all test falsy values themselves. Custom facetedUniqueValues/facetedMinMaxValues/facetedRowModel factories were frozen by a redundant memoization layer in columnFacetingFeature. The stock factories already memoize internally with the same dependencies, so the API-layer memoDeps only served to cache custom implementations against inputs they do not depend on. The API layer is now a plain pass-through like every other row model: stock results stay referentially stable and compute once per invalidation (pinned by Map-identity tests), the no-factory fallback keeps a stable empty Map, and custom factories own their memoization (tableMemo is exported for this). The faceting guides now document the contract and their server-side examples read live data through table.options.meta instead of stale closures. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
by Kevin Van ...
K
Previous page
Previous
Next
Next page