Skip to content

UnityLeanMcp v0.8.0-preview.16

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Sep 21:08
· 4 commits to main since this release

fix(process): support batchmode auto-start via UNITY_BATCHMODE environment variable

docs: streamline MCP tools documentation in README

feat: Bump version to 0.8.0-preview.16

fix(eval): support unreferenced assemblies, add dynamic assembly resolve, and clean build sync

feat(coverage): extract recursive method discovery and add comprehensive coverage type tests

fix(coverage): harden path normalization, fail-fast on Release mode, and retire obsolete test mode default

  • Normalize '.' and './' to empty string in GetCoverageHandler to match all project files on whole-project queries.
  • Add TryResolveExistingPath to resolve leading slash paths (e.g. '/Assets/...') relative to projectRoot cross-platform.
  • Add fail-fast check in GetCoverageHandler when CompilationPipeline.codeOptimization is Release mode.
  • Retire obsolete 'all' default in RunTestsArgs.Mode in Models.cs, aligning with canonical enum validation.
  • Refactor UnityClient.GetCoverageAsync to use typed deserialization instead of manual JSON DOM enumeration.
  • Add regression and validation tests across Mcp.Tests and Unity3d Editor tests.
  • Update DESIGN.md and LEARNINGS.md.

fix(coverage): harden profiler lifecycle, deduplicate nested types, and remove bounded query timeout

  • Defer coverage initialization in RunTestsHandler until operation ownership is acquired and tests are ready to run, preventing counter wipes on BUSY responses and profiler leaks.
  • Guarantee Coverage.enabled = false is restored on early exits (--failed-only with 0 failed tests) and dispatch exceptions.
  • Deduplicate nested types via visitedTypes set and skipping nested types in outer assembly scan in GetCoverageHandler.
  • Harvest static constructor (.cctor) sequence points via type.TypeInitializer.
  • Align empty compiled paths by returning SUCCESS with empty files, presenting informational results in MCP layer.
  • Enforce strict array element validation across MCP, client, and Editor boundaries.
  • Support unbounded timeoutSeconds <= 0 in UnitySocketTransport and remove arbitrary 15s timeout from GET_COVERAGE.
  • Centralize path normalization and project root resolution in GetCoverageHandler, removing redundant IUnityClient interface overload.
  • Add regression tests covering array validation, empty files, and unbounded socket commands.

fix(coverage): handle busy compile and active operations with fail-fast diagnostics and grace periods

  • Fail fast on BUSY compile with actionable message explaining in-memory coverage invalidation
  • Add BusyGracePeriod handling and retry loop on GetCoverageAsync for active operations
  • Evaluate RequiresCompilationSettled and active operations on worker threads for non-worker handlers
  • Add IProgress parameter to GetCoverageAsync and UnityCoverageAsync
  • Update DESIGN.md and LEARNINGS.md with coverage lifecycle documentation
  • Add subsystem tests for coverage busy handling and progress notifications

feat(coverage): add in-memory code coverage tool and rename unity_run_tests to unity_test

refactor(mcp): remove unity_stop MCP command and streamline tool surface

  • Remove unity_stop tool from UnityTools, reducing public catalog to 3 tools
  • Update foreign operation busy diagnostic in UnityClient to instruct killing the project-owned Unity process if hung
  • Update UnityIntegrationFixture teardown to use UnityProcessManager directly
  • Update McpProtocolTests, TieredAutowaitingTests, and ToolFormattingTests
  • Update README.md and record the architectural decision in DESIGN.md

feat(process): auto-start Unity in interactive GUI mode instead of batchmode