unsloth/studio/frontend/public
Lee Jackson 557743f027
studio: windows desktop shortcut launcher (#4558)
* feat(windows): add Studio desktop/Start shortcuts with health-check launcher

* chore(windows): bundle sloth.ico and set shortcut icons when valid

* chore(windows):add images/sloth.ico

* fix(windows): guard PSScriptRoot for Studio shortcut icon in iex installs

* fix(install): high-DPI sloth.ico and relocate to studio/frontend/publi

* chore(studio): update sloth.ico for clearer desktop and shell icons

* chore(studio): use unsloth.ico for Studio shortcut icon

* feat(windows): improve Studio shortcut launcher (fast health + browser UX)

* fix(windows): stable unsloth.ico URL and Unicode-safe Studio launcher scripts

* fix(windows): escape $ in exe path and write launcher UTF-8 with BOM

* fix(windows): skip shortcuts when Desktop or APPDATA paths are missing

* fix(install): log shortcut/icon/port failures and warn early on missing paths

* fix(install): guard missing LOCALAPPDATA before shortcut paths

* fix(install): harden New-StudioShortcuts and improve success messaging

* fix(install): include port 8908 in studio health check

* fix(install): fix launch-studio.ps1  quoting

* Fix launcher edge cases and normalize indentation in install.ps1

- Handle silent timeout: show a message when Studio is still starting
  but did not become healthy within the timeout, instead of exiting
  with no feedback
- Add -NoProfile to the visible PowerShell terminal launch so the
  user profile cannot hang or error before Studio runs
- Add a named mutex (Local\UnslothStudioLauncher) to prevent
  double-click from spawning duplicate terminals; second instance
  polls for health and opens the browser when ready
- Normalize indentation inside New-StudioShortcuts outer try block
  from mixed 8/12-space to consistent 12-space

* Simplify Get-CandidatePorts port dedup with Sort-Object -Unique

Replace the foreach/-notcontains loop with a single pipeline:
  $ports = (@($basePort) + $listening) | Sort-Object -Unique

* Harden health probe and handle abandoned mutex in launcher

- Test-StudioHealth now checks resp.service == 'Unsloth UI Backend' to
  avoid fingerprinting collisions with other local services on the same
  port range.
- Wrap the mutex WaitOne(0) call in a try/catch for
  AbandonedMutexException so the launcher recovers gracefully when a
  previous instance was killed while holding the mutex.

---------

Co-authored-by: Daniel Han <danielhanchen@gmail.com>
2026-03-24 23:41:02 -07:00
..
fonts add studio root folder 2026-02-02 09:14:35 +00:00
Hellix font official add studio root folder 2026-02-02 09:14:35 +00:00
Sloth emojis add studio root folder 2026-02-02 09:14:35 +00:00
blacklogo.png feat: fix markdown rendering, UI adjustments 2026-02-25 09:46:13 +01:00
favicon.png fix: replace favicon with branded sloth icon 2026-03-08 18:46:42 +00:00
huggingface.svg Final cleanup 2026-03-12 18:28:04 +00:00
logotext.png cleanup 2026-02-04 13:28:39 +01:00
studio github landscape colab display.png studio: improve Colab notebook, redesign ready popup, and clean up install output (#4339) 2026-03-16 21:39:25 -07:00
unsloth-gem.png feat: fix dark mode support and refine UI assets 2026-02-25 09:23:05 +01:00
unsloth.ico studio: windows desktop shortcut launcher (#4558) 2026-03-24 23:41:02 -07:00
vite.svg Final cleanup 2026-03-12 18:28:04 +00:00
whitelogo.png feat: fix markdown rendering, UI adjustments 2026-02-25 09:46:13 +01:00