# Upgrade Guide — vNEXT

<!-- assembled-by: assemble-next-md -->
<!-- bump: patch -->

## What Changed

The feedback-migration **cutover-readiness parity pass** can now actually complete. `HttpParitySource` gained an opt-in `clustersOnly` mode; the parity-pass closure in `AgentServer` (`runParityCheck`) sets it.

Previously the parity pass paginated Portal's entire ~145K-row feedback table just to collect clusters — but Portal returns the **complete** cluster set in every page's `data.clusters` (verified live: offsets 0/70k/143k and even `limit=1` all return all 1,370 clusters). On the contended server that full grind couldn't finish inside the single-flight max-hold budget, so the parity pass failed every ~20 minutes for hours (`exceeded the max-hold budget (720000ms)`, #948) and the cutover door's parity window went permanently stale. With `clustersOnly`, the parity pass stops after page 0 — one ~1-second request instead of 146 — and refreshes the window.

`captureRaw` (the import rehearsal, which genuinely needs every feedback row) explicitly overrides `clustersOnly`, so that path is unchanged.

## What to Tell Your User

Internal migration infrastructure — nothing to configure. This unblocks the cutover-readiness parity check (it was timing out on a needless full-table fetch) so the parity gate can go green ahead of the operator-gated cutover.

## Summary of New Capabilities

| Capability | How to use |
|-----------|-----------|
| Fetch only the cluster snapshot (skip the full feedback pagination) | `new HttpParitySource({ ..., clustersOnly: true })` — stops after page 0; `captureRaw` overrides it |

## Evidence

Unit tests: `tests/unit/feedback-factory/http-parity-source.test.ts` — 22/22 green, incl. 2 new (`clustersOnly` stops after a FULL page 0; `captureRaw` overrides `clustersOnly` so the import path still paginates). `tsc --noEmit` clean. Empirically grounded against the live Portal endpoint (all 1,370 clusters returned per page at offsets 0/70k/143k and at `limit=1`). Earned from topic 12476 (feedback-process migration, Phase-2/cutover-readiness; #948 server-side fetch root).
