# Changelog

## 2.10.32

### Patch Changes

- Updated dependencies
  - @se-studio/core-data-types@1.13.6
  - @se-studio/contentful-rest-api@1.28.1

## 2.10.31

### Patch Changes

- Updated dependencies [c3f9c5e]
  - @se-studio/contentful-rest-api@1.28.0

## 2.10.30

### Patch Changes

- Updated dependencies [91eebfb]
  - @se-studio/core-data-types@1.13.5
  - @se-studio/contentful-rest-api@1.27.2

## 2.10.29

### Patch Changes

- Updated dependencies [08ca261]
  - @se-studio/core-data-types@1.13.4
  - @se-studio/contentful-rest-api@1.27.1

## 2.10.28

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.27.0

## 2.10.27

### Patch Changes

- Bump toolchain to Next.js 16.3.4 and Biome 2.5.12. The dest Flight debug-info OOM patch still matches 16.3.4 runtimes.
- Updated dependencies
  - @se-studio/contentful-rest-api@1.26.7
  - @se-studio/core-data-types@1.13.3

## 2.10.26

### Patch Changes

- Updated dependencies [531e8ca]
  - @se-studio/core-data-types@1.13.2
  - @se-studio/contentful-rest-api@1.26.6

## 2.10.25

### Patch Changes

- Updated dependencies [6d650b3]
  - @se-studio/contentful-rest-api@1.26.5

## 2.10.24

### Patch Changes

- Updated dependencies [9ec5a1d]
  - @se-studio/contentful-rest-api@1.26.4

## 2.10.23

### Patch Changes

- c65f342: Republish rest-api consumers so npm depends on contentful-rest-api 1.26.3 (Contentful Images API origin cap for next/image).

## 2.10.22

### Patch Changes

- Bump Biome to 2.5.11 and Zod to 4.5.2 (past the 24h release-age floor). Leave `@types/node` on 24.
- Updated dependencies
  - @se-studio/contentful-rest-api@1.26.2
  - @se-studio/core-data-types@1.13.1

## 2.10.21

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.26.1

## 2.10.20

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.26.0
  - @se-studio/core-data-types@1.13.0

## 2.10.19

### Patch Changes

- Updated dependencies [49d9136]
  - @se-studio/contentful-rest-api@1.25.3

## 2.10.18

### Patch Changes

- 2b1e79c: Portless local URLs: require `portless service install` for HTTPS 443; document unique last-segment worktree hosts. Refuse local `cms-edit` content commands (hosted MCP only). Smoke/revalidation use `start:dev` so `PORT` is not swallowed by portless.

## 2.10.17

### Patch Changes

- Updated dependencies [6406cb1]
  - @se-studio/contentful-rest-api@1.25.2

## 2.10.16

### Patch Changes

- Bump runtime and toolchain dependencies (TypeScript 7, Next 16.3.2, Contentful, HLS, Biome). Packages still support Next 15.5 and 16.3.
- Updated dependencies
  - @se-studio/contentful-rest-api@1.25.1

## 2.10.15

### Patch Changes

- Updated dependencies [8e94be2]
  - @se-studio/contentful-rest-api@1.25.0

## 2.10.14

### Patch Changes

- Updated dependencies [f6a7b89]
  - @se-studio/core-data-types@1.12.0
  - @se-studio/contentful-rest-api@1.24.0

## 2.10.13

### Patch Changes

- Updated dependencies [50d02a0]
  - @se-studio/core-data-types@1.11.0
  - @se-studio/contentful-rest-api@1.23.0

## 2.10.12

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.22.0

## 2.10.11

### Patch Changes

- Updated dependencies
  - @se-studio/core-data-types@1.10.1
  - @se-studio/contentful-rest-api@1.21.1

## 2.10.10

### Patch Changes

- Updated dependencies
  - @se-studio/core-data-types@1.10.0
  - @se-studio/contentful-rest-api@1.21.0

## 2.10.9

### Patch Changes

- Updated dependencies [760c9c4]
  - @se-studio/core-data-types@1.9.0
  - @se-studio/contentful-rest-api@1.20.0

## 2.10.8

### Patch Changes

- Updated dependencies
  - @se-studio/core-data-types@1.8.0
  - @se-studio/contentful-rest-api@1.19.0

## 2.10.7

### Patch Changes

- Spot-check llms.txt Key pages on the smoke deployment host when content lists a canonical origin (fixes production Deployment Checks pre-alias chicken-and-egg). Surface discovery detail lines in live smoke reports.

## 2.10.6

### Patch Changes

- Updated dependencies [bfb7eb4]
  - @se-studio/contentful-rest-api@1.18.1
  - @se-studio/core-data-types@1.7.1

## 2.10.5

### Patch Changes

- Updated dependencies [eb81656]
  - @se-studio/contentful-rest-api@1.18.0

## 2.10.4

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.17.3

## 2.10.3

### Patch Changes

- Updated dependencies [5cb0965]
  - @se-studio/contentful-rest-api@1.17.2

## 2.10.2

### Patch Changes

- Updated dependencies [488d970]
  - @se-studio/contentful-rest-api@1.17.1

## 2.10.1

### Patch Changes

- Updated dependencies [a01b598]
  - @se-studio/core-data-types@1.7.0
  - @se-studio/contentful-rest-api@1.17.0

## 2.10.0

### Minor Changes

- Add `check-no-context-workarounds` CLI that fails CI when webpack aliases, pnpm overrides, or public-hoist hacks are used for @se-studio/core-ui dual-install workarounds. Escape hatch: ALLOW_CONTEXT_WORKAROUNDS=1 (feature branches only).

## 2.9.11

### Patch Changes

- Match minified webpack `r.d`/`n.d` when detecting AnalyticsProvider context modules.

## 2.9.10

### Patch Changes

- Do not count AnalyticsProvider re-export barrels as duplicate context modules in the post-build smoke scan.

## 2.9.9

### Patch Changes

- Add a post-build smoke scan that fails when Next client chunks contain more than one AnalyticsProvider React context module (duplicate @se-studio/core-ui).

## 2.9.8

### Patch Changes

- Updated dependencies [b0be108]
  - @se-studio/contentful-rest-api@1.16.5

## 2.9.7

### Patch Changes

- Updated dependencies [ef0affb]
  - @se-studio/contentful-rest-api@1.16.4

## 2.9.6

### Patch Changes

- Updated dependencies [859e6f8]
  - @se-studio/contentful-rest-api@1.16.3

## 2.9.5

### Patch Changes

- Updated dependencies [a2c8d9e]
  - @se-studio/contentful-rest-api@1.16.2

## 2.9.4

### Patch Changes

- Accept canonical HTTPS origins in discovery smoke checks when deployment URL differs from production (`discovery.urlOrigin: auto`, default). Fixes Vercel Deployment Checks failures on production pre-alias deploys where `llms.txt` and `markdown-index.txt` list `www` URLs.

## 2.9.3

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.16.0

## 2.9.2

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.15.1

## 2.9.1

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.15.0

## 2.9.0

### Minor Changes

- Add discovery endpoint smoke tests and validation for `llms.txt`, `markdown-index.txt`, `cms.txt`, and `site-info.md`. Smoke configs use a `discovery` block (per-endpoint `true`/`false`). CLI adds `--strict-discovery`. Production audit reports discovery content issues.

## 2.8.12

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.14.10

## 2.8.11

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.14.9

## 2.8.10

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.14.8

## 2.8.9

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.14.7

## 2.8.8

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.14.6

## 2.8.7

### Patch Changes

- Bulk version bump: patch for all packages
- Updated dependencies
  - @se-studio/contentful-rest-api@1.14.5
  - @se-studio/core-data-types@1.6.1

## 2.8.6

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.14.4

## 2.8.5

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.14.3

## 2.8.4

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.14.2

## 2.8.3

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.14.1

## 2.8.2

### Patch Changes

- Updated dependencies
  - @se-studio/core-data-types@1.6.0
  - @se-studio/contentful-rest-api@1.14.0

## 2.8.1

### Patch Changes

- Fix `revalidation-matrix-test` CLI entry detection under pnpm bin wrappers and symlinked installs by comparing realpaths when deciding whether to run `main()`.

## 2.8.0

### Minor Changes

- 2e06e25: Add revalidation matrix test harness (`revalidation-matrix-test`) for production-mode local validation of webhook/tag invalidation with CMS query telemetry. Add handler tag unit tests and app-level `revalidation.cases.json` templates.

### Patch Changes

- 2b14e65: Add optional `expectHtmlStatus` on smoke cases for not-found (404) probes.
- Updated dependencies [a9600c8]
- Updated dependencies [9edc9f2]
- Updated dependencies [2e06e25]
  - @se-studio/contentful-rest-api@1.13.0

## 2.7.1

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.12.0

## 2.7.0

### Minor Changes

- Add build route policy validation (`parseNextBuildRouteTable`, `validateBuildRoutePolicy`, `validate-build-routes` CLI) and SSG guardrail templates for marketing sites.

## 2.6.3

### Patch Changes

- Updated dependencies
  - @se-studio/contentful-rest-api@1.11.0

## 2.6.2

### Patch Changes

- f2de9ba: Document CMS smoke integrity (`cmsIntegrity`, `runStaticSmokeTestWithIntegrity`), Vercel `VERCEL_FORCE_NO_BUILD_CACHE`, and update `se-marketing-sites-smoke-test-setup` skill plus `example-empty` reference.

## 2.6.1

### Patch Changes

- fe92eb9: Fix `smoke-test-one` CMS integrity helper imports (`loadSmokeConfigFile`, `isCmsIntegrityEnabled`).

## 2.6.0

### Minor Changes

- cdf1d3f: Add marketing-site URL calculator factory and `contentfulAllArticleLinksForIntegrity` for smoke CMS checks. Add opt-in `@se-studio/site-check/cms-integrity` module with parallel local smoke support via `cmsIntegrity` in `smoke.cases.json`.

### Patch Changes

- Updated dependencies [cdf1d3f]
  - @se-studio/contentful-rest-api@1.10.0
  - @se-studio/core-data-types@1.5.1

## 2.5.0

### Minor Changes

- Bulk version bump: minor for all packages

## 2.4.0

### Minor Changes

- Add `smoke-test-live` CLI and `runLiveSmokeTest` for HTTP smoke against live deployment URLs (`DEPLOYMENT_URL`). Export `resolveDeploymentBaseUrl` for Vercel `repository_dispatch` / Deployment Checks workflows.

## 2.3.0

### Minor Changes

- Add `smoke-test-deploy-check` CLI for post-build Vercel smoke gates (`SMOKE_TEST_SKIP_BUILD` on `smoke-test-one`). Export `resolveSmokePortFromConfig` from the smoke-test module.

## 2.2.0

### Minor Changes

- 911334e: Add preview smoke test API (`runPreviewStaticSmokeTest`) and canonical Vercel env helpers (`PREVIEW_SITE_URL`, `VERCEL_PROTECTION_BYPASS_TOKEN`, `SITEMAP_PROD_URL`, `PRODUCTION_SITE_URL`). `fetch-options` and `--vercel-bypass` now resolve bypass from `VERCEL_PROTECTION_BYPASS_TOKEN` first.

## 2.1.3

### Patch Changes

- Fix `smoke-test:audit` hanging after `Running smoke tests...`: replace `spawnSync` with async spawn so piped dev-server logs keep draining during smoke HTTP requests.

## 2.1.2

### Patch Changes

- Add cache log audit: `SMOKE_TEST_AUDIT_CACHE_LOGS=true` captures server/build stdout and scans for 2MB Data Cache failures, Next `cache skip` lines, and unexpected `hard refresh` during smoke runs.
- Export `auditCacheLogs`, `formatCacheLogAuditReport`, and `getCacheLogAuditExitCode` from `@se-studio/site-check/smoke-test`.
- Smoke runner uses explicit `cache: 'default'` fetch (no `Cache-Control: no-cache`).
- `LOG_CMS_FETCH=1` is set when audit or cache verify is enabled.

## 2.1.1

### Patch Changes

- Fix `smoke-test-one` appearing to hang: add fetch timeouts, startup/progress logging, fail fast when port is busy but not responding, reuse an already-healthy dev server (`SMOKE_TEST_USE_RUNNING_SERVER`, default true), and inherit stdio so dev server output is visible.

## 2.1.0

### Minor Changes

- `smoke-test-one` starts `pnpm dev:dev` by default (configurable via `SMOKE_TEST_SERVER_SCRIPT`; `start` still runs `pnpm build` first).
- Add cache verification: `SMOKE_TEST_VERIFY_CACHE=true` runs smoke twice and checks `x-nextjs-cache` on HTML responses.
- Smoke runner records per-case cache headers and timing; exports `runSmokeTestWithCacheVerify` and `parseNextJsCacheHeader`.

## 2.0.0

### Major Changes

- **Smoke tests are static and HTTP-only.** Apps commit `smoke.cases.json` (curated URLs from sitemap setup). Removed CMS-driven planner (`planSmokeTestUrls`, `buildSmokeConfig`, `resolveSmokeConfig`, `runFullSmokeTest`), link getters, and `smoke-test-preload.cjs`.
- Added `loadStaticSmokeConfig`, `runStaticSmokeTest`, and `joinSmokeBaseUrl` on `@se-studio/site-check/smoke-test`.
- `smoke-test-one` no longer injects a Node preload; `smoke-test:run` only needs a running server and `smoke.cases.json`.

## 1.5.2

### Patch Changes

- Fix smoke-test runner for consumer repos: add `default` export conditions for tsx/CJS resolution, stub `server-only` via `smoke-test-preload.cjs`, and export `resolveSmokeConfig` for smoke.config default-export interop.

## 1.5.1

### Patch Changes

- Add `smoke-test-one` CLI bin for consumer repos (`smoke-test-one <port>` from app directory).

## 1.5.0

### Minor Changes

- Add `@se-studio/site-check/smoke-test` for curated local marketing-site smoke tests (build + start, HTML + `.md` matrix from Contentful link getters).

## 1.4.0

### Minor Changes

- **production-audit:** Neutral report title (`${siteTitle} production SEO audit`), default output filenames, and `SEProductionSeoAudit/1.0` User-Agent (no Pedestal-specific strings).
- **production-audit:** Crawl page URLs from **sitemap.xml** and **sitemap-unindexed.xml** via shared `validate()` resolver (follows sitemap indexes).
- **production-audit:** Require a working `.md` export for every sitemap page URL (excluding `/download/` and static assets via `isNonPageAssetUrl`). `markdown-index.txt` remains an informational cross-check only.
- Export `isNonPageAssetUrl` from collect-markdown-urls and `shouldExpectMarkdown` from production-audit.

## 1.3.3

### Patch Changes

- Remove deprecated `cms-seo` subpath export now that `@se-studio/cms-seo` is published on npm.

## 1.3.1

### Patch Changes

- Export CMS SEO tooling at `@se-studio/site-check/cms-seo` (audit, bulk publish, featured-image backfill) — available here until `@se-studio/cms-seo` can be published to npm.

## 1.3.0

### Minor Changes

- Upstream CMS SEO tooling from pedestal-sites: JSON-LD `@context` fix, new `@se-studio/cms-seo` package, production HTML audit in site-check, and `cms-seo-audit` agent skill.

## 1.2.0

### Minor Changes

- Add production HTML SEO audit module (`@se-studio/site-check/production-audit`) — sitemap crawl, title/meta/H1/schema/markdown checks, CSV and markdown reports, Rich Results spot-checks.

## 1.1.3

### Patch Changes

- fix(screaming-frog): export post-crawl CSVs via stored crawl **database ID** (`--load-crawl <uuid>`) instead of site URL — URL-based load fails when multiple crawls share storage (empty export folders).
- fix(screaming-frog): remove invalid `All Inlinks` from default `--export-tabs` (Screaming Frog 24.x requires `Tab:Filter`; bare tab names abort export).

## 1.1.2

### Patch Changes

- fix(screaming-frog): omit `--config` from post-crawl `--load-crawl` export invocations (Screaming Frog CLI rejects the combination; exports were silently empty).

## 1.1.1

### Patch Changes

- Restore `site-check-screaming-frog` CLI bin entry omitted from 1.1.0 publish.

## 1.1.0

### Minor Changes

- Add Screaming Frog crawl, audit, native compare, and list-crawls CLI (`site-check-screaming-frog`) driven by per-repo `seo/screaming-frog.json`. Add `screaming-frog-audit` agent skill for deployment compare workflows.

## 1.0.77

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.76

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.75

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.74

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.73

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.72

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.71

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.70

### Patch Changes

- Version bump: patch for changed packages

## 1.0.69

### Patch Changes

- Version bump: patch for changed packages

## 1.0.68

### Patch Changes

- Version bump: patch for changed packages

## 1.0.67

### Patch Changes

- Version bump: patch for changed packages

## 1.0.66

### Patch Changes

- Version bump: patch for changed packages

## 1.0.65

### Patch Changes

- Version bump: patch for changed packages

## 1.0.64

### Patch Changes

- Version bump: patch for changed packages

## 1.0.63

### Patch Changes

- Version bump: patch for changed packages

## 1.0.62

### Patch Changes

- Version bump: patch for changed packages

## 1.0.61

### Patch Changes

- Version bump: patch for changed packages

## 1.0.60

### Patch Changes

- Version bump: patch for changed packages

## 1.0.59

### Patch Changes

- Version bump: patch for changed packages

## 1.0.58

### Patch Changes

- Version bump: patch for changed packages

## 1.0.57

### Patch Changes

- Version bump: patch for changed packages

## 1.0.56

### Patch Changes

- Version bump: patch for changed packages

## 1.0.55

### Patch Changes

- Version bump: patch for changed packages

## 1.0.54

### Patch Changes

- Version bump: patch for changed packages

## 1.0.53

### Patch Changes

- Version bump: patch for changed packages

## 1.0.52

### Patch Changes

- Version bump: patch for changed packages

## 1.0.51

### Patch Changes

- Version bump: patch for changed packages

## 1.0.50

### Patch Changes

- Version bump: patch for changed packages

## 1.0.49

### Patch Changes

- Version bump: patch for changed packages

## 1.0.48

### Patch Changes

- Version bump: patch for changed packages

## 1.0.47

### Patch Changes

- Version bump: patch for changed packages

## 1.0.46

### Patch Changes

- Version bump: patch for changed packages

## 1.0.45

### Patch Changes

- Version bump: patch for changed packages

## 1.0.44

### Patch Changes

- Version bump: patch for changed packages

## 1.0.43

### Patch Changes

- Version bump: patch for changed packages

## 1.0.42

### Patch Changes

- Version bump: patch for changed packages

## 1.0.41

### Patch Changes

- Version bump: patch for changed packages

## 1.0.40

### Patch Changes

- Version bump: patch for changed packages

## 1.0.39

### Patch Changes

- Version bump: patch for changed packages

## 1.0.38

### Patch Changes

- Version bump: patch for changed packages

## 1.0.37

### Patch Changes

- Version bump: patch for changed packages

## 1.0.36

### Patch Changes

- Version bump: patch for changed packages

## 1.0.35

### Patch Changes

- Version bump: patch for changed packages

## 1.0.34

### Patch Changes

- Version bump: patch for changed packages

## 1.0.33

### Patch Changes

- Version bump: patch for changed packages

## 1.0.32

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.31

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.30

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.29

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.28

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.27

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.26

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.25

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.24

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.23

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.22

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.21

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.20

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.19

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.18

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.17

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.16

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.15

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.14

### Patch Changes

- CLI: `--ignore-missing-child-sitemaps` — when resolving a sitemap index, skip child `<loc>` URLs that return 404 instead of failing validation.

## 1.0.13

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.12

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.11

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.10

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.9

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.8

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.7

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.6

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.5

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.4

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.3

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.2

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.1

### Patch Changes

- Bulk version bump: patch for all packages

## 1.0.0

- Initial release.
- Validate sitemap.xml, sitemap-unindexed.xml, and llms.txt.
- Download all markdown files preserving site structure.
- Options: `-o`/`--out`, `-H`/`--header`, `--vercel-bypass [secret]` for Vercel Deployment Protection.
