* Repair seven tests left behind by their own subjects
* Bound the chrome nudges to the space they have to fit
* Carry the navigation box into the titlebar bound
* Fix Studio installer runtime race
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Close remaining Studio installer races
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Keep Windows installer tests Windows-only
* Stabilize Windows process guard test
* Coordinate terminal Studio launches
* Guard all managed Studio launches
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Coordinate custom Studio roots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Handle direct GGUF settings rows
* Apply repository formatter
* Close remaining Studio update races
* Handle Windows runtime gate CI edge cases
* Verify the updater parent shim by image
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Allow verified updater shim chains
* Stabilize Windows process guard test
* Handle Windows console-script redirectors
* Close remaining Windows updater guard gaps
* Handle spaced and repeated Windows update shells
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve Tauri root aliases before validation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix custom-root locks and updater ancestry
* Align Windows runtime identity checks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Scope desktop fallback to the current user
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Preserve drive-root mutex identity
* Use ordinal semantics in Studio idle scans
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Guard standalone Studio setup mutations
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Restore the setup gate handoff independently
* Version the Windows installer native helper
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Use ordinal path comparison in Studio runtime scan
* Tighten Studio runtime gate test comments
* Exempt the venv Python redirector in the Studio runtime gate
Windows venv Scripts\python.exe is a redirector that runs base Python as a
child, so `unsloth studio setup` runs as unsloth.exe -> python.exe -> us. The
ancestor walk only exempted the unsloth.exe shims and stopped at the redirector,
so the installer flagged its own launcher and every Windows install failed with
"The managed Studio environment is in use by unsloth.exe".
Carry one redirector as pending and exempt it only when a shim sits directly
above it, so a managed backend that spawns an update still blocks. Also stop
gating the protected shim paths on exists(), so a shim renamed out of the way
mid-update is still recognised.
Drop "Studio" from the two runtime-lock messages so process.rs satisfies the
desktop branding contract.
* Close the redirector exemption when the updater is the managed image
Only a base interpreter runs under a venv redirector. If our own executable is
inside the managed root there is no redirector above us, so a managed parent is
a real consumer and must keep blocking. Adds the regression to the redirector
test.
* Key the redirector exemption on sys.executable, not on a shim above it
The Tauri updater runs `<venv>\Scripts\python.exe -I -c ... studio update`
directly, so its chain is tauri.exe -> redirector -> base Python with no
unsloth.exe in it. Requiring a shim above the redirector made every desktop
update block on its own launcher.
A venv redirector starts base Python as a child and waits, so when we are the
base image and sys.executable still names the managed interpreter, our direct
parent is that launcher. Exempt exactly that hop; ancestors above it must still
be shims, and a managed image at depth two or more keeps blocking.
* Stop the x86 guard test racing its own probe
The 32-bit leg fired one scan against a probe that lives about five seconds,
while a WOW64 shell start plus the Add-Type compile regularly costs more than
that, so it read an empty list on a Windows runner. Give the probe a long life
and retry like the 64-bit sibling already does. The assertion is unchanged.
* Tighten comments in the Studio runtime gate changes
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: danielhanchen <michaelhan2050@gmail.com>