Rehearsal notes
(Intermission. The stage manager is calling cues. Watch the lamps.)
- 1trailblaze-glyphsv1.5.1GO
Changed: • Use canvas smoothing for OCR line downsampling Fixed: • Fix OCR misdetection and corrupted glyphs on large font sizes (e.g. 120px) • Fix aspect ratio distortion when cropping long text lines in OCR • Fix glyph index cells stretching vertically on desktop (0-9 tab)
- 2starrail-sdkv2.4.1GO
Fixed: • `LRUCache.has()` no longer promotes entries in LRU order (previously prevented eviction on subsequent `set()`). Added: • Tests for `LRUCache` operations and `getLevelMultiplier` interpolation. Changed: • Extracted request retry, backoff, and caching logic from `EnkaClient` and `StarRailResClient` into `HttpClientBase`.
- 3trailblaze-glyphsv1.5.0GO
Added: • Support Amphoreus glyph decode (CRNN model and alphabet mapping)
- 4trailblaze-glyphsv1.4.0GO
Added: • Support Penacony glyph decode (CRNN model and alphabet mapping)
- 5starrail-sdkv2.4.0GO
Fixed: • `resolveFullStats` no longer double-counts base HP/ATK/DEF/SPD/CritRate/CritDmg when the character was parsed via Enka's `_statsMap` path. • `applyProps()` no longer silently drops `BaseSpeed`, `HealRatioBase`, `HealTakenRatio`, and `ElationDamageAddedRatioBase` property types. Added: • `statsSource` field on `PlayerCharacter` (`'statsMap' | 'flatProps'`), indicates which Enka API path produced the character's stats. • `healBoost`, `healTakenBoost`, `elationDmgBoost` fields on `ComputedStats`. • `BaseSpeed`, `HealRatioBase`, `HealTakenRatio`, `ElationDamageAddedRatioBase` entries in `ENKA_PROPERTY_MAP`. • Tests for `statsSource` marker, double-count regression, `skillTreeList` parsing, and property map coverage. Changed: • `resolveFullStats` JSDoc now documents that it is mandatory for correct crit values on the `flatProps` path, and notes the eidolon data-source limitation.
- 6trailblaze-glyphsv1.3.0GO
Added: • Support Xianzhou glyph decode (CRNN model and alphabet mapping) Fixed: • Run model inference sequentially to avoid ONNX WASM session crash
- 7starrail-sdkv2.3.0GO
Added: • `resolveFullStats` now computes character base HP/ATK/DEF/SPD from `character_promotions.json`. • `StarRailResClient.getCharacterPromotions()`. • `headIcon` on `PlayerProfile`. • `characterPromotions` on `StatsResolverData` and `StarRailResCharacterPromotion` types. Changed: • Base CRIT (5% CR / 50% CD) moved from `EnkaClient` to `resolveFullStats` via promotion data.
- 8starrail-sdkv2.2.0GO
Added: • `resolveCharacter`, `resolveLightCone`, `resolveRelic` for mapping Enka IDs to StarRailRes game data. • `resolveFullStats` for aggregating trace, LC rank, and relic set stat bonuses. • `StarRailResClient.getSkillTrees()` and `StarRailResClient.getLightConeRanks()`. • `skillTreePoints` on `PlayerCharacter`, `subAffixes` on `PlayerRelic`. • Codename maps for element, path, and relic slot (`hsr_code_names.ts`). Fixed: • `EnkaClient` now computes character stats from equipment and relic `_flat.props` when `_statsMap` is omitted by Enka.
- 9trailblaze-glyphsv1.2.0GO
Added: • In browser glyph OCR engine using ONNX Runtime Web and CTC decoding • Support Jarilo VI glyph decode (CRNN model and alphabet mapping) • Multiline image decode with line segmentation and densest line script detection • Support paste from clipboard (Ctrl + V), drag and drop, and file upload • Decode preview card with thumbnail, script badge, confidence, and dismiss button • Multiline PNG export with line measurement and vertical spacing Fixed: • Lock controls (script select, swap, export) during active decode
- 10starrail-sdkv2.1.0GO
Added: • `calculateTotalRollValueDetailed` for a per-substat roll value breakdown. Fixed: • `calculateRealHitRate` is now clamped to a maximum of 100%. • `StarRailResClient` now throws `HSRRateLimitError` on 429, consistent with `EnkaClient`. • `EnkaClient` now throws a clear error when a profile has no detail data (private/uncached). • Wrong JSDoc substat key example in `relic.ts`. Changed: • `calculateResMultiplier`/`calculateCritMultiplier` now use internal `clamp()` utility (no output change).
- 11starrail-sdkv2.0.3GO
Fixed: • Break Damage toughness multiplier was using the wrong divisor (120 instead of 40). • Level Multiplier table had incorrect values at levels 20/50/60. • Relic DEF% max roll was wrong (0.0432 instead of 0.054).
- 12trailblaze-glyphsv1.1.0GO
Added: • Filter tabs for uppercase, lowercase, and numbers in glyph index (A to Z, a to z, 0 to 9) • Shortcut tooltips on swap, clear, and copy buttons Changed: • Insert clicked glyphs at text cursor position instead of appending to end • Center GitHub repo link in sidebar
- 13trailblaze-glyphsv1.0.1GO
Changed: • Change default font size to 18px (was 24px) • Update size presets to 18, 24, 36, 48 (desktop) and 18, 24, 32 (mobile) • Update third sample quote to Reach the ending of the story in your own way Fixed: • Fix mobile input and output overflow (add 220px max height and touch scroll)
- 14trailblaze-glyphsv1.0.0GO
Added: • Latin to in game script translation (Jarilo VI, Xianzhou, Penacony, Amphoreus) • Reverse translation mode (script to Latin) • 2x retina PNG export directly to clipboard with toast popup • Font size slider (16px to 120px) with quick presets • Character map sidebar with click to insert • Live char and word counter • Preset sample quotes for quick testing • Keyboard shortcuts: Ctrl + Shift + S (swap), Ctrl + Shift + C (copy PNG), Esc (clear) • Mobile responsive layout with script selection modal
- 15starrail-sdkv2.0.2GO
Fixed: • Fixed CommonJS bundle emitting `.js` instead of `.cjs`, which caused `MODULE_NOT_FOUND` when using `require()`. • Fixed `canReachUltimate` parameter documentation in README (4th arg represents flat energy bonus). • Aligned CONTRIBUTING coverage target with Vitest config thresholds.
- 16starrail-sdkv2.0.1GO
Fixed: • `calculateResMultiplier` now clamps result to a minimum of 0, consistent with `calculateDefMultiplier`. Added: • JSDoc comments for all calculator functions and API client classes. • Request deduplication tests for `EnkaClient` and `StarRailResClient`. • `StarRailResClient` error handling example in README. • New example: `examples/discord_bot_damage.ts`.
- 17starrail-sdkv2.0.0GO
Added: • Initial release of `starrail-sdk`. • Calculations for Damage, Break/Super Break, Turn Timeline, Status EHR, Energy, and Relic Roll Values. • API integration for Enka.Network and StarRailRes. • Multi-provider fallback support for `StarRailResClient` with default CDN mirrors (`raw.githubusercontent.com` and `cdn.jsdelivr.net`). • Custom `resProviders` and `enkaProviders` option fields in `StarRailSDKOptions`. • Runnable `examples/` directory and full TypeScript definitions. Fixed: • Cache key scoping for `StarRailResClient` when multiple language instances are used.