Skip to content

feat: Hot reload waits for a busy Editor instead of compiling, stays fast as live patches grow, and pause points work in package scripts - #3224

Merged
hatayama merged 19 commits into
mainfrom
feature/hot-reload-large-project-feedback-2
Oct 7, 2026
Merged

hatayama merged 19 commits into
mainfrom
feature/hot-reload-large-project-feedback-2

Conversation

@hatayama

@hatayama hatayama commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Summary

Merge status

  • The reporting agent re-tested four heads of this branch, the last one being this head. See "Verification".
  • The repository squash-merges, so these 17 changes become one commit and one release-note line, in the changelog of the Unity package and the project runner. The title can be reworded at merge time.

User Impact

Hot reload waits for the Editor instead of giving up

Before After PR
Editing a script and running uloop hot-reload right away often failed with "The Editor became busy before the reload could be applied". With --compile-on-skip auto the CLI then ran a fallback compile (64–78 s on the trial project), which exits Play Mode and discards every live patch; with off the user had to wait and rerun The Editor refuses the request before the transform and marks it as one that passes once it settles (RetryAfterEditorReady). The CLI prints "waiting for it to settle" on stderr, polls the Editor status every second (up to 10 minutes), and applies the same files once more. The response carries EditorReadyRetryNote and Timing.EditorReadyWaitMs. Measured on the trial project: 44 s wait, NothingToApply because Unity's own compile had taken the edit, exit 0, no fallback compile #3219, #3221
RecommendedNextAction said "Fix the failed declarations or methods" even when nothing in the source needed a change (Editor busy, compiled assembly missing) The advice follows what failed: wait and rerun, or compile. The "No verified source snapshot" warning says why the snapshot is unusable #3206

Edits that were skipped or failed are now applied

Before After PR
Editing only the getter of a property with a setter body reported the untouched setter as Skipped, and --compile-on-skip auto ran a fallback compile for it Only an accessor whose body changed is listed; a getter-only edit is patched #3205
A call to an extension method failed the whole file with CS0121 ("The call is ambiguous") when another assembly declared an internal method of the same signature, because the shim compile saw every internal member of every referenced assembly The shim compile sees what the edited assembly's own compile sees, plus the protected members it has always needed; references that grant InternalsVisibleTo to the edited assembly are publicized as before #3207
A one-method edit in an embedded or local (file:) package patched every method of the file and warned that the file "has no compiled method body" The baseline is found by the folder behind the package's virtual path; only the edited method is patched (measured: Patched 1 / Unchanged 19) #3209

Speed

Before After PR
Every patched method looked up its callers by re-reading the edited assembly and its referencing assemblies, and the cache held 8 assemblies; with 37 live patches in one file the time outside the phases was 84–87 s per apply on the trial project, about 2.3 s per live patch Each assembly is read at most once per run and the cache holds 64 between runs. Measured on the trial project over 12 consecutive applies: OtherMs stays at 1.3–2.1 s instead of climbing from 11.3 s to 43.8 s; the 12 applies took 58 s in all instead of 410 s #3204

The response and its text

Before After PR
The internal-member skip reason opened with the compiler's "does not contain a definition" diagnostic, which reads like a misspelled name, and always ended with "Qualify a bare name with 'this.'" It opens with the member and the type it is internal to, and its last sentence names the change that fits how the member is used #3208
After a Skipped or Failed edit was undone by reverting the file to its compiled source, every later reload of that assembly warned that the file "was left Skipped or Failed by an earlier reload and its source changed since" The file is compared with the compile snapshot; when the bytes match, it is forgotten without a warning. A file edited into something else is still reported #3211
A Skipped row named a package script by the folder path from the debug symbols (./Packages/<folder>/...), which the next uloop hot-reload --files did not accept It names Packages/<package-id>/..., the form the next reload accepts #3218
When Unity stopped answering status polls for 30 seconds during a large compile, the notice on stderr led with "The Editor may be blocked by a modal dialog" When the last answered poll saw a compile or a domain reload, the notice leads with the compile and keeps the dialog check for when the silence outlasts it #3215

Pause points

