Skip to content

Parity: keep the reap-margin check off the edge of its own window - #12514

Merged
Etherll merged 1 commit into
unslothai:mainfrom
lonexreb:fix/parity-reap-check-margin
Oct 2, 2026
Merged

Etherll merged 1 commit into
unslothai:mainfrom
lonexreb:fix/parity-reap-check-margin

Conversation

@lonexreb

@lonexreb lonexreb commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

What fails

parity (windows-latest) fails stub: every child's bound leaves 2 s of the shared deadline to reap it on PR #11081, twice in a row, with the first child sleeping exactly 3.0 s each time. The PR does not touch the parity test or Read-NvidiaLibraryRaw, and the same suite passes on main and on the PR's Ubuntu leg.

Why

The row sleeps the first child for 3000 ms of a 2 × 4000 ms deadline and asserts the CUDA-only child's bound lands in [2000, 3000] ms. Read-NvidiaLibraryRaw hands the second child remaining − 2000, so the expected value is 3000 minus the few milliseconds spent around the sleep (2797 ms when I ran the stub rows under Linux pwsh). That puts the expected answer on the window's upper edge. Start-Sleep -Milliseconds 3000 on Windows can return one timer tick early, so remaining reads 5001+ and the bound is 3001: a correct computation that fails the check. Whether a given run lands on the right side of 3000 is a coin flip against the clock, which is why main has been green and #11081 red on identical code.

Fix

Sleep 3200 ms instead, so the expected bound is about 2800 ms with ~200 ms of margin on each side of the window, and print the bound in the row's name so the next failure says what it saw rather than only that it missed.

Checked: the suite parses and runs clean under Linux pwsh (the row reports second bound: 2797 ms), and the other stub rows are unchanged.

🤖 Generated with Claude Code

https://claude.ai/code/session_012DRiTpjxAymRtv9p8Xr2kd

The row sleeps the first child for 3000 ms of a 2 x 4000 ms deadline and
asserts the CUDA-only child's bound lands in [2000, 3000] ms. The expected
value is 3000 minus the few ms spent around the sleep, which sits on the
window's upper edge, so a Start-Sleep that wakes one timer tick early on
Windows answers 3001 and fails a run that computed the bound correctly.
Sleep 3200 ms instead, so the expected bound is about 2800 ms with margin
on both sides, and print the bound in the row's name so the next failure
says what it saw.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012DRiTpjxAymRtv9p8Xr2kd
@Sletch

Sletch commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Windows numbers to go with the Linux pwsh run in the description. Each run is the real test file, invoked the way cross-platform-parity-ci.yml invokes it, on Windows 10 under pwsh 7.6.6 and Windows PowerShell 5.1.19041, five runs per shell:

test file first child's sleep runs reap-margin row second bound
main f2f09ec2e, unchanged 3000 ms 10 10 passed not printed
this PR, cb5fc4e00 3200 ms 10 10 passed 2784 to 2799 ms
this PR with only the sleep set back to 3000 3000 ms 10 10 passed 2986 to 2998 ms

All 30 runs passed all 161 checks, so this machine did not reproduce the failure. What it does show is how close the old row runs: 2 to 14 ms under the 3000 ms upper bound, against at least 200 ms with 3200.

The same row also failed parity (windows-latest) on #10075's run on 09-29, a branch that touches neither this test nor Read-NvidiaLibraryRaw.

@Etherll Etherll self-assigned this Oct 2, 2026
@Etherll

Etherll commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

The reap-margin row in the NVIDIA probe parity test no longer sits on the edge of its own window. The expected second-child bound is now about 2800 ms: 200 ms under the 3000 ms limit and 800 ms over the 2000 ms floor.

What changed

  • With a 3000 ms first-child sleep, the expected bound landed exactly on the 3000 ms limit. A Windows sleep that read one tick short produced 3001 and failed parity (windows-latest) on unrelated PRs. The row now sleeps 3200 ms and prints the bound in the check name.

No product code changes. On Linux pwsh 7, with Start-Sleep made to return 16 ms early, the old row failed 5 of 5 runs (bound 3015 ms) and the new row passed 5 of 5 (2815 ms). Reverting only the sleep to 3000 fails again. The rest of the file passes unchanged, and mutated copies of Read-NvidiaLibraryRaw that drop the 2 s reserve or give the second child a fresh bound still fail the row. Windows was not run locally, but the fork's parity (windows-latest) job on this head passed the row under both shells. pwsh 7 measured a second bound of 2774 ms and Windows PowerShell 5.1 measured 2789 ms (https://github.com/Etherll/unsloth/actions/runs/37036934382/job/110937336356). parity (ubuntu-latest) also passed. The PR merged before the rest of the fork queue ran: 13 checks had passed, 1 was skipped, none failed, and 14 were still queued.

Status: Windows parity confirmed; remaining fork checks not run.

@Etherll
Etherll merged commit dae96ea into unslothai:main Oct 2, 2026
Etherll added a commit that referenced this pull request Oct 2, 2026
…ndow" (#12514)

This reverts commit dae96ea. It was merged before Codex review converged; it will be re-opened for review.
Stanley00 pushed a commit to stanley-fork/unsloth that referenced this pull request Oct 3, 2026
Reverts PRs that were merged before their review converged, newest first.
They are re-opened as new PRs for review.

