Skip to content

docs: guide agents through API Update / Script Updating Consent modals - #1759

Merged
hatayama merged 2 commits into
feature/compile-consistencyfrom
feat/api-update-dialog-guidance
Jul 13, 2026
Merged

docs: guide agents through API Update / Script Updating Consent modals#1759
hatayama merged 2 commits into
feature/compile-consistencyfrom
feat/api-update-dialog-guidance

Conversation

@hatayama

@hatayama hatayama commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • Investigation close for PR 5-3: interactive Editors have no public API / documented CLI flag to suppress the API Update / Script Updating Consent modal
  • B-lite: add one shared NextActions line on compile-wait timeout and Editor-unresponsive errors — check the Unity window and ask the user; never auto-dismiss
  • Document the same guidance in the source uloop-compile skill (regenerated .claude / .agents copies)

Investigation findings (include in review)

Trigger

uloop compileCompileControllerAssetDatabase.Refresh() can surface Unity’s updater when obsolete / UnityUpgradable APIs are present (also possible on import / other Refresh paths).

Public levers

Lever Interactive GUI (uloop launch) batchmode
-accept-apiupdate Documented for batchmode only Runs updater without dialog
-disable-assembly-updater AssemblyUpdater only; ScriptUpdater still runs same
-ignorecompilererrors (already on launch) Safe Mode only; unrelated
Public C# suppress API None

CsReference reinforcement (6000.3, Fable-verified)

UnityScriptUpdaterConsentAPI.AskFor shows DisplayDialogComplex("Script Updating Consent", ...) after skip branches, including:

  • DoesCommandLineIndicateAPIUpdatingShouldBeDeclined()NoConsent without dialog (non-destructive)
  • DoesCommandLineIndicateAPIUpdatingShouldHappenWithoutConsent() → consent without dialog

Both are native/extern; the triggering arg is undocumented. Auto-accept / reflection remain rejected. A future experiment (outside this PR) would only pursue the decline path if the modal actually bites — recorded in umbrella notes.

Chosen product response

Agents must treat the modal as user-owned consent. CLI timeouts already return; guidance now names this modal explicitly.

User Impact

  • Before: compile timeout / main-thread stall guidance did not name API Update consent; agents could thrash or try to “fix” a modal
  • After: NextActions and the compile skill tell agents to inspect Unity and ask the user; no auto-dismiss

Verification

  • scripts/check-go-cli.sh
  • uloop skills install --claude --agents regenerated copies from package source
  • scripts/stamp-release-inputs.sh (common module change)
  • No protocol bump; no Refresh-skip optimization

Test plan

  • CI green
  • Confirm compile-wait timeout JSON includes the new NextActions line

Made with Cursor

Review in cubic

Interactive Editors cannot suppress Script Updating Consent publicly; steer
agents to ask the user instead of auto-dismissing when compile wait or
main-thread stalls suggest a modal.

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

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2172fd5b-de9c-455a-b9b0-582ddc4e299d

📥 Commits

Reviewing files that changed from the base of the PR and between 9c1947b and 82d569c.

📒 Files selected for processing (9)
  • .agents/skills/uloop-compile/SKILL.md
  • .claude/skills/uloop-compile/SKILL.md
  • 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_test.go
  • cli/project-runner/internal/projectrunner/execution_errors.go
  • cli/project-runner/shared-inputs-stamp.json

📝 Walkthrough

Walkthrough

Compile timeout and Unity unresponsive diagnostics now include API Update consent modal guidance. The same recovery instructions were added to compile skill documentation, with tests and shared-input stamps updated.

Changes

API Update Consent Guidance

Layer / File(s) Summary
Error recovery guidance
cli/common/errors/error_editor_unresponsive.go, cli/project-runner/internal/projectrunner/execution_errors.go, cli/common/errors/error_envelope_test.go, cli/project-runner/internal/projectrunner/compile_wait_test.go
Adds shared API Update consent guidance to editor-unresponsive and compile-timeout errors, with assertions covering the new action.
Compile troubleshooting documentation
.agents/skills/uloop-compile/SKILL.md, .claude/skills/uloop-compile/SKILL.md, Packages/src/Editor/FirstPartyTools/Compile/Skill/SKILL.md, cli/*/shared-inputs-stamp.json
Documents manually responding to the API Update Required / Script Updating Consent modal and refreshes shared input hashes.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/api-update-dialog-guidance

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.

Verified against the agreed A + B-lite scope:

  • Shared NextActions line (ApiUpdateConsentModalNextAction) wired into both the editor-unresponsive error and the compile wait timeout, with never-auto-dismiss + ask-the-user guidance. Tests updated on both paths.
  • Skill updated at the source (Packages/.../Compile/Skill/SKILL.md) with .claude/.agents copies regenerated byte-identically.
  • cli/common non-test change is correctly accompanied by project-runner and dispatcher stamp updates per the release trigger rules.
  • Wording ("no public uloop/Unity API to suppress it" on interactive Editors) matches what we verified in UnityCsReference 2022.3/6000.3 and the 2022.3.62f3 binary strings.

Non-blocking nit: in error_editor_unresponsive.go the const comment says "(group-5 PR 5-3: ...)" — drop the PR provenance tag and keep only the why ("interactive Editors have no public suppress path") if you touch the file again; no need for a dedicated commit.

Co-authored-by: Cursor <cursoragent@cursor.com>
@hatayama
hatayama merged commit 8c470bd into feature/compile-consistency Jul 13, 2026
1 check was pending
@hatayama
hatayama deleted the feat/api-update-dialog-guidance branch July 13, 2026 14:39
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