unsloth/studio/backend
Daniel Han a8f02c9f3f Fix studio frontend build producing empty Tailwind CSS
Two issues caused the studio frontend to render without any styling
when installed via `pip install` (non-editable):

1. `pyproject.toml` package-data only included `frontend/dist/**/*`.
   The `include-package-data = true` setting relies on `git ls-files`,
   which fails in isolated builds (pip/uv copy source to a temp dir
   without `.git`). This meant `frontend/src/`, `package.json`,
   `vite.config.ts`, and other build files were missing from the
   installed package. Tailwind had no source files to scan.

2. Python venvs auto-create a `.gitignore` with a bare `*` pattern.
   Tailwind v4's oxide scanner walks parent directories and respects
   `.gitignore` -- so even when source files are present, the venv's
   `*` pattern causes the scanner to skip all `.tsx` files. The result
   is a 34KB CSS skeleton with zero utility classes instead of the
   expected 265KB.

Additionally, Vite adds `crossorigin` to script/link tags by default.
This forces CORS mode on font subresource loads, which Firefox
HTTPS-Only Mode does not exempt -- causing all @font-face downloads
to fail silently when Studio is served over HTTP.

Changes:
- pyproject.toml: Expand package-data to include frontend source,
  config files, setup scripts, and backend requirements using glob
  patterns (no node_modules)
- studio/setup.sh: Temporarily hide parent .gitignore files containing
  a bare `*` during `npm run build`, with trap-based restoration
- studio/backend/main.py: Strip `crossorigin` attributes from HTML
  at serve time so fonts load correctly on any protocol
2026-03-15 22:00:00 -07:00
..
assets Final cleanup 2026-03-12 18:28:04 +00:00
auth fix: remove old comments (#4292) 2026-03-14 16:50:13 +04:00
core chat only with gguf for mac devices (#4300) 2026-03-15 23:20:48 +04:00
loggers Final cleanup 2026-03-12 18:28:04 +00:00
models [pre-commit.ci] auto fixes from pre-commit.com hooks 2026-03-15 05:24:06 -07:00
plugins Final cleanup 2026-03-12 18:28:04 +00:00
requirements fix: remove old comments (#4292) 2026-03-14 16:50:13 +04:00
routes chat only with gguf for mac devices (#4300) 2026-03-15 23:20:48 +04:00
state Final cleanup 2026-03-12 18:28:04 +00:00
tests fix(seed): disable remote code execution in seed inspect dataset loads (#4275) 2026-03-13 19:37:43 +04:00
utils studio: sort GGUF dropdown client-side -- recommended first, OOM last, rest by size descending 2026-03-15 05:24:06 -07:00
__init__.py Final cleanup 2026-03-12 18:28:04 +00:00
colab.py Final cleanup 2026-03-12 18:28:04 +00:00
main.py Fix studio frontend build producing empty Tailwind CSS 2026-03-15 22:00:00 -07:00
run.py Graceful shutdown on Windows (signal handlers for Ctrl+C) (#4306) 2026-03-16 03:01:15 +04:00