Repository navigation
v0.3.83 — Batch helpers stay on batchmode after a slow license probe; single-sprite textures are assignable in prefab edits
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 isunknown_batch_failure, so--batch-fallback-mode autotries 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_codeandtop_actionable_error. - Asset references in
unity_prefab_mutateandunity_prefab_renderoverrides are resolved against the field's declared type. A sub-asset name (assetSubAssetNameorpath#Name) picks the object of that name whose type fits the field, so a single-mode sprite resolves to theSprite. 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 ofunity_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.58f2in 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: aunity_prefab_mutatepreview resolvedpath#Name,assetSubAssetNameand a bare GUID to a single-mode texture'sSprite, and aunity_prefab_renderoverride rendered it.
Known limitations
Unity Package CIremains 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 Unity6000.0.58f2only, and was not run on2022.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.