Skip to content

feat(requests): paginate the request list #48

Closed

Description

@Fluory

Ziel

The request list (/requests, #26 / PR #43) stays fast and readable with thousands of requests per company. Today it loads every matching request at once.

Akzeptanzkriterien

  • The list shows a fixed page size (e.g. 50) with next/previous navigation; filters (status, possible duplicate) survive paging.
  • Paging is stable while new requests arrive (keyset on created_at, id, not OFFSET).
  • Page parameters from the query string are validated (allow-list / bounds); invalid values fall back to the first page.
  • Export records and retry info are loaded only for the requests on the current page (no N+1, no full scan).
  • Tenant isolation unchanged: only the session's company, via withTenant.

Nicht Teil dieser Aufgabe

  • Full-text search, sorting by other columns.

Betroffene Bereiche

  • src/features/requests/repository.ts (listRequests), src/features/export/repository.ts (listExportRecords), src/app/requests/page.tsx

Testplan

Kriterium Prüfart
Page size + navigation + filters integration test
Stable keyset paging with inserts between pages integration test
Invalid page params unit test
Other company's requests never appear integration test (two tenants)

Offene Entscheidungen

  • Page size; whether a total count is needed (costs a COUNT per page view).

Security/Privacy betroffen?

Nein (query parameters validated; tenant isolation unchanged).

Found in the review of PR #43.

Activity

  1. added
    featureNew capability
    readyDefinition of Ready met – may be claimed
    on Sep 23, 2026
  2. self-assigned this
    on Sep 24, 2026
  3. Fluory commented on Sep 24, 2026

    @Fluory
    OwnerAuthor

    Claimed by @Fluory (Claude Code session) on branch claude/feat-request-pagination-48. It is stacked on PR #53, because both change the request list page. Draft PR follows.


    Generated by Claude Code

  4. added 2 commits that reference this issue on Sep 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

featureNew capabilityreadyDefinition of Ready met – may be claimed

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions