Changes
-
patterns: cache-first load + jsDelivr-first mirror to fix INVALID CONTENT CONFIGURATION
Root cause (from a failing machine's Debug main.log): RemoteToml::Fetch was
network-first and tried raw.githubusercontent.com first. On networks that can't
reach GitHub raw (HTTP=0) each of the 3 components burned the connect timeout
(~8s) before falling through to jsDelivr, so hooks did not install until ~24s
after Steam start. In that unhooked window Steam built depot configs for queued
lua apps while the BuildDepotDependency empty-config guard was absent, so Steam
stored an invalid/empty content config that persisted across restarts -
INVALID CONTENT CONFIGURATION. Restart/Debug could not fix it (same 24s window
every launch); only users who cannot reach GitHub raw were affected. -
Cache-first: if a TOML for the current steamclient sha is already cached, load
it and install hooks immediately, then refresh the cache on a detached thread.
The cache key is the sha, so a cached file is always valid for the running
client (a client update changes the sha -> cache miss -> fresh sync fetch). -
Lead the mirror chain with jsDelivr; keep git.lua.tools, then GitHub raw last.
-
Short resolve/connect timeouts (2.5s) so a dead mirror fails fast on the cold
path instead of the long WinHTTP default.
Takes the ~24s cold start to ~0 on repeat launches and <1s on first launch, so
the guard is live before Steam touches depot configs. Also speeds startup for
everyone. No change to the hook logic or the guard itself.
Installation
Download OpenSteamTool-v1.0.9-Release.zip (or the -Debug variant if you need logging to <steam>/opensteamtool directory).
Extract and copy dwmapi.dll, xinput1_4.dll and OpenSteamTool.dll to your Steam root directory (e.g. C:\Program Files (x86)\Steam).
Create a Lua config directory (for example C:\Program Files (x86)\Steam\config\stplug-in) and place your Lua scripts there.