Give the dotnet probe the call's own time budget - #1085
Merged
Merged
Conversation
An editor opens the scenes it restores, or the project's main scene, once its first scan is applied, and makes one of them current. A scene_open answered before then was replaced a moment later, and every later scene call acted on the main scene. scene.open and scene.create now wait at the front of the queue until the editor's file index is populated, which is the same moment on 4.5.1, 4.6.2 and 4.7.2. Commands behind them wait too, so nothing overtakes them. Adds a native test for the hold, a live test CI runs on each line, and a vibe probe that reproduces the switch.
scene_create over a scene open in another tab rebuilt the tab and then opened it in the same request. On 4.5 and 4.6 the editor ignores a scene change for the rest of a frame in which it rebuilt one, so a tab right of the current one never came to the front and the call answered opened: false. The bridge now makes the tab current first and says it is stale, and the server rebuilds it on a later request through resource.refreshCached, the reload every other writer uses. The previous scene is read before anything moves it, so previous_scene_file_path is right on those lines too.
csharp_check_build runs dotnet --version before the build, and that probe stopped at a fixed 30 seconds whatever timeout_seconds said. A probe that ran out answered 503 toolchain_unavailable, not retryable, and told the caller to install an SDK that was there. It turned main's 4.7.2 job red, and this branch's parent's 4.5.1 job. The probe now runs under timeout_seconds, and running out of it answers 504 timeout, retryable, with timeout_seconds in the data.
The 4.6.2 job on #1084 saw scene_open end in peer_closed after 5.7 s, with the editor alive, and the test had sent the editor output nowhere. It now keeps it with the extension at INFO, and a failure prints it with the sessions the server lists.
This was referenced Sep 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1078
Stacked on #1084, which is stacked on #1083. Their commits show here until they merge.
csharp_check_buildrunsdotnet --versionbefore the build, and that probe stopped at a fixed 30 seconds whatevertimeout_secondssaid. A probe that ran out answered 503toolchain_unavailable,retryable: false, and told the caller to install the .NET SDK. The SDK was there and slow. It turned main's 4.7.2 job red in run 36639206897, and #1083's 4.5.1 job red today at the same request 510.The probe now runs under the call's
timeout_seconds. Running out of it answers504 timeout, retryable, withtimeout_secondsin the data, and the remedy table already points that code at a largertimeout_secondsfor this tool. A dotnet that is not there, or is not an SDK, still answerstoolchain_unavailable.Test:
Phase5.ASlowDotnetIsGivenTheCallsBudgetAndNotCalledMissingpointsDOTNET_BINat a script that answers--versionafter two seconds. Withtimeout_seconds: 1the call is a retryable 504 that does not say to install anything. With 30 the build runs and reportsdotnet_version: 8.0.100. It fails with the fixed 30 second probe put back.Checked locally: native suite (956), Python suite, docs validator, test inventory, and the live harness on 4.5.1. CHANGELOG updated under Unreleased, Fixed.