---
summary: "Decouple spillover pageSize from loadLimit via BRAPI_PAGE_SIZE — fixes spillover timeout when agents request a small inline preview"
breaking: false
security: false
---

# 0.7.3 — 2026-06-08

## Added

- **`BRAPI_PAGE_SIZE`** — new env var (default `1000`) controls the upstream `pageSize` used during canvas spillover walks, decoupled from `BRAPI_LOAD_LIMIT`. Previously `loadLimit` doubled as the upstream pageSize, so `loadLimit=5` triggered a 245-page walk against sweetpotatobase (1221 rows ÷ 5) instead of 2 pages. Now the walk always uses `pageSize` regardless of the agent's inline-preview cap ([#26](https://github.com/cyanheads/brapi-mcp-server/issues/26)).
- **Distributions truncation caveat** — when a `find_*` result dataframe is truncated (upstream total > dataframe rowCount), `renderDistributions` prefixes the block with `_Computed over N of M upstream rows — narrow filters or raise loadLimit for a representative sample._` ([#26](https://github.com/cyanheads/brapi-mcp-server/issues/26)).
- **Page-offset alignment** — `spillToCanvas` re-fetches from page 0 when `loadLimit !== pageSize` to keep page offsets consistent with the spillover walk.

## Changed

- **`LoadLimitInput.describe()`** — rewritten to drop the dual-role footgun warning; now reads "Cap on rows returned inline. Rows beyond the cap land in a dataframe; query with `brapi_dataframe_query` (SQL)."
- **`@types/node`** — added to `devcheck.config.json` outdated allowlist (patch behind, held per framework hold convention).

## Fixed

- **Spillover timeout on small `loadLimit`** — resolved as a side effect of the `BRAPI_PAGE_SIZE` decoupling: agents requesting a narrow inline preview no longer silently shrink the upstream pageSize and trigger excessive page counts ([#21](https://github.com/cyanheads/brapi-mcp-server/issues/21)). Live re-test on sweetpotatobase study 1131: ~14s elapsed (2 pages at `pageSize=1000`) versus the prior ~200+ pages at `loadLimit=5`.
