# TeXise R14.28.20 Build Fix 49 — Pagination Typecheck Correction

## Production failure

The BF48 production installer completed dependency installation and custom validation, then strict `tsgo` stopped on one error in the `/templates` pagination renderer:

```text
packages/core/app/src/saas/saas-app.tsx:992:464 - error TS2532: Object is possibly 'undefined'.
```

The expression `value - array[index - 1]` is logically guarded by `index > 0`, but TypeScript with `noUncheckedIndexedAccess` still correctly types an arbitrary array lookup as `number | undefined`.

## Correction

BF49 preserves the exact pagination semantics while making the lookup type-safe:

```ts
index > 0 && value - (array[index - 1] ?? value) > 1
```

When a previous element exists, behavior is unchanged. If the lookup is unexpectedly absent, the fallback makes the gap zero and therefore safely suppresses the ellipsis instead of operating on `undefined`. No non-null assertion and no weakening of compiler settings is used.

## Release hardening

BF49 adds `scripts/buildfix49-pagination-typecheck-regression.test.mjs` and `scripts/repair-buildfix49-source.mjs`. The current installer, deployment guard, collaboration diagnostics and service-worker cache are rotated to Build Fix 49. Historical release guards are extended to accept BF49 as a later compatible release without changing their historical feature assertions.

## Verification

A standalone TypeScript compiler probe passes with `--strict --noUncheckedIndexedAccess`. Dependency-free verification also passes the current R14.28.20 suite, R14.28.14–19 historical suites, runtime hardening, native Node server tests, Hotfix10 focused tests, SaaS audit, release audit, branding, lockfile, workspace-version and public-barrel checks.

The authoritative repository-wide `tsgo -> Biome -> Vite` pipeline remains the production installer gate because this packaging workspace does not contain the monorepo `node_modules`.