- unslothai#12499 (lift a carried model picker row like a sidebar chat, and lighten both drag copies), with its follow-up unslothai#12562 (make carried rows a faintly frosted, darker copy)
- unslothai#11361 (WSL2 Windows localhost hint in startup banner)
- unslothai#12505 (stop rejecting --mmproj-device CUDA1 when gpu_ids are saved)
- unslothai#12523 (renew the chat-run lease while long prefill is still advancing)
- unslothai#12529 (count only the lock's own waits in the unlockable-filesystem row)
- unslothai#12526 (move torchao int8 weights back to the GPU after an oversized request streams pinned groups)
- unslothai#12516 (use ComfyUI's default settings for FLUX.1, Qwen-Image, Z-Image, Ideogram 4, Wan2.2 and HunyuanVideo-1.5)
- unslothai#12514 (keep the reap-margin check off the edge of its own window)
- unslothai#12486 (train a dataset's system column as the system prompt)
- unslothai#12475 (prevent IME confirmation from submitting chat renames)
danielhanchen added a commit to danielhanchen/unsloth-staging-2 that referenced this pull request Oct 3, 2026
…slothai#12615)

* Revert "Studio: lift a carried model picker row like a sidebar chat, and lighten both drag copies" (unslothai#12499)

This reverts commit 9838541. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): WSL2 Windows localhost hint in startup banner (unslothai#11187)" (unslothai#11361)

This reverts commit cd4d5c1. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: stop rejecting --mmproj-device CUDA1 when gpu_ids are saved" (unslothai#12505)

This reverts commit a91ee37. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: renew the chat-run lease while long prefill is still advancing" (unslothai#12523)

This reverts commit d8740d3. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Count only the lock's own waits in the unlockable-filesystem row" (unslothai#12529)

This reverts commit 5b78baf. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: move torchao int8 weights back to the GPU after an oversized request streams pinned groups" (unslothai#12526)

This reverts commit d883d2d. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: use ComfyUI's default settings for FLUX.1, Qwen-Image, Z-Image, Ideogram 4, Wan2.2 and HunyuanVideo-1.5" (unslothai#12516)

This reverts commit fd2522b. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Parity: keep the reap-margin check off the edge of its own window" (unslothai#12514)

This reverts commit dae96ea. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: train a dataset's system column as the system prompt" (unslothai#12486)

This reverts commit ed6d0e8. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): prevent IME confirmation from submitting chat renames" (unslothai#12475)

This reverts commit 079dc91. It was merged before Codex review converged; it will be re-opened for review.

* Parity: keep the reap-margin check off the edge of its own window (unslothai#12514)

The row sleeps the first child for 3000 ms of a 2 x 4000 ms deadline and
asserts the CUDA-only child's bound lands in [2000, 3000] ms. The expected
value is 3000 minus the few ms spent around the sleep, which sits on the
window's upper edge, so a Start-Sleep that wakes one timer tick early on
Windows answers 3001 and fails a run that computed the bound correctly.
Sleep 3200 ms instead, so the expected bound is about 2800 ms with margin
on both sides, and print the bound in the row's name so the next failure
says what it saw.

Claude-Session: https://claude.ai/code/session_012DRiTpjxAymRtv9p8Xr2kd

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit dae96ea)

* Parity: keep the reap-margin check off the edge of its own window (unslothai#12514)

The row sleeps the first child for 3000 ms of a 2 x 4000 ms deadline and
asserts the CUDA-only child's bound lands in [2000, 3000] ms. The expected
value is 3000 minus the few ms spent around the sleep, which sits on the
window's upper edge, so a Start-Sleep that wakes one timer tick early on
Windows answers 3001 and fails a run that computed the bound correctly.
Sleep 3200 ms instead, so the expected bound is about 2800 ms with margin
on both sides, and print the bound in the row's name so the next failure
says what it saw.

Claude-Session: https://claude.ai/code/session_012DRiTpjxAymRtv9p8Xr2kd

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit dae96ea)

* Tighten timeout test comment

---------

Co-authored-by: Etherl <61019402+Etherll@users.noreply.github.com>
Co-authored-by: Shubhankar Tripathy <95570942+lonexreb@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
danielhanchen added a commit to danielhanchen/unsloth-staging-2 that referenced this pull request Oct 3, 2026
…lothai#12618)

* Revert "Studio: lift a carried model picker row like a sidebar chat, and lighten both drag copies" (unslothai#12499)

This reverts commit 9838541. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): WSL2 Windows localhost hint in startup banner (unslothai#11187)" (unslothai#11361)

This reverts commit cd4d5c1. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: stop rejecting --mmproj-device CUDA1 when gpu_ids are saved" (unslothai#12505)

This reverts commit a91ee37. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: renew the chat-run lease while long prefill is still advancing" (unslothai#12523)

This reverts commit d8740d3. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Count only the lock's own waits in the unlockable-filesystem row" (unslothai#12529)

This reverts commit 5b78baf. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: move torchao int8 weights back to the GPU after an oversized request streams pinned groups" (unslothai#12526)

This reverts commit d883d2d. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: use ComfyUI's default settings for FLUX.1, Qwen-Image, Z-Image, Ideogram 4, Wan2.2 and HunyuanVideo-1.5" (unslothai#12516)

This reverts commit fd2522b. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Parity: keep the reap-margin check off the edge of its own window" (unslothai#12514)

This reverts commit dae96ea. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: train a dataset's system column as the system prompt" (unslothai#12486)

This reverts commit ed6d0e8. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): prevent IME confirmation from submitting chat renames" (unslothai#12475)

This reverts commit 079dc91. It was merged before Codex review converged; it will be re-opened for review.

* Count only the lock's own waits in the unlockable-filesystem row (unslothai#12529)

