Skip to content

fix: compile-consistency — external scene hold, compile wait/TTL align, API Update guidance - #1760

Merged
hatayama merged 3 commits into
v3-betafrom
feature/compile-consistency
Jul 13, 2026
Merged

fix: compile-consistency — external scene hold, compile wait/TTL align, API Update guidance#1760
hatayama merged 3 commits into
v3-betafrom
feature/compile-consistency

Conversation

@hatayama

@hatayama hatayama commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

Group 5 umbrella for compile / Editor dialog consistency on top of v3-beta.

Merged sub-PRs:

User Impact

  • Background / never-focused Unity no longer hits the native external-scene dialog (and related crash path) on first focus after disk discard
  • Long compiles are less likely to be misread as freezes; timed-out clients can retry and still retrieve results for ~10 more minutes
  • When Unity is blocked on API Update consent, agents are steered to ask the user instead of auto-dismissing

Follow-ups (out of this umbrella / separate tasks)

  1. Disallow warning backoff — if DisallowAutoRefresh warnings spam every 0.5s reconcile tick during prolonged kCodeReload, rate-limit them
  2. Narrow catch (Exception) on Disallow/Allow once the real Unity exception type for kCodeReload is confirmed in the field
  3. Stuck DynamicCodeExecutionScheduler slot across abandoned clients / domain reload — Another execution is already in progress with idle Roslyn worker; full Unity quit clears it (group-3 residual; see /tmp/claude-shared/pr-5-2-ode-slot-diagnosis.md)
  4. API Update decline-direction experiment (only if the modal actually bites) — discover undocumented native CLI arg behind DoesCommandLineIndicateAPIUpdatingShouldBeDeclined / NoConsent. Fable also verified native test hooks in the 2022.3.62f3 binary: MakeNextAPIUpdateOfferReturn / ResetNextAPIUpdateOfferReturn (reflection-gated; needs hatayama approval; separate task). Do not pursue auto-accept or unapproved reflection in product paths.

Test plan

  • CI green on this umbrella
  • Spot-check: unfocused launch → discard → first focus (no external-scene dialog)
  • Spot-check: uloop compile still completes; timeout NextActions mention API Update consent

Made with Cursor

Review in cubic

hatayama and others added 3 commits July 13, 2026 23:17
…ialog/crash) (#1757)

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@hatayama, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 35 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7c325a2f-4d19-493e-b1bc-5dfa0903af1a

📥 Commits

Reviewing files that changed from the base of the PR and between 3b17b68 and 8c470bd.

📒 Files selected for processing (15)
  • .agents/skills/uloop-compile/SKILL.md
  • .claude/skills/uloop-compile/SKILL.md
  • Assets/Tests/Editor/ExternalSceneChangeResolverTests.cs
  • Assets/Tests/Editor/UnityCliLoopEditorSessionStateRepositoryTests.cs
  • Packages/src/Editor/Domain/UnityCliLoopCompileSessionLifecycleService.cs
  • Packages/src/Editor/FirstPartyTools/Compile/ExternalAssetFocusReturnService.cs
  • Packages/src/Editor/FirstPartyTools/Compile/ExternalSceneChangeTracker.cs
  • Packages/src/Editor/FirstPartyTools/Compile/Skill/SKILL.md
  • cli/common/errors/error_editor_unresponsive.go
  • cli/common/errors/error_envelope_test.go
  • cli/dispatcher/shared-inputs-stamp.json
  • cli/project-runner/internal/projectrunner/compile_wait.go
  • cli/project-runner/internal/projectrunner/compile_wait_test.go
  • cli/project-runner/internal/projectrunner/execution_errors.go
  • cli/project-runner/shared-inputs-stamp.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/compile-consistency

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

Copy link
Copy Markdown
Owner Author

LGTM (umbrella).

The diff is exactly the union of the three reviewed and individually-LGTMed sub-PRs (#1757 external scene unfocused hold + VibeLogger observability, #1758 compile wait 10m / result TTL 20m alignment with recovery guidance, #1759 API Update consent guidance A+B-lite), with no extra changes. Follow-ups are recorded in the body (Disallow warning backoff, narrow catch, ODE scheduler slot residual, decline-direction API-update experiment with the reflection-gated native test hooks requiring explicit approval).

Machine verification recap: #1757 passed a clean gate on real hardware (unfocused launch, held probe observed true, discard, single focus click, no native dialog, quiet reload confirmed via vibe timeline + Editor.log). Merge to v3-beta once CI (incl. Compile Check) is green.

@hatayama
hatayama merged commit 247cb0c into v3-beta Jul 13, 2026
10 checks passed
@hatayama
hatayama deleted the feature/compile-consistency branch July 13, 2026 14:46
@github-actions github-actions Bot mentioned this pull request Jul 13, 2026
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