Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Jan 19, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

alexluong and others added 5 commits January 19, 2026 23:45
* feat: add unified cursor package with base62 encoding

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: migrate logstore cursor to unified cursor package

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: use unified cursor package for tenants pagination

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add pagination package with Run[T] function

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: migrate memlogstore to pagination package

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: migrate pglogstore to pagination package

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: memlogstore uses q.Compare for reference impl parity

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: migrate chlogstore to pagination package

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: extract query builders and row scanners from Fetch callbacks

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test: add paginationtest suite and wire up to drivertest

* refactor: split drivertest into separate test files by category

Extract tests from drivertest.go into focused files:
- operations.go: CRUD tests (insert, list, retrieve)
- pagination.go: cursor-based pagination tests using paginationtest.Suite
- misc.go: isolation, edge cases, and cursor validation tests

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: consolidate operations tests into cohesive CRUD suite

Replace separate test functions with a single testCRUD that:
- Seeds data once, then tests insert verification, list filters, and retrieve
- Groups related assertions together (insert→list→retrieve flow)
- Renames "Operations" to "CRUD" for clarity

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test: add concurrent duplicate insert idempotency test

Verifies that racing N goroutines inserting the same DeliveryEvent
results in exactly 1 record, ensuring idempotency under concurrent load.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: remove driver.ErrInvalidCursor, use cursor package errors

- Remove ErrInvalidCursor from internal/logstore/driver
- Remove convertCursorError helper from all logstore implementations
- Return cursor.ErrInvalidCursor directly from Decode callbacks
- Update drivertest to check for cursor.ErrInvalidCursor

The cursor package already defines ErrInvalidCursor and ErrVersionMismatch,
so the driver package doesn't need its own duplicate error type.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: return 400 for cursor errors in log handlers

Previously, invalid cursor errors would return 500 Internal Server Error.
Now properly returns 400 Bad Request for cursor.ErrInvalidCursor and
cursor.ErrVersionMismatch, consistent with tenant_handlers.go behavior.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* test: add pagination test suite for ListTenant

Adds paginationtest.Suite for ListTenant to verify proper cursor-based
pagination behavior. These tests currently fail because the existing
implementation doesn't use the n+1 pattern to detect hasMore.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: migrate ListTenant to pagination package with n+1 pattern

Use pagination.Run for proper hasMore detection via n+1 pattern.
Last page now has no Next cursor, first page has no Prev cursor.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test: add deployment ID variants, make Dragonfly primary

- Add TestListTenantPagination_WithDeploymentID variant
- Rename RedisStack tests to _Compat_ suffix
- Dragonfly is now the primary test target

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test: remove redundant ListTenant tests, cleanup naming

- Remove TestListTenantPagination (covered by paginationtest.Suite)
- Remove outdated offset-based delete edge case test
- Rename TestListTenantBasic → TestListTenantEnrichment
- Rename TestListTenantPaginationEdgeCases → TestListTenantKeysetPagination
- Remove redundant ordering subtests

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Reduces test time from 30s to <1s by avoiding network timeout.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* docs: fix some v0.12.0 upgrading guide info

* docs: improve migration docs
@pull pull bot locked and limited conversation to collaborators Jan 19, 2026
@pull pull bot added the ⤵️ pull label Jan 19, 2026
@pull pull bot merged commit e6f38e9 into erickirt:main Jan 19, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant