Changelog
What each protocol-set release changed about what the audit measures, newest first.
Audit
Record what each named protocol observed.
Diagnose
Trace each production finding to evidence.
Verify
Re-run the protocol required by the remediation.
Current release: gm-ai-consumer-compat/1.8.0
Engine build fingerprint: 20d7a15cbbeaa42d874c9ca5f48a14700577d802c87a991024ebbb0ce872b2a3
Main-content extraction now measures the page’s explicit semantic scope
When a page declares one, extraction now selects the semantic scope — the <main> element, the [role=main] landmark, or the <article> element — instead of a whole-document heuristic. Every record now also seals what it measured: which element was selected, why, and how much of the document it covered.
When no semantic scope exists, the fallback heuristic excludes landmark regions (navigation, banners, footers, aside content) rather than sweeping the whole document.
robots.txt 404/410 is a fact, not an abstention
A robots.txt that responds 404 or 410 is now recorded as NO_POLICY_FILE, so the audit completes instead of abstaining: no policy file is a state of the site. A 401 or 403 still abstains as “policy unreadable” — the file exists but refused our fetch, so its rules remain unknown to us.
Quota enforcement single-sourced to plan entitlements
Scan quota enforcement now reads from one source — the plan entitlements — instead of parallel checks.
All releases
| Version | Date | Summary |
|---|---|---|
| gm-ai-consumer-compat/1.8.0 | 2026-10-01 | Behavior release: semantic main-content scope with sealed scope records, landmark-excluding fallback, robots 404/410 recorded as NO_POLICY_FILE, quota enforcement single-sourced to plan entitlements. |
| gm-ai-consumer-compat/1.7.0 | 2026-09-28 | Added optional content.structure and metadata.signals protocols: deterministic count facts (headings, lists, tables; canonical and link counts). Counts only — never a verdict input. |
| gm-ai-consumer-compat/1.6.0 | 2026-09-28 | Added optional identity.crawler-verification: records the state of the vendors’ published crawler identity material. Informational only, never a verdict input. |
| gm-ai-consumer-compat/1.5.0 | 2026-09-21 | Added optional content.actor-extraction: compares the content an actor’s probe received with the scanner’s own fetch (fetch attestation). |
| gm-ai-consumer-compat/1.4.0 | 2026-09-20 | Added optional content.negotiation protocol. Informational, never a verdict input. |
| gm-ai-consumer-compat/1.3.1 | 2026-09-20 | First protocol set with a frozen per-version manifest: protocol coverage is recorded and enforced per version from this set on. |
| gm-ai-consumer-compat/1.3.0 | 2026-09-19 | Pre-manifest protocol set (released before per-version manifests existed; its coverage is exempt, not reconstructed). |
| gm-ai-consumer-compat/1.2.0 | 2026-09-16 | Pre-manifest protocol set (released before per-version manifests existed; its coverage is exempt, not reconstructed). |
| gm-ai-consumer-compat/1.1.0 | 2026-08-26 | Pre-manifest protocol set (released before per-version manifests existed; its coverage is exempt, not reconstructed). |
| gm-ai-consumer-compat/1.0.0 | 2026-08-24 | Initial protocol set. |
Dates are the release dates recorded in the repository history.
Reproducibility
Records sealed under different protocol-set versions are never directly compared — cross-version verifications resolve INDETERMINATE.
Every scan ships a sealed evidence bundle whose SHA-256 digest anyone can recompute at the public verifier.