Before After PR
enable-pause-point failed for a script in an embedded or local package, in every path form It arms the script whether --file names the package path (Packages/<package-id>/...), the path under the package's folder, or an absolute path. The marker Id always uses the asset path #3217
pause-point-status, await-pause-point and clear-pause-point built the marker id from --file as typed, so any form other than the asset path reported NotEnabled, an await waited for a marker it could not see, and a clear left the marker armed Every form finds the same marker, including the folder of a file: package that sits inside the project but outside Packages/. A named marker (--id jump) is looked up as given #3220, #3223
Enabling a pause point from Release switches to Debug and recompiles; when that compile request was lost across the domain reload, or rejected as "already compiling", the command waited out the whole timeout (10 minutes by default) and failed. Measured on the trial project: 122.5 s, then failure The recompile recovers the way uloop compile does: a lost or rejected request is sent again under a new request ID (at most 3 sends). Measured: 90.8 s, then success #3216

Logs

Before After PR
With ULOOP_DEBUG set, a hot-reload run wrote nothing to the CLI-side vibe log, so its entries could not be lined up against the Editor's Every tool command writes an entry when the request is sent and one when the response arrives; hot-reload also logs the fallback decision and the editor-ready retry, all under the correlation ID of the request they follow #3212, #3221

Behaviour changes to weigh before merging

  1. A hot reload refused for a busy Editor now blocks until the Editor settles, up to 10 minutes (fix: Hot reload asks for a retry, not a compile, when the Editor was only busy compiling or importing #3219, fix: Hot reload waits for a busy Editor and applies again instead of compiling #3221). It used to fail within a second or run a fallback compile. A stderr line says what the command is waiting for; Ctrl-C ends it with exit 1 and the first response. A second refusal falls through to --compile-on-skip as before. Two details: the second apply names the files explicitly, so a file that the default selection would have left out (an enum member added and nothing else) is applied on the retry; and the vibe-log entry cli_hot_reload_compile_fallback_decided is not written when the retry ended the command (the cli_hot_reload_editor_ready_retry_complete entry is).
  2. The caller-lookup cache keeps up to 64 assemblies between runs instead of 8 (perf: Hot reload reads each compiled assembly at most once per run when it looks for callers #3204). An entry holds the assembly's bytes and metadata, not its instruction lists. On a project whose edited assemblies are large (the trial's is 12.4 MB) the Editor holds more memory between reloads than before.
  3. The shim compile no longer sees the internals of assemblies that do not grant them to the edited one (fix: Hot reload's shim compile no longer sees internal types of assemblies that do not grant internals to the edited one #3207). A body that used such an internal never compiled in the regular build either, so no working edit is lost; nested types stay publicized because they cannot cause the ambiguity.
  4. A reverted Skipped or Failed file is forgotten silently (fix: Hot reload forgets a skipped file that went back to its compiled source instead of warning on every run #3211), only when the assembly's compile snapshot, DLL, PDB and source are all readable; otherwise it is reported as before.
  5. The pause-point recovery compile sends at most 3 times, and a cancel during its busy wait reports the compile rather than the enable command in the error envelope (fix: Enabling a pause point no longer waits out the whole timeout when its Debug recompile request is lost #3216).
  6. Status, await and clear rewrite a <path>:<line> query id to the asset path unless that id is already registered (fix: Pause point status, await, and clear find a marker whichever path names the file #3220, fix: Pause point status, await, and clear find a marker in a local package folder outside Packages #3223). For a query path that does not start with Assets/, the status poll that await repeats every second reads the Package Manager's package list each time.
  7. With ULOOP_DEBUG set, every tool command now writes two CLI-side log entries (feat: Write CLI-side vibe log entries for plain tool commands and the hot-reload compile fallback #3212). Nothing is written without it.
  8. Text changes in RecommendedNextAction (fix: Hot reload's next-step advice fits an Editor that was busy or an assembly that is missing, and the snapshot warning says why the snapshot is unusable #3206), the internal-member reason (fix: Hot reload's internal-member reason leads with the member and the cause, and ends with the step that fits the use #3208), the 30-second notice (fix: A compile that keeps Unity silent for 30 seconds is no longer reported as a likely modal dialog #3215) and the Skipped row's file name (fix: Skipped hot-reload rows name a package script by the path the next reload accepts #3218). Tests that pin those strings were updated in the same pull requests.

Not covered

  • uloop compile followed at once by uloop hot-reload is refused with UNITY_SERVER_BUSY — fixed by fix: Hot reload sent while another uloop command runs waits for it instead of failing as busy #3226 (hot reload waits for the running command on the Editor status and sends once; no busy-stall focus). Re-verified on the trial project: two runs of uloop compile followed two seconds later by uloop hot-reload --files … --compile-on-skip off exited 0 with NothingToApply after waiting 48–50 s (EditorReadyWaitMs 49751 and 47529), and the Editor never came to the front (polled every 0.5 s). During the wait the CLI sent the request again twice, five seconds apart, while the compile runner's post-compile warm-up probe (execute-dynamic-code) held the Editor; both were answered busy and the wait went on, as designed.
  • Code Optimization after an Editor restart: the reporting agent ended two sessions in Release and found the Editor in Debug after uloop launch -r, while the Debug-switch warning says the setting "reverts on every Editor restart" in the other direction. Not investigated.
  • The first compile of the pause-point recovery took 30 s to come back as a busy refusal on the trial project before the resend succeeded. The command succeeded; the reason for the 30 s is not investigated.
  • await-pause-point on timeout reports Details.TimeoutSeconds: 30 when --timeout-seconds 5 was given (the message says 5 s), and its Id echoes the typed path form rather than the marker's. Both predate this branch.
  • Time outside the phases on the large assembly is now flat at 1.3–2.1 s per apply but not lower; the floor is the same as on main.
  • Still open from the first batch: the Multiplayer Play Mode Virtual Player cannot be patched; a 29-minute compile seen once on the trial project; the Virtual Player's outputPath.

Included pull requests

PR Title
#3204 Hot reload reads each compiled assembly at most once per run when it looks for callers
#3205 Hot reload no longer skips a property setter the edit did not touch
#3206 Hot reload's next-step advice fits an Editor that was busy or an assembly that is missing, and the snapshot warning says why the snapshot is unusable
#3207 Hot reload's shim compile no longer sees internal types of assemblies that do not grant internals to the edited one
#3208 Hot reload's internal-member reason leads with the member and the cause, and ends with the step that fits the use
#3209 Hot reload finds the PDB document of a package source by the folder behind its virtual path
#3211 Hot reload forgets a skipped file that went back to its compiled source instead of warning on every run
#3212 Write CLI-side vibe log entries for plain tool commands and the hot-reload compile fallback
#3214 Share the script path mapping between hot reload and pause points
#3215 A compile that keeps Unity silent for 30 seconds is no longer reported as a likely modal dialog
#3216 Enabling a pause point no longer waits out the whole timeout when its Debug recompile request is lost
#3217 Pause points can now be set in package scripts, whichever path names the file
#3218 Skipped hot-reload rows name a package script by the path the next reload accepts
#3219 Hot reload asks for a retry, not a compile, when the Editor was only busy compiling or importing
#3220 Pause point status, await, and clear find a marker whichever path names the file
#3221 Hot reload waits for a busy Editor and applies again instead of compiling
#3223 Pause point status, await, and clear find a marker in a local package folder outside Packages

Each pull request's description holds its own behaviour changes, input-space table, mutation checks and "Not covered" list.

Five of these did not come from the report or its re-tests. They were found while fixing the reported items: the shared path mapping (#3214), the 30-second notice (#3215), the pause-point recovery compile (#3216), the Skipped row's file name (#3218), and the local-package folder form (#3223).

Changes

  • Unity package: hot-reload analysis worker (accessor compare, shim references, PDB document lookup, caller-lookup cache), patch target resolution and response fields (RetryAfterEditorReady, SelectedFiles), reason and advice texts, the pause-point use case and status bridge, a new shared assembly UnityCLILoop.FirstPartyTools.Common.ScriptPath.Editor for the script path mapping, and the hot-reload and pause-point skill references.
  • Project runner (Go): the editor-ready retry of hot-reload, the pause-point recovery compile, the CLI-side vibe log entries, and the 30-second notice of uloop compile.
  • Development project: an embedded package fixture (Packages/uloop-hotreload-package-fixture) for the package-script tests.
  • No change to the dispatcher, the protocol version, the project runner pin, the shared release inputs (the tool catalog change is a description regeneration) or the coverage baseline.

Verification

… assembly that is missing, and the snapshot warning says why the snapshot is unusable (#3206)
…blies that do not grant internals to the edited one (#3207)
…e cause, and ends with the step that fits the use (#3208)
@coderabbitai

coderabbitai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: Repository: hatayama/unity-cli-loop/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 66bd8021-84e6-4cd9-9544-955bd13070ed
📥 Commits

Reviewing files that changed from the base of the PR and between dc6aaa9 and 78f7ebb.

⛔ Files ignored due to path filters (44)
  • Assets/Tests/Editor/HotReload/FixedPackageRootCapture.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/HotReloadBusyEditorResponseE2ETests.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/HotReloadCallSiteCacheE2EFixture.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/HotReloadCallSiteCacheE2ETests.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/HotReloadEditorReadyRetryTests.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/HotReloadEditorStateSnapshotTests.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/HotReloadPackageSourceE2ETests.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/HotReloadShimReferenceForeignInternalE2ETests.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/HotReloadShimReferenceForeignInternalFixture.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/IsExternalInit.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/PausePointScriptPathFormTests.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/PublicizedCopyTestCache.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/ScriptPathNormalizerTests.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/ShimReferenceFriendGrant.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/ShimReferenceVisibilityFixtures.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/SourcePausePointIdTests.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReload/UnityCLILoop.Tests.Editor.HotReload.asmdef is excluded by none and included by none
  • Assets/Tests/Editor/HotReloadShimReferenceForeignInternal.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReloadShimReferenceForeignInternal/ShimReferenceForeignInternalExtensions.cs.meta is excluded by none and included by none
  • Assets/Tests/Editor/HotReloadShimReferenceForeignInternal/UnityCLILoop.Tests.Editor.HotReload.ShimReferenceForeignInternal.asmdef is excluded by none and included by none
  • Assets/Tests/Editor/HotReloadShimReferenceForeignInternal/UnityCLILoop.Tests.Editor.HotReload.ShimReferenceForeignInternal.asmdef.meta is excluded by none and included by none
  • Assets/Tests/Editor/PausePointQueryScriptPathFormTests.cs.meta is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/Common/ScriptPath.meta is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/Common/ScriptPath/AssemblyInfo.cs.meta is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/Common/ScriptPath/ScriptPackageRoot.cs.meta is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/Common/ScriptPath/ScriptPackageRoots.cs.meta is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/Common/ScriptPath/ScriptPathNormalizer.cs.meta is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/Common/ScriptPath/SourcePausePointId.cs.meta is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/Common/ScriptPath/UnityCLILoop.FirstPartyTools.Common.ScriptPath.Editor.asmdef is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/Common/ScriptPath/UnityCLILoop.FirstPartyTools.Common.ScriptPath.Editor.asmdef.meta is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallSiteIndex.cs.meta is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadEditorReadyRetry.cs.meta is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/HotReload/Shared/HotReloadFailureDescription.cs.meta is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/HotReload/Shared/HotReloadFailureKinds.cs.meta is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/HotReload/Shared/IHotReloadPackageRootCapture.cs.meta is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/HotReload/Shared/UnityCLILoop.FirstPartyTools.HotReload.Shared.Editor.asmdef is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/HotReload/UnityCLILoop.FirstPartyTools.HotReload.Editor.asmdef is excluded by none and included by none
  • Packages/src/Editor/FirstPartyTools/PausePoint/UnityCLILoop.FirstPartyTools.PausePoint.Editor.asmdef is excluded by none and included by none
  • Packages/src/Editor/Infrastructure/UnityCLILoop.Infrastructure.asmdef is excluded by none and included by none
  • Packages/uloop-hotreload-package-fixture/Runtime.meta is excluded by none and included by none
  • Packages/uloop-hotreload-package-fixture/Runtime/HotReloadPackageFixture.cs.meta is excluded by none and included by none
  • Packages/uloop-hotreload-package-fixture/Runtime/UnityCLILoop.Tests.HotReloadPackageFixture.asmdef is excluded by none and included by none
  • Packages/uloop-hotreload-package-fixture/Runtime/UnityCLILoop.Tests.HotReloadPackageFixture.asmdef.meta is excluded by none and included by none
  • Packages/uloop-hotreload-package-fixture/package.json.meta is excluded by none and included by none
📒 Files selected for processing (146)
  • .agents/skills/uloop-hot-reload/references/output.md
  • .agents/skills/uloop-hot-reload/references/scope-and-limits.md
  • .agents/skills/uloop-pause-point/SKILL.md
  • .agents/skills/uloop-pause-point/references/troubleshooting.md
  • .claude/skills/uloop-hot-reload/references/output.md
  • .claude/skills/uloop-hot-reload/references/scope-and-limits.md
  • .claude/skills/uloop-pause-point/SKILL.md
  • .claude/skills/uloop-pause-point/references/troubleshooting.md
  • AGENTS.md
  • Assets/Tests/Editor/HotReload/FixedPackageRootCapture.cs
  • Assets/Tests/Editor/HotReload/HotReloadActiveSiblingRebindPlannerTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadBusyEditorResponseE2ETests.cs
  • Assets/Tests/Editor/HotReload/HotReloadCallSiteCacheE2EFixture.cs
  • Assets/Tests/Editor/HotReload/HotReloadCallSiteCacheE2ETests.cs
  • Assets/Tests/Editor/HotReload/HotReloadCallSiteScannerFixture.cs
  • Assets/Tests/Editor/HotReload/HotReloadCallSiteScannerTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadChangedSiblingSourceDetectorTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadCompiledCallSiteCacheTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadDefaultFilesTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadEditorReadyRetryTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadEditorStateSnapshotTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadGroupProcessorTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadIntroducedTypeActivationTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadIntroducedTypeE2ETestBase.cs
  • Assets/Tests/Editor/HotReload/HotReloadIntroducedTypeResponseTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadNewSourceMembershipTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadNewSourceMembershipValidatorEditorReadTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadNewSourceMembershipValidatorTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadPackageSourceE2ETests.cs
  • Assets/Tests/Editor/HotReload/HotReloadPatchTargetSupportEditorReadTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadPatchTargetSupportTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadPauseBeforeWiringWarningTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadPdbDocumentIndexTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadRecommendedNextActionTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadRunSiblingLedgerUpdatesTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadScriptPathNormalizerTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadShapeFixtures.cs
  • Assets/Tests/Editor/HotReload/HotReloadShimReferenceForeignInternalE2ETests.cs
  • Assets/Tests/Editor/HotReload/HotReloadShimReferenceForeignInternalFixture.cs
  • Assets/Tests/Editor/HotReload/HotReloadSiblingCompanionE2ETests.cs
  • Assets/Tests/Editor/HotReload/HotReloadSourceSnapshotTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadToolTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadVirtualPlayerProjectTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadWorkerNoticeAppenderTests.cs
  • Assets/Tests/Editor/HotReload/HotReloadWorkerReasonTextTests.cs
  • Assets/Tests/Editor/HotReload/IsExternalInit.cs
  • Assets/Tests/Editor/HotReload/PausePointScriptPathFormTests.cs
  • Assets/Tests/Editor/HotReload/PublicizedCopyTestCache.cs
  • Assets/Tests/Editor/HotReload/ReferencePublicizerTests.cs
  • Assets/Tests/Editor/HotReload/ScriptPathNormalizerTests.cs
  • Assets/Tests/Editor/HotReload/ShimReferenceFriendGrant.cs
  • Assets/Tests/Editor/HotReload/ShimReferenceVisibilityFixtures.cs
  • Assets/Tests/Editor/HotReload/SourcePausePointIdTests.cs
  • Assets/Tests/Editor/HotReload/TransformWorkerBindingSplitTests.cs
  • Assets/Tests/Editor/HotReload/TransformWorkerClientTests.cs
  • Assets/Tests/Editor/HotReload/TransformWorkerCompiledTypeFileCompleterTests.cs
  • Assets/Tests/Editor/HotReload/TransformWorkerPartialTypeTests.cs
  • Assets/Tests/Editor/HotReloadShimReferenceForeignInternal/ShimReferenceForeignInternalExtensions.cs
  • Assets/Tests/Editor/OnionAssemblyDependencyTests.cs
  • Assets/Tests/Editor/PausePointQueryScriptPathFormTests.cs
  • Assets/Tests/Editor/SourcePausePointResolver/SourcePausePointResolverTests.cs
  • Packages/packages-lock.json
  • Packages/src/Editor/CliOnlyTools~/PausePoint/Skill/SKILL.md
  • Packages/src/Editor/CliOnlyTools~/PausePoint/Skill/references/troubleshooting.md
  • Packages/src/Editor/FirstPartyTools/Common/ScriptPath/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/Common/ScriptPath/ScriptPackageRoot.cs
  • Packages/src/Editor/FirstPartyTools/Common/ScriptPath/ScriptPackageRoots.cs
  • Packages/src/Editor/FirstPartyTools/Common/ScriptPath/ScriptPathNormalizer.cs
  • Packages/src/Editor/FirstPartyTools/Common/ScriptPath/SourcePausePointId.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadActiveSiblingRebindPlanner.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadApplyResponseBuilder.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCallSiteScanner.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadChangedSiblingSourceDetector.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallSiteCache.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompiledCallSiteIndex.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadCompositionRoot.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadEditorReadyRetry.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadEditorStateSnapshotCapture.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadGroupCommitBoundary.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadGroupNotices.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadGroupOutcomeRouter.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadGroupProcessor.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadMethodOutcome.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadNewSourceMembershipValidator.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadOrchestrator.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadPackageRoots.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadPatchTargetSupport.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadRecommendedNextAction.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadRunAccumulator.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadRunSiblingLedgerUpdates.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadScriptPathNormalizer.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadShimFirstCompile.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadSiblingRebindReporter.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadTools.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/HotReloadWorkerNoticeAppender.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/Patching/HotReloadShimReferenceBuilder.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/Patching/ReferencePublicizer.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/Shared/HotReloadConstants.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/Shared/HotReloadFailureDescription.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/Shared/HotReloadFailureKinds.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/Shared/HotReloadSourceBaseline.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/Shared/HotReloadVirtualPlayerProject.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/Shared/HotReloadWorkerReasonCode.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/Shared/HotReloadWorkerReasonText.MethodTransformTemplates.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/Shared/IHotReloadPackageRootCapture.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/Shared/TransformWorkerClient.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/Shared/TransformWorkerCompiledTypeFileCompleter.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/Skill/references/output.md
  • Packages/src/Editor/FirstPartyTools/HotReload/Skill/references/scope-and-limits.md
  • Packages/src/Editor/FirstPartyTools/HotReload/TransformWorker~/UnpassedInternalMemberUse.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/TransformWorker~/UnpassedInternalMemberUseForm.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/TransformWorker~/UnresolvedBodyNameGuard.cs
  • Packages/src/Editor/FirstPartyTools/HotReload/TransformWorker~/UnsupportedMemberSkipCollector.cs
  • Packages/src/Editor/FirstPartyTools/PausePoint/PausePointEditedLineResolver.cs
  • Packages/src/Editor/FirstPartyTools/PausePoint/PausePointLineTextReader.cs
  • Packages/src/Editor/FirstPartyTools/PausePoint/PausePointResolveFailureResponse.cs
  • Packages/src/Editor/FirstPartyTools/PausePoint/PausePointUseCase.cs
  • Packages/src/Editor/FirstPartyTools/PausePoint/SourcePausePointCompiledAssemblyLocator.cs
  • Packages/src/Editor/FirstPartyTools/PausePoint/SourcePausePointResolver.cs
  • Packages/src/Editor/Infrastructure/Api/PausePointStatusBridgeCommand.cs
  • Packages/src/Runtime/PausePoints/UloopPausePointRegistry.cs
  • Packages/uloop-hotreload-package-fixture/Runtime/HotReloadPackageFixture.cs
  • Packages/uloop-hotreload-package-fixture/package.json
  • cli/common/tools/default-tools.json
  • cli/project-runner/internal/projectrunner/compile_fresh_recovery_test.go
  • cli/project-runner/internal/projectrunner/compile_wait_interim.go
  • cli/project-runner/internal/projectrunner/compile_wait_interim_test.go
  • cli/project-runner/internal/projectrunner/connection_retry.go
  • cli/project-runner/internal/projectrunner/connection_retry_test.go
  • cli/project-runner/internal/projectrunner/dynamic_code_wait.go
  • cli/project-runner/internal/projectrunner/hot_reload_busy_wait.go
  • cli/project-runner/internal/projectrunner/hot_reload_busy_wait_test.go
  • cli/project-runner/internal/projectrunner/hot_reload_compile_fallback.go
  • cli/project-runner/internal/projectrunner/hot_reload_compile_fallback_test.go
  • cli/project-runner/internal/projectrunner/hot_reload_editor_ready_retry.go
  • cli/project-runner/internal/projectrunner/hot_reload_editor_ready_retry_test.go
  • cli/project-runner/internal/projectrunner/pause_point_release_recovery.go
  • cli/project-runner/internal/projectrunner/pause_point_release_recovery_test.go
  • cli/project-runner/internal/projectrunner/plain_tool_log.go
  • cli/project-runner/internal/projectrunner/plain_tool_log_test.go
  • cli/project-runner/internal/projectrunner/run.go
  • cli/project-runner/internal/projectrunner/run_test.go
  • docs/glossary.md
  • docs/hot-reload.md
  • docs/soak-testing.md
  • docs/vibe-logs.md
 ____________________________________________________________________________________________
< It is easier to change the specification to fit the program than vice versa. - Alan Perlis >
 --------------------------------------------------------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@hatayama
hatayama marked this pull request as ready for review October 7, 2026 13:56
@hatayama
hatayama merged commit 35084a8 into main Oct 7, 2026
19 of 20 checks passed
@hatayama
hatayama deleted the feature/hot-reload-large-project-feedback-2 branch October 7, 2026 13:58
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.

1 participant