Skip to content

v0.3.60 — Trust the main Unity Editor's compile result

Choose a tag to compare

@FoxsterDev FoxsterDev released this 26 Aug 12:41
· 28 commits to master since this release

v0.3.60 — Trust the main Unity Editor's compile result

Why this matters

Unity starts headless Asset Import Worker processes while it imports assets.
Those workers load editor code, but their compiler status is not the main Unity
Editor's result. A worker could previously publish a healthy Model Context
Protocol (MCP) bridge state with zero errors, making a broken or still-compiling
editor look ready.

What changed

  • Asset Import Workers now stop before the MCP bridge creates a session,
    transport, heartbeat, request journal, or other bridge file.
  • Bridge state names the writer process class. The host rejects state written
    by a proven worker or other non-main process with
    bridge_owned_by_non_main_process, blocks runtime requests, and reports its
    compile result as unknown instead of clean.
  • Bridge bootstrap journal entries now record the writer process id, process
    class, and editor-log path so ownership can be diagnosed later.
  • The release workflow now treats a published GitHub Release as required after
    the tag gate. A pushed tag alone is not a completed release.

What this gives developers

  • A green compile result now comes from the main Unity Editor bridge, not from
    a background importer that happened to report zero errors.
  • When the wrong process owns bridge state, the MCP host refuses to act and
    gives a clear wait-for-main-editor recovery instead of sending a request to
    an untrusted bridge.
  • Process details in the bootstrap journal make ownership problems easier to
    trace without guessing which Unity process wrote the file.

Validation

  • The host suite passed 938/938 tests with 14 expected platform skips.
    Focused bridge-ownership regression passed 220/220, and the
    separate-process file inter-process communication (IPC) simulator passed
    3/3 ownership and delivery tests.
  • Clean projects on Unity 2022.3.62f3 and 6000.0.58f2 each passed package
    EditMode 86/86, PlayMode 5/5, acceptance, refresh, and compile contracts.
  • A Unity 2022.3.62f3 consumer passed package EditMode 86/86 and PlayMode
    with 18 passed and one expected environment skip. A Unity 6000.0.58f2
    consumer passed compile preflight 6/6, acceptance 10/10, the
    refresh/compile contract, PlayMode lifecycle recovery, and project-action
    consistency.
  • Public documentation checks passed 42/42 desktop, mobile, and narrow-layout
    browser tests.

Known limitations

  • Older bridge state with no process class and no worker-shaped editor-log path
    stays compatible until host process discovery can attribute its process id.
    A proven non-main writer is still refused.
  • The Unity Package CI continuous integration workflow is explicitly waived
    because the runners have no Unity license secrets. This release therefore
    has no CI-recorded EditMode or PlayMode result for its exact commit; the local
    Unity validation above is the available package proof. Restore the gate after
    configuring the documented Unity license secrets.