Parity: keep the reap-margin check off the edge of its own window - #12514
Conversation
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
|
Windows numbers to go with the Linux pwsh run in the description. Each run is the real test file, invoked the way
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 |
|
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
No product code changes. On Linux pwsh 7, with Status: Windows parity confirmed; remaining fork checks not run. |
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)
…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>
…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>
…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>
…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>
…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>
…#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>
…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>
…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>
What fails
parity (windows-latest)failsstub: every child's bound leaves 2 s of the shared deadline to reap iton 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 orRead-NvidiaLibraryRaw, and the same suite passes onmainand 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-NvidiaLibraryRawhands the second childremaining − 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 3000on Windows can return one timer tick early, soremainingreads 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 whymainhas 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