Skip to content

Releases

v0.7.6

Choose a tag to compare

@Winlifes Winlifes released this 12 Nov 02:38

Fixed

  • Issue #63: isolate execution-journal writing/reading/copying, idempotency request signatures and serialization-error envelopes from project-wide JsonConvert.DefaultSettings. Global type metadata, naming conventions or converters no longer alter this private persistence contract. Existing valid schema-v1 jobs/keys $type/$values wrappers are read without type instantiation; the first canonical save preserves the exact original backup, task IDs, result files and protected keys. Invalid/ambiguous formats still fail closed.
  • Journal I/O diagnostics disclose the storage stage, atomic operation/file role, HRESULT and bounded attempt count without leaking raw paths/messages. Read handles allow atomic replacement on Windows; only explicit sharing/lock violations retry the file operation, at most three attempts. There is no delete-before-replace fallback. This hardens and diagnoses the separate File.Replace report; its original Windows/Tuanjie cause is not claimed reproduced or universally fixed.

Changed

  • Full-only execute_code(action=recover_journal) explicitly verifies/persists retained history after the actual storage problem is resolved. It refuses active work, changed/deleted history and unsafe formats; it preserves failed-admission receipts/keys and never replays commands or clears unknown outcomes. No new tool or default-exposure change is introduced.
  • Built-in unity-mcp-workflow v1.0.10 adds conditional journal-recovery guidance. Status reads remain non-mutating; neither Skills nor error hints advise deleting Library/history, changing project JSON defaults or repeating a write.

Validation

  • The three initial isolated regressions failed on v0.7.5: global array metadata changed the persisted container shape, legacy wrapped lists could not be reloaded, and persistence consulted a throwing project-default-settings delegate. The repaired path passes those cases plus global metadata/naming variants, exact legacy backups (including UTF-8 BOM), invalid/ambiguous journal refusal, request-signature stability and no-replay key retention.
  • Final graphics-enabled full EditMode runs on macOS each passed 935 tests, zero failures, one environment skip out of 936 in Unity 2022.3.62f3c1 / Input System 1.14.0 and Unity 6000.3.12f1 / Input System 1.19.0 / uGUI 2.0.0. The skip requires an already-installed ffmpeg. The fresh Unity 6 fixture imported its own version's TMP Essential Resources before the final run; no actual project dependencies or Player settings were changed.
  • Fault injection covers bounded sharing/lock retries, permission/disk-full failures, preserved destinations, failed-admission recovery, replacement committed before an exception, no replay of uncertain work, active-execution refusal and externally changed/deleted/emptied history. Windows/Tuanjie was not live-tested; the original File.Replace cause remains unconfirmed.
  • Real project-scoped HTTP calls in an explicitly owned FunplayMcp Editor succeeded while global TypeNameHandling.Arrays was enabled: vectors/arrays stayed structured, journal containers remained arrays, task recovery by key worked, a duplicate request executed only once, and Core denied journal-management recovery. Temporary globals/counters/results were restored/cleaned and the owned Editor closed. Six-platform Skills validation covered ten SKILL.md documents, two Cursor rules, thirty references and all local links. The original Player settings and package manifest/lockfile SHA256 hashes remained unchanged.

v0.7.5

Choose a tag to compare

@Winlifes Winlifes released this 02 Nov 13:06

Fixed

  • Unity vectors, integer vectors, colors, quaternions, rects, bounds, rays, planes, poses and matrices retain explicit finite JSON fields inside nested command results. Unity object references become bounded identities instead of recursively traversed graphs. Cycles, non-finite nullable/JToken values, unsupported raw/JavaScript tokens, nesting over 64 and output over 8 MiB return honest RESULT_SERIALIZATION_FAILED / RESULT_TOO_LARGE errors; failed serialization never becomes a successful ToString() message. Execution identity, confirmed execution and bounded recovery evidence remain separate from result delivery.
  • Boolean parameters follow the same typed/case-insensitive parsing through the durable and legacy invocation paths. Direct C# execution/replay remains a privileged API; MCP admission and deferred execution preserve exposure and project-context checks.
  • A failed journal write closes new admission and leaves an honest terminal in-memory receipt, rather than a queued/running task that can never finish. Corrupt journals fail closed; cached-result cleanup verifies ownership and unchanged bytes before deletion.
  • The stdio proxy's configurable response deadline now covers the complete HTTP body, not only response headers. Proxy, direct HTTP, broker/client and stored-read errors identify their layer and preserve unknown execution outcome/no-automatic-retry semantics. Broker protocol v6 replaces older processes so hold-deadline errors carry the new diagnostics.

