Repository navigation
fix: uloop compile returns as soon as the Editor answers instead of warming execute-dynamic-code first - #3227
Merged
hatayama merged 2 commits intoOct 7, 2026
Conversation
A successful compile used to send a readiness probe (get-version, then execute-dynamic-code) before the command returned. It only sped up a following execute-dynamic-code, took several seconds on large projects, and held the Editor's single-flight slot, delaying a hot-reload sent meanwhile. The Editor keeps its own first-run warm-up, so dropping the CLI one only moves the cold start to the next execute-dynamic-code. - Tests that cancelled at a successful answer to dodge the 180 s probe now run to completion, one with an under-30s time limit - New tests cover a successful stored result and a successful attached wait, the two attach paths that had no success case
Contributor
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
📒 Files selected for processing (9)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The Go type they named was removed with the post-compile warm-up; the CLI now reads Result.Success only as the compile's exit code.
hatayama
merged commit Oct 7, 2026
502ee76
into
feature/hot-reload-large-project-feedback-3
3 checks passed
hatayama
deleted the
fix/compile-returns-without-the-post-compile-warmup
branch
October 7, 2026 14:37
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.
Summary
uloop compilenow returns as soon as the Editor answers with the compile result. It no longer sends a readiness probe (get-version, thenexecute-dynamic-code) after a successful compile, so theWarming execute-dynamic-code after compile...spinner and thewarning: post-compile warmup skipped: ...line are gone.Why
execute-dynamic-code. When the next command washot-reload,run-tests, orget-logs, the time was wasted.uloop compilefinished later and ahot-reloadsent meanwhile had to wait for it as well.execute-dynamic-codeafter startup or a domain reload, so dropping the CLI one does not break anything. The cold start moves to the nextexecute-dynamic-code(about 5 seconds on the reporting project).Behaviour change
Success: trueSuccess: truewarning: post-compile warmup skipped, exit 0Success: trueSuccess: falseChanges
Resultreads as a successful compile through the same exit-code logic the CLI uses.Success:falsefixtures as a way to avoid the warm-up are updated.Verification
Run in
cli/project-runner:gofmt -l .— no output;go vet ./...— clean;golangci-lint run ./...— 0 issues;golangci-lint run -c ../.golangci-complexity.yml ./...— 0 issues.go test ./... -count=1— everything passes exceptTestSendWithTransientConnectionRetryAbortsOnRefusedConnect, which cannot bind a Unix socket inside the sandboxed shell used for this change (bind: operation not permitted) and does not touch this code. With that one test skipped, the module reportsok./cmd/excluded, as in the baseline): 95.5%, against a baseline of 95.2%.scripts/check-file-length.shat the repository root: no findings.-timeout 300s): the lost-request pause-point test and the two new attach tests each failed after 180 s on the under-30s assert (took 3m0.02s after a successful answer). The busy-rejection test, with two subtests at 180 s each, hit the 5-minute test timeout.spinner.Stop()removedThis pull request targets an integration branch, so
build-and-testdoes not run on it; the checks above were run locally.Not changed
launchand byexecute-dynamic-codewhile it waits out a domain reload.cli/common(the shared readiness helper stays) and the Editor-side warm-up.