The release job now uploads assets with stable names (TEESimulator-RS-Release.zip) alongside versioned ones, so the /latest/download/ URL in update.json always resolves. versionCode in update.json is bumped to the commit count automatically after each release, committed with [skip ci] to prevent loops.