fix: apply hot-reload files all-or-nothing when shim compilation fails - #2386
Conversation
A partial apply left new field reads running against default values after a sibling method failed to compile. Isolation still attributes the failed methods; survivors in that file are now skipped. Co-authored-by: Cursor <cursoragent@cursor.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: Your plan provides up to 4 included reviews per hour; 2 remain after this review. 📝 WalkthroughWalkthroughHot reload now applies changes atomically per file when shim compilation fails. Failed methods retain compiler errors, while other methods receive atomic-file skips. Earlier patches remain active. Tests cover methods, added members, registries, logging, retries, and transitive isolation. ChangesAtomic file application
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: ⚪ Minimal · up to The change makes hot-reload application atomic per file when shim compilation fails, with targeted verification reported; no actionable merge-blocking risk remains. Sequence Diagram(s)sequenceDiagram
participant HotReloadShimFirstCompile
participant HotReloadOrchestrator
participant VibeLogger
HotReloadShimFirstCompile->>HotReloadOrchestrator: return failed and atomic-file skipped outcomes
HotReloadOrchestrator->>HotReloadOrchestrator: apply no patches from the failed file
HotReloadOrchestrator->>VibeLogger: record atomic-file skip reason
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ 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 CS substring could match unrelated text; use the new-member compile hint like the existing isolation test. The round number does not help later readers. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
uloop hot-reloadno longer applies the methods that still compiled.User Impact
uloop compile. Other files in the same command still apply as before.Changes
Skippedwith an all-or-nothing reason.Verification
dist/darwin-arm64/uloop compile --project-path "$(git rev-parse --show-toplevel)"→ErrorCount: 0dist/darwin-arm64/uloop run-tests --test-mode EditMode --filter-type regex --filter-value "HotReload" --project-path "$(git rev-parse --show-toplevel)"→ 538 passed, 0 failed