Skip to content

fix: Unity CLI Loop assemblies no longer expose legacy uLoopMCP names#1230

Merged
hatayama merged 3 commits into
v3-betafrom
feature/hatayama/rename-legacy-uloopmcp-files
May 28, 2026
Merged

fix: Unity CLI Loop assemblies no longer expose legacy uLoopMCP names#1230
hatayama merged 3 commits into
v3-betafrom
feature/hatayama/rename-legacy-uloopmcp-files

Conversation

@hatayama

Copy link
Copy Markdown
Owner

Summary

  • Rename legacy uLoopMCP assembly definition filenames and assembly names to UnityCLILoop names while preserving existing Unity asset GUIDs.
  • Keep project migration compatible with older asmdef references that used legacy assembly names instead of GUIDs.

User Impact

  • Unity projects and samples no longer show stale uLoopMCP assembly names after upgrading to the Unity CLI Loop package.
  • Projects with custom asmdefs that referenced uLoopMCP.Runtime by name are migrated to the current runtime reference instead of being left broken.

Changes

  • Renamed project asmdef assets and updated their assembly names to UnityCLILoop.*.
  • Updated friend assembly declarations, scene event assembly names, and tests to match the new assembly names.
  • Extended the third-party tool migration path to rewrite legacy runtime name references to the current runtime GUID.
  • Adjusted tool contract tests so they do not contend with the active run-tests execution slot.

Verification

  • Packages/src/Cli~/dist/darwin-arm64/uloop compile --project-path "$(git rev-parse --show-toplevel)" passed with 0 errors and 0 warnings.
  • Focused EditMode regression tests for renamed asmdefs, migration rules, and tool contract execution passed.
  • Full EditMode run completed with 0 failures: 1115 passed, 11 skipped.
  • Full PlayMode run passed: 60 passed, 0 failed.
  • Codex review against origin/v3-beta completed cleanly with no accepted/actionable findings.

hatayama added 3 commits May 28, 2026 01:56
Rename remaining tracked asmdef asset filenames to UnityCLILoop while preserving their .meta contents and GUIDs. Update filename-based tests so future cleanup catches legacy asset names.
Update remaining asmdef names to UnityCLILoop and align friend assembly and scene references with the new assembly identities. Preserve migration support for old name-based runtime references so third-party asmdefs can still be repaired.
Run the sample tool assertions through an isolated execution service so the tests no longer contend with the shared run-tests execution slot.
@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e6550a07-a9b1-4f9c-8ddf-b325e7e7b311

📥 Commits

Reviewing files that changed from the base of the PR and between ff6fb8d and 94f90ec.

⛔ Files ignored due to path filters (16)
  • Assets/Editor/UnityCLILoop.Dev.asmdef is excluded by none and included by none
  • Assets/Editor/UnityCLILoop.Dev.asmdef.meta is excluded by none and included by none
  • Assets/Scenes/InputReplayVerificationScene.unity is excluded by !**/*.unity and included by none
  • Assets/Scenes/SimulateMouseDemoScene.unity is excluded by !**/*.unity and included by none
  • Assets/Tests/Demo/Editor/UnityCLILoop.Tests.Demo.Editor.asmdef is excluded by none and included by none
  • Assets/Tests/Demo/Editor/UnityCLILoop.Tests.Demo.Editor.asmdef.meta is excluded by none and included by none
  • Assets/Tests/Demo/UnityCLILoop.Tests.Demo.asmdef is excluded by none and included by none
  • Assets/Tests/Demo/UnityCLILoop.Tests.Demo.asmdef.meta is excluded by none and included by none
  • Assets/Tests/Editor/UnityCLILoop.Tests.Editor.asmdef is excluded by none and included by none
  • Assets/Tests/Editor/UnityCLILoop.Tests.Editor.asmdef.meta is excluded by none and included by none
  • Assets/Tests/PlayMode/UnityCLILoop.Tests.PlayMode.asmdef is excluded by none and included by none
  • Assets/Tests/PlayMode/UnityCLILoop.Tests.PlayMode.asmdef.meta is excluded by none and included by none
  • Assets/Tests/_Test_For_Test_/UnityCLILoop.test_for_test.Editor.asmdef is excluded by none and included by none
  • Assets/Tests/_Test_For_Test_/UnityCLILoop.test_for_test.Editor.asmdef.meta is excluded by none and included by none
  • Packages/src/Runtime/UnityCLILoop.Runtime.asmdef is excluded by none and included by none
  • Packages/src/Runtime/UnityCLILoop.Runtime.asmdef.meta is excluded by none and included by none
