ST-055: TanStack v9-tabel voor Rules #113

Merged
janpeter merged 5 commits from codex/tanstack-v9-rules into main 2026-10-01 06:11:24 +02:00
Owner

Wijziging

  • Zet alleen de Rules-tabel om naar TanStack Table v9.2.4 met zichtbare sorteerpijlen en aria-sort.
  • Bewaart kolom en richting onder scrum4me-workers:rules:sort:v1 in localStorage; kapotte of geweigerde opslag valt veilig terug op geheugen.
  • Zet de buitencontainer op 80% vanaf xl. Lange rule-namen breken af zodat Publish zichtbaar blijft op kleine schermen.
  • Publish blijft gekoppeld aan de oorspronkelijke rule-id, ook na herordening.

Verificatie

  • npm run verify: 162 testbestanden en 1336 tests geslaagd; 2 bestanden en 18 tests door bestaande omgevingsgates overgeslagen.
  • Docker builder build op definitieve bron geslaagd; image-manifest sha256:50786be0c2933a07dd03691e1fe1b8464ad22f58788c8308c1d0efe366fbb6aa.
  • Browserproef op lokale wegwerpdatabase: 1728, 1280, 1024 en 768 CSS-px; toetsenbord, navigatie, reload en nieuwe tab in hetzelfde Chrome-profiel gecontroleerd.
  • Hydratatie en opslagfouten zijn met componenttests afgedekt; Publish is alleen met een gemockte serveractie getest.

Grenzen

  • Publish is live niet aangeklikt. Geen productieproef of deployment. Forgejo-CI moet apart worden beoordeeld.
  • Een volledige browserproces-herstart is niet uitgevoerd; herstel in een nieuwe tab van hetzelfde profiel wel.
  • Reviewcorrectie: het publieke SingleSort-contract is hersteld; zie afhandeling hieronder.

Plan en bewijs voor herreview

## Wijziging - Zet alleen de Rules-tabel om naar TanStack Table v9.2.4 met zichtbare sorteerpijlen en aria-sort. - Bewaart kolom en richting onder scrum4me-workers:rules:sort:v1 in localStorage; kapotte of geweigerde opslag valt veilig terug op geheugen. - Zet de buitencontainer op 80% vanaf xl. Lange rule-namen breken af zodat Publish zichtbaar blijft op kleine schermen. - Publish blijft gekoppeld aan de oorspronkelijke rule-id, ook na herordening. ## Verificatie - npm run verify: 162 testbestanden en 1336 tests geslaagd; 2 bestanden en 18 tests door bestaande omgevingsgates overgeslagen. - Docker builder build op definitieve bron geslaagd; image-manifest sha256:50786be0c2933a07dd03691e1fe1b8464ad22f58788c8308c1d0efe366fbb6aa. - Browserproef op lokale wegwerpdatabase: 1728, 1280, 1024 en 768 CSS-px; toetsenbord, navigatie, reload en nieuwe tab in hetzelfde Chrome-profiel gecontroleerd. - Hydratatie en opslagfouten zijn met componenttests afgedekt; Publish is alleen met een gemockte serveractie getest. ## Grenzen - Publish is live niet aangeklikt. Geen productieproef of deployment. Forgejo-CI moet apart worden beoordeeld. - Een volledige browserproces-herstart is niet uitgevoerd; herstel in een nieuwe tab van hetzelfde profiel wel. - Reviewcorrectie: het publieke SingleSort-contract is hersteld; zie afhandeling hieronder. ## Plan en bewijs voor herreview - Publiek SingleSort is nu {column,direction}; de adapter zet dit intern om naar TanStack-state. Alleen de actieve kop krijgt aria-sort. Enter en Space hebben nu een geautomatiseerde native-knoptest. - Lokale Verify: 1337 tests geslaagd, 18 bestaande skips; Docker-builder geslaagd met manifest sha256:435be0838820b661b06d55c5ad630f4e57cc1c746cbf2c94c8a98ffb0c8dcb44. Browser op lokale wegwerpdatabase: één actieve aria-sort-kop, Enter/Space en geen Publish-actie bevestigd. - Gereviewd implementatieplan: https://git.jp-visser.nl/janpeter/Scrum4Me/src/commit/e81bd411c7e1e8cae19f0833ed9cc4d5b4b036db/docs/superpowers/plans/2026-10-01-tanstack-v9-data-table-pilots.md - Reviewevaluatie en afhandeling: https://git.jp-visser.nl/janpeter/Scrum4Me/src/commit/e81bd411c7e1e8cae19f0833ed9cc4d5b4b036db/docs/superpowers/reviews/2026-10-01-tanstack-v9-forgejo-reviews-evaluatie.md - Forgejo-CI op deze nieuwe HEAD is de externe PR-gate; lokale resultaten zijn apart vermeld.
s4m-codex-reviewer left a comment

