Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: CoplayDev/unity-mcp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v8.7.0
Choose a base ref
...
head repository: CoplayDev/unity-mcp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v8.7.1
Choose a head ref
  • 5 commits
  • 13 files changed
  • 4 contributors

Commits on Jan 4, 2026

  1. Add Cherry Studio MCP client support (#505)

    * Add Cherry Studio MCP client support
    
    * Fix misleading message in HTTP mode for Cherry Studio
    
    * Address code review feedback
    Nonanti authored Jan 4, 2026
    Configuration menu
    Copy the full SHA
    46b844a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6bbf137 View commit details
    Browse the repository at this point in the history
  3. Codex/implement bounded retry policy for unity (#510)

    * Add editor readiness v2, refresh tool, and preflight guards
    
    * Detect external package changes and harden refresh retry
    
    * feat: add TestRunnerNoThrottle and async test running with background stall prevention
    
    - Add TestRunnerNoThrottle.cs: Sets editor to 'No Throttling' mode during test runs
      with SessionState persistence across domain reload
    - Add run_tests_async and get_test_job tools for non-blocking test execution
    - Add TestJobManager for async test job tracking with progress monitoring
    - Add ForceSynchronousImport to all AssetDatabase.Refresh() calls to prevent stalls
    - Mark DomainReloadResilienceTests as [Explicit] with documentation explaining
      the test infrastructure limitation (internal coroutine waits vs MCP socket polling)
    - MCP workflow is unaffected - socket messages provide external stimulus that
      keeps Unity responsive even when backgrounded
    
    * refactor: simplify and clean up code
    
    - Remove unused Newtonsoft.Json.Linq import from TestJobManager
    - Add throttling to SessionState persistence (once per second) to reduce overhead
    - Critical job state changes (start/finish) still persist immediately
    - Fix duplicate XML summary tag in DomainReloadResilienceTests
    
    * docs: add async test tools to README, document domain reload limitation
    
    - Add run_tests_async and get_test_job to main README tools list
    - Document background stall limitation for domain reload tests in DEV readme
    
    * ci: add separate job for domain reload tests
    
    Run [Explicit] domain_reload tests in their own job using -testCategory
    
    * ci: run domain reload tests in same job as regular tests
    
    Combines into single job with two test steps to reuse cached Library
    
    * fix: address coderabbit review issues
    
    - Fix TOCTOU race in TestJobManager.StartJob (single lock scope for check-and-set)
    - Store TestRunnerApi reference with HideAndDontSave to prevent GC/serialization issues
    
    * docs: update tool descriptions to prefer run_tests_async
    
    - run_tests_async is now marked as preferred for long-running suites
    - run_tests description notes it blocks and suggests async alternative
    
    * docs: update README screenshot to v8.6 UI
    
    * docs: add v8.6 UI screenshot
    
    * docs: update v8.6 UI screenshot
    
    * docs: update v8.6 UI screenshot
    
    * docs: update v8.6 UI screenshot
    
    * Update README for MCP version and instructions for v8.7
    
    * fix: handle preflight busy signals and derive job status from test results
    
    - manage_asset, manage_gameobject, manage_scene now check preflight return
      value and propagate busy/retry signals to clients (fixes Sourcery #1)
    - TestJobManager.FinalizeCurrentJobFromRunFinished now sets job status to
      Failed when resultPayload.Failed > 0, not always Succeeded (fixes Sourcery #2)
    
    * fix: increase HTTP server startup timeout for dev mode
    
    When 'Force fresh server install' is enabled, uvx uses --no-cache --refresh
    which rebuilds the package and takes significantly longer to start.
    
    - Increase timeout from 10s to 45s when dev mode is enabled
    - Add informative log message explaining the longer startup time
    - Show actual timeout value in warning message
    
    * fix: derive job status from test results in FinalizeFromTask fallback
    
    Apply same logic as FinalizeCurrentJobFromRunFinished: check result.Failed > 0
    to correctly mark jobs as Failed when tests fail, even in the fallback path
    when RunFinished callback is not delivered.
    
    * Bound Unity reload/session waits
    
    * refactor: improve env var parsing and reason extraction
    
    Address code review feedback:
    
    - Catch ValueError specifically (instead of broad Exception) when parsing
      UNITY_MCP_RELOAD_MAX_WAIT_S, UNITY_MCP_SESSION_RESOLVE_MAX_WAIT_S, and
      UNITY_MCP_SESSION_READY_WAIT_SECONDS, with logging for easier diagnosis
      of misconfiguration
    
    - Normalize reason values to lowercase in _extract_response_reason() to
      avoid case-sensitive mismatches in comparisons
    
    - Simplify refresh_unity.py by removing redundant isinstance check and
      reusing _extract_response_reason instead of duplicating reason parsing
    
    * Add upper bound clamp and custom exception for bounded retry
    
    - Add upper bound (30s) to UNITY_MCP_RELOAD_MAX_WAIT_S to prevent
      misconfiguration from causing excessive waits
    - Add upper bound (30s) to UNITY_MCP_SESSION_RESOLVE_MAX_WAIT_S for
      consistency with readiness probe
    - Introduce NoUnitySessionError custom exception to replace fragile
      string matching in send_command_for_instance
    
    Addresses code review feedback for bounded retry policy PR.
    dsarno authored Jan 4, 2026
    Configuration menu
    Copy the full SHA
    96b81ca View commit details
    Browse the repository at this point in the history
  4. Codex/optimize and paginate read console tool (#511)

    * Optimize read_console defaults and paging
    
    * Fix read_console truncate test expectations
    
    * Reduce read_console default count from 50 to 10
    
    Further optimize token usage by reducing the default count from 50 to 10 entries. Even 10-20 messages with stack traces can be token-heavy. Added tests for default behavior and paging functionality. Updated tool description to document defaults and paging support.
    
    * Fix ReadConsoleTests to include log type messages
    
    The default types filter changed to ['error', 'warning'] (excluding 'log'), so tests using Debug.Log() need to explicitly request log messages. Also added format='detailed' to HandleCommand_Get_Works test since it accesses structured message fields.
    
    * Address CodeRabbit review feedback
    
    - Fix property naming consistency: next_cursor -> nextCursor (C# camelCase)
    - Remove redundant EndGettingEntries call from catch block (already in finally)
    - Extract stacktrace stripping to helper function (reduce duplication)
    - Fix test mock to match actual C# response structure (items, nextCursor, truncated, total)
    
    * perf: add early exit optimization for ReadConsole paging
    
    - Add early exit in paging loop once page is filled, avoiding iteration
      through remaining console entries (total becomes 'at least N')
    - Prefix unused mock arguments with underscores in test_read_console_truncate.py
      to suppress Ruff linter warnings
    
    * refactor: give pageSize independent default, clarify count semantics
    
    - Change pageSize resolution from 'pageSize ?? count ?? 50' to 'pageSize ?? 50'
      so pageSize has its own default independent of count
    - count now only serves as the non-paging limit
    - Add XML docs to GetConsoleEntries with clear parameter descriptions
    - Update Python tool annotations to document pageSize default (50) and
      clarify that count is ignored when paging
    dsarno authored Jan 4, 2026
    Configuration menu
    Copy the full SHA
    b0f7a80 View commit details
    Browse the repository at this point in the history

Commits on Jan 5, 2026

  1. Configuration menu
    Copy the full SHA
    756fc00 View commit details
    Browse the repository at this point in the history
Loading