The row patches time.sleep process-wide to prove _optional_top_up_lock does
not retry a mount that cannot lock. The lock waits on the calling thread,
but a background thread left by an earlier test in the same worker that
sleeps 50 ms during the window lands in the same list, and the row fails
with "waited on a filesystem that cannot lock: [0.05]" for a wait the lock
never made. Record sleeps from the test's thread only, hand other threads
the real sleep so they keep their pacing, and print what was recorded.

Claude-Session: https://claude.ai/code/session_012DRiTpjxAymRtv9p8Xr2kd

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 5b78baf)

* Count only the lock's own waits in the unlockable-filesystem row (unslothai#12529)

The row patches time.sleep process-wide to prove _optional_top_up_lock does
not retry a mount that cannot lock. The lock waits on the calling thread,
but a background thread left by an earlier test in the same worker that
sleeps 50 ms during the window lands in the same list, and the row fails
with "waited on a filesystem that cannot lock: [0.05]" for a wait the lock
never made. Record sleeps from the test's thread only, hand other threads
the real sleep so they keep their pacing, and print what was recorded.

Claude-Session: https://claude.ai/code/session_012DRiTpjxAymRtv9p8Xr2kd

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 5b78baf)

* Tighten test comment

* Ignore stray background threads' flock calls in the unlockable-filesystem row

---------

