Skip to content

feat: remove svelte-table selectors to be inline with other signal-ba… - #6464

Merged
KevinVandy merged 3 commits into
betafrom
remove-svelte-selectors
Jul 30, 2026
Merged

feat: remove svelte-table selectors to be inline with other signal-ba…#6464
KevinVandy merged 3 commits into
betafrom
remove-svelte-selectors

Conversation

@KevinVandy

@KevinVandy KevinVandy commented Jul 30, 2026

Copy link
Copy Markdown
Member

…sed adapters

🎯 Changes

✅ Checklist

  • I have followed the steps in the Contributing guide.
  • I have tested this code locally with pnpm test:pr.

Summary by CodeRabbit

  • Breaking Changes
    • Simplified Svelte table creation by removing creation selectors and selected-state generics; createTable/createAppTable now accept options only.
    • Removed subscribeTable and SubscribeSource, and deprecated the legacy table.state reading approach in favor of atoms/stores.
  • New Features
    • Added new exports: renderComponent and renderSnippet.
  • Documentation
    • Updated Svelte guides, migration notes, and references to use atom-based reads and rune reactivity, with updated controlled-state guidance.
  • Tests
    • Expanded compile-time public API checks and updated/added E2E and reactivity coverage for atoms-based behavior and isolated instances.

@nx-cloud

nx-cloud Bot commented Jul 30, 2026

Copy link
Copy Markdown

View your CI Pipeline Execution ↗ for commit d36f37e

