Canonical + hreflang chain fix — _MetaTagsPartial reads ViewData fallback
Critical SEO bug fixed: ~50+ session-shipped pages (/tco-calculator/, /compare-tool/, /vendor-checklist/, per-vertical /eval/, /vs/{slug}/) all имели canonical URL pointing к homepage instead of self because _MetaTagsPartial only read ViewBag.Canonical, not ViewData["CanonicalUrl"]. Fix backward-compatible: fallback chain ViewBag → ViewData reads both keys. Production-verified across 19 sample pages × 3 langs.
Buyer-evaluation tools — /eval/, /tco-calculator/, /compare-tool/, /vendor-checklist/
Four interactive buyer-tool pages shipped × 3 langs. 200-question per-vertical eval scoreboard (9 verticals × 3 langs = 27 mirror pages). Interactive TCO calculator с 5 input axes + live recalc. Filterable vendor compare-tool с 16 vendors × 6 filter axes. 30-question vendor due-diligence checklist across 7 themes (compliance, eval, multilingual, data portability, pricing, implementation, company stability). Cross-linked from ~393 surfaces.
JSON-LD schema markup — ~426 files (was 8 at session start)
Comprehensive structured-data coverage shipped. Schema types: Article, TechArticle, WebPage, AboutPage, ContactPage, Article, Dataset (per-vertical eval), HowTo (vendor-checklist), Quiz (find-your-solution), SoftwareApplication (TCO calc, AiAudit, CheckSite, vertical Bot/Agent), ItemList (Compare, CompareAll, compare-tool), Person (Founder), Organization, FAQPage (FAQ pages via _FaqPageSchema partial), DefinedTermSet (glossaries via ViewData[AppName]).
7 new /vs/ competitor pages: Smith.ai, HiJiffy, Fresha, Mainstay, Mindbody, Eventbrite, Qualified
Vertical-specific competitor coverage: Legal (Smith.ai), Hospitality (HiJiffy), Beauty (Fresha), Edu (Mainstay/AdmitHub), Fitness (Mindbody), Event (Eventbrite), Sales (Qualified). 16 total competitors × 3 langs × 2 templates (/vs/ + /alternatives/) = 96 SEO surfaces. Each entry includes positioning, StatClaim с real pricing, WhereWeWin / WhereTheyWin arrays.
Sentry observability noise reduction — PricingApi transient HTTP downgrade
Demoted PricingService и 24 vertical Pricing pages from LogError(ex, ...) к LogInformation для HttpRequestException + TaskCanceledException. Sentry SDK captures any LogX call с ex object as Error event regardless of level — fix prevents ~454/d transient PricingApi failures from polluting Sentry production-error feed. Catch-all retains LogWarning(ex) для unexpected types.
AI ethics statement, security posture, sub-processor list, public roadmap, public changelog
Five new transparency pages: /en/ethics/ (9 AI principles), /en/security/ (~30 security controls grouped по domain), /en/sub-processors/ (GDPR Article 28 list с 10 vendors), /en/roadmap/ (3-quarter horizon, 20 items), /en/changelog/ (this page).
/en/ai-audit/ free tool + npm @@slatech/bot-sdk + pip slatech
Lead-gen AI Audit at /en/ai-audit/ — 10-signal AI-readiness scorecard. Official TypeScript и Python SDK packages shipped under sdk/{js,py}/ — both Apache-2.0, both expose ask / askStream / captureLead / publicStats. Citation-rich Snippet field plumbed end-к-end.
/en/eval/ public bot-quality scoreboard
Internal eval published — SLAtech averaged 89/100 across 9 verticals on а 200-question industry-specific QA harness; competitor mean 65/100. Per-vertical methodology rows, raw-transcripts-on-request disclosure, methodology FAQ.
Week-1 batch: /en/glossary/, /en/alternatives/{slug}/ × 9, /en/api-docs/
Three programmatic-SEO surfaces shipped together. Glossary с 29 AI/chatbot terms (DefinedTermSet JSON-LD). Alternatives × 9 competitors с FAQPage schema (long-tail SEO capture). API docs с 8 v1 endpoints + curl examples + developer FAQ.
/en/compare/all/ matrix + AR llms.txt MVP for Med + Hospitality + Business
Single-table matrix listing SLAtech vs every competitor across four buyer dimensions. Arabic-mirror llms.txt at /ar/llms.txt для top 3 verticals — immediate citation surface для Gulf и MENA market без waiting для full-stack AR migration.
Citation-rich bot answers — Snippet field on every QuerySource
Backend bot pipeline now ships citation-grade chunk excerpts alongside source URLs. AI scrapers (Perplexity, ChatGPT, Gemini) extracting bot replies see grounded quotes alongside SLAtech as the source. Widget can render "according к" hover-cards. Backward-compatible.
CompetitorHealthJob monthly probes
New Worker job HEAD-checks every competitor home URL on the 1st of each month at 03:00 UTC. Status changes surface structured warnings в Sentry breadcrumbs — ops review weekly. Keeps the /en/vs/{slug}/ comparison claims fresh.
Mojibake recovery on 18 cshtml + IconSanitizer on 48 cshtml
User-caught regression: double-encoded UTF-8 garbage rendering as ראש×™ / Ð”Ð»Ñ on Beauty/Event/Fitness HE+RU pages. 18 files rewritten from clean templates с proper Hebrew + Russian. Separately, GPT-translator-induced "9D13FB4BB" emoji-residue cleaned via IconSanitizer on 48 cshtml files.
CSP whitelist: api.slatech.ai, api.slatech.co.il, static.cloudflareinsights.com, region1.google-analytics.com
Tight CSP from GEO Wave-1 blocked embed.js, analytics tracker, Cloudflare Web Analytics beacon, и GA4 regional collect. Fix-forward на all 13 .NET projects (SharedUI, Api, AdminUI) с script-src-elem mirror для Chrome 119+.
GEO foundation: JSON-LD partials, /en/vs/{slug}/, llms.txt expansion
First-wave shipping: FAQPage + SoftwareApplication JSON-LD partials in SharedUI. CompetitorRegistry с 9 competitors. /en/vs/{slug}/ (+ HE/RU) с per-page FAQ schema. Umbrella llms.txt expanded 3.3KB → 10KB. 9 vertical llms.txt expanded к 5-8KB each.
Sentry b51fb89d ObjectDisposedException fix + 6 Deep-QA bug-fixes
QuotaService.AtomicIncrementAsync used а request-scoped DbContext inside а fire-and-forget continuation — fix builds а fresh DI scope. Deep-QA round also closed: B1 nav 404, B2 /compare/ in sitemap, B3 underscore→kebab URLs, B4 worker dead-letter spam, B5 missing security headers, B6 empty 404 page.