Spire Codex v1.0.7 Release Notes
Full international SEO, site-wide localization, compare fix, multi-hit monsters
Features
- +Full international SEO — localized detail pages for all entity types across 13 languages (~18,000 new URLs)
- +All 30+ pages now have /{lang}/ equivalents with 1:1 interactive experience (same components as English)
- +Language selector navigates between localized URLs — /cards/bash → /jpn/cards/bash
- +Navbar links stay in current language with translated group headers and link labels
- +UI translations for tabs (概要/詳細/情報), back links, section headings, page taglines, sort labels across all 13 languages
- +Home page sections use translated names with fallback chain: game translations → UI translations → English
- +Merchant page table rarity labels pulled from game translation API (e.g., Común/Poco común/Rara in Spanish)
- +Monster multi-hit attack display — hit counts extracted from C# WithHitCount(), shown as damage × hits = total
- +IndexNow expanded to ping all 19,397 URLs (including localized pages) in 2 batches per deploy
- +Kin Priest favicon and OG image (1200x630)
- +keywords_key field on cards for language-independent keyword matching
- +Sitemap expanded to ~19,300 URLs with all localized detail pages and hreflang alternates
Fixes
- ~Compare graphs now work in all languages — uses type_key, rarity_key, keywords_key instead of localized values
- ~Monster ascension damage no longer shows 0 when no ascension variant exists (null vs undefined check)
- ~Fixed ${gameName} showing literal dollar sign in JSX text on localized pages
- ~HomeClient no longer falls back to English for sections the game returns untranslated (Characters, Enchantments, etc.)
- ~Monster damage display cleaned up — pipe separator between normal/ascension, = for totals
- ~Fixed small/placeholder monster sprites (fuzzy_wurm_crawler, gas_bomb, living_smog, thieving_hopper, etc.)
- ~WebGL renderers now hide smokeTex/smoke_placeholder slots (removes Smoke Placeholder text)
- ~Language context no longer defaults to English during navigation — URL path takes priority over localStorage on every render
- ~All entity links in client components now use language prefix — clicking items on localized pages stays in the current language
API Changes
- >New field: keywords_key on Card schema — preserves English keyword names alongside localized keywords
- >New field: keywords_key added to card parser localization step
