Files
Fishing2/Packages/cn.tuanjie.codely.bridge/CHANGELOG.md
2026-03-09 17:50:20 +08:00

21 KiB

Changelog

All notable changes to Codely Bridge will be documented in this file.

[1.0.23] - 2026-02-25

Changed

  • UI
    • Codely bridge 页面改版

[1.0.22] - 2026-02-11

Enhanced

  • ExecuteCSharpScript
    • Added Unity.InputSystem assembly support for C# script execution
    • Scripts can now access Input System types and APIs when the package is installed

[1.0.21] - 2026-02-06

Changed

  • Batch Operations Refactoring
    • Split generic batch action into two distinct operations: create_batch for write-only deterministic sequences and edit_batch for search-then-write edits
    • Added HandleCreateBatch method for write-only deterministic batch operations
    • Added HandleEditBatch method for search-then-write batch operations with captureAs support
    • Improved code clarity and prevented mixed read/write batch states
    • Maintained parity with TypeScript client schema
    • Added backward compatibility aliases for snake_case to camelCase parameters
    • Updated ValidActions list to include new batch operation types
    • Updated writeActions array to include new batch operations for state validation

Enhanced

  • ManageAsset

    • Enhanced batch operation handling with clearer separation of concerns
    • Improved parameter naming consistency with backward compatibility support
  • ManageGameObject

    • Enhanced batch operation handling with clearer separation of concerns
    • Improved parameter naming consistency with backward compatibility support

Test Coverage

  • Updated unity_asset_full_coverage.md to reflect new batch operations
  • Updated unity_gameobject_full_coverage.md to reflect new batch operations
  • Updated unity_workflow_full_coverage.md with refined batch operation workflows
  • Updated Tests/Coverage/README.md documentation

[1.0.20] - 2026-02-05

Fixed

  • TCP Port Management on macOS
    • Disabled ReuseAddress socket option on macOS in PortManager.cs

[1.0.19] - 2026-02-04

Fixed

  • TCP Port Management on macOS
    • Disabled ReuseAddress socket option on macOS to prevent multiple Unity instances from listening on the same port
    • Ensures proper port exclusivity across Unity Editor instances

[1.0.18] - 2026-02-04

Fixed

  • TCP Connection Reliability
    • Add LingerState to test listener to send RST on close (same as actual listener)
    • Increase immediate retry attempts from 3 to 5
    • Increase retry sleep time from 75ms to 150ms
    • Extend wait time on Windows from 100ms to 500ms to allow TCP port full release

[1.0.17] - 2026-02-03

Fixed

  • Revert IPV6 Loopback Support

[1.0.16] - 2026-02-03

Added

  • C# Script Execution
    • New ExecuteCSharpScript tool for executing arbitrary C# code at runtime using Microsoft.CodeAnalysis.CSharp.Scripting (Roslyn compiler services)
    • Captures and returns Unity console logs during script execution
    • Supports custom using directives and assembly references
    • Enables dynamic C# code execution without requiring editor restart or recompilation
    • Added bundled Roslyn assemblies: Codely.Microsoft.CodeAnalysis.dll, Codely.Microsoft.CodeAnalysis.CSharp.dll, Codely.Microsoft.CodeAnalysis.Scripting.dll, Codely.Microsoft.CodeAnalysis.CSharp.Scripting.dll
    • Added supporting assemblies: Codely.System.Collections.Immutable.dll, Codely.System.Reflection.Metadata.dll, Codely.System.Runtime.CompilerServices.Unsafe.dll

Fixed

  • UnityTcpBridge
    • Reverted accidental handshake string change that broke package functionality (changed from incorrect 'WELCOME UNITY-TCP 1 FRAMING=1' back to correct 'WELCOME Codely-Bridge 1 FRAMING=1')
  • Add IPV6 Loopback Support

