File Details
v2026.07.14.3
- R
- Jul 14, 2026
- 4.88 MB
- 59
- 12.0.7
- Retail
File Name
Seramate-v2026.07.14.3.zip
Supported Versions
- 12.0.7
Seramate PvP Inspect
v2026.07.14.3 (2026-07-14)
Full Changelog Previous Releases
- Cleanups from review: shared EMPTY for absent brackets, dedupe test helper
Records with no c/e field memoize one shared read-only EMPTY table
instead of allocating a fresh per viewed record; the decode tests
reuse the hoisted flatten/allEnabled helpers instead of inline copies.
Co-Authored-By: Claude Fable 5 noreply@anthropic.com - Decode packed bracket ratings lazily (c/e strings)
Same treatment as the title dictionary: records ship c="v2=1840,sh=2405"
/ e="..." instead of cur/exp sub-tables, decoded and memoized on first
lookup. With titles this leaves zero per-record tables in the loaded DB
— only the record itself. Measured on the real EU export vs the current
prod format: heap 116.6 -> 38.1 MB, tables 702K -> 104K, full GC cycle
~74 -> ~27 ms. Legacy records (cur/exp already tables) pass through
untouched; E2E-verified by decoding all 47K horde records of a
converted prod file through the real lookup path.
Co-Authored-By: Claude Fable 5 noreply@anthropic.com - Decode titles lazily from a per-file dictionary (t="1,5,9" refs)
The bundled DBs shipped one {n,w} table per title per character (~340K
tables/region, 64% of file bytes for only 318 unique titles), and WoW's
GC re-marks every live table each cycle — the cause of reported FPS
degradation minutes into a session. Records now carry one flat index
string into the file's .T dictionary; Keys.lookup decodes on first view
and memoizes, reusing the dictionary entry tables.
Measured on the real EU export (tools/bench-db.lua, interleaved
min-of-15): heap 116.6 -> 61.4 MB, tables 702K -> 293K, full GC cycle
~69 -> ~39 ms, login parse 0.38 -> 0.21 s. Old-format DBs still work
(decode skips records whose titles are already tables).
Co-Authored-By: Claude Fable 5 noreply@anthropic.com