* feat: add JSON property handling for materials; add tests for JSON coercion and end-to-end; update test project manifest and ProjectVersion
* fix(manage_asset): support structured texture blocks case-insensitively; resolve _BaseMap/_MainTex automatically and apply when missing name
* Update MCPForUnity/Editor/Tools/ManageAsset.cs
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* refactor(manage_asset): remove goto; reuse alias resolver for structured texture (supports 'albedo'); tests: self-sufficient texture asset and _BaseColor/_Color guards; python: assert success in invalid JSON case
* chore(manage_asset): remove duplicate return in modify case
* tests: fix mocks/patching for manage_asset/manage_gameobject; make invalid-json case tolerant; ensure prefab modify test patches transport correctly
* ci: allow manual dispatch for Unity EditMode tests (workflow_dispatch)
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Add TDD tests for MCP material management issues
- MCPMaterialTests.cs: Tests for material creation, assignment, and data reading
- MCPParameterHandlingTests.cs: Tests for JSON parameter parsing issues
- SphereMaterialWorkflowTests.cs: Tests for complete sphere material workflow
These tests document the current issues with:
- JSON parameter parsing in manage_asset and manage_gameobject tools
- Material creation with properties
- Material assignment to GameObjects
- Material component data reading
All tests currently fail (Red phase of TDD) and serve as specifications
for what needs to be fixed in the MCP system.
* Refine TDD tests to focus on actual MCP tool parameter parsing issues
- Removed redundant tests that verify working functionality (GameObjectSerializer, Unity APIs)
- Kept focused tests that document the real issue: MCP tool parameter validation
- Tests now clearly identify the root cause: JSON string parsing in MCP tools
- Tests specify exactly what needs to be fixed: parameter type flexibility
The issue is NOT in Unity APIs or serialization (which work fine),
but in MCP tool parameter validation being too strict.
* Fix port discovery protocol mismatch
- Update _try_probe_unity_mcp to recognize Unity bridge welcome message
- Unity bridge sends 'WELCOME UNITY-MCP' instead of JSON pong response
- Maintains backward compatibility with JSON pong format
- Fixes MCP server connection to Unity Editor
* Resolve merge: unify manage_gameobject param coercion and schema widening
* Tests: add MaterialParameterToolTests; merge port probe fix; widen tool schemas for JSON-string params
* refactor: extract JSON coercion helper; docs + exception narrowing\nfix: fail fast on bad component_properties JSON\ntest: unify setup, avoid test-to-test calls\nchore: use relative MCP package path
* chore(tests): track MCPToolParameterTests.cs.meta to keep GUID stable
* test: decouple MaterialParameterToolTests with helpers (no inter-test calls)
* chore: update Unity version from 2021.3.45f1 to 2021.3.45f2
Older Unity version had the security vulnerability, so we update it
* feat: add dynamic version display in editor window settings
* refactor: remove manual license file handling from Unity test workflow
* Revert "refactor: remove manual license file handling from Unity test workflow"
This reverts commit a6ab3d982e792039c01a4afd353e61c7e22a2c3c.
* feat: add Unity license credentials to Docker containers in CI workflow
* refactor: replace manual Unity license activation with game-ci/unity-activator
* refactor: simplify Unity CI setup by removing game-ci activation and using built-in license handling
* fix: improve Unity license activation in CI by using unityci image's built-in activation flow
* refactor: activate once in a temporary container, then reuse the license in the long-running container
Now we got the license secret to be read, we got this error: "Machine bindings don't match". So it seems that the license I generated locally can't be used.
So we need to activate the license within the container
* Revert "refactor: activate once in a temporary container, then reuse the license in the long-running container"
This reverts commit f6a9aa68f910df37cede6f83d535098be2a9f80b.
* Revert "fix: improve Unity license activation in CI by using unityci image's built-in activation flow"
This reverts commit a9f4c0223bc3467442be6dafa1d9303479623a7c.
* Revert "refactor: simplify Unity CI setup by removing game-ci activation and using built-in license handling"
This reverts commit 4e5ffc0051a7b15b9d87ecaa06fa646f8b13b0b9.
* Revert "refactor: replace manual Unity license activation with game-ci/unity-activator"
This reverts commit e9520ee768c4e9d48efc81b1a9c3cac3986cc96a.
* Revert "feat: add Unity license credentials to Docker containers in CI workflow"
This reverts commit 01b8879e35baaf88239988b51e6d4f1e5daaa1cf.
* Add a base Unity project to run unit tests in
* Add Windsurf IDE support so I can test more easily
* Add a dummy script
* feat: add unit tests for CommandRegistry and document prefab asset workflows
* Run tests when code is pushed to main
* Bump version of actions
* Install the MCP plugin via relative path
* Remove test branch from GH workflow