From 9a5f2a56fd7f79b8f0b8e342cfaedf13ed466a46 Mon Sep 17 00:00:00 2001 From: Sam Sung <51686767+samwhosung@users.noreply.github.com> Date: Mon, 19 Oct 2026 16:39:02 +0700 Subject: [PATCH] Release 0.3.0 (#1979) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sets the workspace version to 0.3.0 and refreshes the lock, so the client's startup line reads `benilla build 0.3.0`. The toolchain pin stays at 1.98.1, the compiler the release checks ran on. Checked on this tree: the Linux and Windows compile, the Vulkan run, and a live login and logout against a local server, whose log reads `benilla build 0.3.0`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 --- Cargo.lock | 42 +++++++++++++++++++++--------------------- Cargo.toml | 2 +- docs/DEVIATIONS.md | 6 +++--- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 41320f454..fd63b2420 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -480,7 +480,7 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "benilla" -version = "0.2.0" +version = "0.3.0" dependencies = [ "benilla-app", "benilla-buildstamp", @@ -488,14 +488,14 @@ dependencies = [ [[package]] name = "benilla-adt" -version = "0.2.0" +version = "0.3.0" dependencies = [ "benilla-bytes", ] [[package]] name = "benilla-app" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "arboard", @@ -547,7 +547,7 @@ dependencies = [ [[package]] name = "benilla-assets" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "benilla-formats", @@ -558,7 +558,7 @@ dependencies = [ [[package]] name = "benilla-blp" -version = "0.2.0" +version = "0.3.0" dependencies = [ "benilla-bytes", "texpresso", @@ -566,22 +566,22 @@ dependencies = [ [[package]] name = "benilla-buildstamp" -version = "0.2.0" +version = "0.3.0" [[package]] name = "benilla-bytes" -version = "0.2.0" +version = "0.3.0" [[package]] name = "benilla-dbc" -version = "0.2.0" +version = "0.3.0" dependencies = [ "benilla-bytes", ] [[package]] name = "benilla-formats" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "benilla-adt", @@ -599,7 +599,7 @@ dependencies = [ [[package]] name = "benilla-lua" -version = "0.2.0" +version = "0.3.0" dependencies = [ "benilla-formats", "roxmltree", @@ -607,21 +607,21 @@ dependencies = [ [[package]] name = "benilla-m2" -version = "0.2.0" +version = "0.3.0" dependencies = [ "benilla-bytes", ] [[package]] name = "benilla-mlua" -version = "0.2.0" +version = "0.3.0" dependencies = [ "benilla-lua", ] [[package]] name = "benilla-mpq" -version = "0.2.0" +version = "0.3.0" dependencies = [ "benilla-bytes", "flate2", @@ -629,7 +629,7 @@ dependencies = [ [[package]] name = "benilla-protocol" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "benilla-srp", @@ -643,7 +643,7 @@ dependencies = [ [[package]] name = "benilla-srp" -version = "0.2.0" +version = "0.3.0" dependencies = [ "num-bigint", "rand 0.8.6", @@ -652,7 +652,7 @@ dependencies = [ [[package]] name = "benilla-ui" -version = "0.2.0" +version = "0.3.0" dependencies = [ "benilla-mlua", "roxmltree", @@ -660,7 +660,7 @@ dependencies = [ [[package]] name = "benilla-visual" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "image", @@ -668,18 +668,18 @@ dependencies = [ [[package]] name = "benilla-wdt" -version = "0.2.0" +version = "0.3.0" [[package]] name = "benilla-wmo" -version = "0.2.0" +version = "0.3.0" dependencies = [ "benilla-bytes", ] [[package]] name = "benilla-world" -version = "0.2.0" +version = "0.3.0" dependencies = [ "avian3d", "benilla-assets", @@ -695,7 +695,7 @@ dependencies = [ [[package]] name = "benilla-worldview" -version = "0.2.0" +version = "0.3.0" dependencies = [ "benilla-buildstamp", "benilla-world", diff --git a/Cargo.toml b/Cargo.toml index d8e21f417..4d05f0d1d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ resolver = "2" members = ["crates/*"] [workspace.package] -version = "0.2.0" +version = "0.3.0" edition = "2021" license = "MIT OR Apache-2.0" authors = ["sam "] diff --git a/docs/DEVIATIONS.md b/docs/DEVIATIONS.md index 7cfb76f16..84c6dbe2d 100644 --- a/docs/DEVIATIONS.md +++ b/docs/DEVIATIONS.md @@ -684,9 +684,9 @@ Each entry is the first sentence of a `Deviation:` comment, linking to where it - A row the session owns (an env lever) is passed, because the env chose its value for this run and the file never holds it, so a reset would undo the lever and save nothing. ([`src/script/console_exec.rs:199`](../crates/benilla-ui/src/script/console_exec.rs#L199)) - A row that no longer resolves is refused, as `0x4c7300` does, because this path dereferences it unchecked (`0x4f9f35`), a latent null deref. ([`src/script/container.rs:713`](../crates/benilla-ui/src/script/container.rs#L713)) - A last `spell_id` key breaks the remaining ties (Charge's six ranks all have `spellLevel` 0), because the reference leaves them to its qsort over an array benilla does not reproduce; ascending id is ascending rank in every 1.12 pet-ability family. ([`src/script/craft.rs:103`](../crates/benilla-ui/src/script/craft.rs#L103)) -- On `Terrain` the reference keeps a spell, action, macro or pet action on the left button; we clear them, because otherwise a spell has no left-click way off the cursor. ([`src/script/cursor.rs:523`](../crates/benilla-ui/src/script/cursor.rs#L523)) -- Every lock lifts here, bag contents included. The reference's walk of a bag's contents indexes the bag by its own player-array index (`0x495528`, `0x495535`), at least 19, past a bag's slots in every case but the biggest bags, so it normally unlocks none of them; a lock it strands lasts until the item's seat or stack moves, which this does not copy. ([`src/script/cursor.rs:694`](../crates/benilla-ui/src/script/cursor.rs#L694)) -- Returns nothing. The handler ends `mov eax,1` with nothing pushed (`0x4895bc`), so Lua 5.0 hands back the stack top, the last argument or the function itself: an accident of the handler, not an API, and copying a stack-top leak would copy a bug. ([`src/script/cursor.rs:908`](../crates/benilla-ui/src/script/cursor.rs#L908)) +- On `Terrain` the reference keeps a spell, action, macro or pet action on the left button; we clear them, because otherwise a spell has no left-click way off the cursor. ([`src/script/cursor.rs:528`](../crates/benilla-ui/src/script/cursor.rs#L528)) +- Every lock lifts here, bag contents included. The reference's walk of a bag's contents indexes the bag by its own player-array index (`0x495528`, `0x495535`), at least 19, past a bag's slots in every case but the biggest bags, so it normally unlocks none of them; a lock it strands lasts until the item's seat or stack moves, which this does not copy. ([`src/script/cursor.rs:699`](../crates/benilla-ui/src/script/cursor.rs#L699)) +- Returns nothing. The handler ends `mov eax,1` with nothing pushed (`0x4895bc`), so Lua 5.0 hands back the stack top, the last argument or the function itself: an accident of the handler, not an API, and copying a stack-top leak would copy a bug. ([`src/script/cursor.rs:913`](../crates/benilla-ui/src/script/cursor.rs#L913)) - An auto-store into a bank item or keyring slot sends nothing, because no container id names it and no stock caller passes one; the reference sends it and the server refuses. ([`src/script/cursor/bag_verbs.rs:25`](../crates/benilla-ui/src/script/cursor/bag_verbs.rs#L25)) - Slot 11 is refused, because the reference's gate (`cmp esi,0xa; jbe`) admits it and neither `0x4bce00` nor `0x4bc9a0` bounds-checks again, so it writes one dword past the array, and the autocast toggle (`0x4bcbb0`) reads that word (`[0xb71438+0x28]`) with no bounds check. ([`src/script/cursor/pet.rs:19`](../crates/benilla-ui/src/script/cursor/pet.rs#L19)) - The list is the window sizes this client can present, not the device's display modes, because benilla makes no exclusive mode-set. `"WxH"` is a contract: `OptionsFrame.lua:281-284` splits on the `x` and `CT_Viewport.lua:107` matches `"(%d+)x(%d+)"`, both failing silently. ([`src/script/cvars.rs:81`](../crates/benilla-ui/src/script/cvars.rs#L81))