Generated 2026-07-30, updated 2026-08-01 and again 2026-08-02 to remove closed entries. This audit now contains 70 pull requests that remain open in TanStack/table; it does not add PRs opened after the original scan.
- 64 PRs can close now.
- 6 PRs should remain open: all target the current v9
betabranch. - 2 current-beta PRs have merge conflicts: #6313 and #6443.
- 1 additional beta PR has a failing required check: #6361 is mergeable, but
@tanstack/table-core:test:typesfails. - No PRs, issues, labels, reviews, or comments were changed as part of this audit.
- Current/default branch:
betaat79cbfb6722246baab6fa070966363700aca92298(v9.0.0-beta.62) - v8 branch:
mainatd08af367e11c539bb7e18c2472aa761149ef6db6(v8.21.3) - Superseded v9 branch:
alphaat4f855fe4ed088c1d5d5149a3649518587b426d6c(v9.0.0-alpha.54) - Legacy branch:
v7at06703a56890122cedf1b2fa4b82982999537774e(v7.8.0) - Evidence checked: PR bodies, diffs, changed files, discussions/reviews, linked issue state, replacement PRs, current beta source, GitHub mergeability, draft state, and check rollups.
- Branch rule: close work based on
main,v7, oralpha; retain work based on the currentbetabranch. - Conflict rule: only GitHub's current
mergeable: false/mergeable_state: dirtyresult is called a merge conflict. A failing or incomplete check is reported separately.
| Category | Count | Recommended action |
|---|---|---|
| Resolved or Superseded in V9 | 2 | Close; the behavior, docs, or architecture is already present or replaced in beta. |
| Revisit with a Fresh V9 PR | 11 | Close the stale PR, retain the issue/idea, and implement anew from beta if pursued. |
| Non-consequential to Port | 35 | Close; do not spend v9 migration effort on the stale docs/example/type cleanup. |
| Wrong Direction for the Library | 15 | Close with the current API/design boundary or supported alternative. |
| Too Conflict-heavy to Rescue | 1 | Close; conflict resolution would effectively be a rewrite. |
| Keep Open — Beta Clean | 1 | Keep; current beta target, clean merge state, and passing checks. |
| Keep Open — Beta Needs Attention | 3 | Keep; resolve CI, incomplete checks, or an outstanding design decision. |
| Keep Open — Beta Merge Conflicts | 2 | Keep, but rebase and resolve conflicts before further review. |
| Total | 70 | 64 close candidates; 6 keep open. |
Use the response for the PR's category and add the PR-specific evidence from its audit line.
Thanks for the contribution. We are closing PRs against the pre-beta code lines as we consolidate development on v9 beta. This change is already covered by the current beta implementation or by a replacement PR, so there is nothing useful to port from this branch. We appreciate the work and report that helped identify it.
Thanks for working on this. The underlying issue/idea is legitimate, but this PR targets an obsolete code line and the current v9 architecture has moved too far for the patch to be carried forward safely. We are closing this PR while retaining the linked issue or audit note. If we pursue it, it should be a fresh PR from
betawith a focused current-v9 regression test.
Thanks for the cleanup. We are closing stale PRs targeting pre-beta branches. Since this is limited to docs, examples, types, or minor cleanup in an area that has since moved, we are not going to spend migration effort porting it. A fresh current-branch PR is welcome if the same problem is still visible and consequential.
Thanks for exploring this. After reviewing it against the current v9 API and design boundaries, we do not want to take the library in this direction. We are closing the PR rather than porting it. The rationale or supported alternative is noted below.
Thanks for the substantial work here. This branch has diverged enough from the current v9 beta that resolving the conflicts would amount to rewriting the change, and the old diff is no longer a safe review unit. We are closing this PR. If the need still exists, please start with a narrowly scoped proposal or fresh PR from
beta.
- #5823 — fix: crash when ungrouping after aggregation row was pinned — Superseded: #5822 was fixed on
betaby #6493 (merged 2026-08) and the issue is closed; nothing left to port from this v8 branch. - #6177 — fix: table-core's getIsAllSubRowsSelected returns false when subrows are unselectable — Superseded: #5173 was fixed on
betaby #6491 and the issue is closed; sibling v8 PR #5790 was already closed.
- #5031 — Fix an issue where pageIndex becomes invalid when data is changed — #4994 still fails a focused beta regression when shrunken data leaves an invalid page index; keep the issue and implement the clamp against v9's pagination atoms.
- #5582 — fix: invalidate cached values after updating accessor functions — #5363 still fails on beta, but v9's row/column construction and caches differ substantially; preserve the regression and rewrite from beta.
- #5890 — Add
header.getAfterAPI — Beta has logical start/end pinning andcolumn.getAfter, but no header equivalent; if grouped end-pinning still needs it, design and test a logical v9 API rather than porting the physical-right v8 patch. - #5978 — fix: Duplicate sub-rows in pagination row model — #5833 still produces duplicate beta
flatRows; carry the failing regression into a fresh v9 pagination-model fix. - #6075 — fix: retain columnFiltersMeta when leaf row filtering — #6074 still loses beta filter metadata after
filterFromLeafRows; reimplement against v9's new filter-row utilities. - #6116 — [BUG] ignore non expandable rows when the expanded state changes — #6115 remains plausible in beta, but needs a current expansion-depth regression and an explicit semantic decision before a new implementation.
- #6178 — fix(table-core): respect custom filterFn.autoRemove in shouldAutoRemoveFilter — #6101 is a valid API inconsistency; consolidate this with duplicate #6195 into a tested beta implementation.
- #6184 — fix(table-core): skip state update in toggleExpanded when state is unchanged — #6136 needs a current React commit/render regression before changing beta; consolidate this with duplicate #6194.
- #6186 — fix(vue-table): return null for empty string in FlexRender to prevent hydration mismatch — #6077 is plausible, but the Vue v9 adapter was rewritten; require a current SSR hydration regression before a fresh fix.
- #6194 — fix: skip toggleExpanded when state already matches desired value — Duplicate v8 approach to #6136; use the same current-v9 investigation/fresh-PR path as #6184.
- #6195 — fix: respect custom filterFn.autoRemove over default empty string check — Duplicate v8 approach to valid issue #6101; use the same fresh-beta path as #6178.
- #5729 — docs(expansion/table): tip use table option getRowId if data may change — V8-only documentation for a long-closed v7-era issue; no v9 code or urgent documentation gap.
- #5750 — Fix: Corrected typo in example code — One-character v8 guide typo in documentation that has since been rewritten.
- #5862 — docs: improve vanilla js installation docs — V8-only installation wording, with no code or current beta reproduction.
- #5878 — fix: improve typing on makeStateUpdater function — Internal v8 type-guard/cast cleanup; v9 replaced the updater implementation.
- #5886 — Update fuzzy-filtering.md — A one-line wording edit in an old guide.
- #5915 — refactor: remove unnecessary code — Unused import and ref dependency cleanup in two v8 examples.
- #5960 — docs: typo in guide/sorting.md — Single v8 documentation typo.
- #5967 — Improve type for Editable Data React example — Example-only TypeScript narrowing for an example absent from beta.
- #5982 — Fix typo in table-state.md — Single v8 React guide typo.
- #6020 — Improve match-sorter-util performance by replacing string comparisons — Seven-line micro-optimization without a benchmark or linked user-visible regression; not worth a stale-branch port.
- #6023 — docs(typo): fix typo — One-word v8 tables-guide edit.
- #6027 — Fixed typo
it’stoits— One-character Vue documentation edit. - #6031 — Fix DeepKeys to handle arrays properly — Type-only v8 accessor-path expansion with no linked regression or consumer test to justify porting.
- #6037 — docs: add forgotten “mean” to column filtering docs — Single missing word in old docs.
- #6038 — docs: remove unused footer column def — Six-line cleanup in a v8 example.
- #6045 — docs: typos in guide/table-state.md — Three small wording fixes in a v8 guide.
- #6052 — fix: add ref to drag handle button for improved DnD functionality — Example-only DnD wiring owned by the renderer/integration, not Table core.
- #6053 — Fix writing in column-filtering.md — Two grammar changes in old docs.
- #6054 — docs: fixed API docs link — Source-comment link correction with no runtime impact.
- #6095 — fix: next section is actually previous section — One-word cross-reference correction.
- #6103 — Update column-filtering.md — Removes one duplicated word from a v8 guide.
- #6105 — Update headers.md — Documentation-only
colspantocolSpancasing. - #6107 — Update table-state.md, fix parens typo — One-character Vue guide correction.
- #6108 — docs: fix typo in column filtering guide — One grammar edit in the v8 guide.
- #6110 — docs(expanding): clarify description of autoResetExpanded setting — V8-only option wording; v9 reset behavior and docs have been rebuilt.
- #6125 — Fix syntax error in pagination example — Duplicate one-character Vue example correction in the same area as #6107.
- #6146 — Fix punctuation in introduction.md — Punctuation-only old-docs change.
- #6147 — Fix typo in column filtering documentation — Grammar-only old-docs change.
- #6160 — docs: fix a few small typos — Three small wording changes across v8 guides.
- #6204 — Docs: fix what seems to be a copy-paste error — Small v8 cells-guide correction.
- #6205 — Docs: fix typo in table state documentation — One Angular guide typo.
- #6210 — Docs: fix typo in column filtering documentation — One old-guide typo.
- #5920 — chore(svelte-table): cleanup package.json (
alpha) — Package-manifest cleanup against a superseded alpha package layout; no behavioral fix. - #6203 — update coderabbit logo (
alpha) — Sponsor/logo presentation only. - #6155 — docs(v7): use github source link instead of broken v7 doc site (
v7) — Legacy docs-only link; the associated #6008 was closed as completed on 2026-07-27 with the archived Netlify URL documented.
- #5274 — Do not select subrows if enableSubRowSelection is false — Stale v8 patch; the goal is now accepted and implemented on beta (2026-08-02, per #5116): select-all and the all-selected getters honor
enableSubRowSelectionvia a shared eligibility rule. Close as superseded by the beta implementation rather than porting this diff. - #5401 — update logic to fix selection of disabled rows — Disabled is a current interaction capability, not immutable selection state; bulk deselection must still be able to clear controlled/persisted IDs.
- #5514 — reduce memory leak by remove memo function — Blanket removal of feature memoization trades away computation without isolating a leak; v9 addressed allocations through shared prototypes and targeted row/cell architecture changes.
- #5697 — fix: array filterFns —
arrIncludes,arrIncludesAll, andarrIncludesSomeintentionally filter array-valued cells. Scalar cells should useequalsor a custom function. - #5950 — add filterRowsUtils export — The recursive filter utility is an implementation detail tied to internal row-model invariants; custom row models should not depend on that unstable private surface.
- #5964 — Remove console.error log from table.getColumn(id) — V9 deliberately retains a development-only missing-column warning to expose stale IDs while still returning
undefined. - #5974 — support unsetting getPaginationRowModel — Dynamic client/server pagination should use
manualPagination; treating removal of a row-model factory as a runtime mode switch complicates cache ownership. - #5996 — Prevent deletion of non-selectable rows on RowSelectionChange — Same capability-versus-immutability problem as #5401: non-selectable rows may still need their stale selection IDs cleared.
- #6062 — feat(RowSelection): support indeterminate states — The proposal makes a parent's explicit selection ID a derived mirror of descendants. Current Table semantics expose explicit and descendant predicates separately so renderers can combine them.
- #6085 — docs: add Excel-like sorting guide for null/undefined handling — Excel-style coercion and empty-value ordering are application-specific collation policy; use a custom
sortingFnrather than establish it as an official Table behavior. - #6120 — fix API to calculate max expanded row depth — Collapsing a parent should not erase descendant expansion choices; preserving them allows nested state to return when the parent is reopened.
- #6123 — add existingTable param to useReactTable — V9 supports external ownership through atoms/stores; threading an existing instance through every framework adapter couples hook lifecycles and includes removed Qwik code.
- #6129 — toggleAllRowsSelected should respect row selection rules —
enableRowSelectiongates whether a row can be interactively selected, not whether a bulk command may remove an already-stored ID. - #6240 — type column contexts with React table (
alpha) — Core cell/header contexts must remain framework-neutral. React'sSubscribehelper is intentionally an adapter component, not part of the coreTablecontext type. - #6295 — clamp column size during resize drag (
alpha) — Current v8/v9 getters already clamp committed sizes tominSize/maxSize, and #5997 could not be reproduced under the supported rendering path.
- #6242 — WIP: adapt solid-table to Solid v2 beta reactivity model (
alpha) — Conflicting draft spanning 83 files with 1,050 additions and 454 deletions against an older Solid v2 beta and v9 alpha; any remaining Solid work must start from current beta.
- #6442 — toggle group column visibility — Draft, mergeable/clean, and all checks pass. It supplies the beta design/test for valid group visibility issue #5497.
- #6361 — include sub-rows in flatRows when maxLeafRowFilterDepth truncates recursion — Keep: non-draft and mergeable, and it targets verified #5987. The required
Testcheck currently fails at@tanstack/table-core:test:types; update to current beta types and rerun. - #6385 — Allow Manual Override of Pagination canNextPage/canPreviousPage — Keep: draft and mergeable with no conflict. GitHub reports
UNSTABLEand the normal full test/preview rollup is absent; it also needs maintainer agreement on whether navigation capability belongs in pagination state or options. - #6445 — perf: compute NODE_ENV up-front & flip opt-in — Keep: draft and mergeable with no conflict. GitHub reports
UNSTABLEwith only review/security checks present; decide the!== 'production'behavior, then run the full required suite.
- #6313 — exclude non-numeric values from inNumberRange filter — Keep, but GitHub reports
CONFLICTING/dirty. It fixes verified #6007; rebase onto current beta, preserve the finite-number regression coverage, and rerun checks. - #6443 — reset expansion when data changes — Keep, but the draft is
CONFLICTING/dirtyand itsTestcheck fails. It fixes verified #5801; rebase onto current beta and revalidate the core-row-model reset hook.