@alpsckr/unitycli 0.4.3 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/contracts/command-contract.json +109 -217
- package/contracts/package-files.json +374 -294
- package/contracts/stable-session/direct-call-semantics.json +8 -2
- package/contracts/tool-completion-contract.json +148 -672
- package/dist/bridge/admission.d.ts +17 -1
- package/dist/bridge/admission.js +2 -0
- package/dist/bridge/admission.js.map +1 -1
- package/dist/bridge/domains/asset.js +3 -1
- package/dist/bridge/domains/asset.js.map +1 -1
- package/dist/bridge/domains/camera.js +39 -7
- package/dist/bridge/domains/camera.js.map +1 -1
- package/dist/bridge/domains/console.js +2 -1
- package/dist/bridge/domains/console.js.map +1 -1
- package/dist/bridge/domains/doctor.d.ts +3 -0
- package/dist/bridge/domains/doctor.js +8 -0
- package/dist/bridge/domains/doctor.js.map +1 -0
- package/dist/bridge/domains/editor.js +0 -4
- package/dist/bridge/domains/editor.js.map +1 -1
- package/dist/bridge/domains/game-object.js +4 -12
- package/dist/bridge/domains/game-object.js.map +1 -1
- package/dist/bridge/domains/graphics.js +1 -16
- package/dist/bridge/domains/graphics.js.map +1 -1
- package/dist/bridge/domains/object.js +3 -0
- package/dist/bridge/domains/object.js.map +1 -1
- package/dist/bridge/domains/physics.js +1 -2
- package/dist/bridge/domains/physics.js.map +1 -1
- package/dist/bridge/domains/profiler.js +18 -7
- package/dist/bridge/domains/profiler.js.map +1 -1
- package/dist/bridge/domains/project-tool.js +4 -0
- package/dist/bridge/domains/project-tool.js.map +1 -1
- package/dist/bridge/domains/reflection.js +10 -2
- package/dist/bridge/domains/reflection.js.map +1 -1
- package/dist/bridge/domains/runtime-tool.js +3 -0
- package/dist/bridge/domains/runtime-tool.js.map +1 -1
- package/dist/bridge/domains/scene.js +3 -8
- package/dist/bridge/domains/scene.js.map +1 -1
- package/dist/bridge/domains/screenshot.js +30 -6
- package/dist/bridge/domains/screenshot.js.map +1 -1
- package/dist/bridge/domains/ui.js +3 -1
- package/dist/bridge/domains/ui.js.map +1 -1
- package/dist/bridge/index.d.ts +5 -5
- package/dist/bridge/index.js +6 -9
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/registry.js +3 -5
- package/dist/bridge/registry.js.map +1 -1
- package/dist/bridge/session-supervisor.d.ts +6 -3
- package/dist/bridge/session-supervisor.js +145 -39
- package/dist/bridge/session-supervisor.js.map +1 -1
- package/dist/bridge/start-diagnostics.d.ts +19 -0
- package/dist/bridge/start-diagnostics.js +96 -0
- package/dist/bridge/start-diagnostics.js.map +1 -0
- package/dist/bridge/types.d.ts +6 -5
- package/dist/bridge/types.js +16 -2
- package/dist/bridge/types.js.map +1 -1
- package/dist/catalog-protocol.d.ts +64 -0
- package/dist/catalog-protocol.js +460 -0
- package/dist/catalog-protocol.js.map +1 -0
- package/dist/cli-commands/command.js +84 -61
- package/dist/cli-commands/command.js.map +1 -1
- package/dist/cli-commands/extensions.js +70 -50
- package/dist/cli-commands/extensions.js.map +1 -1
- package/dist/cli-commands/instances.js +1 -1
- package/dist/cli-commands/instances.js.map +1 -1
- package/dist/cli-commands/package.js +10 -2
- package/dist/cli-commands/package.js.map +1 -1
- package/dist/cli-process-owners.d.ts +6 -0
- package/dist/cli-process-owners.js +27 -0
- package/dist/cli-process-owners.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +20 -5
- package/dist/cli.js.map +1 -1
- package/dist/contracts/command-contract.js +14 -4
- package/dist/contracts/command-contract.js.map +1 -1
- package/dist/doctor.d.ts +4 -6
- package/dist/doctor.js +451 -398
- package/dist/doctor.js.map +1 -1
- package/dist/editor-blocker-observer.d.ts +2 -1
- package/dist/editor-blocker-observer.js +40 -13
- package/dist/editor-blocker-observer.js.map +1 -1
- package/dist/extension-availability.d.ts +27 -9
- package/dist/extension-availability.js +96 -56
- package/dist/extension-availability.js.map +1 -1
- package/dist/extensions/descriptor-loader.d.ts +2 -2
- package/dist/extensions/descriptor-loader.js +3 -4
- package/dist/extensions/descriptor-loader.js.map +1 -1
- package/dist/extensions/index.d.ts +1 -1
- package/dist/extensions/index.js +1 -1
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/installer.d.ts +57 -5
- package/dist/extensions/installer.js +263 -64
- package/dist/extensions/installer.js.map +1 -1
- package/dist/extensions/registry.js +3 -5
- package/dist/extensions/registry.js.map +1 -1
- package/dist/extensions/state-contract.d.ts +11 -0
- package/dist/extensions/state-contract.js +50 -0
- package/dist/extensions/state-contract.js.map +1 -0
- package/dist/instances.d.ts +19 -1
- package/dist/instances.js +39 -0
- package/dist/instances.js.map +1 -1
- package/dist/package-manager.d.ts +0 -24
- package/dist/package-manager.js +5 -58
- package/dist/package-manager.js.map +1 -1
- package/dist/project-tool-discovery.d.ts +5 -2
- package/dist/project-tool-discovery.js +22 -18
- package/dist/project-tool-discovery.js.map +1 -1
- package/dist/runtime-code.js +1 -1
- package/dist/runtime-code.js.map +1 -1
- package/dist/tool-name.d.ts +4 -0
- package/dist/tool-name.js +15 -0
- package/dist/tool-name.js.map +1 -0
- package/dist/tools/.generated-completion-registry.d.ts +2 -0
- package/dist/tools/.generated-completion-registry.js +763 -325
- package/dist/tools/.generated-completion-registry.js.map +1 -1
- package/dist/tools/.generated-registry.d.ts +6 -11
- package/dist/tools/.generated-registry.js +6 -11
- package/dist/tools/.generated-registry.js.map +1 -1
- package/dist/tools/.generated-schemas.js +11 -16
- package/dist/tools/.generated-schemas.js.map +1 -1
- package/dist/tools/asset/refresh-status.d.ts +3 -0
- package/dist/tools/asset/refresh-status.js +12 -0
- package/dist/tools/asset/refresh-status.js.map +1 -0
- package/dist/tools/asset/refresh.js +7 -3
- package/dist/tools/asset/refresh.js.map +1 -1
- package/dist/tools/build/player-status.d.ts +3 -0
- package/dist/tools/build/player-status.js +12 -0
- package/dist/tools/build/player-status.js.map +1 -0
- package/dist/tools/build/run.js +1 -1
- package/dist/tools/build/run.js.map +1 -1
- package/dist/tools/catalog-control.d.ts +22 -0
- package/dist/tools/catalog-control.js +335 -0
- package/dist/tools/catalog-control.js.map +1 -0
- package/dist/tools/catalog.d.ts +7 -9
- package/dist/tools/catalog.js +66 -45
- package/dist/tools/catalog.js.map +1 -1
- package/dist/tools/commands.d.ts +1 -1
- package/dist/tools/commands.js +44 -11
- package/dist/tools/commands.js.map +1 -1
- package/dist/tools/define.js +3 -2
- package/dist/tools/define.js.map +1 -1
- package/dist/tools/dispatcher.d.ts +53 -6
- package/dist/tools/dispatcher.js +277 -108
- package/dist/tools/dispatcher.js.map +1 -1
- package/dist/tools/editor/compile.js +1 -1
- package/dist/tools/editor/compile.js.map +1 -1
- package/dist/tools/editor/play-mode-status.d.ts +3 -0
- package/dist/tools/editor/play-mode-status.js +12 -0
- package/dist/tools/editor/play-mode-status.js.map +1 -0
- package/dist/tools/editor/readiness.d.ts +0 -1
- package/dist/tools/editor/readiness.js +0 -1
- package/dist/tools/editor/readiness.js.map +1 -1
- package/dist/tools/editor/refresh.d.ts +7 -3
- package/dist/tools/editor/refresh.js +20 -15
- package/dist/tools/editor/refresh.js.map +1 -1
- package/dist/tools/editor/state.d.ts +2 -2
- package/dist/tools/editor/state.js +13 -12
- package/dist/tools/editor/state.js.map +1 -1
- package/dist/tools/metadata/derived.js +1 -7
- package/dist/tools/metadata/derived.js.map +1 -1
- package/dist/tools/metadata/status.js +1 -12
- package/dist/tools/metadata/status.js.map +1 -1
- package/dist/tools/metadata/types.d.ts +0 -2
- package/dist/tools/navmesh/live.js +1 -1
- package/dist/tools/navmesh/live.js.map +1 -1
- package/dist/tools/occlusion/live.js +1 -1
- package/dist/tools/occlusion/live.js.map +1 -1
- package/dist/tools/package/deploy.js +2 -2
- package/dist/tools/package/deploy.js.map +1 -1
- package/dist/tools/package/embed.js +1 -1
- package/dist/tools/package/embed.js.map +1 -1
- package/dist/tools/package/install-status.d.ts +3 -0
- package/dist/tools/package/install-status.js +12 -0
- package/dist/tools/package/install-status.js.map +1 -0
- package/dist/tools/package/install.js +3 -3
- package/dist/tools/package/install.js.map +1 -1
- package/dist/tools/package/live-resolve.js +45 -12
- package/dist/tools/package/live-resolve.js.map +1 -1
- package/dist/tools/package/registry-clear.js.map +1 -1
- package/dist/tools/package/registry-set.js.map +1 -1
- package/dist/tools/package/remove-status.d.ts +3 -0
- package/dist/tools/package/remove-status.js +12 -0
- package/dist/tools/package/remove-status.js.map +1 -0
- package/dist/tools/package/remove.js +3 -3
- package/dist/tools/package/remove.js.map +1 -1
- package/dist/tools/package/resolve.js +3 -3
- package/dist/tools/package/resolve.js.map +1 -1
- package/dist/tools/package/restore.js +2 -2
- package/dist/tools/package/restore.js.map +1 -1
- package/dist/tools/package/scoped-registry-add.js.map +1 -1
- package/dist/tools/status/support.d.ts +13 -0
- package/dist/tools/status/support.js +28 -0
- package/dist/tools/status/support.js.map +1 -0
- package/dist/tools/test/cancel.js +2 -2
- package/dist/tools/test/cancel.js.map +1 -1
- package/dist/tools/test/run-status.d.ts +3 -0
- package/dist/tools/test/run-status.js +12 -0
- package/dist/tools/test/run-status.js.map +1 -0
- package/dist/tools/test/run.js +7 -4
- package/dist/tools/test/run.js.map +1 -1
- package/dist/tools/tools/group-summaries.js +10 -14
- package/dist/tools/tools/group-summaries.js.map +1 -1
- package/docs/architecture.md +4 -4
- package/docs/availability-differences.md +4 -4
- package/docs/command-execution.md +4 -3
- package/docs/error-codes.md +13 -5
- package/docs/extensions.md +1 -7
- package/docs/risk-and-side-effects.md +4 -3
- package/docs/safety-boundaries.md +3 -1
- package/docs/target-and-instance.md +1 -1
- package/docs/tool-discovery.md +17 -10
- package/docs/tool-execution.md +18 -7
- package/extensions/cinemachine/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/extensions/hdrp/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/extensions/probuilder/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/extensions/urp/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/extensions/vfx-graph/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/package.json +2 -4
- package/skills/unitycli/SKILL.md +11 -2
- package/skills/unitycli/manifest.json +1 -1
- package/skills/unitycli/references/operation-protocol.md +3 -3
- package/unitypkg/Editor/AssemblyInfo.cs +5 -0
- package/unitypkg/Editor/Bridge/BridgeCommandRegistry.cs +49 -14
- package/unitypkg/Editor/Bridge/BridgeHttpServer.cs +9 -35
- package/unitypkg/Editor/Bridge/BridgeQueueState.cs +672 -0
- package/unitypkg/Editor/Bridge/BridgeWorkQueue.cs +970 -120
- package/unitypkg/Editor/BridgeStartupStateMachine.cs +59 -1
- package/unitypkg/Editor/Commands/ProjectToolCommands.cs +4 -0
- package/unitypkg/Editor/Commands/RuntimeToolCommands.cs +3 -0
- package/unitypkg/Editor/Generated/UnityCliToolCompletionRegistry.g.cs +379 -14
- package/unitypkg/Editor/Infrastructure/CodeExecSupport.cs +28 -13
- package/unitypkg/Editor/Infrastructure/RegistryOwnershipResolver.cs +132 -105
- package/unitypkg/Editor/Infrastructure/UnityCliActiveOperation.cs +138 -29
- package/unitypkg/Editor/Infrastructure/UnityCliAdmission.cs +1856 -237
- package/unitypkg/Editor/Infrastructure/UnityCliDoctorDiagnostics.cs +220 -0
- package/unitypkg/Editor/Infrastructure/UnityCliDurableStatusCoordinator.cs +118 -0
- package/unitypkg/Editor/Infrastructure/UnityCliEditorStateSnapshot.cs +2 -1
- package/unitypkg/Editor/Infrastructure/UnityCliHierarchyPager.cs +203 -0
- package/unitypkg/Editor/Infrastructure/UnityCliInstanceCleanup.cs +2 -1
- package/unitypkg/Editor/Infrastructure/UnityCliInstanceRegistry.cs +201 -63
- package/unitypkg/Editor/Infrastructure/UnityCliJson.cs +2 -3
- package/unitypkg/Editor/Infrastructure/UnityCliLiveBuildCoordinator.cs +289 -46
- package/unitypkg/Editor/Infrastructure/UnityCliLiveRefreshCoordinator.cs +87 -53
- package/unitypkg/Editor/Infrastructure/UnityCliNavMeshBakeCoordinator.cs +4 -4
- package/unitypkg/Editor/Infrastructure/UnityCliObjectRef.cs +128 -25
- package/unitypkg/Editor/Infrastructure/UnityCliObjectSerializer.cs +435 -327
- package/unitypkg/Editor/Infrastructure/UnityCliOcclusionBakeCoordinator.cs +4 -4
- package/unitypkg/Editor/Infrastructure/UnityCliOperationCoordinator.cs +351 -53
- package/unitypkg/Editor/Infrastructure/UnityCliPackageResolveCoordinator.cs +118 -18
- package/unitypkg/Editor/Infrastructure/UnityCliPackageResolveState.cs +20 -1
- package/unitypkg/Editor/Infrastructure/UnityCliReadGeneration.cs +97 -0
- package/unitypkg/Editor/Infrastructure/UnityCliReflection.cs +644 -133
- package/unitypkg/Editor/Infrastructure/UnityCliReloadOperation.cs +128 -41
- package/unitypkg/Editor/Infrastructure/UnityCliRuntimeExecutor.cs +14 -84
- package/unitypkg/Editor/Infrastructure/UnityCliSerializer.cs +220 -0
- package/unitypkg/Editor/Infrastructure/UnityCliSessionMutationLease.cs +69 -29
- package/unitypkg/Editor/Infrastructure/UnityCliTestRunCoordinator.cs +440 -54
- package/unitypkg/Editor/Infrastructure/UnityCliWaiter.cs +128 -35
- package/unitypkg/Editor/ProjectTools/IUnityCliTool.cs +9 -1
- package/unitypkg/Editor/ProjectTools/OfficialAttributeToolRegistry.cs +32 -31
- package/unitypkg/Editor/ProjectTools/ProjectToolRegistry.cs +607 -458
- package/unitypkg/Editor/ProjectTools/ProjectToolSchemaValidator.cs +35 -7
- package/unitypkg/Editor/ProjectTools/RegisteredTool.cs +501 -60
- package/unitypkg/Editor/ProjectTools/UnityCliProjectToolContext.cs +21 -0
- package/unitypkg/Editor/ProjectTools/UnityCliSchemaDeriver.cs +36 -7
- package/unitypkg/Editor/ProjectTools/UnityCliToolName.cs +30 -0
- package/unitypkg/Editor/Properties/AssemblyInfo.cs +3 -0
- package/unitypkg/Editor/Tools/asset/get-data.cs +16 -7
- package/unitypkg/Editor/Tools/build/BuildSceneStateTool.cs +23 -3
- package/unitypkg/Editor/Tools/build/BuildToolDtos.cs +2 -1
- package/unitypkg/Editor/Tools/build/scene/add.cs +6 -3
- package/unitypkg/Editor/Tools/build/scene/disable.cs +1 -1
- package/unitypkg/Editor/Tools/build/scene/enable.cs +1 -1
- package/unitypkg/Editor/Tools/build/scene/list.cs +1 -1
- package/unitypkg/Editor/Tools/build/scene/remove.cs +13 -3
- package/unitypkg/Editor/Tools/camera/CameraToolSupport.cs +38 -38
- package/unitypkg/Editor/Tools/camera/multiview.cs +13 -6
- package/unitypkg/Editor/Tools/camera/screenshot.cs +14 -7
- package/unitypkg/Editor/Tools/component/get.cs +16 -9
- package/unitypkg/Editor/Tools/component/modify.cs +6 -4
- package/unitypkg/Editor/Tools/console/clear.cs +7 -6
- package/unitypkg/Editor/Tools/console/get.cs +48 -16
- package/unitypkg/Editor/Tools/editor/EditorToolSupport.cs +143 -28
- package/unitypkg/Editor/Tools/editor/menu-items.cs +1 -1
- package/unitypkg/Editor/Tools/editor/play.cs +2 -11
- package/unitypkg/Editor/Tools/editor/selection.cs +1 -1
- package/unitypkg/Editor/Tools/editor/stop.cs +2 -11
- package/unitypkg/Editor/Tools/editor/windows.cs +1 -1
- package/unitypkg/Editor/Tools/go/GameObjectToolSupport.cs +54 -4
- package/unitypkg/Editor/Tools/go/delete.cs +1 -1
- package/unitypkg/Editor/Tools/go/find.cs +167 -70
- package/unitypkg/Editor/Tools/graphics/GraphicsToolSupport.cs +25 -0
- package/unitypkg/Editor/Tools/graphics/light-probe-group.cs +9 -3
- package/unitypkg/Editor/Tools/graphics/pipeline-info.cs +1 -1
- package/unitypkg/Editor/Tools/graphics/pipeline-settings.cs +1 -1
- package/unitypkg/Editor/Tools/graphics/quality.cs +2 -2
- package/unitypkg/Editor/Tools/graphics/reflection-probe.cs +3 -3
- package/unitypkg/Editor/Tools/graphics/stats.cs +1 -1
- package/unitypkg/Editor/Tools/object/ObjectToolSupport.cs +4 -4
- package/unitypkg/Editor/Tools/object/get-data.cs +9 -7
- package/unitypkg/Editor/Tools/object/modify.cs +7 -5
- package/unitypkg/Editor/Tools/physics/raycast.cs +24 -6
- package/unitypkg/Editor/Tools/prefab/stage.cs +1 -1
- package/unitypkg/Editor/Tools/profiler/ProfilerFrameDebuggerSupport.cs +94 -21
- package/unitypkg/Editor/Tools/profiler/ProfilerMemorySnapshotSupport.cs +397 -10
- package/unitypkg/Editor/Tools/profiler/ProfilerToolSupport.cs +18 -4
- package/unitypkg/Editor/Tools/profiler/frame-debugger/enable.cs +1 -1
- package/unitypkg/Editor/Tools/profiler/frame-debugger/events.cs +88 -87
- package/unitypkg/Editor/Tools/profiler/hierarchy.cs +278 -112
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/compare.cs +9 -5
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/list.cs +37 -35
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/take.cs +99 -97
- package/unitypkg/Editor/Tools/project/info.cs +1 -1
- package/unitypkg/Editor/Tools/project/layers.cs +1 -1
- package/unitypkg/Editor/Tools/project/tags.cs +1 -1
- package/unitypkg/Editor/Tools/reflection/method/call.cs +9 -7
- package/unitypkg/Editor/Tools/reflection/method/find.cs +27 -37
- package/unitypkg/Editor/Tools/reflection/type/schema.cs +24 -28
- package/unitypkg/Editor/Tools/scene/gameobject/component.cs +8 -5
- package/unitypkg/Editor/Tools/scene/gameobject/components.cs +10 -7
- package/unitypkg/Editor/Tools/scene/gameobject-support.cs +104 -8
- package/unitypkg/Editor/Tools/scene/gameobject.cs +37 -16
- package/unitypkg/Editor/Tools/scene/hierarchy.cs +146 -142
- package/unitypkg/Editor/Tools/screenshot/EditorElementCaptureToolSupport.cs +77 -25
- package/unitypkg/Editor/Tools/screenshot/ScreenshotToolSupport.cs +315 -95
- package/unitypkg/Editor/Tools/screenshot/editor-element.cs +7 -5
- package/unitypkg/Editor/Tools/screenshot/game-view.cs +35 -21
- package/unitypkg/Editor/Tools/screenshot/isolated-object.cs +29 -23
- package/unitypkg/Editor/Tools/screenshot/orbit.cs +37 -25
- package/unitypkg/Editor/Tools/screenshot/scene-view.cs +25 -18
- package/unitypkg/Editor/Tools/screenshot/screen.cs +177 -17
- package/unitypkg/Editor/Tools/screenshot/surround.cs +83 -79
- package/unitypkg/Editor/Tools/ui/render-preview.cs +16 -11
- package/unitypkg/Editor/UnityCliBridge.cs +97 -34
- package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeBridge.cs +753 -122
- package/unitypkg/Runtime/Properties/AssemblyInfo.cs +5 -0
- package/unitypkg/Runtime/UnityCli.Runtime.asmdef +1 -1
- package/unitypkg/Shared/AssemblyInfo.cs +4 -0
- package/unitypkg/Shared/UnityCliAdmissionPool.cs +265 -75
- package/unitypkg/Shared/UnityCliBridgeQueuePolicy.cs +410 -0
- package/unitypkg/Shared/UnityCliBridgeWorkItemState.cs +47 -0
- package/unitypkg/Shared/UnityCliExceptionProjection.cs +151 -0
- package/unitypkg/Shared/UnityCliQueuePublication.cs +30 -0
- package/unitypkg/Shared/UnityCliRequestBudget.cs +352 -0
- package/unitypkg/Shared/UnityCliRuntimeRequestPublication.cs +107 -0
- package/unitypkg/Tests/Editor/UnityCli.Editor.Tests.asmdef +2 -2
- package/unitypkg/Tests/Editor/UnityCliAdmissionCoordinatorIntegrationTests.cs +1329 -0
- package/unitypkg/Tests/Editor/UnityCliAdmissionPoolTests.cs +311 -114
- package/unitypkg/Tests/Editor/UnityCliAdmissionRepairStateTests.cs +94 -0
- package/unitypkg/Tests/Editor/UnityCliBridgeAdmissionIntegrationTests.cs +1229 -0
- package/unitypkg/Tests/Editor/UnityCliBridgeQueuePolicyTests.cs +412 -0
- package/unitypkg/Tests/Editor/UnityCliContinuationIntegrationTests.cs +292 -0
- package/unitypkg/Tests/Editor/UnityCliDiagnosticBoundaryTests.cs +120 -0
- package/unitypkg/Tests/Editor/UnityCliDurableStatusTests.cs +84 -0
- package/unitypkg/Tests/Editor/UnityCliExceptionProjectionTests.cs +72 -0
- package/unitypkg/Tests/Editor/UnityCliInstancePublicationRetryTests.cs +180 -97
- package/unitypkg/Tests/Editor/UnityCliMemoryReflectionIntegrationTests.cs +434 -0
- package/unitypkg/Tests/Editor/UnityCliRequestBudgetTests.cs +615 -0
- package/unitypkg/Tests/Editor/UnityCliRuntimeBridgeIntegrationTests.cs +520 -0
- package/unitypkg/Tests/Editor/UnityCliToolCatalogTests.cs +562 -0
- package/unitypkg/Tests/Runtime/UnityCli.Runtime.Tests.asmdef +23 -0
- package/unitypkg/Tests/Runtime/UnityCliRuntimeCatalogValidationTests.cs +29 -0
- package/unitypkg/package.json +1 -1
- package/contracts/static-capability-catalog.json +0 -48226
- package/dist/bridge/domains/diagnose.d.ts +0 -2
- package/dist/bridge/domains/diagnose.js +0 -11
- package/dist/bridge/domains/diagnose.js.map +0 -1
- package/dist/bridge/domains/extension.d.ts +0 -8
- package/dist/bridge/domains/extension.js +0 -20
- package/dist/bridge/domains/extension.js.map +0 -1
- package/dist/capabilities.d.ts +0 -5
- package/dist/capabilities.js +0 -84
- package/dist/capabilities.js.map +0 -1
- package/dist/static-capability-catalog.d.ts +0 -13
- package/dist/static-capability-catalog.js +0 -41
- package/dist/static-capability-catalog.js.map +0 -1
- package/dist/tools/diagnose/capabilities.d.ts +0 -13
- package/dist/tools/diagnose/capabilities.js +0 -34
- package/dist/tools/diagnose/capabilities.js.map +0 -1
- package/dist/tools/package/info.d.ts +0 -19
- package/dist/tools/package/info.js +0 -27
- package/dist/tools/package/info.js.map +0 -1
- package/dist/tools/package/list.d.ts +0 -27
- package/dist/tools/package/list.js +0 -21
- package/dist/tools/package/list.js.map +0 -1
- package/dist/tools/package/registry-get.d.ts +0 -10
- package/dist/tools/package/registry-get.js +0 -22
- package/dist/tools/package/registry-get.js.map +0 -1
- package/dist/tools/package/scoped-registry-list.d.ts +0 -14
- package/dist/tools/package/scoped-registry-list.js +0 -22
- package/dist/tools/package/scoped-registry-list.js.map +0 -1
- package/dist/tools/package/search.d.ts +0 -17
- package/dist/tools/package/search.js +0 -39
- package/dist/tools/package/search.js.map +0 -1
- package/dist/tools/package/status.d.ts +0 -21
- package/dist/tools/package/status.js +0 -37
- package/dist/tools/package/status.js.map +0 -1
- package/dist/tools/tools/describe.d.ts +0 -27
- package/dist/tools/tools/describe.js +0 -35
- package/dist/tools/tools/describe.js.map +0 -1
- package/dist/tools/tools/group-list.d.ts +0 -16
- package/dist/tools/tools/group-list.js +0 -38
- package/dist/tools/tools/group-list.js.map +0 -1
- package/dist/tools/tools/group.d.ts +0 -13
- package/dist/tools/tools/group.js +0 -34
- package/dist/tools/tools/group.js.map +0 -1
- package/dist/tools/tools/pagination.d.ts +0 -17
- package/dist/tools/tools/pagination.js +0 -28
- package/dist/tools/tools/pagination.js.map +0 -1
- package/dist/tools/tools/search.d.ts +0 -15
- package/dist/tools/tools/search.js +0 -42
- package/dist/tools/tools/search.js.map +0 -1
- package/unitypkg/Editor/Tools/diagnose/preflight.cs +0 -269
- package/unitypkg/Editor/Tools/editor/console.cs +0 -26
- package/unitypkg/Editor/Tools/extension/status.cs +0 -87
- package/unitypkg/Editor/Tools/go/inspect.cs +0 -49
- package/unitypkg/Editor/Tools/graphics/pipeline-quality.cs +0 -24
- package/unitypkg/Editor/Tools/graphics/probe-positions.cs +0 -58
- package/unitypkg/Editor/Tools/graphics/settings.cs +0 -104
- package/unitypkg/Editor/Tools/graphics/stats-counters.cs +0 -28
- package/unitypkg/Editor/Tools/graphics/stats-memory.cs +0 -21
- package/unitypkg/Editor/Tools/instances/list.cs +0 -71
- package/unitypkg/Editor/Tools/physics/raycast-all.cs +0 -67
- package/unitypkg/Editor/Tools/scene/build-settings.cs +0 -69
- package/unitypkg/Editor/Tools/scene/data.cs +0 -125
- package/unitypkg/Editor/Tools/tests/list.cs +0 -98
|
@@ -36,11 +36,12 @@ namespace UnityCli
|
|
|
36
36
|
private static string lastRegistrationSignature;
|
|
37
37
|
private static long listenerGeneration;
|
|
38
38
|
private static long publicationSequence;
|
|
39
|
-
private static
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
private static readonly UnityCliInstancePublicationRetry RegistryPublicationRetry = new UnityCliInstancePublicationRetry(
|
|
40
|
+
RegistryPublicationMaxAttempts,
|
|
41
|
+
() => EditorApplication.timeSinceStartup,
|
|
42
|
+
PublishInstanceForRetry,
|
|
43
|
+
RegistryPublicationRetryDelaySeconds,
|
|
44
|
+
WriteLog);
|
|
44
45
|
|
|
45
46
|
/// <summary>当前 listener generation 只用于 transport attestation 与 registry 内部一致性校验。</summary>
|
|
46
47
|
private static long CurrentListenerGeneration()
|
|
@@ -278,80 +279,43 @@ namespace UnityCli
|
|
|
278
279
|
}
|
|
279
280
|
|
|
280
281
|
/// <summary>请求当前状态发布;已有失败链只更新最新状态,不创建第二条重试链。</summary>
|
|
281
|
-
private static
|
|
282
|
+
private static InstancePublicationRetryOutcome RegisterInstance(string requestedState)
|
|
282
283
|
{
|
|
283
|
-
|
|
284
|
-
if (registryPublicationRetryPending)
|
|
285
|
-
{
|
|
286
|
-
pendingRegistryRequestedState = requestedState;
|
|
287
|
-
return false;
|
|
288
|
-
}
|
|
289
|
-
return AttemptInstancePublication(requestedState);
|
|
284
|
+
return RegistryPublicationRetry.Request(requestedState);
|
|
290
285
|
}
|
|
291
286
|
|
|
292
|
-
/// <summary>中央update
|
|
293
|
-
private static
|
|
287
|
+
/// <summary>中央update入口推进唯一重试链;首次publication结果由Bridge gate继续处理。</summary>
|
|
288
|
+
private static InstancePublicationRetryOutcome TickInstancePublicationRetry()
|
|
294
289
|
{
|
|
295
|
-
if (!
|
|
296
|
-
|
|
297
|
-
var requestedState = pendingRegistryRequestedState;
|
|
298
|
-
registryPublicationRetryPending = false;
|
|
299
|
-
pendingRegistryRequestedState = null;
|
|
300
|
-
AttemptInstancePublication(string.IsNullOrEmpty(requestedState) ? "ready" : requestedState);
|
|
290
|
+
if (!started || domainReloading) return InstancePublicationRetryOutcome.None;
|
|
291
|
+
return RegistryPublicationRetry.Tick();
|
|
301
292
|
}
|
|
302
293
|
|
|
303
294
|
/// <summary>listener停止或domain结束时清空本次启动的重试状态。</summary>
|
|
304
295
|
private static void CancelInstancePublicationRetry()
|
|
305
296
|
{
|
|
306
|
-
|
|
307
|
-
registryPublicationRetryExhausted = false;
|
|
308
|
-
registryPublicationAttemptCount = 0;
|
|
309
|
-
nextRegistryPublicationRetryAt = 0;
|
|
310
|
-
pendingRegistryRequestedState = null;
|
|
297
|
+
RegistryPublicationRetry.Reset();
|
|
311
298
|
}
|
|
312
299
|
|
|
313
|
-
|
|
314
|
-
private static bool AttemptInstancePublication(string requestedState)
|
|
300
|
+
private static InstancePublicationAttempt PublishInstanceForRetry(string requestedState)
|
|
315
301
|
{
|
|
316
302
|
Exception failure;
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
var recoveredAttempts = registryPublicationAttemptCount;
|
|
320
|
-
CancelInstancePublicationRetry();
|
|
321
|
-
if (recoveredAttempts > 0)
|
|
322
|
-
WriteLog("instance_publication_retry_succeeded attempts=" + (recoveredAttempts + 1).ToString(CultureInfo.InvariantCulture));
|
|
323
|
-
return true;
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
registryPublicationAttemptCount += 1;
|
|
327
|
-
var failureKind = RegistryPublicationFailureKind(failure);
|
|
328
|
-
var retryable = IsRetryableRegistryPublicationFailure(failure);
|
|
329
|
-
WriteLog("instance_register_failed kind=" + failureKind + " retryable=" + (retryable ? "true" : "false") + " attempt=" + registryPublicationAttemptCount.ToString(CultureInfo.InvariantCulture));
|
|
330
|
-
if (!retryable || registryPublicationAttemptCount >= RegistryPublicationMaxAttempts)
|
|
331
|
-
{
|
|
332
|
-
registryPublicationRetryPending = false;
|
|
333
|
-
registryPublicationRetryExhausted = true;
|
|
334
|
-
pendingRegistryRequestedState = null;
|
|
335
|
-
WriteLog("instance_publication_retry_stopped kind=" + failureKind + " attempts=" + registryPublicationAttemptCount.ToString(CultureInfo.InvariantCulture) + " nextAction=restore-data-root-write-access-then-reload-domain");
|
|
336
|
-
return false;
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
pendingRegistryRequestedState = requestedState;
|
|
340
|
-
registryPublicationRetryPending = true;
|
|
341
|
-
nextRegistryPublicationRetryAt = EditorApplication.timeSinceStartup + RegistryPublicationRetryDelaySeconds(registryPublicationAttemptCount);
|
|
342
|
-
return false;
|
|
303
|
+
var result = TryRegisterInstance(requestedState, out failure);
|
|
304
|
+
return new InstancePublicationAttempt(result, IsRetryableRegistryPublicationFailure(failure), RegistryPublicationFailureKind(failure));
|
|
343
305
|
}
|
|
344
306
|
|
|
345
|
-
/// <summary>写入或更新当前editor session claim
|
|
346
|
-
private static
|
|
307
|
+
/// <summary>写入或更新当前editor session claim;stale CAS与写入失败必须保持可区分。</summary>
|
|
308
|
+
private static RegistryPublicationResult TryRegisterInstance(string requestedState, out Exception failure)
|
|
347
309
|
{
|
|
348
310
|
failure = null;
|
|
349
|
-
// AutoStart=false不即时停当前domain,但compile/reload
|
|
311
|
+
// AutoStart=false不即时停当前domain,但compile/reload边界开始后旧listener必须按stale结果退出。
|
|
350
312
|
if (!UnityCliProjectSettings.Current.BridgeAutoStart
|
|
351
|
-
&& (domainReloading || EditorApplication.isCompiling || EditorApplication.isUpdating))
|
|
313
|
+
&& (domainReloading || EditorApplication.isCompiling || EditorApplication.isUpdating))
|
|
314
|
+
return RegistryPublicationResult.StaleSkipped;
|
|
352
315
|
try
|
|
353
316
|
{
|
|
354
317
|
string recoveryReason = null;
|
|
318
|
+
var publicationResult = RegistryPublicationResult.Written;
|
|
355
319
|
WithRegistryMutex(() =>
|
|
356
320
|
{
|
|
357
321
|
var registry = ReadCurrentRegistryForPublication(out recoveryReason);
|
|
@@ -361,6 +325,7 @@ namespace UnityCli
|
|
|
361
325
|
var nextSequence = Interlocked.Increment(ref publicationSequence);
|
|
362
326
|
if (IsStalePublication(previous, listenerGeneration, nextSequence))
|
|
363
327
|
{
|
|
328
|
+
publicationResult = RegistryPublicationResult.StaleSkipped;
|
|
364
329
|
WriteLog("instance_publication_skipped_stale session=" + EditorSessionId() + " generation=" + listenerGeneration.ToString(CultureInfo.InvariantCulture) + " sequence=" + nextSequence.ToString(CultureInfo.InvariantCulture));
|
|
365
330
|
return;
|
|
366
331
|
}
|
|
@@ -370,9 +335,10 @@ namespace UnityCli
|
|
|
370
335
|
var data = RegistryData(revision, sessions);
|
|
371
336
|
WriteRegistryTextAtomically(InstancePath(), UnityCliSerializer.Serialize(data) + "\n");
|
|
372
337
|
});
|
|
338
|
+
if (publicationResult != RegistryPublicationResult.Written) return publicationResult;
|
|
373
339
|
if (!string.IsNullOrEmpty(recoveryReason))
|
|
374
340
|
WriteLog("instance_registry_recovered reason=" + recoveryReason + " id=" + InstanceId());
|
|
375
|
-
// Registry是低频publication,不是heartbeat
|
|
341
|
+
// Registry是低频publication,不是heartbeat;只有实际写入才更新signature与触发清理。
|
|
376
342
|
var registrationSignature = NormalizeSessionLifecycle(requestedState) + "|" + ListenerId + "|" + listenerGeneration.ToString(CultureInfo.InvariantCulture);
|
|
377
343
|
if (!string.Equals(registrationSignature, lastRegistrationSignature, StringComparison.Ordinal))
|
|
378
344
|
{
|
|
@@ -380,12 +346,12 @@ namespace UnityCli
|
|
|
380
346
|
WriteLog("instance_registered id=" + InstanceId() + " session=" + EditorSessionId() + " lifecycle=" + NormalizeSessionLifecycle(requestedState) + " listenerId=" + ListenerId + " generation=" + listenerGeneration.ToString(CultureInfo.InvariantCulture));
|
|
381
347
|
}
|
|
382
348
|
TryRunAutomaticInstanceCleanup();
|
|
383
|
-
return
|
|
349
|
+
return RegistryPublicationResult.Written;
|
|
384
350
|
}
|
|
385
351
|
catch (Exception exception)
|
|
386
352
|
{
|
|
387
353
|
failure = exception;
|
|
388
|
-
return
|
|
354
|
+
return RegistryPublicationResult.Failed;
|
|
389
355
|
}
|
|
390
356
|
}
|
|
391
357
|
|
|
@@ -496,13 +462,51 @@ namespace UnityCli
|
|
|
496
462
|
&& string.Equals(ReadString(identity, "canonicalProjectPath"), ProjectIdentity().CanonicalProjectPath, StringComparison.Ordinal);
|
|
497
463
|
}
|
|
498
464
|
|
|
465
|
+
/// <summary>端口监听前冻结本domain唯一generation;网络接收与queue publication都只能发生在其后。</summary>
|
|
466
|
+
private static void PrepareListenerGenerationForStart()
|
|
467
|
+
{
|
|
468
|
+
if (listenerGeneration > 0) return;
|
|
469
|
+
WithRegistryMutex(() =>
|
|
470
|
+
{
|
|
471
|
+
string ignored;
|
|
472
|
+
EnsureListenerGeneration(ReadCurrentRegistryForPublication(out ignored));
|
|
473
|
+
});
|
|
474
|
+
if (listenerGeneration <= 0) throw new InvalidOperationException("Listener generation could not be established before startup.");
|
|
475
|
+
}
|
|
476
|
+
|
|
499
477
|
/// <summary>读取当前 session 上一次 listener 代次;domain reload 后严格递增。</summary>
|
|
500
478
|
private static void EnsureListenerGeneration(Dictionary<string, object> registry)
|
|
501
479
|
{
|
|
502
480
|
if (listenerGeneration > 0) return;
|
|
503
481
|
var previous = ReadSessions(registry).FirstOrDefault(IsCurrentSession);
|
|
504
482
|
var listener = ReadDictionary(previous, "listener");
|
|
505
|
-
listenerGeneration =
|
|
483
|
+
listenerGeneration = ComputeListenerGeneration(listenerGeneration, ReadLong(listener, "generation"));
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
private static long ComputeListenerGeneration(long currentGeneration, long previousGeneration)
|
|
487
|
+
{
|
|
488
|
+
return currentGeneration > 0 ? currentGeneration : Math.Max(1L, previousGeneration + 1L);
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
internal static long ComputeListenerGenerationForTests(long currentGeneration, long previousGeneration)
|
|
492
|
+
{
|
|
493
|
+
return ComputeListenerGeneration(currentGeneration, previousGeneration);
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
internal static RegistryPublicationResult RegistryPublicationResultForTests(
|
|
497
|
+
long previousGeneration,
|
|
498
|
+
long previousSequence,
|
|
499
|
+
long generation,
|
|
500
|
+
long sequence)
|
|
501
|
+
{
|
|
502
|
+
var previous = new Dictionary<string, object>
|
|
503
|
+
{
|
|
504
|
+
{ "publicationSequence", previousSequence },
|
|
505
|
+
{ "listener", new Dictionary<string, object> { { "generation", previousGeneration } } }
|
|
506
|
+
};
|
|
507
|
+
return IsStalePublication(previous, generation, sequence)
|
|
508
|
+
? RegistryPublicationResult.StaleSkipped
|
|
509
|
+
: RegistryPublicationResult.Written;
|
|
506
510
|
}
|
|
507
511
|
|
|
508
512
|
/// <summary>供 deterministic port 选择读取本 session 的 previous actual port。</summary>
|
|
@@ -565,7 +569,7 @@ namespace UnityCli
|
|
|
565
569
|
{ "blockers", new List<object>() },
|
|
566
570
|
{ "unityVersion", Application.unityVersion },
|
|
567
571
|
{ "buildStamp", BridgeBuildStamp() },
|
|
568
|
-
{ "toolCatalogFingerprint",
|
|
572
|
+
{ "toolCatalogFingerprint", ProjectToolCatalogSnapshotReader.Read().ToolCatalogFingerprint }
|
|
569
573
|
};
|
|
570
574
|
return session;
|
|
571
575
|
}
|
|
@@ -710,5 +714,139 @@ namespace UnityCli
|
|
|
710
714
|
return new Dictionary<string, object> { { "isPlaying", EditorApplication.isPlaying }, { "isPaused", EditorApplication.isPaused }, { "isPlayingOrWillChangePlaymode", EditorApplication.isPlayingOrWillChangePlaymode } };
|
|
711
715
|
}
|
|
712
716
|
}
|
|
717
|
+
|
|
718
|
+
internal enum RegistryPublicationResult
|
|
719
|
+
{
|
|
720
|
+
Written,
|
|
721
|
+
StaleSkipped,
|
|
722
|
+
Failed
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
internal enum InstancePublicationRetryOutcome
|
|
726
|
+
{
|
|
727
|
+
None,
|
|
728
|
+
Pending,
|
|
729
|
+
Written,
|
|
730
|
+
StaleSkipped,
|
|
731
|
+
PermanentFailure
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
internal sealed class InstancePublicationAttempt
|
|
735
|
+
{
|
|
736
|
+
internal InstancePublicationAttempt(RegistryPublicationResult result, bool retryable, string failureKind)
|
|
737
|
+
{
|
|
738
|
+
Result = result;
|
|
739
|
+
Retryable = retryable;
|
|
740
|
+
FailureKind = string.IsNullOrEmpty(failureKind) ? "unknown" : failureKind;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
internal RegistryPublicationResult Result { get; private set; }
|
|
744
|
+
internal bool Retryable { get; private set; }
|
|
745
|
+
internal string FailureKind { get; private set; }
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
/// <summary>同domain registry publication的单链有界重试;clock与writer均为显式依赖。</summary>
|
|
749
|
+
internal sealed class UnityCliInstancePublicationRetry
|
|
750
|
+
{
|
|
751
|
+
private readonly int maxAttempts;
|
|
752
|
+
private readonly Func<double> now;
|
|
753
|
+
private readonly Func<string, InstancePublicationAttempt> publish;
|
|
754
|
+
private readonly Func<int, double> retryDelay;
|
|
755
|
+
private readonly Action<string> log;
|
|
756
|
+
private bool pending;
|
|
757
|
+
private bool exhausted;
|
|
758
|
+
private int attemptCount;
|
|
759
|
+
private double nextRetryAt;
|
|
760
|
+
private string pendingState;
|
|
761
|
+
|
|
762
|
+
internal UnityCliInstancePublicationRetry(
|
|
763
|
+
int maxAttempts,
|
|
764
|
+
Func<double> now,
|
|
765
|
+
Func<string, InstancePublicationAttempt> publish,
|
|
766
|
+
Func<int, double> retryDelay,
|
|
767
|
+
Action<string> log)
|
|
768
|
+
{
|
|
769
|
+
if (maxAttempts < 1 || now == null || publish == null || retryDelay == null || log == null)
|
|
770
|
+
throw new ArgumentException("Instance publication retry dependencies are incomplete.");
|
|
771
|
+
this.maxAttempts = maxAttempts;
|
|
772
|
+
this.now = now;
|
|
773
|
+
this.publish = publish;
|
|
774
|
+
this.retryDelay = retryDelay;
|
|
775
|
+
this.log = log;
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
internal bool Pending { get { return pending; } }
|
|
779
|
+
internal bool Exhausted { get { return exhausted; } }
|
|
780
|
+
internal int AttemptCount { get { return attemptCount; } }
|
|
781
|
+
|
|
782
|
+
internal InstancePublicationRetryOutcome Request(string requestedState)
|
|
783
|
+
{
|
|
784
|
+
if (string.IsNullOrEmpty(requestedState)) throw new ArgumentException("Requested registry state is required.", "requestedState");
|
|
785
|
+
if (exhausted) return InstancePublicationRetryOutcome.PermanentFailure;
|
|
786
|
+
if (pending)
|
|
787
|
+
{
|
|
788
|
+
pendingState = requestedState;
|
|
789
|
+
return InstancePublicationRetryOutcome.Pending;
|
|
790
|
+
}
|
|
791
|
+
return Attempt(requestedState);
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
internal InstancePublicationRetryOutcome Tick()
|
|
795
|
+
{
|
|
796
|
+
if (!pending || exhausted || now() < nextRetryAt) return InstancePublicationRetryOutcome.None;
|
|
797
|
+
var requestedState = string.IsNullOrEmpty(pendingState) ? "ready" : pendingState;
|
|
798
|
+
pending = false;
|
|
799
|
+
pendingState = null;
|
|
800
|
+
return Attempt(requestedState);
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
internal void Reset()
|
|
804
|
+
{
|
|
805
|
+
pending = false;
|
|
806
|
+
exhausted = false;
|
|
807
|
+
attemptCount = 0;
|
|
808
|
+
nextRetryAt = 0;
|
|
809
|
+
pendingState = null;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
private InstancePublicationRetryOutcome Attempt(string requestedState)
|
|
813
|
+
{
|
|
814
|
+
var result = publish(requestedState);
|
|
815
|
+
if (result == null) throw new InvalidOperationException("Registry publication boundary returned no result.");
|
|
816
|
+
if (result.Result == RegistryPublicationResult.Written)
|
|
817
|
+
{
|
|
818
|
+
var recoveredAttempts = attemptCount;
|
|
819
|
+
Reset();
|
|
820
|
+
if (recoveredAttempts > 0)
|
|
821
|
+
log("instance_publication_retry_succeeded attempts=" + (recoveredAttempts + 1).ToString(CultureInfo.InvariantCulture));
|
|
822
|
+
return InstancePublicationRetryOutcome.Written;
|
|
823
|
+
}
|
|
824
|
+
if (result.Result == RegistryPublicationResult.StaleSkipped)
|
|
825
|
+
{
|
|
826
|
+
Reset();
|
|
827
|
+
return InstancePublicationRetryOutcome.StaleSkipped;
|
|
828
|
+
}
|
|
829
|
+
if (result.Result != RegistryPublicationResult.Failed)
|
|
830
|
+
throw new InvalidOperationException("Registry publication attempt returned an unknown result.");
|
|
831
|
+
|
|
832
|
+
attemptCount += 1;
|
|
833
|
+
log("instance_register_failed kind=" + result.FailureKind + " retryable=" + (result.Retryable ? "true" : "false")
|
|
834
|
+
+ " attempt=" + attemptCount.ToString(CultureInfo.InvariantCulture));
|
|
835
|
+
if (!result.Retryable || attemptCount >= maxAttempts)
|
|
836
|
+
{
|
|
837
|
+
pending = false;
|
|
838
|
+
exhausted = true;
|
|
839
|
+
pendingState = null;
|
|
840
|
+
log("instance_publication_retry_stopped kind=" + result.FailureKind + " attempts=" + attemptCount.ToString(CultureInfo.InvariantCulture)
|
|
841
|
+
+ " nextAction=restore-data-root-write-access-then-reload-domain");
|
|
842
|
+
return InstancePublicationRetryOutcome.PermanentFailure;
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
pendingState = requestedState;
|
|
846
|
+
pending = true;
|
|
847
|
+
nextRetryAt = now() + retryDelay(attemptCount);
|
|
848
|
+
return InstancePublicationRetryOutcome.Pending;
|
|
849
|
+
}
|
|
850
|
+
}
|
|
713
851
|
}
|
|
714
852
|
#endif
|
|
@@ -16,11 +16,10 @@ namespace UnityCli
|
|
|
16
16
|
{
|
|
17
17
|
return new List<object> {
|
|
18
18
|
CapabilityData("camera", CameraCommands), CapabilityData("scene", SceneCommands), CapabilityData("go", GameObjectCommands), CapabilityData("asset", AssetCommands),
|
|
19
|
-
CapabilityData("
|
|
19
|
+
CapabilityData("screenshot", ScreenshotCommands), CapabilityData("prefab", PrefabCommands), CapabilityData("ui", UiCommands),
|
|
20
20
|
CapabilityData("material", MaterialCommands), CapabilityData("graphics", GraphicsCommands), CapabilityData("physics", PhysicsCommands), CapabilityData("scriptable-object", ScriptableObjectCommands),
|
|
21
21
|
CapabilityData("profiler", ProfilerCommands), CapabilityData("animation", AnimationCommands), CapabilityData("shader", ShaderCommands), CapabilityData("texture", TextureCommands),
|
|
22
|
-
CapabilityData("editor", EditorCommands), CapabilityData("code", CodeCommands), CapabilityData("project-tool", ProjectToolCommands), CapabilityData("runtime-tool", RuntimeToolCommands)
|
|
23
|
-
CapabilityData("extension", ExtensionCommands)
|
|
22
|
+
CapabilityData("editor", EditorCommands), CapabilityData("code", CodeCommands), CapabilityData("project-tool", ProjectToolCommands), CapabilityData("runtime-tool", RuntimeToolCommands)
|
|
24
23
|
};
|
|
25
24
|
}
|
|
26
25
|
|