Command Status Duration Result
nx affected --targets=test:eslint,test:sherif,t... ✅ Succeeded 3m 12s View ↗
nx run-many --targets=build --exclude=examples/** ✅ Succeeded 26s View ↗

☁️ Nx Cloud last updated this comment at 2026-07-30 02:29:29 UTC

@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a858d96d-38ce-45bd-8a0a-afe2e4c105ca

📥 Commits

Reviewing files that changed from the base of the PR and between 0a310dc and d36f37e.

📒 Files selected for processing (6)
  • docs/framework/svelte/guide/column-filtering.md
  • docs/framework/svelte/guide/migrating.md
  • docs/framework/svelte/guide/row-selection.md
  • docs/framework/svelte/guide/sorting.md
  • docs/framework/svelte/reference/functions/createTable.md
  • packages/svelte-table/src/createTable.svelte.ts
🚧 Files skipped from review as they are similar to previous changes (6)
  • docs/framework/svelte/guide/sorting.md
  • docs/framework/svelte/guide/row-selection.md
  • docs/framework/svelte/guide/column-filtering.md
  • docs/framework/svelte/reference/functions/createTable.md
  • packages/svelte-table/src/createTable.svelte.ts
  • docs/framework/svelte/guide/migrating.md

📝 Walkthrough

Walkthrough

Changes

The Svelte adapter removes selector-based table state and subscribeTable, exposing direct table types and atom/store reads. Guides, API references, examples, skills, lifecycle tests, public API checks, and E2E tests are updated for rune-based reactivity and the new state access model.

Svelte state APIcreateTable and createAppTable now accept options only; SvelteTable and AppSvelteTable no longer include selected-state generics or table.state.

State consumption — Examples and documentation use table.atoms.<slice>.get() for narrow reads and table.store.get() for full snapshots.

Validation — Tests cover rune projections, unmount behavior, removed exports, pagination synchronization, isolated table instances, and row-selection state.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: removing Svelte table selectors to align with signal-based adapters.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch remove-svelte-selectors

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@pkg-pr-new

pkg-pr-new Bot commented Jul 30, 2026

Copy link
Copy Markdown
More templates

@tanstack/alpine-table

npm i https://pkg.pr.new/TanStack/table/@tanstack/alpine-table@6464

@tanstack/angular-table

npm i https://pkg.pr.new/TanStack/table/@tanstack/angular-table@6464

@tanstack/angular-table-devtools

npm i https://pkg.pr.new/TanStack/table/@tanstack/angular-table-devtools@6464

@tanstack/ember-table

npm i https://pkg.pr.new/TanStack/table/@tanstack/ember-table@6464

@tanstack/lit-table

npm i https://pkg.pr.new/TanStack/table/@tanstack/lit-table@6464

@tanstack/match-sorter-utils

npm i https://pkg.pr.new/TanStack/table/@tanstack/match-sorter-utils@6464

@tanstack/preact-table

npm i https://pkg.pr.new/TanStack/table/@tanstack/preact-table@6464

@tanstack/preact-table-devtools

npm i https://pkg.pr.new/TanStack/table/@tanstack/preact-table-devtools@6464

@tanstack/react-table

npm i https://pkg.pr.new/TanStack/table/@tanstack/react-table@6464

@tanstack/react-table-devtools

npm i https://pkg.pr.new/TanStack/table/@tanstack/react-table-devtools@6464

@tanstack/solid-table

npm i https://pkg.pr.new/TanStack/table/@tanstack/solid-table@6464

@tanstack/solid-table-devtools

npm i https://pkg.pr.new/TanStack/table/@tanstack/solid-table-devtools@6464

@tanstack/svelte-table

npm i https://pkg.pr.new/TanStack/table/@tanstack/svelte-table@6464

@tanstack/table-core

npm i https://pkg.pr.new/TanStack/table/@tanstack/table-core@6464

@tanstack/table-devtools

npm i https://pkg.pr.new/TanStack/table/@tanstack/table-devtools@6464

@tanstack/vue-table

npm i https://pkg.pr.new/TanStack/table/@tanstack/vue-table@6464

@tanstack/vue-table-devtools

npm i https://pkg.pr.new/TanStack/table/@tanstack/vue-table-devtools@6464

commit: d36f37e

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/framework/svelte/guide/migrating.md`:
- Around line 5-6: Update the migration note’s wording to use the hyphenated
compound adjective “beta-breaking change,” preserving the surrounding
explanation and formatting.

In `@docs/framework/svelte/guide/row-selection.md`:
- Around line 55-59: Update the selectedCount example derived from rowSelection
to count only entries whose values are truthy, rather than counting all keys.
Keep the rowSelection atom read unchanged and preserve the documented
boolean-map behavior.

In `@docs/framework/svelte/guide/sorting.md`:
- Around line 79-81: Move the table.atoms.sorting.get() snapshot read from
top-level component initialization into a click handler or callback example,
while keeping the $derived sorting declaration unchanged and demonstrating that
the snapshot is read during event handling.

In `@docs/framework/svelte/reference/functions/createTable.md`:
- Around line 47-50: Update the createTable call in the Svelte example to
provide data through a getter that returns the current data value, matching the
reactive pattern in the quick-start example; leave the features and columns
arguments unchanged.

In `@examples/svelte/basic-app-table/src/App.svelte`:
- Line 146: Fix the markup in the table-state `<pre>` block by keeping the
closing element after the complete JSON.stringify expression, including its
closing braces, so Svelte parses the expression and element correctly.

In `@examples/svelte/column-visibility/src/App.svelte`:
- Line 175: Complete the `table-state` `<pre>` markup in `App.svelte` by closing
the `JSON.stringify` expression and adding the closing `</pre>` tag, ensuring
the Svelte example compiles.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 04cb976c-723b-4c2e-9160-0f0da9aeca38

📥 Commits

Reviewing files that changed from the base of the PR and between 3b2eb64 and f27c492.

📒 Files selected for processing (85)
  • docs/config.json
  • docs/framework/svelte/guide/cell-selection.md
  • docs/framework/svelte/guide/column-filtering.md
  • docs/framework/svelte/guide/column-resizing.md
  • docs/framework/svelte/guide/composable-tables.md
  • docs/framework/svelte/guide/custom-features.md
  • docs/framework/svelte/guide/global-filtering.md
  • docs/framework/svelte/guide/migrating.md
  • docs/framework/svelte/guide/pagination.md
  • docs/framework/svelte/guide/row-selection.md
  • docs/framework/svelte/guide/sorting.md
  • docs/framework/svelte/guide/table-state.md
  • docs/framework/svelte/quick-start.md
  • docs/framework/svelte/reference/functions/createTable.md
  • docs/framework/svelte/reference/functions/createTableHook.md
  • docs/framework/svelte/reference/functions/subscribeTable.md
  • docs/framework/svelte/reference/index.md
  • docs/framework/svelte/reference/interfaces/CreateTableHookResult.md
  • docs/framework/svelte/reference/type-aliases/AppCellContext.md
  • docs/framework/svelte/reference/type-aliases/AppColumnDefBase.md
  • docs/framework/svelte/reference/type-aliases/AppColumnDefTemplate.md
  • docs/framework/svelte/reference/type-aliases/AppColumnHelper.md
  • docs/framework/svelte/reference/type-aliases/AppDisplayColumnDef.md
  • docs/framework/svelte/reference/type-aliases/AppGroupColumnDef.md
  • docs/framework/svelte/reference/type-aliases/AppHeaderContext.md
  • docs/framework/svelte/reference/type-aliases/AppSvelteTable.md
  • docs/framework/svelte/reference/type-aliases/ComponentType.md
  • docs/framework/svelte/reference/type-aliases/CreateTableHookOptions.md
  • docs/framework/svelte/reference/type-aliases/SubscribeSource.md
  • docs/framework/svelte/reference/type-aliases/SvelteTable.md
  • examples/svelte/aggregation/src/App.svelte
  • examples/svelte/basic-app-table/src/App.svelte
  • examples/svelte/basic-dynamic-columns/src/App.svelte
  • examples/svelte/basic-external-atoms/src/App.svelte
  • examples/svelte/basic-external-state/src/App.svelte
  • examples/svelte/cell-selection/src/App.svelte
  • examples/svelte/column-ordering/src/App.svelte
  • examples/svelte/column-pinning-split/src/App.svelte
  • examples/svelte/column-pinning-sticky/src/App.svelte
  • examples/svelte/column-pinning/src/App.svelte
  • examples/svelte/column-resizing/src/App.svelte
  • examples/svelte/column-sizing/src/App.svelte
  • examples/svelte/column-visibility/src/App.svelte
  • examples/svelte/column-visibility/tests/e2e/smoke.spec.ts
  • examples/svelte/composable-tables/src/components/PaginationControls.svelte
  • examples/svelte/composable-tables/src/components/ProductsTable.svelte
  • examples/svelte/composable-tables/src/components/UsersTable.svelte
  • examples/svelte/composable-tables/tests/e2e/smoke.spec.ts
  • examples/svelte/expanding/src/App.svelte
  • examples/svelte/filtering/src/App.svelte
  • examples/svelte/filters-faceted-bucketed/src/App.svelte
  • examples/svelte/filters-faceted/src/App.svelte
  • examples/svelte/filters-fuzzy/src/App.svelte
  • examples/svelte/grouped-aggregation/src/App.svelte
  • examples/svelte/grouping/src/App.svelte
  • examples/svelte/kitchen-sink/src/App.svelte
  • examples/svelte/pagination/src/App.svelte
  • examples/svelte/pagination/tests/e2e/smoke.spec.ts
  • examples/svelte/row-pinning/src/App.svelte
  • examples/svelte/row-selection/src/App.svelte
  • examples/svelte/row-selection/tests/e2e/smoke.spec.ts
  • examples/svelte/sorting/src/App.svelte
  • examples/svelte/sub-components/src/App.svelte
  • examples/svelte/with-tanstack-form/src/App.svelte
  • examples/svelte/with-tanstack-form/src/PaginationControls.svelte
  • examples/svelte/with-tanstack-query/src/App.svelte
  • examples/vue/pagination/src/App.vue
  • knip.json
  • packages/svelte-table/skills/migrate-v8-to-v9/SKILL.md
  • packages/svelte-table/skills/table-state/SKILL.md
  • packages/svelte-table/src/createTable.svelte.ts
  • packages/svelte-table/src/createTableHook.svelte.ts
  • packages/svelte-table/src/index.ts
  • packages/svelte-table/src/reactivity.svelte.ts
  • packages/svelte-table/src/subscribe.ts
  • packages/svelte-table/tests/adapter-lifecycle.test.ts
  • packages/svelte-table/tests/fixtures/HookHarness.svelte
  • packages/svelte-table/tests/fixtures/ReactivityHarness.svelte
  • packages/svelte-table/tests/fixtures/RuneStateHarness.svelte
  • packages/svelte-table/tests/fixtures/SelectorHarness.svelte
  • packages/svelte-table/tests/fixtures/SsrHarness.svelte
  • packages/svelte-table/tests/public-api.types.ts
  • packages/svelte-table/tests/rendering.test.ts
  • perf-done.md
  • perf-todo.md
💤 Files with no reviewable changes (10)
  • docs/framework/svelte/reference/functions/subscribeTable.md
  • packages/svelte-table/src/subscribe.ts
  • examples/vue/pagination/src/App.vue
  • docs/framework/svelte/reference/type-aliases/SubscribeSource.md
  • docs/config.json
  • examples/svelte/basic-dynamic-columns/src/App.svelte
  • packages/svelte-table/tests/fixtures/SelectorHarness.svelte
  • docs/framework/svelte/reference/index.md
  • packages/svelte-table/src/index.ts
  • examples/svelte/sub-components/src/App.svelte

Comment thread docs/framework/svelte/guide/migrating.md Outdated
Comment on lines +55 to +59
Use the same atom read in markup or a native derived value:

```ts
const rowSelection = $derived(table.atoms.rowSelection.get())
const selectedCount = $derived(Object.keys(rowSelection).length)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Count only truthy row-selection entries.

Because this guide documents rowSelection as a boolean map that may contain false values, Object.keys(rowSelection).length is not a reliable selected-row count.

-const selectedCount = $derived(Object.keys(rowSelection).length)
+const selectedCount = $derived(
+  Object.values(rowSelection).filter(Boolean).length,
+)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Use the same atom read in markup or a native derived value:
```ts
const rowSelection = $derived(table.atoms.rowSelection.get())
const selectedCount = $derived(Object.keys(rowSelection).length)
Use the same atom read in markup or a native derived value:
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/framework/svelte/guide/row-selection.md` around lines 55 - 59, Update
the selectedCount example derived from rowSelection to count only entries whose
values are truthy, rather than counting all keys. Keep the rowSelection atom
read unchanged and preserve the documented boolean-map behavior.

Comment thread docs/framework/svelte/guide/sorting.md Outdated
Comment thread docs/framework/svelte/reference/functions/createTable.md Outdated
</table>
<div class="spacer-md"></div>
<pre data-testid="table-state">{JSON.stringify(table.state, null, 2)
<pre data-testid="table-state">{JSON.stringify(table.store.get(), null, 2)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

sed -n '142,148p' examples/svelte/basic-app-table/src/App.svelte

Repository: TanStack/table

Length of output: 316


Close the <pre> expression.

The <pre data-testid="table-state"> block closes the element before the }</pre> expression, breaking Svelte parsing.

Proposed fix
-  <pre data-testid="table-state">{JSON.stringify(table.store.get(), null, 2)
+  <pre data-testid="table-state">{JSON.stringify(table.store.get(), null, 2)}</pre>
-  }
+</pre>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@examples/svelte/basic-app-table/src/App.svelte` at line 146, Fix the markup
in the table-state `<pre>` block by keeping the closing element after the
complete JSON.stringify expression, including its closing braces, so Svelte
parses the expression and element correctly.

</table>
<div class="spacer-md"></div>
<pre data-testid="table-state">{JSON.stringify(table.state, null, 2)
<pre data-testid="table-state">{JSON.stringify(table.store.get(), null, 2)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

sed -n '170,180p' examples/svelte/column-visibility/src/App.svelte
rg -nF '<pre data-testid="table-state">{JSON.stringify(table.store.get(), null, 2)}</pre>' \
  examples/svelte/column-visibility/src/App.svelte

Repository: TanStack/table

Length of output: 330


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

printf 'Svelte parser tooling:\n'
node -e "try { const p = require('svelte/compiler'); console.log('svelte/compiler available:', p.VERSION); process.exit(0); } catch(err) { console.log(err.message); process.exit(1); }" || true
node -e "try { const p = require('`@tanstack/reactive-utils`'); console.log('available'); } catch(err) { console.log(err.message); }" || true

printf '\nRelevant source lines with explicit null-byte boundaries removed from sed output:\n'
sed -n '173,178p' examples/svelte/column-visibility/src/App.svelte
printf '\nHex dump of pre expression boundary:\n'
sed -n '176p' examples/svelte/column-visibility/src/App.svelte | od -An -tx1 -c

Repository: TanStack/table

Length of output: 643


Restore the closing Svelte markup.

The <pre> expression is left open and the element never closes, so this example will fail to compile.

Proposed fix
-  <pre data-testid="table-state">{JSON.stringify(table.store.get(), null, 2)
+  <pre data-testid="table-state">{JSON.stringify(table.store.get(), null, 2)}</pre>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<pre data-testid="table-state">{JSON.stringify(table.store.get(), null, 2)
<pre data-testid="table-state">{JSON.stringify(table.store.get(), null, 2)}</pre>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@examples/svelte/column-visibility/src/App.svelte` at line 175, Complete the
`table-state` `<pre>` markup in `App.svelte` by closing the `JSON.stringify`
expression and adding the closing `</pre>` tag, ensuring the Svelte example
compiles.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/svelte-table/skills/table-state/SKILL.md`:
- Around line 98-104: Clarify the pagination example around the tableFeatures
configuration: either add createPaginatedRowModel to demonstrate client-side
pagination, or explicitly configure manualPagination with the total row/page
count for state-only or server-side pagination. Keep rowPaginationFeature and
the existing createTableState setup consistent with the selected mode.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ba193968-9085-40b6-a90c-95661fa7b6a3

📥 Commits

Reviewing files that changed from the base of the PR and between f27c492 and 0a310dc.

📒 Files selected for processing (6)
  • _artifacts/domain_map.yaml
  • _artifacts/skill_spec.md
  • _artifacts/skill_tree.yaml
  • packages/svelte-table/skills/migrate-v8-to-v9/SKILL.md
  • packages/svelte-table/skills/table-state/SKILL.md
  • packages/svelte-table/skills/with-tanstack-query/SKILL.md

Comment on lines +98 to +104
createTableState,
rowPaginationFeature,
tableFeatures,
type PaginationState,
} from '@tanstack/svelte-table'

const features = tableFeatures({ rowPaginationFeature })

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

rg -n "paginatedRowModel|createPaginatedRowModel|manualPagination" \
  docs/framework/svelte \
  packages/svelte-table/skills/table-state/SKILL.md

Repository: TanStack/table

Length of output: 3936


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "## Target snippet"
sed -n '70,120p' packages/svelte-table/skills/table-state/SKILL.md

echo
echo "## Nearby examples/usages in target file"
rg -n "rowPaginationFeature|paginatedRowModel|manualPagination|getPageCount|getRowModel|createTableState" packages/svelte-table/skills/table-state/SKILL.md

echo
echo "## Official Svelte pagination guide relevant ranges"
sed -n '1,130p' docs/framework/svelte/guide/pagination.md
sed -n '40,90p' docs/framework/svelte/guide/table-state.md

Repository: TanStack/table

Length of output: 10604


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "## Full 'Reduce boilerplate with createTableState' section"
sed -n '90,165p' packages/svelte-table/skills/table-state/SKILL.md

echo
echo "## Check for rowPaginationFeature without paginatedRowModel elsewhere in skill docs"
python3 - <<'PY'
from pathlib import Path
import re

path = Path('packages/svelte-table/skills/table-state/SKILL.md')
text = path.read_text()

blocks = re.findall(r'```ts\n(?P<body>.*?)\n```', text, re.S)
for i, body in enumerate(blocks, 1):
    if 'rowPaginationFeature' in body and 'createPaginatedRowModel' not in body:
        idx = text.index(body)
        # Estimate start line by counting preceding newlines
        line_no = text[:idx].count('\n') + 1
        print(f'block {i} starting approximately line {line_no}')
        print(body.strip()[:800])
        print('---')
PY

Repository: TanStack/table

Length of output: 3575


Scope the pagination example to client- or server-side pagination.

This snippet registers rowPaginationFeature but does not set up pagination row-model behavior. If it is meant to demonstrate client-side pagination, add paginatedRowModel: createPaginatedRowModel() from @tanstack/svelte-table. If it is state/manual-pagination-only, make that explicit by showing manualPagination: true and the total row/page count.

🧰 Tools
🪛 SkillSpector (2.4.4)

[error] 132: [MP3] Memory Manipulation: Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

Remediation: Protect agent memory and state from modification by untrusted content. Use read-only memory for critical instructions and validate all state changes.

(Memory Poisoning (MP3))

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/svelte-table/skills/table-state/SKILL.md` around lines 98 - 104,
Clarify the pagination example around the tableFeatures configuration: either
add createPaginatedRowModel to demonstrate client-side pagination, or explicitly
configure manualPagination with the total row/page count for state-only or
server-side pagination. Keep rowPaginationFeature and the existing
createTableState setup consistent with the selected mode.

@KevinVandy
KevinVandy merged commit 8b60e08 into beta Jul 30, 2026
10 checks passed
@KevinVandy
KevinVandy deleted the remove-svelte-selectors branch July 30, 2026 03:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant