v4.15.0
What's Changed
- feat(citations): split citation vs answer-mention dimensions by @arberx in #383
- chore(web): replace sidebar tagline with version, links with icons by @arberx in #387
- feat: add GA AI referral landing pages by @arberx in #385
- feat(ga): display "<1%" for sub-1% channel shares by @arberx in #388
- fix(web): tame social referral table overflow with top-N rollup by @arberx in #389
- Tune frontend data caching by @arberx in #390
- feat(backlinks): filter crawler/proxy domains via excludeCrawlers query by @arberx in #391
- fix(ga): always sync traffic foundation so social share stays valid by @arberx in #393
- feat(db): add migration version tracking with idempotent replay by @arberx in #394
- fix(matching): strip subdomains from competitor brand-token matching by @arberx in #392
- fix(tests): centralize jsdom env in vitest config + root devDep by @arberx in #395
- fix(tests): migrate vitest workspace to test.projects for Vitest 4 by @arberx in #398
- feat(skills): bundle canonry-setup + aero playbooks with
canonry skills installby @arberx in #400 - fix(matching): gate normalized brand candidate by MIN_BRAND_KEY_LENGTH by @evolv3ai in #399
- fix(build): validate SPA asset references to prevent white-screen outages by @arberx in #404
- feat(report): canonry report — one-command client-facing AEO HTML report (#401) by @arberx in #402
- fix(report): wrap long URLs and summarise tracking params in landing-page tables by @arberx in #405
- feat(report): wire content intelligence into project report by @arberx in #406
- fix(gsc): surface real sync time and refresh GSC cache after runs by @arberx in #411
- fix(gsc): accept numeric GSC property IDs in site URL validation by @arberx in #412
- feat(report): swap Visibility tab for Reporting tab + downloadable HTML by @arberx in #413
- fix(ga): stop overcounting Total Users when a window filter is active by @arberx in #414
- feat(report): mentions landscape, section copy pass, absolutize Our page links by @arberx in #415
- fix(web): live sweep status + overview snapshots during in-progress runs by @arberx in #416
- feat(web): mentions/citations toggle + tighter brand mention chips by @arberx in #418
- refactor!: rename keyword/key phrase to query across DB, API, CLI, UI, MCP by @arberx in #417
- refactor(cli): canonical mentions/citations vocabulary + two-glyph snapshot cells by @arberx in #419
- feat(overview): server-side score gauges + landscape primitives by @arberx in #420
- fix(report): per-query citation rate, mention split, location handling, AI source rework, content gaps by @arberx in #423
- feat(report): client-ready cleanup + 30d window + polished labels by @arberx in #426
- feat(report): align SPA with HTML, add "What's Changed" trend section by @arberx in #427
- feat(traffic): add Cloud Run puller foundation by @arberx in #386
- fix(ga): dedupe AI referral rows to winning attribution dimension by @arberx in #430
- feat(traffic): persistence + sync API for Cloud Run sources (Phase 2 slice 1) by @arberx in #429
- feat(report): plain-English client view with bigger numbers + explainers by @arberx in #432
- fix: add 'Other channels' to GA4 channel breakdown so percentages sum to 100% by @arberx in #433
- fix(report): print-to-PDF preserves dark theme + clean page breaks by @arberx in #434
- feat: remove .zed and add canonry url link to footer by @arberx in #436
- fix(telemetry): stable IDs, real-failure metric, opinionated init by @arberx in #437
- feat(telemetry): sessions, sources, upgrade detection, run enrichments by @arberx in #438
- docs: restructure README for activation-first onboarding by @arberx in #440
- docs(readme): slim rewrite — bullets, doc links, drop redundant sections by @arberx in #442
- feat(traffic): read endpoints + CLI status/sources/events (Phase 2 slice 2) by @arberx in #431
New Contributors
Full Changelog: v3.0.1...v4.15.0