- DataTable: route handlePageSizeChange through handlePaginationChange so
onPageChange fires when picking "All" on a high page drops pageIndex to 0.
Without this, the URL kept a stale ?page=N while the display correctly
clamped to "Page 1 of 1".
- DataTable: reconcile effect in controlled mode now compares
externalPageIndex (the URL source of truth) against safePageIndex instead
of the internal mirror, which can drop to 0 via handlePageSizeChange and
hide the URL mismatch from the previous comparison.
- knowledges: add meta.columnMenuLabel to docType and question columns so
the Columns dropdown reads "Type" / "Question" — same labels as the
table headers — aligning with the Flags/Preview entries.
- data-table.test: cover both pathways — out-of-range controlled pageIndex
on mount, and pageSize=All from page 2.
- vitest.setup: polyfill hasPointerCapture / setPointerCapture /
releasePointerCapture so Radix Select interactions don't crash in jsdom.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>