📒 Files selected for processing (36)
  • Assets/Editor/CustomCommandSamples/AssemblyInfo.cs
  • Assets/Tests/Editor/InputVisualizationCanvasPrefabTests.cs
  • Assets/Tests/Editor/OnionAssemblyDependencyTests.cs
  • Assets/Tests/Editor/ThirdPartyToolMigrationFileServiceTests.cs
  • Assets/Tests/Editor/ThirdPartyToolMigrationRulesTests.cs
  • Assets/Tests/Editor/UnityCliLoopToolRegistryTests.cs
  • Packages/src/Editor/Application/AssemblyInfo.cs
  • Packages/src/Editor/CompositionRoot/AssemblyInfo.cs
  • Packages/src/Editor/Domain/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/ClearConsole/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/Common/Console/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/Common/EditorUtility/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/Common/InputRecording/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/Common/InputSimulation/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/Common/InputSystem/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/Common/MouseUi/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/Common/Overlay/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/Compile/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/ControlPlayMode/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/DynamicCompilation/DynamicCodeCompilationServiceFactory.cs
  • Packages/src/Editor/FirstPartyTools/FindGameObjects/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/GetHierarchy/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/GetLogs/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/RecordInput/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/ReplayInput/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/RunTests/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/RunTests/TestFramework/NUnitXmlResultExporter.cs
  • Packages/src/Editor/FirstPartyTools/RunTests/TestRunner/TestExecutionFilter.cs
  • Packages/src/Editor/FirstPartyTools/Screenshot/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/SimulateKeyboard/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/SimulateMouseInput/AssemblyInfo.cs
  • Packages/src/Editor/FirstPartyTools/SimulateMouseUi/AssemblyInfo.cs
  • Packages/src/Editor/Infrastructure/AssemblyInfo.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationRules.cs
  • Packages/src/Editor/Presentation/UnityCliLoopSettingsWindowEventHandler.cs

📝 Walkthrough

Walkthrough

This PR renames the legacy uLoopMCP namespace to UnityCLILoop across 44 files. Changes include 28 assembly metadata updates, asmdef path corrections, migration logic extensions for legacy runtime references, and tool execution service integration tests.

Changes

Namespace Migration from uLoopMCP to UnityCLILoop

Layer / File(s) Summary
Assembly internal visibility updates
Assets/Editor/CustomCommandSamples/AssemblyInfo.cs, Packages/src/Editor/Application/AssemblyInfo.cs, Packages/src/Editor/CompositionRoot/AssemblyInfo.cs, Packages/src/Editor/Domain/AssemblyInfo.cs, Packages/src/Editor/FirstPartyTools/*/AssemblyInfo.cs, Packages/src/Editor/Infrastructure/AssemblyInfo.cs, Packages/src/Editor/Presentation/UnityCliLoopSettingsWindowEventHandler.cs, Packages/src/Editor/FirstPartyTools/RunTests/TestFramework/NUnitXmlResultExporter.cs
28 InternalsVisibleTo attributes updated to grant internal visibility to UnityCLILoop.Tests.Editor, UnityCLILoop.Tests.PlayMode, UnityCLILoop.Tests.Demo.Editor, and UnityCLILoop.Dev instead of their legacy uLoopMCP.* counterparts.
Test paths and asmdef constant updates
Assets/Tests/Editor/InputVisualizationCanvasPrefabTests.cs, Assets/Tests/Editor/OnionAssemblyDependencyTests.cs
Runtime asmdef path constant updated to UnityCLILoop.Runtime.asmdef, demo editor asmdef path updated to UnityCLILoop.Tests.Demo.Editor.asmdef, and new validation added to confirm project asmdef filenames and assembly names contain no legacy uLoopMCP references.
Legacy runtime migration rules
Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationRules.cs
New constants added for legacy runtime assembly name, current runtime assembly name, and runtime GUID reference; migration candidate detection, legacy asmdef name identification, reference rewriting, and deduplication key normalization all extended to handle legacy uLoopMCP.Runtime references.
Legacy runtime migration test coverage
Assets/Tests/Editor/ThirdPartyToolMigrationRulesTests.cs, Assets/Tests/Editor/ThirdPartyToolMigrationFileServiceTests.cs
New test verifies MigrateAsmdefSource rewrites legacy uLoopMCP.Runtime references to the expected runtime GUID and marks content as changed; separate test confirms ApplyMigration correctly processes file-level migration with legacy references.
Tool execution service integration
Assets/Tests/Editor/UnityCliLoopToolRegistryTests.cs
Registry tests updated to call UnityCliLoopToolExecutionService.ExecuteToolAsync instead of UnityApiHandler.ExecuteCommandAsync, with typed contract response validation and default schema behavior verified.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • hatayama/unity-cli-loop#1125: Main PR's added migration coverage and rule updates for rewriting legacy uLoopMCP.Runtime asmdef references are directly tied to the V2→V3 custom tool migration wizard introduced in #1125.
  • hatayama/unity-cli-loop#1164: Both PRs modify Assets/Tests/Editor/UnityCliLoopToolRegistryTests.cs to change how tool execution is dispatched, directly impacted by execution service changes in #1164.
  • hatayama/unity-cli-loop#1197: Both PRs modify Assets/Tests/Editor/OnionAssemblyDependencyTests.cs to update runtime asmdef references and validation behavior in parallel.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main objective of renaming legacy uLoopMCP assemblies to UnityCLILoop, which is consistently reflected across all changed files.
Description check ✅ Passed The description provides comprehensive context covering summary, user impact, changes, and verification results, clearly relating to the assembly renaming and migration updates throughout the changeset.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 feature/hatayama/rename-legacy-uloopmcp-files

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 and usage tips.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 52 files

Re-trigger cubic

@hatayama
hatayama merged commit cb75c0c into v3-beta May 28, 2026
8 checks passed
@hatayama
hatayama deleted the feature/hatayama/rename-legacy-uloopmcp-files branch May 28, 2026 00:32
@github-actions github-actions Bot mentioned this pull request May 27, 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