Verdict: REQUEST_CHANGES

Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.

Findings

  • MAJOR — components/shared/data-table.tsx:26: de geëxporteerde SingleSort heeft { id, desc }, terwijl de vastgelegde Workers-adapterstandaard { column, direction } voorschrijft en de omzetting naar TanStack intern hoort plaats te vinden. Hierdoor wijkt de publieke adapterinterface af van het afgesproken cross-repo patroon.
  • MINOR — components/shared/data-table.tsx:65: ook inactieve sorteerkoppen krijgen aria-sort="none". Beperk aria-sort tot de actieve gesorteerde kop, zoals de toegankelijkheidsconventie voor deze adapter voorschrijft.
  • MINOR — __tests__/components/shared/data-table.test.tsx:49: de vereiste Enter/Space-dekking voor sorteerkoppen ontbreekt; de test verifieert uitsluitend muisklikken.

De gewijzigde TanStack v9-aanroepen zelf zijn statisch gecontroleerd. De volledige projecttypecheck kon lokaal niet als PR-signaal worden gebruikt doordat de checkout zonder geïnitialiseerde shared-submodule al bestaande niet-gerelateerde typefouten bevatte; Vitest startte niet door een omgevingsfout bij het laden van Rollup.

# Verdict: REQUEST_CHANGES Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden. ## Findings - **MAJOR** — `components/shared/data-table.tsx:26`: de geëxporteerde `SingleSort` heeft `{ id, desc }`, terwijl de vastgelegde Workers-adapterstandaard `{ column, direction }` voorschrijft en de omzetting naar TanStack intern hoort plaats te vinden. Hierdoor wijkt de publieke adapterinterface af van het afgesproken cross-repo patroon. - **MINOR** — `components/shared/data-table.tsx:65`: ook inactieve sorteerkoppen krijgen `aria-sort="none"`. Beperk `aria-sort` tot de actieve gesorteerde kop, zoals de toegankelijkheidsconventie voor deze adapter voorschrijft. - **MINOR** — `__tests__/components/shared/data-table.test.tsx:49`: de vereiste Enter/Space-dekking voor sorteerkoppen ontbreekt; de test verifieert uitsluitend muisklikken. De gewijzigde TanStack v9-aanroepen zelf zijn statisch gecontroleerd. De volledige projecttypecheck kon lokaal niet als PR-signaal worden gebruikt doordat de checkout zonder geïnitialiseerde shared-submodule al bestaande niet-gerelateerde typefouten bevatte; Vitest startte niet door een omgevingsfout bij het laden van Rollup.
fix(ST-055): align table adapter with reviewed contract
All checks were successful
CI / Verify (pull_request) Successful in 2m7s
16b46325dc
s4m-codex-reviewer left a comment

COMMENT

  • INFO — app/(app)/rules/page.tsx:48: de 80%-desktopbreedte en de interne Table-overflow sluiten aan op de productstandaard, maar de PR bevat geen reproduceerbaar browserbewijs voor de vier voorgeschreven viewports, toetsenbordgedrag en interne horizontale scroll. Die acceptatiegate blijft daarom onbevestigd.
  • INFO — __tests__/components/shared/data-table.test.tsx:1: de toegevoegde gerichte tests dekken sortering, toegankelijkheid, rij-id's en Publish na herordening goed. Uitvoering kon in deze reviewrunner niet worden bevestigd: de tijdelijke checkout staat op een noexec-mount, waardoor Vitest/Rollup de native module niet kan laden. Dit is geen diff-fout, maar voorkomt een autonome APPROVED-status.

geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.

## COMMENT - INFO — `app/(app)/rules/page.tsx:48`: de 80%-desktopbreedte en de interne Table-overflow sluiten aan op de productstandaard, maar de PR bevat geen reproduceerbaar browserbewijs voor de vier voorgeschreven viewports, toetsenbordgedrag en interne horizontale scroll. Die acceptatiegate blijft daarom onbevestigd. - INFO — `__tests__/components/shared/data-table.test.tsx:1`: de toegevoegde gerichte tests dekken sortering, toegankelijkheid, rij-id's en Publish na herordening goed. Uitvoering kon in deze reviewrunner niet worden bevestigd: de tijdelijke checkout staat op een noexec-mount, waardoor Vitest/Rollup de native module niet kan laden. Dit is geen diff-fout, maar voorkomt een autonome APPROVED-status. geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
Sign in to join this conversation.
No reviewers
No labels
severity/s4
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
janpeter/scrum4me-workers!113
No description provided.