Added

  • Durable execute_code receipts persisted before scheduling main-thread Unity execution, using the existing execution:<id> / get_task surface. Keyed short jobs support bounded single-call completion; unkeyed MCP starts deliver their receipt first. A repeated identical request key returns the retained task, while changed code/effective settings/context conflicts. Domain/process recovery never schedules arbitrary code again: interrupted preparation, unknown body outcome and confirmed return are distinct states.
  • Project-local immutable JSON snapshots with SHA256, item pagination via JSON Pointer, exact text chunks with surrogate-safe next_offset, 16 KiB inline/page limits, 8 MiB per-result limit, 32 MiB payload quota, 128 receipts, 24-hour retention and 4096 protected keyed receipts/tombstones. Eviction and cleanup retain retry protection; read-only queries never expire/delete files or mutate Unity state. Changed/unclaimed files are preserved for explicit review.
  • Explicit execute_code cancel-before-body and terminal-result cleanup controls. Full-only forget additionally requires confirm_forget=true; it deliberately removes retry protection and is never automatic recovery. Cooperative preparation budgets, response waits and transport deadlines remain separate; synchronous Unity calls are not force-stopped or rolled back and can report a completed over-budget write.
  • Queue/refresh/compile/body/serialization/persistence timings and UTF-8 result byte counts, plus optional bounded stage/type/sanitized method diagnostics through get_task(include_diagnostics=true) for execution/input. Input failures keep stable codes, owned device identity and separate cleanup verification; no raw source paths/arguments/stack text are collected in diagnostics. Capability discovery describes the durable execution limits without enabling tools.

Skills and compatibility

  • Built-in unity-mcp-workflow v1.0.9 and unity-ui-composition v1.0.11 explain execution recovery, structured Unity values, paging, unknown outcomes, layered timeouts, cancellation and owned cleanup. Shared guidance and conditional references are synchronized across all six supported clients; existing prefab-first/design-fidelity/input/background/native-modal policies remain intact. Update installed Project Skills after upgrading.
  • No tool was added: Core remains 40, Full remains 185 across 43 modules. get_task stays read-only and respects the originating tool/custom exposure; it cannot cancel, clean or forget keys. A durable receipt is not a business transaction, global actor lock, side-effect rollback, security sandbox or exactly-once guarantee after storage loss.

Reports and scope

  • Implements the five approved priorities from the user's MCP修改建议.md: honest Unity-value serialization, recoverable/idempotent execution, bounded result storage/paging, layered timeouts/performance evidence and structured diagnostics. Adds the original long-numeric GUID mouse/touch samples to the existing synthetic-device regression tests. No numbered GitHub PR or issue is merged/closed by this release.
  • Frida/iOS/TypeTree resource/422 reports belong to the separate Reverse Hub backend and are not represented as fixes in this Unity package. Original report statuses are unchanged.

Validation

  • Final graphics-enabled full EditMode runs on macOS each passed 906 tests, zero failures, one environment skip out of 907: Unity 2022.3.62f3c1 / Input System 1.14.0 and Unity 6000.3.12f1 / Input System 1.19.0 / uGUI 2.0.0, both with dual input backends and TMP Resources. The skip requires an already-installed ffmpeg; no decoder was installed for testing. Coverage includes nested Unity values, invalid JSON extensions, real command writes followed by serialization failure, no-replay keys/conflicts, actual main-thread blocking, cancellation boundaries, journal corruption/write failure, retention/quota/key capacity, cache integrity and lossless Unicode paging.
  • A real 4+ MiB prefab fixture with 1026 transforms and 105 text components was saved through the execution path; repeating its key did not repeat the write. The fixture and temporary preview scene were removed without rebuilding or editing the project's authored UI.
  • Project-scoped HTTP MCP checks in the owned FunplayMcp Editor retained 40 Core tools, returned cached task state in about 1.3 ms while the Editor thread was blocked, recovered a deliberately abandoned client response, and reassembled a 374108-byte JSON snapshot with its exact SHA256. A real compile/domain reload retained the original interrupted-preparation ID with executed=false; repeating the key left the execution counter at zero. Owned source fixtures/counters/results were cleaned, and the owned Editor was closed. The project's Player settings and dependency manifests retained their original SHA256 hashes.
  • The v0.7.5 stdio wrapper built with zero warnings/errors and a headers-first/stalled-body HTTP fixture returned a one-second timeout in about 1.1 seconds without repeating the request. Generated Skills passed the skill-creator validator for all 10 SKILL.md documents plus checks for two Cursor rules, 30 conditional references and all local links across six clients. Unity 7/Windows were not independently live-tested in this release.

v0.7.4

Choose a tag to compare

@Winlifes Winlifes released this 02 Nov 09:30

