From f2e80d42f3058b76ef56ec5c94e1c97cc77d8283 Mon Sep 17 00:00:00 2001 From: Valentin PLANES Date: Sun, 13 Sep 2026 20:12:49 +0200 Subject: [PATCH] release: v0.2.2 notes + version bump Patch release for the modded-object load fix (#31): a save no longer fails to load because one object uses a property shape the parser doesn't know. Reported against Modular Load Balancers (#30), but the fix is general -- unreadable objects are skipped and reported instead of aborting the load, and modded buildings still draw from their headers. Co-Authored-By: Claude Opus 5 (1M context) --- docs/release-notes-0.2.2.md | 53 +++++++++++++++++++++++++++++++ rust_parser/Cargo.lock | 2 +- rust_parser/tauri/Cargo.toml | 2 +- rust_parser/tauri/tauri.conf.json | 2 +- 4 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 docs/release-notes-0.2.2.md diff --git a/docs/release-notes-0.2.2.md b/docs/release-notes-0.2.2.md new file mode 100644 index 0000000..7320f87 --- /dev/null +++ b/docs/release-notes-0.2.2.md @@ -0,0 +1,53 @@ +# v0.2.2 + +A fix for modded saves that refused to load at all, and a clearer answer when +part of a save can't be read. + +## Fixes + +- **Saves using Modular Load Balancers load again.** The mod keeps its + item-routing table in a compact binary form the parser didn't recognise, and + the whole save was rejected over it: + + ``` + Failed to load save: object re-parse failed during index build: + object at (3946, 5836): String decode failure at offset 24369724 of length 3670015 + ``` + + The deeper problem was not the mod. One object the parser couldn't read was + enough to abort the entire load — on the save this was reported against, 106 + objects out of 37,958. An object that can't be read is now skipped and + reported instead, so no single piece of mod data can stop a save from + opening. + + **Modded buildings still appear on the map.** Where a building sits, which + way it faces and what it is all come from a part of the save that always + reads cleanly, so those 106 load balancers draw exactly where they belong, + under the **Unknown** category. What's missing is what's *inside* them — + item filters and inventory — and they can't be edited. The load status line + says how many objects this applied to; the browser console lists the first + few in full, which is the useful half of a bug report. + + This is deliberately general rather than a fix for one mod: whatever a mod + stores in a shape the parser doesn't know, the rest of the save still opens. + +- **A plain explanation instead of a parser error when editing unreadable + content.** Deleting or duplicating one of those objects used to report + `String decode failure at offset 24369724 of length 3670015`. It now names + the object and says it can be viewed on the map but not edited. + +## Under the hood + +- Saves are unchanged by all of this: a save with nothing unreadable in it + produces byte-for-byte the same map data as v0.2.1, verified against four + large vanilla saves. +- The save editor is no less strict. An object that read correctly *before* an + edit and stops afterwards is still treated as the editor corrupting the + save, and the edit is refused — that check is what the load-time strictness + was really there for. + +## Checksums (SHA-256) + +``` +{CHECKSUMS} +``` diff --git a/rust_parser/Cargo.lock b/rust_parser/Cargo.lock index b2229e0..ad707ab 100644 --- a/rust_parser/Cargo.lock +++ b/rust_parser/Cargo.lock @@ -3061,7 +3061,7 @@ dependencies = [ [[package]] name = "sav_tauri" -version = "0.2.1" +version = "0.2.2" dependencies = [ "arboard", "keyring", diff --git a/rust_parser/tauri/Cargo.toml b/rust_parser/tauri/Cargo.toml index f3f8b1d..1e4addc 100644 --- a/rust_parser/tauri/Cargo.toml +++ b/rust_parser/tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sav_tauri" -version = "0.2.1" +version = "0.2.2" edition = "2021" description = "Native desktop shell for the Satisfactory save map" default-run = "sav_tauri" diff --git a/rust_parser/tauri/tauri.conf.json b/rust_parser/tauri/tauri.conf.json index c159f95..ca31d3a 100644 --- a/rust_parser/tauri/tauri.conf.json +++ b/rust_parser/tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Satisfactory Save Map", - "version": "0.2.1", + "version": "0.2.2", "identifier": "com.satisfactorymap.desktop", "build": { "frontendDist": "../../dist"