Patch release from a dogfooding sweep against this project's own production infrastructure (geoready.dev, live audits, a hosted API endpoint).
What's Changed
Fixed
- fix(core): case-insensitive URL scheme normalization (15 call sites) —
HTTP://example.comwas silently corrupted tohttps://HTTP://example.comand failed DNS resolution with a misleading error - fix(perception): don't let Organization schema outrank the page's own subject —
geo perceptionreported "Auriti Labs" instead of "GeoReady" as the brand on this project's own homepage - fix(cli): 8 more leftover Italian strings in English-only output (follow-up to #509)
- fix(core): translate Competitive Narrative LLM prompts to English — a live API endpoint was prompting the LLM entirely in Italian
- fix(core): normalize URL scheme before validating in competitive narrative
- fix(llms): don't flag AI-discovery companion files as stale in
--check-drift
Added
- feat(llms):
geo llms --check-drift— catches a stale llms.txt against the current sitemap, no extra HTTP requests - feat(schema):
geo schema --typecan generate HowTo, Review and Product templates - feat(citability): E-E-A-T credits a structured, verifiable author (Person + sameAs)
- docs(methodology): published a real score-stability measurement (2,513 real audit pairs, 98.6% zero-movement)
Full details in CHANGELOG.md.
Full Changelog: v4.17.0...v4.17.1