unsloth/studio/backend
Daniel Han 9a21e8fbef Make the bootstrap normalisation append-only
clear_bootstrap_password() falls back to truncating the file through its own
descriptor when the unlink fails, which is what happens on Windows while this
one is open. That truncation could land after the equality check and before the
write, so the rewrite put the revoked plaintext back.

Append a single LF instead, and only to a file that is exactly the credential.
An append cannot restore a revoked secret: over a cleared file the result is a
lone newline, which strips to empty and reads back as no bootstrap password.
Releases before the newline wrote the password with no terminator at all, so
that is the only shape in the wild; anything else is left alone and keeps
working because every reader strips.

Never truncating also removes the short-write NUL-fill hazard entirely, so the
write loop is gone. O_BINARY stays: without it Windows would turn the appended
LF into CRLF.
2026-07-29 07:29:39 +00:00
..
assets feat(studio): add DoRA support to studio (#7315) 2026-07-24 03:24:16 -07:00
auth Make the bootstrap normalisation append-only 2026-07-29 07:29:39 +00:00
core Studio: read model text as utf-8 so umlauts survive on Windows (#7467) 2026-07-28 21:27:27 -07:00
hub Studio: read model text as utf-8 so umlauts survive on Windows (#7467) 2026-07-28 21:27:27 -07:00
loggers Studio: read model text as utf-8 so umlauts survive on Windows (#7467) 2026-07-28 21:27:27 -07:00
models feat(studio): adjustable llama-server parallel slots from the web UI (#7447) 2026-07-28 18:03:28 -07:00
picker Studio: add configurable model download location (#7274) 2026-07-23 01:34:38 -07:00
plugins Studio: read model text as utf-8 so umlauts survive on Windows (#7467) 2026-07-28 21:27:27 -07:00
requirements Installer: stop requiring a developer toolchain on the consumer path (#7547) 2026-07-28 18:50:38 -07:00
routes Studio: read model text as utf-8 so umlauts survive on Windows (#7467) 2026-07-28 21:27:27 -07:00
state feat(studio): run chats in parallel in the Chat tab (#7455) 2026-07-28 04:40:38 -07:00
storage Studio: add Deep Research (#7219) 2026-07-26 23:36:02 -07:00
tests Make the bootstrap normalisation append-only 2026-07-29 07:29:39 +00:00
utils Studio: read model text as utf-8 so umlauts survive on Windows (#7467) 2026-07-28 21:27:27 -07:00
__init__.py Final cleanup 2026-03-12 18:28:04 +00:00
_platform_compat.py Reduce and tighten code comments and docstrings repo-wide (#6095) 2026-06-08 23:09:51 -07:00
cloudflare_tunnel.py Studio: read model text as utf-8 so umlauts survive on Windows (#7467) 2026-07-28 21:27:27 -07:00
colab.py Let a decode failure degrade instead of escaping a fail-closed helper (#7487) 2026-07-27 03:26:08 -07:00
main.py Show release notes in the update popup, sourced from CHANGELOG.md (#7432) 2026-07-28 21:26:43 -07:00
mcp_server.py Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
run.py Studio: read model text as utf-8 so umlauts survive on Windows (#7467) 2026-07-28 21:27:27 -07:00
startup_banner.py Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00