NORTHSET
Proof-of-Pass Receipt
Receipt ID M-171
ISSUE / WORKUsing instant search with hitsPerPage = 0 returns 1 result · PR #1502
CONTRIBUTOR SELF-RUN — NOT MAINTAINER VERIFICATION
RUN→
01 / TECHNICAL RESULT
Technical result
declared commands passed
Recorded on the named code in the named execution environment. The evidence annex carries the exact scope.
- Upstream
- OPENmutable external state
- Attempts
- 5 totalcurrent
M-171· #5 - Cost record
- PARTIALunpriced
02 / RECORDED WORK SEQUENCE
Northset Proofline
Every task-bound attempt is shown in recorded order. Anatomy geometry follows each non-null elapsed duration’s share; labels retain exact recorded time.
- ATTEMPTS 1–3
M-131 → M-1533× FAILED INFRA TERMINALinfrastructure - ATTEMPT 4
M-164FAILED ORACLEverification - ATTEMPT 5
M-171READY
ATTEMPT 5 / EXECUTION ANATOMY
03 / ECONOMIC NARRATIVE
Economic identity
Observed sponsorship, authorization, scope, transfer, and outcome. No estimates or inferred value.
01 / MANDATE
Sponsored and authorized
The recorded mandate names both its sponsor and initiative, with authorization tied to a named approver and approval time.
02 / WORK
Demand became scoped work
An external issue invitation became a stable task and a recorded code-and-test scope, without treating scope as a measure of value.
03 / EXTERNAL OUTCOME
Transfer and upstream state
The recorded maintainer transfer and its contingency are separate from upstream state, which remains a mutable external observation.
04 / COST COMPLETENESS
Known, unknown, and unpriced
Known: maintainer payment was none. A known zero external transfer is not a zero total cost.
Missing or unpriced components
- model inference
- actual host compute
- human review
- shared tooling
No complete total is recorded; see the missing or unpriced component record above.
Evidence annexEconomic · technical · provenance · limitations
01Economic evidence
Lineage, usage, caps, outcome, and cost provenance
Economic evidence
Lineage, usage, caps, outcome, and cost provenanceAttempt lineage
M-131attempt 1 · FAILED INFRA TERMINAL · infrastructureM-141attempt 2 · FAILED INFRA TERMINAL · infrastructureM-153attempt 3 · FAILED INFRA TERMINAL · infrastructureM-164attempt 4 · FAILED ORACLE · verificationM-171attempt 5 · READY
Recorded usage
- requested reviewer model
- gpt-5.6-sol
- actual reviewer model
- not captured
- requested author model
- gpt-5.6-sol
- actual author model
- not captured
- networked setup phase
- 2m35s
- install-only duration
- not captured
- declared commands
- 2.5s
- unclassified executor time
- 51.3s
- CPU time
- not captured
- peak RSS
- not captured
Configured resource envelope
- CPU cap
- 2
- memory cap
- 4096 MB
- PID cap
- 512
- command wall cap
- 1800s
- output cap / stream
- 2000000 bytes
Configured limits are an envelope, not observed consumption.
Cost lines
- maintainer paymentobserved quantity unpriced · 0 external transfer · amount unavailable
Cost status: partial. Values without source-backed quantities and rates remain null.
Outcome facts
- technical checks passed
- true
- PR opened
- true
- CI
- pending
- merged
- false
- accepted as submitted
- not established
- external cycle time
- not captured
- released
- not observed
- deployed
- not observed
- business result
- not observed
02Technical evidence
Code, environment, exact commands, patch, and outputs
Technical evidence
Code, environment, exact commands, patch, and outputsProject
meilisearch/meilisearch-js-plugins
Work
Using instant search with hitsPerPage = 0 returns 1 result · PR #1502
Verification execution
runtime: northset-oss executor v1
human operator: aeziz
Code
- base
ea68e406775b5b2378678c78fc614fd9e486a3ef- recorded patch commit
92e0d82d5bea6a93d8947ff63ee7ea4652591ec5
declared metadata; not execution-bound- patch diff SHA-256
sha256:dc2fbcaf48dbff7060e616710d128ce9fdccba3afbe1a9138f0751a28a8edbd8
bound to executed patch bytes
Environment
- image reference
- node@sha256:40ad9f3064e67d6860b4bc3fe1880b2953934fd6320ada990e45fe0efa6badd7
- repository digest
node@sha256:40ad9f3064e67d6860b4bc3fe1880b2953934fd6320ada990e45fe0efa6badd7- immutable image ID
sha256:6ed6ff875e9714bb845b850b08f3ad231ccbb5848812647bcf11acdd4bd1d2f8- platform
- linux/arm64
- network
- phaseA:bridge,phaseB:none
Declared checks
Execution summary
1/1 declared command returned exit 0 in the recorded environment
npm test -- --configLoader runner --no-cache packages/instant-meilisearch/src/adapter/search-request-adapter/__tests__/search-params.test.tsexit 0 · 2.5s
run wall (derived from recorded timestamps) 3m29s
PASS — 1/1 declared command
Every command listed returned exit 0 in the declared environment. Only the listed commands are in scope. Unlisted test, lint, typecheck, build, coverage, compiler, full-suite, and CI gates are not implied or recorded.
Public scope interpretation
The receipt proves the declared automated checks only; maintainer review and merge remain independent human decisions.
Committed patch.diff
diff --git a/.changeset/fix-zero-hits-per-page.md b/.changeset/fix-zero-hits-per-page.md
new file mode 100644
index 0000000000000000000000000000000000000000..9865c1ffdbe0d6045eb91404c727a26fc8737e9d
--- /dev/null
+++ b/.changeset/fix-zero-hits-per-page.md
@@ -0,0 +1,5 @@
+---
+'@meilisearch/instant-meilisearch': patch
+---
+
+Preserve zero hits per page in non-finite pagination requests.
diff --git a/packages/instant-meilisearch/src/adapter/search-request-adapter/__tests__/search-params.test.ts b/packages/instant-meilisearch/src/adapter/search-request-adapter/__tests__/search-params.test.ts
index 5ebb049b4254ea1197df9dfe464325f209f3e2f9..b82114ea0a1c8484b93448fdb4dca912ff451cb5 100644
--- a/packages/instant-meilisearch/src/adapter/search-request-adapter/__tests__/search-params.test.ts
+++ b/packages/instant-meilisearch/src/adapter/search-request-adapter/__tests__/search-params.test.ts
@@ -375,6 +375,15 @@ describe('Pagination adapter', () => {
expect(searchParams.offset).toBe(6)
})
+ test('preserves zero hits per page in the request limit', () => {
+ const searchParams = adaptSearchParams({
+ ...DEFAULT_CONTEXT,
+ pagination: { page: 0, hitsPerPage: 0, finite: false },
+ })
+
+ expect(searchParams.limit).toBe(0)
+ })
+
test('adapting a finite pagination with no placeholderSearch', () => {
const searchParams = adaptSearchParams({
...DEFAULT_CONTEXT,
diff --git a/packages/instant-meilisearch/src/adapter/search-request-adapter/search-params-adapter.ts b/packages/instant-meilisearch/src/adapter/search-request-adapter/search-params-adapter.ts
index 9cd89de2ace0b39497d3757ee51e98ecabc604a2..47eee22d8777109e2eb6a6671b4808ab861fea43 100644
--- a/packages/instant-meilisearch/src/adapter/search-request-adapter/search-params-adapter.ts
+++ b/packages/instant-meilisearch/src/adapter/search-request-adapter/search-params-adapter.ts
@@ -35,7 +35,7 @@ function setScrollPagination(
}
return {
- limit: hitsPerPage + 1,
+ limit: hitsPerPage === 0 ? 0 : hitsPerPage + 1,
offset: page * hitsPerPage,
}
}
Redacted stdout
=== cmd 1: npm test -- --configLoader runner --no-cache packages/instant-meilisearch/src/adapter/search-request-adapter/__tests__/search-params.test.ts ===
> test
> vitest run --configLoader runner --no-cache packages/instant-meilisearch/src/adapter/search-request-adapter/__tests__/search-params.test.ts
[1m[46m RUN [49m[22m [36mv4.1.2 [39m[90m/workspace[39m
[32m✓[39m [30m[46m @meilisearch/instant-meilisearch [49m[39m src/adapter/search-request-adapter/__tests__/search-params.test.ts [2m([22m[2m30 tests[22m[2m)[22m[32m 7[2mms[22m[39m
[2m Test Files [22m [1m[32m1 passed[39m[22m[90m (1)[39m
[2m Tests [22m [1m[32m30 passed[39m[22m[90m (30)[39m
[2m Start at [22m 22:22:45
[2m Duration [22m 824ms[2m (transform 553ms, setup 0ms, import 579ms, tests 7ms, environment 0ms)[22m
Redacted stderr
=== cmd 1: npm test -- --configLoader runner --no-cache packages/instant-meilisearch/src/adapter/search-request-adapter/__tests__/search-params.test.ts ===
03Provenance & limitations
Bundle identity, attestation, verification, and claims boundary
Provenance & limitations
Bundle identity, attestation, verification, and claims boundaryRecord details
- payment
- none · not merge-contingent
- redactions
- none recorded
- Bundle contents digest
sha256:3ac13d74bf8a0d3e62d087beefbfb77e6ae3bf728cf9ea590af215dfced7ab94- Signed asset SHA-256
sha256:389c985289edb73da68d1e498496cbc6f174349e0edfa062b0c00bb73aee4266- Signed provenance recorded
- verified 2026-07-16T22:49:24.729Z
NOT INCLUDED
- Does not prove code quality
- Does not prove security
- Contributor self-run record of Northset's own contribution; not the maintainer's verification.
- The receipt proves the declared automated checks only; maintainer review and merge remain independent human decisions.
Signed bundle
Verify this receipt
gh attestation verify run-record-M-171-3ac13d74bf8a.tar.gz --repo northset-oss/verification-pilot --signer-workflow northset-oss/verification-pilot/.github/workflows/attest-bundle.ymlAttestation confirms that Northset's signing workflow produced this exact bundle. The signer does not witness the recorded run, and verification does not turn it into maintainer verification.
QR → receipt page