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
6570
74f824b0 perf(table-core): write-epoch fast path for memoized APIs Add `table._epoch`, bumped at value-resolution time on every state, options, and external-atom write (the patched atom `set` wraps the updater and bumps after the user updater runs, immediately before the store assigns and notifies, so epoch and value change atomically for updaters and synchronous listeners alike). `memo()` gains an `epochSource`: when the epoch and depArgs identity are unchanged since the last validation, the cached result returns without running `memoDeps`, collapsing the nested dependency cascade that high-fanin table memos (`getAllLeafColumns`, `getRowModel`, selection bounds) otherwise re-run once per consumer call. Opt-in per reactivity binding via `TableReactivityBindings.supportsWriteEpoch`: enabled for store, react/preact/lit/octane (render-phase preset), vue, angular, alpine (each verified by its full e2e subset). Solid and svelte stay off: their read-tracking reactivity subscribes to whatever a memoized call reads, and the fast path registers no dependencies. Ember stays off: its live options getter changes options without any set. Both have a documented epoch-as-signal path in. Contract change: memoized APIs revalidate once per table write epoch, so a manual structural mutation (e.g. `row.subRows = ...` outside any write) surfaces after the next write. Full bench campaign vs 9.1.2 (with the shape refactor): all 165 row-model cases -27% geomean (grouping -35%, selection -46%, filtering -30%); grouping sum 100k 62.1 -> 27.0 ms; Node steady reads -52%, worst case (write before every read pass) at parity. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
by Kevin Van ...
K
Previous
Next