Fixed

  • execute_code strict filesystem safety no longer classifies quoted backslash-only separator literals (such as path.Replace("\\", "/")) as absolute/UNC paths. Windows drive/rooted/UNC paths with actual path content, Unix system paths, home/config paths, traversal and filesystem-write checks remain enforced. The safety defaults and per-call overrides are unchanged; this remains a defensive heuristic, not a complete sandbox.
  • Declare the uGUI package dependency and reference UnityEngine.UI from the editor and test assemblies. Fresh package imports can now resolve UI and EventSystems types used by inspection, input simulation and UI tools (PR #62, issue #61).
  • execute_code works more than once per code reload on CoreCLR editors (Unity 7). Every snippet compiled to the same Snippet assembly name; Mono accepts duplicate names from Assembly.Load(byte[]), but Unity's collectible load context rejects them, so every call after the first failed with COMPILATION_BACKEND_UNAVAILABLE. Output assemblies now get a unique name.
  • The dotnet-hosted Roslyn path no longer waits ~20 s per compile. /shared:false is not a toggle: csc reads it as the pipe name of a compiler server called false, waits for it, then falls back to compiling in-process. csc compiles in-process by default, so the flag is dropped (24.5 s -> 0.55 s in a Unity 7 Editor).
  • The dotnet compiler host is also found in Unity 7's DotNetSdk layout (DotNetSdk/dotnet + DotNetSdk/sdk/<version>/Roslyn/bincore/csc.dll), and a missing Mono reference profile no longer fails the toolchain: it only backfilled references the editor had not loaded itself. Mono stays the preferred host, so existing editors resolve the same toolchain as before.
  • The keepalive broker no longer keeps editor sockets alive. On macOS/Linux, CoreCLR editors start children without closing the editor's descriptors, so the broker held e.g. the asset-import worker IPC listener after Unity exited; the broker now closes inherited sockets before opening its own. On Windows, both Mono and CoreCLR create children with bInheritHandles: TRUE; the broker is now started through ShellExecute (hidden window), which does not inherit handles. An already-running broker is reused as before, so the change applies the next time the broker is started.
  • Object ids stay numeric on Unity 7. Unity 7 formats EntityId.ToString() as index:version (for example 28613:256), so ids handed to clients were no longer numeric and the by-id/by-name auto-detection treated them as names: parent/target ids failed with UI_PARENT_NOT_UNIQUE / INVALID_OBJECT_QUERY. Unity 7 now uses the public EntityId.ToULong / FromULong round trip; index:version input is still accepted, and 6.4-6.x keep their existing format.
  • UI creation accepts TMP's built-in settings on com.unity.ugui 7 (Unity 7). ugui 7 no longer ships TMP Essential Resources: it uses a TMP Settings asset inside the package when the project has none. TMP text creation used to require Resources/TMP Settings and refused with TMP_RESOURCES_NOT_IMPORTED. The lookup now also finds the package asset, the way TMP does; older ugui versions without an import still report the error.
  • The Edit Mode video decoder is found on Unity 6+. UnityEditorInternal.Media.MediaDecoder moved from UnityEditor.CoreModule to UnityEditor.MediaModule, so frame extraction reported VIDEO_DECODER_UNAVAILABLE on Unity 6 and 7. The decoder is now looked up next to MediaTime, falling back to the old assembly.
  • Camera clearFlags reports SolidColor on every runtime. CameraClearFlags.Color and SolidColor share a value, and Enum.ToString picks a different alias on Mono (SolidColor) and CoreCLR (Color).
  • Tests: the TMP material fixture reads TMP_Asset.material as a field or a property (it is a property in com.unity.ugui 2.0+) and skips when TMP settings are unavailable instead of when no font asset exists (ugui ships font assets in the package); the exported Core tool count accounts for the two Input System-only tools in projects using the legacy Input Manager.
  • Integration follow-ups preserve TMP's actual project-over-built-in settings selection through its side-effect-free editor resolver; older TMP packages still require imported Resources rather than accepting an unrelated settings asset. The compiler toolchain assertion permits a CoreCLR-only SDK, and object lookup recognizes valid index:version identifiers while retaining id-first/name-fallback behavior for numeric and colon-containing names. Regression cases include uncached numeric EntityId parsing on Unity 7, serialized component references, TMP resolver selection and native media-module decoder discovery.
  • Synthetic mouse/touch device names end in a non-numeric suffix. Input System's unique-name helper otherwise parses a random GUID's trailing digits as an Int32 and can throw an overflow before a click/drag starts. Four deterministic mouse/touch regressions retain another device so headless tests cannot bypass the unique-name path; ownership-prefix checks and cleanup remain unchanged.

Pull requests and issues

  • PR #62 fixes the missing uGUI dependency/assembly references reported in issue #61. PR #60 adds Unity 7/CoreCLR compatibility, inherited-socket cleanup, TMP/decoder discovery and stable camera flag names; the integration includes the follow-up fixes above.

Validation

  • Maintainer release checks on macOS (2026-11-02), including the strict-filesystem separator fix: graphics-enabled full EditMode runs each passed 855 tests, zero failures, one skipped out of 856 in Unity 2022.3.62f3c1 / Input System 1.14.0 and Unity 6000.3.12f1 / Input System 1.19.0 / uGUI 2.0.0, both with dual input backends and TMP Resources. The only skip requires an already-installed ffmpeg; native decoder pixel/timestamp tests passed. A clean Unity 6 package import with no direct uGUI dependency resolved uGUI transitively and compiled without the UI/EventSystems errors; an earlier PR-integration legacy-input/no-TMP run passed 827 tests with zero failures and three explicit environment skips. The actual FunplayMcp project's Player settings and dependency manifests retained their original SHA256 hashes.

  • A standalone macOS inherited-socket harness kept an intentionally leaked listener alive without broker cleanup and released it with the fix while the broker remained healthy. The four deterministic synthetic-device name regressions failed before the suffix fix and passed in both final full suites. Unity 7 and Windows were not independently live-tested by the maintainer; the reported Windows Script Updater crash still needs confirmation on that exact Editor/platform.

  • Contributor-reported validation from PR #60, before maintainer integration: macOS, same source referenced by two projects, Unity 6000.3.13f1 (legacy Input Manager, no TMP resources imported) and Unity 7000.0.0a12 (Input System, ugui 7.0). Full Funplay.Editor.Tests EditMode runs:

    unmodified v0.7.3 this change
    Unity 6000.3.13f1 788 passed / 2 failed 800 passed / 0 failed / 23 skipped
    Unity 7000.0.0a12 772 passed / 26 failed 801 passed / 0 failed / 25 skipped
  • Contributor-reported live checks on both editors: repeated execute_code, dotnet-hosted compile, and broker survival across domain reloads with zero failed requests. On Unity 7, TMP text creation was also exercised for real through the built-in settings rather than skipped.

  • The Windows ShellExecute change is based on the .NET 10 / Mono / Wine sources and has not been run on Windows.

v0.7.3

Choose a tag to compare

@Winlifes Winlifes released this 28 Oct 02:34

Changed

  • Built-in unity-mcp-workflow v1.0.8 and unity-ui-composition v1.0.10 recommend Active Input Handling = Both for legacy-input-only projects that need New Input System click/drag simulation, after checking compatibility and obtaining user approval. Guidance preserves existing input consumers, EventSystem modules and bindings; Both does not inject synthetic input into legacy UnityEngine.Input polling.
  • Both Skills recommend Player > Run In Background when background verification is needed, with user approval. The linked execution-trust reference distinguishes persistent Player settings, runtime overrides, actual PlayerLoop progression and Input System background/focus policies. Editor execution is not diagnosed from that checkbox alone, and background execution is not claimed as input acceptance or mobile background support. Explicitly authorized temporary verification scopes retain their owned cleanup/restoration requirements.
  • Short shared recommendations reach all six supported client targets; detailed setup, restart/reconnect, compatibility and focus checks remain in the conditional reference. Existing managed Skills installations receive the usual update notice. No tools, dependencies or automatic project-setting mutations are added: Core remains 40 and Full remains 185 across 43 modules.

Fixed

  • The owned drag-cleanup test keeps its temporary in-memory InputSettings through the final Play Mode exit, instead of restoring focus restrictions before starting that last gesture. This removes a background-window test failure without weakening its cleanup assertions or changing production input policies/project settings.

Pull requests and issues

  • Implements the user's direct suggestions about dual input backends and background verification. No numbered GitHub issue is closed or PR merged by this release.

Validation

  • All 824 EditMode cases passed with zero failures/skips in the owned, graphics-enabled FunplayMcp Unity 2022.3.62f3c1 / Input System 1.14 session on macOS, including 141 Skills-related cases and all 27 drag cases. Skills export preserves an existing legacy-only/background-disabled configuration and package manifest byte-for-byte; the actual test project's Player settings and dependency manifests also retained their original SHA256 hashes.
  • All six client targets were exported: ten SKILL.md files passed the skill validator, two Cursor rules retained their metadata, and all 30 relative reference links resolved. The .NET 8 v0.7.3 bridge passed version, Content-Length UTF-8 framing, empty HTTP 202 notification and project-scoped path checks against an isolated local HTTP fixture. Other platforms and Unity versions are not claimed as live-tested.

v0.7.2

Choose a tag to compare

@Winlifes Winlifes released this 26 Oct 13:48

Fixed

  • simulate_mouse_drag now presses, moves, holds at the destination and explicitly releases across actual Dynamic PlayerLoop frames. duration is real unscaled movement time instead of synchronous interpolation count. The existing tool supports an owned mouse or single-touch New Input System device, with no hardware mutation, manual input updates, business callbacks or silent legacy-input fallback.
  • Drag receipts use the existing get_task input status path, retain bounded position/frame/clock evidence and keep application acceptance unknown. Idempotent request keys recover lost starts without replay; the original drag tool cancels its own tasks. Cancellation, timeout, pause, changed geometry/update mode, Play exit and reload release owned resources; failed cleanup remains explicit. Custom tool exposure is checked against each input task's originating tool.

Compatibility

  • Existing drag coordinates, screenshot mapping and button arguments remain available. duration now controls real movement time (0.05..10 seconds); invalid values fail instead of being silently clamped. Short MCP calls briefly wait for completion, while longer gestures return an input:<id> task rather than claiming that a completed drag was already dispatched. The tool definition, server instructions and workflow documentation describe status, cancellation and pointer-device selection. No tool was added: Core remains 40 and Full remains 185 across 43 modules.
  • New Input System Dynamic updates and an unpaused, advancing PlayerLoop are required. Mouse and single touch are explicit synthetic devices, not hardware or legacy UnityEngine.Input injection. Project focus/background input policies are preserved; a disabled device is reported instead of silently changing settings. The pictured game's actual merge result still requires verification in that project.

Pull requests and issues

  • Addresses the user's report that a merge-style continuous drag could not be completed through MCP. No numbered GitHub issue or PR is closed or merged by this release.

Validation

  • All 818 EditMode cases passed in the owned, graphics-enabled FunplayMcp Unity 2022.3.62f3c1 / Input System 1.14 test session, including 27 new drag cases. Actual Update consumers observed mouse left/right/middle and single-touch start/intermediate/target/release states, including timeScale=0; an isolated uGUI fixture received BeginDrag, Drag, Drop and EndDrag. Owned temporary InputSettings isolate tests from other foreground Editors without modifying project input assets; the production tool never changes those policies.
  • Real project-scoped HTTP MCP checks retained 40 Core tools, completed short mouse/touch drags in the initiating response, recovered task IDs by request key, cancelled without coordinates, and interrupted/cleaned a gesture during an actual script reload. The fixture/settings were restored, no owned synthetic devices remained, and the Editor returned to Edit Mode. This verifies input delivery, not the pictured game's board logic, legacy polling, physical-device provenance or other Unity/package versions.

v0.7.1

Choose a tag to compare

@Winlifes Winlifes released this 26 Oct 08:06

Added

  • Project-scoped HTTP endpoints, including Broker forwarding, and verified project/Editor-session guards on tool mutations. Legacy root URLs remain readable; writes require the expected_context token from an independently verified initialize response. JSON/image evidence includes identity metadata. Broker protocol v5 replaces older brokers when the package starts.
  • Passive PlayerLoop frame/clock evidence separates Editor import/compile/mode readiness, scaled-time pause, actual Update progress and application acceptance. Recording receipts distinguish encoded captures from observed gameplay frames.
  • Strict mouse routes for EventSystem, direct-button, physics and cross-frame synthetic New Input System input. Explicit routes never silently fall back; unsupported legacy polling injection fails without patching game input. Input jobs use get_task(kind=input) and own only their synthetic device.
  • Five low-frequency Full tools: verification_scope, patch_serialized_reference, inspect_render_bindings, save_verification_evidence, read_verification_evidence. Core remains 40; Full has 185 tools across 43 modules. Scoped verification uses the actual authored scene, bounded ownership and compare-before-restore cleanup; get_task(kind=verification) is observation only. Serialized reference transactions require exact preconditions, disposable-copy preflight, untouched PPtr-slot comparisons and verified byte recovery. Rendering inspection traces actual shared slots, particle trails and camera/canvas context without instantiating materials. Persisted checkpoints reuse hash-validated static inputs only, never current runtime observations.
  • Recording frame extraction can explicitly opt into an already-installed ffmpeg when the Unity decoder is unavailable. It uses no shell or network protocols, never installs dependencies, enforces existing time/frame/dimension limits and reports presentation timestamps, PNG/source hashes and executable provenance.

Changed

  • The MCP Server window reuses the existing blue Project Skills notice card to flag a selected client's legacy, unbound endpoint; it does not add a second banner. Connection and Skills guidance share one card with a single Reconfigure MCP + Skills action and client-reconnect instructions. It uses the existing combined configuration/managed-Skills workflow; clients without Skills support explicitly offer MCP only. Resolving one concern preserves the other. The status no longer labels those old entries as configured; unreadable configuration files disable the action and show a review message without breaking the window or offering an unverified rewrite.
  • Built-in workflow v1.0.7 and UI composition v1.0.9 separate compile/resource/input/render/end-to-end acceptance and add conditional execution-trust guidance. A confirmed blocking native Unity modal that MCP cannot handle may use computer use for that modal only, followed by identity/state readback; consequential save/discard/overwrite/install/security choices still require existing authority.
  • Recovery hints use the actual enabled/exposed readers; custom allowlists remain authoritative. Capability discovery reports decoder/input backend availability separately from exposure. Task revisions exclude live frame-clock counters.

Compatibility

  • Existing pinned ports are preserved, but generated URLs now include the project identity. Re-run Reconfigure MCP + Skills in the existing blue notice card, then reconnect/restart the client. Old unbound URLs still support reads; writes require expected_context from an independently verified intended Editor. These guards prevent accidental misrouting, not authentication. See migration details.

Fixed

  • Keyboard press/combo tools are no longer misclassified as read-only.
  • Native initialize/tool-result identity metadata is serialized as structural dictionaries rather than a DTO type-name string. Identity is cached on the Editor thread before transport startup so pooled status reads do not perform first-use Unity API access.

Pull requests and issues

  • Implements direct user feedback from the supplied restoration retrospective and MCP setup-window review. No GitHub PR is merged or issue closed by this release.

Validation

  • All 791 EditMode cases passed in the graphics-enabled FunplayMcp Unity 2022.3.62f3c1 Editor on macOS, with zero failures or skips (61 cases added over v0.7.0). Coverage includes actual PlayerLoop input edges, reference-preserving transactions with 168 slots/unresolved subassets, render-material non-instantiation, checkpoint invalidation, native/external decoder pixels/timestamps, Broker routing, structural native metadata and 52 connection/Skills notice cases. The external decoder was supplied only in an isolated test environment; no system or Unity package dependency was added.
  • Real HTTP MCP checks verified identity guards, 40 Core / 185 Full tools, runtime render bindings, recording/frame extraction and scoped cleanup. The v0.7.1 .NET 8 bridge additionally completed initialization, tool discovery and a real read-only tool call against the intended Editor, and preserved missing/stale/wrong-project rejections. Content-Length UTF-8 framing and empty HTTP 202 notifications were verified without spurious replies. Owned sessions returned to Edit Mode/Core; unrelated Editors were untouched.
  • Both built-in Skills were exported for all six client targets. Ten SKILL.md files passed the skill validator, two Cursor rules retained metadata, and all 30 relative reference links resolved. The single blue-card/combined-action layout was also captured and visually verified in the actual Unity window. Windows and other Unity versions are not claimed as live-tested.

v0.7.0

Choose a tag to compare

@Winlifes Winlifes released this 08 Oct 10:23

Changed

  • Built-in unity-mcp-workflow v1.0.6 and unity-ui-composition v1.0.8 integrate selected lessons from Unity's official GitHub plugin 0.1.8-beta. Four independently authored, linked references cover UI framework routing, safe Sprite importer edits, TMP/font/localization verification and asynchronous package readiness. Substantial conditional guidance is loaded on demand instead of inlining the official skill catalog.
  • UI guidance distinguishes uGUI, UI Toolkit and IMGUI per target screen; Sprite edits preserve source coordinates, surviving sprite IDs and supported name/file-ID mappings; TMP guidance checks persisted font/material/atlas assets and project-appropriate font strategies. Requested localization includes authored and code-composed strings, locale-identifier mapping, persistent binding readback, explicit coverage/gap counts and visual checks.
  • Package guidance separates requested, resolved and loaded dependencies, gates APIs against the actual Unity/package version, avoids main-thread UPM busy-waits and uses current Editor readiness before proceeding. Unity 2022.3 support, MCP-first operation, project text conventions, prefab-first authoring, design fidelity and existing safe-area policy are retained. No tools or dependencies are added: Core remains 40, with 180 tools across 42 modules in the full catalog.
  • All six Project Skills targets export the supporting references. Missing or outdated references trigger the existing update notice even if the entrypoint is current. Sync rejects user-owned reference destinations before writing configuration, preserves user notes during updates, and removes only owned generated files when disabling skills.

Fixed

  • Screenshot readback preserves the caller's active render target before Graphics.Blit changes it. The temporary readback texture is unbound before release, avoiding Releasing render texture that is set to be RenderTexture.active! warnings and leaving the previous target intact.

Pull requests and issues

  • Includes merged PR #59: screenshot active render target restoration. Thanks @MoLing14725.
  • No GitHub issues are closed by this release. Skill integration addresses direct user feedback.

Validation

  • All 730 EditMode cases passed in the graphics-enabled FunplayMcp Unity 2022.3 Editor on macOS (0 failures/skips), including 67 new reference-export, upgrade and ownership-protection cases. The test project uses a saved clean scene and imported TMP Essential Resources; these test resources are not added to the plugin package.
  • All six client targets were exported: ten SKILL.md files passed the skill validator, two Cursor rules retained their built-in/version metadata, and all 24 relative reference links resolved. The .NET 8 v0.7.0 bridge was packed and verified for Content-Length framing, empty HTTP 202 notifications and subsequent request replies against a local HTTP fixture. Windows and other Unity versions are not claimed as live-tested.

v0.6.10

Choose a tag to compare

@Winlifes Winlifes released this 04 Oct 04:07

[0.6.10] - 2026-10-04

Fixed

  • Fixed Issue #58: Broker Mode preserves the request handler's empty notification result and returns HTTP 202 with no body. Initialization, cancellation and custom notifications no longer produce an invalid JSON-RPC reply with id: null, allowing strict MCP clients such as Codex to finish their handshake. Normal JSON replies and SSE tool-list-change delivery retain their existing behavior.
  • Internal Broker protocol v4 replaces existing v3 processes on the same port when the upgraded package starts, so the corrected HTTP response behavior does not depend on manually stopping an old Broker.

Changed

  • Built-in unity-ui-composition Project Skill v1.0.7 makes reference-resolution priority explicit: user requirements or design specifications take precedence, existing projects retain their established baseline, and new portrait projects use the supplied full-page design image's dimensions when no resolution is specified. The 1080 x 2340 fallback applies only when no design image is supplied; conflicting or cropped references require clarification. All six skill targets receive the guidance, and existing installations are marked for an update.
  • UI composition prioritizes complete, saved page prefabs over runtime hierarchy construction. Safe-area guidance now preserves design spacing and existing project handling without proactively adding adaptation scripts, containers or extra insets; new adaptation requires an explicit request or confirmation of a demonstrated overlap.

Validation

  • All 661 EditMode cases passed in the graphics-enabled FunplayMcp Unity 2022.3 Editor on macOS (0 failures/skips). Regression coverage includes empty HTTP 202 acknowledgements for initialized/cancelled/custom notifications with JSON and SSE Accept headers, subsequent JSON tool discovery and SSE tool responses, pending tool-list-change preservation, and replacement of a previous-protocol Broker on the same port. Project Skills coverage verifies the shared UI guidance across all six targets and upgrades from UI skill v1.0.6 without changing the workflow skill.
  • A real MCP TypeScript SDK v1.32.0 client completed initialization against the actual Unity Broker, discovered 40 exposed tools, read the FunplayMcp project resource and successfully called a read-only tool. Initialization/cancellation/custom notifications returned empty HTTP 202 responses. The packaged .NET Content-Length stdio bridge also completed initialization, notifications, tool discovery and tool invocation without emitting spurious notification replies. Windows and other Unity versions are not claimed as live-tested.

Pull requests and issues

  • Fixed Issue #58. No pull requests are merged in this release.

v0.6.9

Choose a tag to compare

@Winlifes Winlifes released this 17 Sep 04:35

Added

  • Shared read-only get_task receipts across Editor preparation, UI audits/previews, recording/frame extraction and Test Runner jobs. MCP short-completion waits and bounded state-change waits reduce round trips; stable revisions ignore frame/scan counters, unchanged phases recommend capped backoff, and interrupted HTTP waits never restart/cancel/clean tasks. Native IDs, recovery keys, payloads and legacy readers remain supported.
  • Durable prepare_editor operations with status/list/cancel tools, request-key idempotency, phase/error history, deadlines, overlap protection and domain-reload recovery. Current readiness is separate from historical success; arbitrary mutating calls are never replayed.
  • Read-only, bounded audit_ui jobs for scene/selection/prefab/saved-scene scopes. Findings cover Sliced borders, missing scripts/references, required bindings, invisible raycast targets, live text overflow, clipping and layout ownership, with contextual warnings, project rules, suppressions and explicit incomplete results.
  • Structured component/property searches with stable pagination; batch Image/Sprite/importer inspection and reverse dependencies; full project type/assembly lookup; capability discovery distinguishing available from exposed tools. Setters return actual values and persistence/affected-asset provenance.
  • Shared capture/recording/input geometry, get_visual_coordinates and get_object_screen_bounds. Resized screenshot coordinates map into render pixels; stale, reloaded or changed geometry is rejected. Inline images retain native MCP image blocks plus metadata.
  • Project UI configuration and prefab templates through get_ui_defaults, configure_ui_defaults and create_project_ui, also used by existing canvas/button/text creation. Verified project conventions select TMP/legacy and input modules; new projects prefer TMP. Fonts/material atlas compatibility, missing resources and ambiguous template labels are validated before mutation. Existing prefab bindings and EventSystems are preserved.
  • Explicit and automatic click/drag/scroll recording markers, simulate_ui_scroll, asynchronous native keyframe extraction and image retrieval. Receipts include actual presentation timestamps, geometry, interruption/cleanup state and historical recording identity.
  • Durable UI preview start/status/end tools using real prefabs or copied scene templates. Saved clean original scenes, selection and supported Game View settings are restored with readback; unrelated/dirty/user-edited state is protected and only owned temporary assets are removed. Business data and side effects remain project responsibilities.

Changed

  • The catalog contains 180 tools across 42 modules. Default Core exposes 40 tools (35 in v0.6.8, curated down from the intermediate 57-tool development set); legacy status/compile/Play APIs, history, project-default configuration, preview management, explicit markers and specialized diagnostics remain in Full. Existing custom lists stay authoritative. Unified status reads enforce enabled/exposed per-kind capabilities; cancellation and cleanup remain separate operations.
  • Built-in unity-mcp-workflow v1.0.5 and unity-ui-composition v1.0.6 guide all six supported skill targets through structured inspection, editor preparation, audits, prefab authoring, coordinate-aware evidence and preview restoration. Both remain built-in, not optional.
  • Both built-in skills and server initialization share MCP-first UI authoring/review guidance: supported Unity operations use MCP; desktop computer use is limited to confirmed capability gaps or explicit user requests. Missing exposure and temporary reload/disconnection are distinguished from unsupported functionality, without bypassing custom allowlists.
  • Preview status uses runtime-safe scene reads in Play Mode; Game View zoom is restored against the original resolution's constraints and verified after repaint. Corrupt operation journals fail closed without preventing diagnostics.

Compatibility

  • The new Core defaults replace separate compile/Play/status choices with prepare_editor and get_task. All original APIs remain available in Full or an explicitly customized exposure list. Update the built-in Project Skills so clients use the new workflow; configured custom lists are not overwritten.

Pull requests and issues

  • No GitHub pull requests were merged or issues closed by this release. It addresses direct user feedback on UI authoring, verification/recovery costs, MCP-first operation and tool-selection overhead.

Validation

  • All 653 EditMode cases passed in the graphics-enabled FunplayMcp Unity 2022.3 Editor on macOS (0 failures/skips; 215 cases added over v0.6.8). Native MCP calls verified single-response small audits, recording/frame waits, preview ID ownership and restoration, shared Test Runner status, Core permission guards and a busy Editor returning an explicit unknown outcome within its initial-read budget. Compact default-tool definitions decreased from 44,938 to 36,105 characters compared with the intermediate development set (about 20%); this measures schema size, not billed token savings.
  • Real MCP validation also covered compile failures/reload recovery, Play transitions with domain reload on/off, TMP prefab/input creation, resized and camera-viewport clicks, scroll readback, native recording markers/keyframes and preview restoration.
  • Both built-in skills were generated for all six targets; ten SKILL.md files passed validation and two Cursor rules retained their metadata. Test-owned resources were moved out of Assets with recoverable backups, and the original clean scene/window/settings restored. Windows and other Unity versions are not claimed as live-tested.

v0.6.8

Choose a tag to compare

@Winlifes Winlifes released this 16 Sep 13:26

Changed

  • Built-in unity-ui-composition Project Skill is now v1.0.5. Sliced Image guidance requires checking the displayed Sprite's border, choosing pixel insets from the actual artwork, applying and reading back source Sprite import settings, and verifying resized corners and edges. It covers Single/Multiple sprites, atlas sources, and shared-asset scope; existing skill installations are detected as needing an update.
  • Design-reference guidance now maps multiple images to individual screens and states, checks visible details against actual Unity captures, and asks focused questions about material ambiguity after inspecting the references and project assets. Preserving an existing prefab is not a reason to retain visual mismatches; approximations, unresolved differences, and unverified screens must be disclosed rather than reported as a complete match.

Validation

  • Skill upgrade regression coverage verifies that all six supported client targets update the UI skill while leaving the unchanged workflow skill current and clearing the skills-update notice.
  • All 438 plugin EditMode cases passed: 421 in batch mode and the remaining 17 Recent Activity UI cases in the interactive FunplayMcp Editor. Generated skill documents and Cursor rule metadata were also validated.

Pull requests and issues

  • No GitHub pull requests were merged or issues closed by this release. These improvements address direct user feedback about Sprite borders and design-reference fidelity.