Skip to content

v0.3.83 — Batch helpers stay on batchmode after a slow license probe; single-sprite textures are assignable in prefab edits

Choose a tag to compare

@FoxsterDev FoxsterDev released this 06 Oct 15:53
· 7 commits to main since this release

v0.3.83 — Batch helpers stay on batchmode after a slow license probe; single-sprite textures are assignable in prefab edits

Why this matters

batch-compile and the other batch-* helpers could open a full GUI editor instead of running Unity batchmode, on some projects for 20 days, because one licensing probe had merely run out of time. The probe log contains a routine [Licensing::IpcConnector] Channel ... doesn't exist line that every editor start writes, the classifier read it as licensing_client_ipc_failure, and the project cache kept that verdict with no expiry. On a project that also had compile errors, the GUI editor met Unity's Safe Mode dialog, and the batch summary dropped the bridge's "Unity has compilation errors" refusal, reporting only gui_operation_failed.

Separately, unity_prefab_mutate (and the temporary overrides of unity_prefab_render) could not put a sprite into a field such as Image.m_Sprite when the texture is imported in single-sprite mode. In that mode the texture and its sprite share one name, the lookup took the texture, and every form of the reference failed with prefab_mutation_asset_type_mismatch.

What changed

  • The batchmode probe classifier ignores the three routine [Licensing::IpcConnector] startup lines. A probe that times out or exits non-zero with only those lines is unknown_batch_failure, so --batch-fallback-mode auto tries batchmode instead of opening the GUI. Genuine connection-loss and other IPC failure lines classify as before.
  • A proven batchmode verdict for the same Unity executable and version is shared across projects, so one successful probe lifts sibling projects back onto batchmode. Negative verdicts stay per project and are re-probed after 24 hours, but only when no Unity editor is running; while one is, the old verdict is reused and marked cache_verdict_stale=true.
  • When the GUI fallback's bridge call fails, the batch summary carries that error as gui_operation_error_code and top_actionable_error.
  • Asset references in unity_prefab_mutate and unity_prefab_render overrides are resolved against the field's declared type. A sub-asset name (assetSubAssetName or path#Name) picks the object of that name whose type fits the field, so a single-mode sprite resolves to the Sprite. A plain path or GUID whose main asset does not fit resolves to the one sub-asset that does. When several fit, such as a sliced sheet, nothing is guessed and the write still fails until you name one. The mutator's own undo patch for a sprite (restoreValue: "path#Name") now replays.

What this gives developers

  • batch-* runs stay on batchmode after a slow probe, and a failing GUI fallback tells you why instead of unity_outcome=unknown.
  • Sprite assignments in prefab transactions and render previews work with the reference forms you already have (texture path, GUID, or path#Name).

Validation

  • Host Python suite on macOS: 1162 tests passed, 14 expected platform skips. Public site checks: 42/42.
  • Licensing classifier replay over 27 real probe logs: the 15 timed-out logs with the false verdict now classify as unknown_batch_failure; the genuine connection-loss log and the 11 finished logs are unchanged. Live: a project holding a 20-day-old negative verdict adopted a sibling project's proven verdict without launching Unity.
  • Package EditMode self-tests on Unity 6000.0.58f2 in a consumer project resolving the local package source: 182/182. Reintroducing the old asset lookup fails exactly the two new sprite tests with the original error; removing either new guard fails only its own test.
  • Live on Unity 6000.0.58f2: a unity_prefab_mutate preview resolved path#Name, assetSubAssetName and a bare GUID to a single-mode texture's Sprite, and a unity_prefab_render override rendered it.

Known limitations

  • Unity Package CI remains waived (no Unity license on the CI runners), so there is no CI-recorded EditMode or PlayMode proof for this release; the package evidence above is local, on Unity 6000.0.58f2 only, and was not run on 2022.3.
  • A plain path to a texture with several sprites still needs a sub-asset name.
  • A project with no license verdict still takes the GUI lane while another licensed editor is running, a successful batch run does not yet record a proven verdict, and the batch lane does not forward -licensingIpc.