Tags: niqibiao/unity-csharpconsole
Tags
fix: improve refresh reliability and bump version to 1.3.1 Refresh lifecycle improvements: - Split TriggerRefresh into targeted (changedFiles) and full modes - Targeted mode uses ImportAsset per file + RequestScriptCompilation only when .cs files are present - Full mode activates editor window via SetForegroundWindow to flush OS file-watcher queue before AssetDatabase.Refresh - Schedule TriggerRefresh via MainThreadRequestRunner.Post instead of EditorApplication.delayCall for thread safety from HTTP handlers - Add safety timeout for Requested phase to prevent infinite hang - Add grace period before declaring compilation-less completion - Support changedFiles parameter in RefreshRequest contract Version bump: - package.json: 1.3.0 → 1.3.1 - ConsoleServiceConfig.PackageVersion: 1.3.0 → 1.3.1 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: add prefab asset commands, DontDestroyOnLoad support, and bug f… …ixes (v1.3.0) Add 9 new prefab asset-level commands for direct prefab editing without instantiation, fix DontDestroyOnLoad object visibility across all GameObject commands, and resolve several runtime/startup bugs. New prefab asset commands: - prefab/asset_hierarchy: read prefab internal hierarchy tree - prefab/asset_get: get detailed info about a GameObject in a prefab - prefab/asset_get_component: read serialized properties of a component - prefab/asset_modify_component: modify component fields and auto-save - prefab/asset_add_component: add component to prefab GameObject - prefab/asset_remove_component: remove component from prefab GameObject - prefab/asset_modify_gameobject: modify GO properties (name/tag/layer/active) - prefab/asset_add_gameobject: add child GameObject to prefab - prefab/asset_remove_gameobject: remove child GameObject from prefab DontDestroyOnLoad support: - gameobject/find now searches DontDestroyOnLoad scene in play mode - FindByPath falls back to DontDestroyOnLoad roots - scene/hierarchy includes dontDestroyOnLoadRoots in response Bug fixes: - Service startup now writes refresh_state.json immediately so direct launch discovery works without waiting for a refresh cycle - /reload now clears _RUNTIME_DEFINE_LINE_OVERRIDE so runtime defines are re-read from file instead of using stale cached values - /reload restores original local runtime_defines_path to prevent remote compile server paths from persisting after cache reset - Allow exiting playmode while editor is compiling Breaking changes: - selection.get response changed from instanceIds[]+assetPaths[] to objects[] with name, typeName, assetPath, hierarchyPath per object - scene/hierarchy response adds dontDestroyOnLoadRoots field Refactoring: - Extract SerializedPropertyToString, TrySetSerializedProperty, PropertyInfo, and FieldPair from ComponentCommandActions to CommandHelpers for reuse - Add LoadPrefabAsset, ResolvePrefabGameObject, GetPrefabRelativePath helpers to CommandHelpers Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: command framework cleanup and cross-repo optimization pass Part 1 — Command framework refactor: - Clean up command framework and fix handler bugs Part 2 — Cross-repo optimization: - Tuple keys in ReplServiceRegistry to prevent session key collision - Main-thread reentrance detection to prevent deadlock - Command discovery retry with 10s cooldown - Health endpoint version info (packageVersion, protocolVersion, unityVersion) - /batch endpoint for sequential multi-command execution - List<T> parameter support in command argument binding - Configurable timeouts via ConsoleServiceConfig - Session idle expiry (6h) in ReplServiceRegistry - /refresh endpoint PlayMode integration (fire-and-forget) - Consolidate transport_http.py post functions - Extract timeout constants in client_base.py - Use type constants in response_parser.py - Add repository, keywords, bugs to package.json Part 3 — Bug fixes & improvements: - Support positional arguments in command parser - Rename hyphenated commands to underscores (scene_view, game_view, set_parent) - Thread-safe timestamps via Stopwatch (ServiceTimestamp) - EvictIdleSessions: snapshot collection before iterating - exitPlayModeRequested: fire-and-forget semantics - Updated README, README_zh, ExtendingCommands docs