From 47fe6b84682082fc8b4c6f4c5eb22b79e1c41122 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Mon, 30 Mar 2026 17:40:47 -0700 Subject: [PATCH] docs: update README, CHANGELOG, and status to v1.8.9-preview - README: update status date to 2026-03-30, version to v1.8.9-preview, add container builds line, update current focus to code quality - CHANGELOG: move v1.8.1 entries to their own section, add v1.8.2-v1.8.9 unreleased section covering architecture (GameHandler decomposition, Docker cross-compilation), bug fixes (7 UB/overflow/safety fixes), and code quality (30+ constants, 55+ comments, 8 DRY extractions) - docs/status.md: update last-updated date to 2026-03-30 --- CHANGELOG.md | 34 +++++++++++++++++++++++++++++++++- README.md | 7 ++++--- docs/status.md | 2 +- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8dff462..866f0918 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,38 @@ # Changelog -## [Unreleased] — changes since v1.8.1-preview (2026-03-23) +## [Unreleased] — changes since v1.8.9-preview + +### Architecture +- Break Application::getInstance() singleton from GameHandler via GameServices struct +- EntityController refactoring (SOLID decomposition) +- Extract 8 domain handler classes from GameHandler +- Replace 3,300-line switch with dispatch table +- Multi-platform Docker build system (Linux, macOS arm64/x86_64, Windows cross-compilation) + +### Bug Fixes (v1.8.2–v1.8.9) +- Fix VkTexture ownsSampler_ flag after move/destroy (prevented double-free) +- Fix unsigned underflow in Warden PE section loading (buffer overflow on malformed modules) +- Add bounds checks to Warden readLE32/readLE16 (out-of-bounds on untrusted PE data) +- Fix undefined behavior: SDL_BUTTON(0) computed 1 << -1 (negative shift) +- Fix BigNum::toHex/toDecimal null dereference on OpenSSL allocation failure +- Remove duplicate zone weather entry silently overwriting Dustwallow Marsh +- Fix LLVM apt repo codename (jammy→noble) in macOS Docker build +- Add missing mkdir in Linux Docker build script +- Clamp player percentage stats (block/dodge/parry/crit) to prevent NaN from corrupted packets +- Guard fsPath underflow in tryLoadPngOverride + +### Code Quality (v1.8.2–v1.8.9) +- 30+ named constants replacing magic numbers across game, rendering, and pipeline code +- 55+ why-comments documenting WoW protocol quirks, format specifics, and design rationale +- 8 DRY extractions (findOnUseSpellId, createFallbackTextures, finalizeSampler, + renderClassRestriction/renderRaceRestriction, and more) +- Scope macOS -undefined dynamic_lookup linker flag to wowee target only +- Replace goto patterns with structured control flow (do/while(false), lambdas) +- Zero out GameServices in Application::shutdown to prevent dangling pointers + +--- + +## [v1.8.1-preview] — 2026-03-23 ### Performance - Eliminate ~70 unnecessary sqrt ops per frame; constexpr reciprocals and cache optimizations diff --git a/README.md b/README.md index 50a09bfa..4aeffc18 100644 --- a/README.md +++ b/README.md @@ -19,14 +19,15 @@ Protocol Compatible with **Vanilla (Classic) 1.12 + TBC 2.4.3 + WotLK 3.3.5a**. > **Legal Disclaimer**: This is an educational/research project. It does not include any Blizzard Entertainment assets, data files, or proprietary code. World of Warcraft and all related assets are the property of Blizzard Entertainment, Inc. This project is not affiliated with or endorsed by Blizzard Entertainment. Users are responsible for supplying their own legally obtained game data files and for ensuring compliance with all applicable laws in their jurisdiction. -## Status & Direction (2026-03-24) +## Status & Direction (2026-03-30) - **Compatibility**: **Vanilla (Classic) 1.12 + TBC 2.4.3 + WotLK 3.3.5a** are all supported via expansion profiles and per-expansion packet parsers. All three expansions are roughly on par. - **Tested against**: AzerothCore/ChromieCraft, TrinityCore, Mangos, and Turtle WoW (1.17). -- **Current focus**: gameplay correctness (quest/GO interaction, NPC visibility), rendering stability, and multi-expansion coverage. +- **Current focus**: code quality (SOLID decomposition, documentation), rendering stability, and multi-expansion coverage. - **Warden**: Full module execution via Unicorn Engine CPU emulation. Decrypts (RC4→RSA→zlib), parses and relocates the PE module, executes via x86 emulation with Windows API interception. Module cache at `~/.local/share/wowee/warden_cache/`. - **CI**: GitHub Actions builds for Linux (x86-64, ARM64), Windows (MSYS2 x86-64 + ARM64), and macOS (ARM64). Security scans via CodeQL, Semgrep, and sanitizers. -- **Release**: v1.8.2-preview — 530+ WoW API functions, 140+ events, 664 opcode handlers. +- **Container builds**: Multi-platform Docker build system for Linux, macOS (arm64/x86_64 via osxcross), and Windows (LLVM-MinGW) cross-compilation. +- **Release**: v1.8.9-preview — 530+ WoW API functions, 140+ events, 664 opcode handlers. ## Features diff --git a/docs/status.md b/docs/status.md index bb1e9614..c337ca2f 100644 --- a/docs/status.md +++ b/docs/status.md @@ -1,6 +1,6 @@ # Project Status -**Last updated**: 2026-03-24 +**Last updated**: 2026-03-30 ## What This Repo Is