Changed

  • Branding & Menu Structure

    • Renamed "Unity TCP" to "Codely Bridge" across logging and port management
    • Simplified menu structure: removed redundant menu items and kept only "Window/Codely Bridge/Control Window"
    • Updated menu organization for better user experience
  • CI/CD

    • Updated register_version job rules in CI pipeline

[1.0.15] - 2026-01-29

Changed

  • ManageScreenshot

    • Simplified screenshot API: removed redundant capture_game_view action; its behavior is now covered by the unified capture action
    • capture action now consistently uses GameView reflection to capture what the user sees in both edit and play modes
    • Removed redundant FlipTextureVertically call and related comments for clearer, more maintainable code
  • Package Publishing

    • Updated .npmignore to include Tests/ directory in the published npm package so consumers can run and extend the test suite

Fixed

  • Screenshot Capture
    • Fixed vertical flip of textures captured from RenderTexture so screenshots match on-screen orientation

Test Coverage

  • Updated unity_screenshot_full_coverage.md and Tests/Coverage/README.md to reflect the simplified screenshot API and current test structure

[1.0.14] - 2026-01-22

Changed

  • Dependency Management

    • Swapped to bundled Codely.Newtonsoft.Json.dll in Plugins/ directory instead of external Newtonsoft.Json package
    • Removed external Newtonsoft.Json dependency from package.json
    • Updated all code references to use bundled Newtonsoft.Json assembly
  • Architecture

    • Moved runtime implementation code from Runtime/ to Editor/ scope to align with Unity usage patterns

Added

  • Package Publishing

    • Added .npmignore file to exclude unwanted files from npm publication
    • Excludes CI/CD configuration, build artifacts, Git metadata, IDE files, and test directories
    • Ensures only essential code and documentation are published to npm registry
  • CI/CD Pipeline

    • Added automated npm pack and TOS (Tencent Object Storage) upload steps to deployment pipelines
    • Added backup version (1.0.0) upload for both staging and production environments
    • Improved deployment reliability with fallback version availability

[1.0.13] - 2026-01-20

Fixed

  • Test Assembly Dependencies
    • Fixed missing Newtonsoft.Json.dll reference in UnityTcp.Editor.Tests.asmdef
    • Added com.unity.ext.nunit package dependency to package.json for proper NUnit framework support
    • Ensures test assembly can properly reference required dependencies for compilation

[1.0.12] - 2026-01-19

Added

  • ManageGameObject
    • Added list_children action for listing GameObject children with configurable depth
    • Support for three result modes: auto (default), inline, and file
    • Automatic fallback to file output when hierarchy exceeds maxInlineItems threshold (default: 200)
    • Depth-limited traversal with depth parameter (default: 1 for direct children)
    • includeInactive parameter to control whether inactive GameObjects are included
    • Iterative tree building to avoid stack overflow on deep hierarchies
    • JSON streaming to file for large results to prevent memory issues
    • New helper methods: CountDescendantsUpToDepth, BuildChildrenTreeIterative, WriteChildrenTreeIterative

Enhanced

  • ManageScene

    • Improved large scene hierarchy handling (>500 GameObjects)
    • Returns shallow root-only tree with hints instead of error when scene is too large
    • Changed CountGameObjectsRecursive to use iterative traversal (stack-based) to avoid stack overflow on deep hierarchies
    • Better user guidance for drilling down into large hierarchies incrementally
  • Coverage Tools

    • Added CodelyUnityCoverageTools class for E2E test utilities
    • New codely.generate_large_hierarchy custom tool for quickly generating test hierarchies
    • Configurable generation parameters: root name, child/grandchild prefixes, and counts

Test Coverage

  • Added unity_large_hierarchy_e2e_coverage.md with 152 lines of E2E test scenarios for large hierarchy handling
  • Updated unity_gameobject_full_coverage.md with list_children action coverage
  • Updated unity_scene_full_coverage.md with improved large scene handling coverage

[1.0.11] - 2026-01-13

Added

  • Tuanjie Editor Scene File Support
    • Added support for .scene file extension used by Tuanjie Editor
    • Implemented extension-aware scene path handling in ManageScene
    • Support both .unity (Unity Editor) and .scene (Tuanjie Editor) extensions based on editor type

Enhanced

  • UnityStateDirtyHook

    • Added .scene extension detection for scene file change tracking
    • Ensures proper state tracking for both Unity and Tuanjie editor scene files
  • Documentation

    • Improved documentation for scene file extension handling

[1.0.10] - 2026-01-12

Fixed

  • ManageGameObject

    • Updated default behavior for searchInactive parameter from false to true
    • Ensures inactive GameObjects are included in search results unless explicitly specified otherwise
  • UnityEngineObjectConverter

    • Added support for {"find":"...", "method":"..."} reference format in object deserialization
    • Fixed deserialization errors when encountering find instruction format used by MCP tools for dynamic GameObject lookups
    • Implemented delegate pattern to call ManageGameObject.FindObjectByInstruction from Runtime assembly without direct Editor assembly reference

[1.0.9] - 2026-01-05

Changed

  • Unity Project Metadata
    • Updated Unity project metadata GUIDs across all .meta files
    • Refreshed GUIDs in Editor, Runtime, and Tests directories

[1.0.8] - 2025-12-16

Enhanced

  • Compilation Tracking
    • Improved compilation error/warning count tracking with nullable integers
    • Changed CompilationHelper.GetCompilationErrors() and GetCompilationWarnings() to return int? instead of int
    • Updated GetCompilationSummary() to only include known values in result (removes misleading default 0 values)
    • Enhanced compilation result handling in ManageEditor to properly process nullable values
    • Improved type handling for compilation result payloads (supports both dictionary and anonymous object formats)
    • Added clarifying comments explaining why returning 0 for unknown counts is problematic
    • Better distinction between "0 errors/warnings" (validated) vs "unknown count" (not yet validated)

[1.0.7] - 2025-12-15

Changed

  • Package Renaming

    • Renamed package from com.unity.codely to cn.tuanjie.codely.bridge
    • Updated all internal references and documentation to reflect new package name
  • Branding Update

    • Renamed all menu item paths and labels in the Unity Editor

[1.0.6] - 2025-12-10

Added

  • Compilation Pipeline
    • New pipeline_kind: "compile" field for structured hints to downstream tools
    • requires_console_validation: true flag to guide compilation validation
    • Comprehensive integration test documentation for compilation pipeline policy
    • Enhanced play mode state synchronization with playMode field in responses

Enhanced

  • StateComposer

    • Simplified state reporting to focus on essential information (compiling vs idle)
    • Minimized state complexity with clear documentation directing users to specific diagnostic tools
  • ManageAsset

    • Improved AssetExists method with ghost asset detection
    • New BuildAssetNotFoundResponse for better error messaging about desync issues
    • Enhanced asset validation and error handling
  • Test Coverage

    • Added unity_compile_pipeline_integration.md with 152 lines of comprehensive test scenarios
    • Updated unity_editor_full_coverage.md with compilation pipeline requirements

[1.0.5] - 2025-12-04

Added

  • Test Coverage
    • Added comprehensive test coverage for ExecuteCustomTool functionality
    • UI Toolkit tools test coverage documentation and validation

Enhanced

  • ManageUIToolkit

    • Enhanced link_uss_to_uxml action with GUID support
    • Added ResolveAssetPath helper method for flexible path/GUID resolution
    • Improved parameter validation for mixed path/GUID usage
  • ManageShader

    • Enhanced ensure_material_shader_for_srp action with material_guid parameter support
    • Improved parameter handling for material identification via path or GUID
    • Better error messages for missing material parameters
  • CodelyUnityValidationTools

    • Added nested field path support in validate_response
    • Support for dot-notation field paths (e.g., "state.project.srp", "project.srp")
    • Automatic recursive field search when direct path fails
    • Enhanced field validation with path tracking and debugging
  • ManageBake

    • Refactored NavMesh operations to use runtime reflection
    • Improved AI Navigation package detection and type resolution
    • Better compatibility with optional AI Navigation package installation
    • Enhanced error handling for missing package scenarios

[1.0.4] - 2025-12-03

Added

  • Validation Tools Framework

    • New CodelyUnityValidationTools: 15+ validation helpers for automated testing
    • codely.validate_play_mode: Validate current editor PlayMode state
    • codely.validate_active_tool: Validate current active editor tool
    • codely.validate_not_compiling: Ensure editor is not compiling
    • codely.validate_tag_and_layer_exist: Verify Tag/Layer existence
    • codely.validate_window_open: Check editor window state
    • codely.validate_console_contains: Validate console messages with filter
    • codely.validate_console_count: Verify console message counts
    • codely.validate_active_scene: Validate active scene properties
    • codely.validate_scene_dirty: Check scene dirty state
    • codely.validate_hierarchy_root_count: Verify hierarchy root object count
    • codely.validate_gameobject_exists: Check GameObject existence
    • codely.validate_response: Generic response validation
  • Compilation Pipeline

    • CompilationHelper: New helper class for compilation status checking and error tracking
    • start_compilation_pipeline action in ManageEditor for standardized compile workflow
    • Block compilation during play mode to prevent editor errors
  • Test Coverage Documentation

    • Complete test coverage specs for all Unity tools
    • unity_editor_full_coverage.md: 24 actions coverage
    • unity_console_full_coverage.md: Console operations coverage
    • unity_scene_full_coverage.md: Scene management coverage
    • unity_gameobject_full_coverage.md: GameObject operations coverage
    • unity_asset_full_coverage.md: Asset management coverage
    • unity_script_full_coverage.md: Script management coverage
    • unity_shader_full_coverage.md: Shader operations coverage
    • unity_package_full_coverage.md: Package manager coverage
    • unity_menu_full_coverage.md: Menu execution coverage

Enhanced

  • State Management

    • State delta tracking added to async operation responses
    • Client state revision validation for all write operations
    • Enhanced console state tracking with since_token filtering
  • ManageEditor

    • Idempotent ensure_tag and ensure_layer operations
    • Extended with compilation pipeline integration
  • ManageAsset

    • Enhanced robustness with better error handling
  • ManageGameObject

    • Improved serialization with GameObjectSerializer enhancements
  • ReadConsole

    • Enhanced filtering with since_token support for incremental reads
  • ExecuteCustomTool

    • Improved tool registry with better parameter validation

Fixed

  • Improved Unity version compatibility across various tools

[1.0.3] - 2025-12-01

Added

  • State Management System

    • AsyncOperationTracker: Comprehensive async operation management with progress tracking and cancellation support
    • StateComposer: Full Unity state composition including scene, project, packages, and shaders
    • UnityStateDirtyHook: Automatic tracking of Unity Editor state changes (hierarchy, project, selection, console)
    • WriteGuard: Thread-safe write operation protection with main thread enforcement
    • New get_current_state endpoint for retrieving complete Unity state snapshots
  • New Unity Tools

    • ManageBake: Light baking controls (start, cancel, clear, status queries)
    • ManagePackage: Package manager operations with version pinning support (package@version syntax)
    • ManageUIToolkit: UI Toolkit template instantiation with automatic USS/C# generation
  • Custom Tool Execution Framework

    • ExecuteCustomTool: Reflection-based tool discovery and execution via [CustomTool] attribute
    • Automatic tool registry with parameter validation and error handling
    • Support for custom tools without modifying CommandRegistry
  • Enhanced Existing Tools

    • ManageEditor: Extended with state-aware operations and full state retrieval
    • ManageGameObject: Added find, query, parent/child operations, and component management
    • ManageAsset: New asset import, export, and metadata operations
    • ManageScene: Enhanced with scene creation and multi-scene management
    • ManageShader: Expanded with shader compilation, variant queries, and global property management
    • ReadConsole: Added scope-based console clearing and entry filtering

Enhanced

  • Response Helpers: New state-aware methods (SuccessWithDelta, SuccessWithState, Conflict) for better change tracking
  • CompilationHelper: Improved compilation workflow handling with better async integration
  • Test Coverage: Added unit tests for AsyncOperationTracker, StateComposer, and WriteGuard

[1.0.2] - 2025-11-11

Fixed

  • Unity Version Compatibility: Added conditional compilation in ManageGameObject.cs
    • Uses FindObjectsByType with FindObjectsInactive enum for Unity 2022.2+
    • Falls back to FindObjectsOfType for Unity 2021.3 and earlier
    • Resolves CS0246 error: FindObjectsInactive type not found on Unity 2021
    • Maintains backward compatibility across Unity versions

[1.0.1] - 2025-11-07

Fixed

  • 🐛 Fixed build compilation error
    • Corrected assembly definition configuration for UnityTcp.Editor.asmdef
    • Changed from platform exclusion list to explicit Editor platform inclusion
    • Ensures Editor assembly only compiles in Unity Editor, not in game builds
    • Resolves compilation errors during game packaging for all platforms

[1.0.0] - 2024-12-19

Major Refactoring

  • 🔄 Complete removal of MCP (Model Context Protocol) logic
    • Removed all MCP-specific components, tools, and protocol handling
    • Eliminated MCP server integration and HTTP server components
    • Removed MCP client models, configuration systems, and UI windows

New TCP-Focused Architecture

  • 🚀 Pure TCP Socket Implementation
    • New UnityTcpBridge class for TCP server management
    • Basic echo server implementation as starting point
    • Async/await patterns for non-blocking operations
    • Multi-client connection support with proper resource management

Core TCP Features

  • Port Management

    • Automatic port discovery and allocation
    • Project-specific port persistence
    • Smart port conflict resolution
    • Cross-platform compatibility
  • Connection Handling

    • TCP listener with automatic client acceptance
    • Configurable socket options (keep-alive, timeouts)
    • Graceful connection cleanup on shutdown
    • Unity lifecycle integration (assembly reload, editor quit)

Updated Components

  • Renamed Assemblies: UnityTcp.*UnityTcp.*
  • Updated Namespaces: All classes moved to UnityTcp.Editor.* namespace
  • Simplified Helpers: Kept only TCP-relevant utilities (PortManager, TcpLog)
  • Package Rebranding: Updated from "Unity MCP" to "Unity TCP Bridge"

Removed Components

  • All MCP protocol handling and message processing
  • MCP tool implementations (ManageScript, ManageAsset, etc.)
  • MCP UI windows and editor integrations
  • HTTP server and MCP server management
  • Telemetry and MCP-specific logging
  • Configuration builders and MCP client models

Technical Details

  • Architecture: Direct TCP socket server with customizable protocol handling
  • Performance: Lightweight implementation focused on TCP networking
  • Compatibility: Unity 2021.3+ with Newtonsoft.Json dependency
  • Protocol: Basic TCP with welcome handshake (easily customizable)

Migration Guide

This is a breaking change that removes all MCP functionality:

  1. Previous MCP Users: This package no longer provides MCP integration
  2. TCP Socket Users: Replace any UnityTcpBridge references with UnityTcpBridge
  3. Custom Protocols: Implement your protocol logic in HandleClientAsync method
  4. Port Management: Use PortManager for dynamic port allocation needs

Development Notes

  • Codebase reduced by ~80% by removing MCP complexity
  • Focus shifted to providing a clean TCP socket foundation
  • Easy to extend for custom networking protocols
  • Maintains Unity Editor integration for automatic lifecycle management

Previous Versions

Previous versions (1.x.x) included MCP (Model Context Protocol) integration which has been completely removed in this version.