Co-authored-by: Etherl <61019402+Etherll@users.noreply.github.com>
Co-authored-by: Shubhankar Tripathy <95570942+lonexreb@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
danielhanchen added a commit to danielhanchen/unsloth-staging-2 that referenced this pull request Oct 3, 2026
…ten both drag copies (unslothai#12622)

* Revert "Studio: lift a carried model picker row like a sidebar chat, and lighten both drag copies" (unslothai#12499)

This reverts commit 9838541. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): WSL2 Windows localhost hint in startup banner (unslothai#11187)" (unslothai#11361)

This reverts commit cd4d5c1. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: stop rejecting --mmproj-device CUDA1 when gpu_ids are saved" (unslothai#12505)

This reverts commit a91ee37. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: renew the chat-run lease while long prefill is still advancing" (unslothai#12523)

This reverts commit d8740d3. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Count only the lock's own waits in the unlockable-filesystem row" (unslothai#12529)

This reverts commit 5b78baf. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: move torchao int8 weights back to the GPU after an oversized request streams pinned groups" (unslothai#12526)

This reverts commit d883d2d. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: use ComfyUI's default settings for FLUX.1, Qwen-Image, Z-Image, Ideogram 4, Wan2.2 and HunyuanVideo-1.5" (unslothai#12516)

This reverts commit fd2522b. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Parity: keep the reap-margin check off the edge of its own window" (unslothai#12514)

This reverts commit dae96ea. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: train a dataset's system column as the system prompt" (unslothai#12486)

This reverts commit ed6d0e8. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): prevent IME confirmation from submitting chat renames" (unslothai#12475)

This reverts commit 079dc91. It was merged before Codex review converged; it will be re-opened for review.

* Studio: lift a carried model picker row like a sidebar chat, and lighten both drag copies (unslothai#12499)

* Studio: lift a carried model picker row like a sidebar chat, and lighten both drag copies

Dragging a Pinned model in the model picker only dimmed the row. It now lifts
a copy that follows the pointer, with the drop line redrawn above it and a
short settle into the new slot, through the same helpers the sidebar uses.
Every tab (Chat, Images, Audio, Video) draws its picker with HubModelPicker,
so all of them get it.

The carried copy in both lists is now a translucent shade off the list it came
from, with a light blur, instead of a solid hover-colored pill.

* Studio: keep a carried Connected or fine-tuned row on its own pill

A Connected row's ml-4 carried into the copy and pushed it 16px off the pill it was sized to,
and a fine-tuned row lifted its plain keyed wrapper, so the copy came out square with the
selected shell's highlight inside. Drop the margin on the copy and lift the marked pill.

---------

Co-authored-by: Etherll <61019402+Etherll@users.noreply.github.com>
(cherry picked from commit 9838541)

* Studio: make carried rows a faintly frosted, darker copy (unslothai#12562)

A carried sidebar chat, sidebar section header, or model picker Pinned row
now reads as a see-through pill a shade darker than its list in both
themes, with a faint blur and a fainter hairline. The section header copy
gets the same pill; it had no surface before.

(cherry picked from commit 3ebc7bf)

* Studio: lift a carried model picker row like a sidebar chat, and lighten both drag copies (unslothai#12499)

* Studio: lift a carried model picker row like a sidebar chat, and lighten both drag copies

Dragging a Pinned model in the model picker only dimmed the row. It now lifts
a copy that follows the pointer, with the drop line redrawn above it and a
short settle into the new slot, through the same helpers the sidebar uses.
Every tab (Chat, Images, Audio, Video) draws its picker with HubModelPicker,
so all of them get it.

The carried copy in both lists is now a translucent shade off the list it came
from, with a light blur, instead of a solid hover-colored pill.

* Studio: keep a carried Connected or fine-tuned row on its own pill

A Connected row's ml-4 carried into the copy and pushed it 16px off the pill it was sized to,
and a fine-tuned row lifted its plain keyed wrapper, so the copy came out square with the
selected shell's highlight inside. Drop the margin on the copy and lift the marked pill.

---------

Co-authored-by: Etherll <61019402+Etherll@users.noreply.github.com>
(cherry picked from commit 9838541)

* Studio: make carried rows a faintly frosted, darker copy (unslothai#12562)

A carried sidebar chat, sidebar section header, or model picker Pinned row
now reads as a see-through pill a shade darker than its list in both
themes, with a faint blur and a fainter hairline. The section header copy
gets the same pill; it had no surface before.

(cherry picked from commit 3ebc7bf)

* Trim comments in pinned row drag preview

---------

Co-authored-by: Etherl <61019402+Etherll@users.noreply.github.com>
Co-authored-by: Michael Han <107991372+shimmyshimmer@users.noreply.github.com>
danielhanchen added a commit to danielhanchen/unsloth-staging-2 that referenced this pull request Oct 3, 2026
…ai#12614)

* Revert "Studio: lift a carried model picker row like a sidebar chat, and lighten both drag copies" (unslothai#12499)

This reverts commit 9838541. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): WSL2 Windows localhost hint in startup banner (unslothai#11187)" (unslothai#11361)

This reverts commit cd4d5c1. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: stop rejecting --mmproj-device CUDA1 when gpu_ids are saved" (unslothai#12505)

This reverts commit a91ee37. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: renew the chat-run lease while long prefill is still advancing" (unslothai#12523)

This reverts commit d8740d3. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Count only the lock's own waits in the unlockable-filesystem row" (unslothai#12529)

This reverts commit 5b78baf. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: move torchao int8 weights back to the GPU after an oversized request streams pinned groups" (unslothai#12526)

This reverts commit d883d2d. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: use ComfyUI's default settings for FLUX.1, Qwen-Image, Z-Image, Ideogram 4, Wan2.2 and HunyuanVideo-1.5" (unslothai#12516)

This reverts commit fd2522b. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Parity: keep the reap-margin check off the edge of its own window" (unslothai#12514)

This reverts commit dae96ea. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: train a dataset's system column as the system prompt" (unslothai#12486)

This reverts commit ed6d0e8. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): prevent IME confirmation from submitting chat renames" (unslothai#12475)

This reverts commit 079dc91. It was merged before Codex review converged; it will be re-opened for review.

* Studio: train a dataset's system column as the system prompt (unslothai#12486)

* Train a dataset's system column as the system prompt

* Keep rows trainable when the system column cannot be rendered

Templates that reject a system role (codegemma's own template, for
one) now train the conversation without the column instead of
dropping every row that has one. The system turn is also added per row
inside the existing error handling, so a malformed row is dropped on
its own rather than failing the whole dataset.

---------

Co-authored-by: Etherl <61019402+Etherll@users.noreply.github.com>
(cherry picked from commit ed6d0e8)

* Studio: train a dataset's system column as the system prompt (unslothai#12486)

* Train a dataset's system column as the system prompt

* Keep rows trainable when the system column cannot be rendered

Templates that reject a system role (codegemma's own template, for
one) now train the conversation without the column instead of
dropping every row that has one. The system turn is also added per row
inside the existing error handling, so a malformed row is dropped on
its own rather than failing the whole dataset.

---------

Co-authored-by: Etherl <61019402+Etherll@users.noreply.github.com>
(cherry picked from commit ed6d0e8)

* Studio: keep a dataset's system column when converting ChatML to Alpaca

---------

Co-authored-by: Etherl <61019402+Etherll@users.noreply.github.com>
Co-authored-by: Nilay <118994073+NilayYadav@users.noreply.github.com>
shimmyshimmer pushed a commit to shimmyshimmer/unsloth-staging-4 that referenced this pull request Oct 3, 2026
…nslothai#12613)

* Revert "Studio: lift a carried model picker row like a sidebar chat, and lighten both drag copies" (unslothai#12499)

This reverts commit 9838541. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): WSL2 Windows localhost hint in startup banner (unslothai#11187)" (unslothai#11361)

This reverts commit cd4d5c1. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: stop rejecting --mmproj-device CUDA1 when gpu_ids are saved" (unslothai#12505)

This reverts commit a91ee37. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: renew the chat-run lease while long prefill is still advancing" (unslothai#12523)

This reverts commit d8740d3. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Count only the lock's own waits in the unlockable-filesystem row" (unslothai#12529)

This reverts commit 5b78baf. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: move torchao int8 weights back to the GPU after an oversized request streams pinned groups" (unslothai#12526)

This reverts commit d883d2d. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: use ComfyUI's default settings for FLUX.1, Qwen-Image, Z-Image, Ideogram 4, Wan2.2 and HunyuanVideo-1.5" (unslothai#12516)

This reverts commit fd2522b. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Parity: keep the reap-margin check off the edge of its own window" (unslothai#12514)

This reverts commit dae96ea. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: train a dataset's system column as the system prompt" (unslothai#12486)

This reverts commit ed6d0e8. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): prevent IME confirmation from submitting chat renames" (unslothai#12475)

This reverts commit 079dc91. It was merged before Codex review converged; it will be re-opened for review.

* fix(studio): prevent IME confirmation from submitting chat renames (unslothai#12475)

* fix(studio): preserve chat rename during IME composition

* fix(studio): keep rename dialogs open when Escape dismisses an IME candidate

Radix's Dialog closes on Escape from a document capture listener, before
the input's onKeyDown guard runs. Prevent that close while composing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Etherl <61019402+Etherll@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 079dc91)

* fix(studio): prevent IME confirmation from submitting chat renames (unslothai#12475)

* fix(studio): preserve chat rename during IME composition

* fix(studio): keep rename dialogs open when Escape dismisses an IME candidate

Radix's Dialog closes on Escape from a document capture listener, before
the input's onKeyDown guard runs. Prevent that close while composing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Etherl <61019402+Etherll@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 079dc91)

* Trim comments in IME rename guard

* Let idle macOS Pinyin Enter through the rename IME guard

Track compositionstart/compositionend on the rename inputs and reuse
imeKeydownBlocksComposerSubmit, so a 229 Enter is only treated as IME owned
while a composition is open or just ended (WebKit bug 165004). An idle
Pinyin Enter (keyCode 229, isComposing false, unslothai#12137) saves the rename again.

* Reset rename IME state on focus and blur

A compositionend can go missing (WSL Chrome, macOS input-method switch),
which pinned the shared rename IME state open and swallowed later idle
Pinyin Enters. Focus changes always commit or cancel the composition, so
reset there, matching the composers.

* Clear rename IME timestamp on focus change and gate keyCode 13 candidate Enter

* Tighten IME rename guard comments

---------

Co-authored-by: Etherl <61019402+Etherll@users.noreply.github.com>
Co-authored-by: Kei YAMAZAKI <1715090+kei-yamazaki@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
danielhanchen added a commit to danielhanchen/unsloth-staging-2 that referenced this pull request Oct 3, 2026
…#11187) (unslothai#12621)

* Revert "Studio: lift a carried model picker row like a sidebar chat, and lighten both drag copies" (unslothai#12499)

This reverts commit 9838541. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): WSL2 Windows localhost hint in startup banner (unslothai#11187)" (unslothai#11361)

This reverts commit cd4d5c1. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: stop rejecting --mmproj-device CUDA1 when gpu_ids are saved" (unslothai#12505)

This reverts commit a91ee37. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: renew the chat-run lease while long prefill is still advancing" (unslothai#12523)

This reverts commit d8740d3. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Count only the lock's own waits in the unlockable-filesystem row" (unslothai#12529)

This reverts commit 5b78baf. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: move torchao int8 weights back to the GPU after an oversized request streams pinned groups" (unslothai#12526)

This reverts commit d883d2d. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: use ComfyUI's default settings for FLUX.1, Qwen-Image, Z-Image, Ideogram 4, Wan2.2 and HunyuanVideo-1.5" (unslothai#12516)

This reverts commit fd2522b. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Parity: keep the reap-margin check off the edge of its own window" (unslothai#12514)

This reverts commit dae96ea. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: train a dataset's system column as the system prompt" (unslothai#12486)

This reverts commit ed6d0e8. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): prevent IME confirmation from submitting chat renames" (unslothai#12475)

This reverts commit 079dc91. It was merged before Codex review converged; it will be re-opened for review.

* fix(studio): WSL2 Windows localhost hint in startup banner (unslothai#11187) (unslothai#11361)

* fix(studio): show WSL2 Windows localhost hint in startup banner

When Studio binds 0.0.0.0 under WSL2 NAT, LAN addresses are intentionally
not advertised. Add a banner line telling users to open localhost from the
Windows host (unslothai#11187).

* Simplify WSL2 banner hint gating and test the startup wiring

* Show the WSL2 localhost hint only in NAT mode

* Skip the WSL2 localhost hint inside containers

* Check the WSL mode before importing the container probe

_is_wsl_nat runs on every wildcard bind, so importing utils.paths.file_manager
up front broke the stubbed run module in tests/studio/install off WSL. Also
point LAN users at mirrored networking instead of telling them to avoid the
WSL IP, which does work from Windows, and cover a :: bind.

* Print the WSL2 hint where the reachability note goes

Under WSL NAT the "private/LAN address" note described WSL's own NAT address
as reachable on the network. Show the Windows localhost URL and the mirrored
networking tip in its place instead of as an extra block in the banner.

---------

Co-authored-by: Daniel Han <23090290+danielhanchen@users.noreply.github.com>
Co-authored-by: Etherll <61019402+Etherll@users.noreply.github.com>
(cherry picked from commit cd4d5c1)

* fix(studio): WSL2 Windows localhost hint in startup banner (unslothai#11187) (unslothai#11361)

* fix(studio): show WSL2 Windows localhost hint in startup banner

When Studio binds 0.0.0.0 under WSL2 NAT, LAN addresses are intentionally
not advertised. Add a banner line telling users to open localhost from the
Windows host (unslothai#11187).

* Simplify WSL2 banner hint gating and test the startup wiring

* Show the WSL2 localhost hint only in NAT mode

* Skip the WSL2 localhost hint inside containers

* Check the WSL mode before importing the container probe

_is_wsl_nat runs on every wildcard bind, so importing utils.paths.file_manager
up front broke the stubbed run module in tests/studio/install off WSL. Also
point LAN users at mirrored networking instead of telling them to avoid the
WSL IP, which does work from Windows, and cover a :: bind.

* Print the WSL2 hint where the reachability note goes

Under WSL NAT the "private/LAN address" note described WSL's own NAT address
as reachable on the network. Show the Windows localhost URL and the mirrored
networking tip in its place instead of as an extra block in the banner.

---------

Co-authored-by: Daniel Han <23090290+danielhanchen@users.noreply.github.com>
Co-authored-by: Etherll <61019402+Etherll@users.noreply.github.com>
(cherry picked from commit cd4d5c1)

* Trim comments in WSL hint changes

---------

Co-authored-by: Etherl <61019402+Etherll@users.noreply.github.com>
Co-authored-by: Sourav Rajvi <144546710+Souravrajvi0@users.noreply.github.com>
danielhanchen added a commit that referenced this pull request Oct 3, 2026
…e, Ideogram 4, Wan2.2 and HunyuanVideo-1.5 (#12616)

* Revert "Studio: lift a carried model picker row like a sidebar chat, and lighten both drag copies" (#12499)

This reverts commit 9838541. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): WSL2 Windows localhost hint in startup banner (#11187)" (#11361)

This reverts commit cd4d5c1. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: stop rejecting --mmproj-device CUDA1 when gpu_ids are saved" (#12505)

This reverts commit a91ee37. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: renew the chat-run lease while long prefill is still advancing" (#12523)

This reverts commit d8740d3. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Count only the lock's own waits in the unlockable-filesystem row" (#12529)

This reverts commit 5b78baf. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: move torchao int8 weights back to the GPU after an oversized request streams pinned groups" (#12526)

This reverts commit d883d2d. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: use ComfyUI's default settings for FLUX.1, Qwen-Image, Z-Image, Ideogram 4, Wan2.2 and HunyuanVideo-1.5" (#12516)

This reverts commit fd2522b. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Parity: keep the reap-margin check off the edge of its own window" (#12514)

This reverts commit dae96ea. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: train a dataset's system column as the system prompt" (#12486)

This reverts commit ed6d0e8. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): prevent IME confirmation from submitting chat renames" (#12475)

This reverts commit 079dc91. It was merged before Codex review converged; it will be re-opened for review.

* Studio: use ComfyUI's default settings for FLUX.1, Qwen-Image, Z-Image, Ideogram 4, Wan2.2 and HunyuanVideo-1.5 (#12516)

* Match ComfyUI's FLUX.1 T5 prompt length (256 floor, real length, 512 cap)

diffusers pads every FLUX.1 T5 prompt to 512 tokens and runs T5 without an
attention mask, so the padding changes the embeddings and adds 256 joint
attention tokens per step. ComfyUI pads to 256 and otherwise keeps the real
length. Pass max_sequence_length = clamp(T5 length incl. EOS, 256, 512) per
chunk for flux.1 and flux.1-kontext, signature gated, never over an explicit
value; the negative prompt counts only when true CFG encodes it.

* Run Qwen-Image true CFG with an empty negative like ComfyUI

diffusers enables Qwen-Image true CFG only when a negative prompt is passed,
and Studio sends none when the box is blank, so the default guidance 4 never
applied CFG. ComfyUI encodes an empty negative and applies CFG. For
true_cfg_scale families with guidance above 1 and no negative, pass an empty
negative; an explicit negative and guidance <= 1 are unchanged.

* Image steps and guidance defaults follow ComfyUI's templates

Default (steps, guidance) per model now match ComfyUI's official template for
the same checkpoint: FLUX.1 dev / Kontext / Krea dev 20 steps (Krea dev at the
FLUX guidance default 3.5), FLUX.2 dev 20, FLUX.2 klein base 20 at CFG 5,
Qwen-Image-2.1 25, Qwen-Image-Edit 2511 40 at 4, Qwen-Image-2512 50 at 4,
Z-Image-Turbo 8, Z-Image base 25 at 3.0 (diffusers Z-Image guidance is
ComfyUI cfg - 1), SDXL 25. Backend and UI tables stay in sync; explicit
request values are untouched.

* Ideogram 4 defaults to ComfyUI's 20-step constant-guidance schedule

ComfyUI's Ideogram 4 template samples 20 steps at constant guidance 7 with
the logit-normal schedule at mu 0.5 / std 1.75. Default to 20 / 7 and pass
those schedule parameters whenever guidance is constant; an explicit 48
steps at 7 still runs the card's tapered schedule with the pipeline's own
mu / std.

* Video steps and guidance defaults follow ComfyUI's templates

ComfyUI's official templates sample Wan2.2-TI2V-5B at 20 steps / CFG 5,
Wan2.2-T2V-A14B at 20 steps / CFG 3.5 (Lightning LoRA off) and
HunyuanVideo-1.5 at 20 steps / CFG 6, against Studio's 50-step defaults.
Match them in the family defaults, the per-variant table (A14B now has its
own key ahead of the generic Wan one) and the UI table. Explicit values are
unchanged.

* Sample Qwen-Image, Z-Image, Wan2.2 and HunyuanVideo-1.5 at ComfyUI's shift

The shipped schedulers shift sigmas differently from ComfyUI's defaults for
the same models: Qwen-Image / Qwen-Image-Edit resolve a dynamic exponential
shift (about 2.0 at 1024 px) with a 0.02 terminal stretch against a constant
3.1, Z-Image base ships 6.0 against 3.0, Wan2.2 TI2V-5B / T2V-A14B ship 5.0 /
3.0 against 8 / 5, HunyuanVideo-1.5 480p / 720p ship 5.0 / 9.0 against 7.
Add a per-family comfy_flow_shift and rebuild the scheduler at load with that
static shift (no dynamic mu, no terminal stretch). Families without the field
keep their shipped scheduler.

* Ideogram 4: follow ComfyUI's Default preset and its CFG override

The template's scheduler widgets are stale: steps / mu / std come from the
'Default' preset (20 / 0.0 / 1.75), and a CFG override in the model path
drops guidance 7 to 3 over the sampling range 0.7 to 1.0, which on the
shift-1 flow model is sigma <= 0.3. Use mu 0.0 / std 1.75 and, at the
default guidance 7, pass a per-step guidance_schedule of 7 then 3 on exactly
the steps whose logit-normal sigma is <= 0.3 (last 3 of 20 at 1024^2).
Other guidance values stay constant; an explicit 48 / 7 keeps the card
taper.

* FLUX.1 T5: bucket prompts past 256 tokens to 512

Every distinct T5 length is a new denoiser shape. On the compiled default
path with CUDA graphs, exact lengths cost a 14 s recompile for the first
length past 256 and a 0.4 to 1 s graph capture for each further one, until
the 4-graph cap made later shapes (resolution changes included) run eager.
Keep ComfyUI's 256 for prompts up to 256 tokens and pad longer ones to 512,
the old behaviour: two shapes per resolution. This deviates from ComfyUI's
exact length for 257 to 512 token prompts only (unmasked padding changes
their embeddings slightly).

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Ideogram 4 defaults comment: mu 0.0 and the 7 to 3 guidance switch

* sd.cpp: map Z-Image's diffusers guidance to standard CFG

The shared Z-Image default is now diffusers' g = 3 (ComfyUI cfg 4), but sd-cli takes
--cfg-scale as standard CFG, so the native engine sampled Z-Image base at cfg 3.
Pass g + 1 for Z-Image; Turbo's 0 still turns CFG off.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Etherll <61019402+Etherll@users.noreply.github.com>
(cherry picked from commit fd2522b)

* Studio: use ComfyUI's default settings for FLUX.1, Qwen-Image, Z-Image, Ideogram 4, Wan2.2 and HunyuanVideo-1.5 (#12516)

* Match ComfyUI's FLUX.1 T5 prompt length (256 floor, real length, 512 cap)

diffusers pads every FLUX.1 T5 prompt to 512 tokens and runs T5 without an
attention mask, so the padding changes the embeddings and adds 256 joint
attention tokens per step. ComfyUI pads to 256 and otherwise keeps the real
length. Pass max_sequence_length = clamp(T5 length incl. EOS, 256, 512) per
chunk for flux.1 and flux.1-kontext, signature gated, never over an explicit
value; the negative prompt counts only when true CFG encodes it.

* Run Qwen-Image true CFG with an empty negative like ComfyUI

diffusers enables Qwen-Image true CFG only when a negative prompt is passed,
and Studio sends none when the box is blank, so the default guidance 4 never
applied CFG. ComfyUI encodes an empty negative and applies CFG. For
true_cfg_scale families with guidance above 1 and no negative, pass an empty
negative; an explicit negative and guidance <= 1 are unchanged.

* Image steps and guidance defaults follow ComfyUI's templates

Default (steps, guidance) per model now match ComfyUI's official template for
the same checkpoint: FLUX.1 dev / Kontext / Krea dev 20 steps (Krea dev at the
FLUX guidance default 3.5), FLUX.2 dev 20, FLUX.2 klein base 20 at CFG 5,
Qwen-Image-2.1 25, Qwen-Image-Edit 2511 40 at 4, Qwen-Image-2512 50 at 4,
Z-Image-Turbo 8, Z-Image base 25 at 3.0 (diffusers Z-Image guidance is
ComfyUI cfg - 1), SDXL 25. Backend and UI tables stay in sync; explicit
request values are untouched.

* Ideogram 4 defaults to ComfyUI's 20-step constant-guidance schedule

ComfyUI's Ideogram 4 template samples 20 steps at constant guidance 7 with
the logit-normal schedule at mu 0.5 / std 1.75. Default to 20 / 7 and pass
those schedule parameters whenever guidance is constant; an explicit 48
steps at 7 still runs the card's tapered schedule with the pipeline's own
mu / std.

* Video steps and guidance defaults follow ComfyUI's templates

ComfyUI's official templates sample Wan2.2-TI2V-5B at 20 steps / CFG 5,
Wan2.2-T2V-A14B at 20 steps / CFG 3.5 (Lightning LoRA off) and
HunyuanVideo-1.5 at 20 steps / CFG 6, against Studio's 50-step defaults.
Match them in the family defaults, the per-variant table (A14B now has its
own key ahead of the generic Wan one) and the UI table. Explicit values are
unchanged.

* Sample Qwen-Image, Z-Image, Wan2.2 and HunyuanVideo-1.5 at ComfyUI's shift

The shipped schedulers shift sigmas differently from ComfyUI's defaults for
the same models: Qwen-Image / Qwen-Image-Edit resolve a dynamic exponential
shift (about 2.0 at 1024 px) with a 0.02 terminal stretch against a constant
3.1, Z-Image base ships 6.0 against 3.0, Wan2.2 TI2V-5B / T2V-A14B ship 5.0 /
3.0 against 8 / 5, HunyuanVideo-1.5 480p / 720p ship 5.0 / 9.0 against 7.
Add a per-family comfy_flow_shift and rebuild the scheduler at load with that
static shift (no dynamic mu, no terminal stretch). Families without the field
keep their shipped scheduler.

* Ideogram 4: follow ComfyUI's Default preset and its CFG override

The template's scheduler widgets are stale: steps / mu / std come from the
'Default' preset (20 / 0.0 / 1.75), and a CFG override in the model path
drops guidance 7 to 3 over the sampling range 0.7 to 1.0, which on the
shift-1 flow model is sigma <= 0.3. Use mu 0.0 / std 1.75 and, at the
default guidance 7, pass a per-step guidance_schedule of 7 then 3 on exactly
the steps whose logit-normal sigma is <= 0.3 (last 3 of 20 at 1024^2).
Other guidance values stay constant; an explicit 48 / 7 keeps the card
taper.

* FLUX.1 T5: bucket prompts past 256 tokens to 512

Every distinct T5 length is a new denoiser shape. On the compiled default
path with CUDA graphs, exact lengths cost a 14 s recompile for the first
length past 256 and a 0.4 to 1 s graph capture for each further one, until
the 4-graph cap made later shapes (resolution changes included) run eager.
Keep ComfyUI's 256 for prompts up to 256 tokens and pad longer ones to 512,
the old behaviour: two shapes per resolution. This deviates from ComfyUI's
exact length for 257 to 512 token prompts only (unmasked padding changes
their embeddings slightly).

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Ideogram 4 defaults comment: mu 0.0 and the 7 to 3 guidance switch

* sd.cpp: map Z-Image's diffusers guidance to standard CFG

The shared Z-Image default is now diffusers' g = 3 (ComfyUI cfg 4), but sd-cli takes
--cfg-scale as standard CFG, so the native engine sampled Z-Image base at cfg 3.
Pass g + 1 for Z-Image; Turbo's 0 still turns CFG off.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Etherll <61019402+Etherll@users.noreply.github.com>
(cherry picked from commit fd2522b)

* Tighten comments in ComfyUI parity changes

* Keep Qwen-Image-Edit-2509 on its ComfyUI template shift 3.0

* Studio: pick the Ideogram 4 ComfyUI preset by step count so 48 steps keeps std 1.5

* Trim comments in the ComfyUI defaults change

* Studio: keep Qwen-Image-Edit-2509 on its ComfyUI template defaults (20 steps, guidance 4)

* Drop a duplicated test docstring

---------

Co-authored-by: Etherl <61019402+Etherll@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
yermakoffivan pushed a commit to yermakoffivan/unsloth that referenced this pull request Oct 3, 2026
…request streams pinned groups (unslothai#12617)

* Revert "Studio: lift a carried model picker row like a sidebar chat, and lighten both drag copies" (unslothai#12499)

This reverts commit 9838541. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): WSL2 Windows localhost hint in startup banner (unslothai#11187)" (unslothai#11361)

This reverts commit cd4d5c1. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: stop rejecting --mmproj-device CUDA1 when gpu_ids are saved" (unslothai#12505)

This reverts commit a91ee37. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: renew the chat-run lease while long prefill is still advancing" (unslothai#12523)

This reverts commit d8740d3. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Count only the lock's own waits in the unlockable-filesystem row" (unslothai#12529)

This reverts commit 5b78baf. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: move torchao int8 weights back to the GPU after an oversized request streams pinned groups" (unslothai#12526)

This reverts commit d883d2d. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: use ComfyUI's default settings for FLUX.1, Qwen-Image, Z-Image, Ideogram 4, Wan2.2 and HunyuanVideo-1.5" (unslothai#12516)

This reverts commit fd2522b. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Parity: keep the reap-margin check off the edge of its own window" (unslothai#12514)

This reverts commit dae96ea. It was merged before Codex review converged; it will be re-opened for review.

* Revert "Studio: train a dataset's system column as the system prompt" (unslothai#12486)

This reverts commit ed6d0e8. It was merged before Codex review converged; it will be re-opened for review.

* Revert "fix(studio): prevent IME confirmation from submitting chat renames" (unslothai#12475)

This reverts commit 079dc91. It was merged before Codex review converged; it will be re-opened for review.

* Studio: move torchao int8 weights back to the GPU after an oversized request streams pinned groups (unslothai#12526)

* Studio: restore pinned torchao groups by their inner tensors

After an oversized request streams the pinned denoiser groups, restoring them
skipped every tensor whose wrapper already reported the onload device. A torchao
int8 weight can report cuda after a streamed offload while its int8 data and
scales sit on the host, so the restore left them there and the next request
failed with a device mismatch (Qwen-Image-2.1 int8 at 12 or 16 GB, a 2400x1792
render followed by a 1024 render).

_placed_on() judges a torchao subclass by its flattened inner tensors; plain
tensors keep the device check.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Studio: check torchao restore placement through the inner tensors in the test

The new test read .qdata/.scale directly, which only exist on torchao's v2
Int8Tensor. On torchao 0.14 (the default for torch <= 2.9) int8 weights keep
the v1 layout, so the test raised AttributeError instead of checking the
restore. Walk __tensor_flatten__ recursively so both layouts are covered.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Etherll <61019402+Etherll@users.noreply.github.com>
(cherry picked from commit d883d2d)

* Studio: move torchao int8 weights back to the GPU after an oversized request streams pinned groups (unslothai#12526)

* Studio: restore pinned torchao groups by their inner tensors

After an oversized request streams the pinned denoiser groups, restoring them
skipped every tensor whose wrapper already reported the onload device. A torchao
int8 weight can report cuda after a streamed offload while its int8 data and
scales sit on the host, so the restore left them there and the next request
failed with a device mismatch (Qwen-Image-2.1 int8 at 12 or 16 GB, a 2400x1792
render followed by a 1024 render).

_placed_on() judges a torchao subclass by its flattened inner tensors; plain
tensors keep the device check.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Studio: check torchao restore placement through the inner tensors in the test

The new test read .qdata/.scale directly, which only exist on torchao's v2
Int8Tensor. On torchao 0.14 (the default for torch <= 2.9) int8 weights keep
the v1 layout, so the test raised AttributeError instead of checking the
restore. Walk __tensor_flatten__ recursively so both layouts are covered.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Etherll <61019402+Etherll@users.noreply.github.com>
(cherry picked from commit d883d2d)

* Tighten docstrings in torchao placement fix

* State why the torchao placement test skips on unversioned configs

* Drop duplicated test docstring

---------

Co-authored-by: Etherl <61019402+Etherll@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants