# BF51 — Growth, Comparison Intelligence, Ollama AI & Search Hardening

BF51 is cumulative over the R14.28.20 BF50.23 R6 baseline. It adds first-class Ollama local-service AI, an evidence-backed comparison/SEO registry, Bing favicon/index recovery, IndexNow notification, local-only Live PDF diagnostics and shared bounded AI structured-output recovery.

## AI execution modes

- **Local AI** runs TeXise's downloaded browser model in the browser.
- **Ollama** sends requests only to the configured loopback Ollama service on this computer. It requires no user API key and never automatically falls back to cloud AI.
- **BYOK AI** sends the request directly from the browser to the cloud provider whose API key the user supplied. Cloud credentials remain browser-held.

Initial Ollama HTTP targets are deliberately restricted to `localhost` and `127.0.0.1`. Production CSP allows those loopback targets only. Users must configure Ollama to allow `https://www.texise.com` with its current `OLLAMA_ORIGINS` mechanism.

## Comparison architecture

`packages/core/app/src/saas/compare-content.json` is the canonical comparison evidence source. Browser content, SSR SEO and sitemap routes derive from it. Competitor claims carry official source URLs and a verification date; unknown capabilities are not converted into negative claims.

All comparison content remains under `/compare`.

## Search/index hardening

Deployment verifies the root favicon assets and manifest with both a normal health-check user agent and Bingbot, rejects HTML fallbacks, verifies legacy `/latex-templates` permanent redirects, publishes and verifies the IndexNow key file, then submits changed public canonical URLs. IndexNow failure is non-fatal after an otherwise healthy deployment.

## Live PDF

R6 remains a disposable accelerator over exact R5. BF51 adds developer-local diagnostics only; it does not send telemetry, broaden eligibility, alter SyncTeX authority or allow transient output into export/download.

## Validation

The cumulative source path is:

`BF50 guard → BF51 guard → lint/typecheck → compiler/profile checks → static release audit → build`.

Production release still requires the provisioned dependency/browser gates, including real Chromium R4/R5/R6 and an Ollama browser smoke test.
