Commit Graph

2 Commits (b57a2ece9dfbb2ddc030efced085aabf3a7d7818)

Author SHA1 Message Date
Marcus Sanatan bbf6cacfe2
Remove old UI and do lots of cleanup (#340)
* Remove legacy UI and correct priority ordering of menu items

* Remove old UI screen

Users now have the new UI alone, less confusing and more predictable

* Remove unused config files

* Remove test for window that doesn't exist

* Remove unused code

* Remove dangling .meta file

* refactor: remove client configuration step from setup wizard

* refactor: remove menu item attributes and manual window actions from Python tool sync

* feat: update minimum Python version requirement from 3.10 to 3.11

The docs have 3.12. However, feature wise it seems that 3.11 is required

* fix: replace emoji warning symbol with unicode character in setup wizard dialogs

* docs: reorganize images into docs/images directory and update references

* docs: add UI preview image to README

* docs: add run_test function and resources section to available tools list

The recent changes should close #311

* fix: add SystemRoot env var to Windows config to support Python path resolution

Closes #315

* refactor: consolidate package installation and detection into unified lifecycle manager

Duplicate code for pretty much no reason, as they both initialized there was a small chance of a race condition as well. Consolidating made sense here

* Doc fixes from CodeRabbit

* Excellent bug catch from CodeRabbit

* fix: preserve existing environment variables when updating codex server config

* Update docs so the paths match the original name

* style: fix list indentation in README-DEV.md development docs

* refactor: simplify env table handling in CodexConfigHelper by removing preservation logic

* refactor: simplify configuration logic by removing redundant change detection

Always overwrite configs

* feat: ensure config directory exists before writing config files

* feat: persist server installation errors and show retry UI instead of auto-marking as handled

* refactor: consolidate configuration helpers by merging McpConfigFileHelper into McpConfigurationHelper

* Small fixes from CodeRabbit

* Remove test because we overwrite Codex configs

* Remove unused function

* feat: improve server cleanup and process handling on Windows

- Added DeleteDirectoryWithRetry helper to handle Windows file locking with retries and readonly attribute clearing
- Implemented KillWindowsUvProcesses to safely terminate Python processes in virtual environments using WMIC
- Extended TryKillUvForPath to work on Windows, preventing file handle locks during server deletion
- Improved error messages to be more descriptive about file locking issues
- Replaced direct Directory.Delete calls with

* fix: improve TCP socket cleanup to prevent CLOSE_WAIT states

- Added proper socket shutdown sequence using Socket.Shutdown() before closing connections
- Enhanced error handling with specific catches for SocketException vs general exceptions
- Added debug logging for socket shutdown errors to help diagnose connection issues
- Restructured HandleClientAsync to ensure socket cleanup happens in the correct order
- Implemented proper socket teardown in both client handling and connection cleanup paths
2025-10-24 00:50:29 -04:00
Marcus Sanatan 1d6d8c67af
New UI and work without MCP server embedded (#313)
* First pass at new UI

* Point to new UI

* Refactor: New Service-Based MCP Editor Window Architecture

We separate the business logic from the UI rendering of the new editor window with new services.
I didn't go full Dependency Injection, not sure if I want to add those deps to the install as yet, but service location is fairly straightforward.

Some differences with the old window:

- No more Auto-Setup, users will manually decide what they want to do
- Removed Python detection warning, we have a setup wizard now
- Added explicit path overrides for `uv` and the MCP server itself

* style: add flex-shrink and overflow handling to improve UI element scaling

* fix: update UI configuration and visibility when client status changes

* feat: add menu item to open legacy MCP configuration window

* refactor: improve editor window lifecycle handling with proper update subscription

* feat: add auto-verification of bridge health when connected

* fix: update Claude Code MCP server registration to use lowercase unityMCP name and correct the manual installation instructions

* fix: add Claude CLI directory to PATH for node/nvm environments

* Clarify how users will see MCP tools

* Add a keyboard shortcut to open the window

* feat: add server download UI and improve installation status messaging

This is needed for the Unity Asset Store, which doesn't have the Python server embedded.

* feat: add dynamic asset path detection to support both Package Manager and Asset Store installations

* fix: replace unicode emojis with escaped characters in status messages

* feat: add server package creation and GitHub release publishing to version bump workflow

* fix: add v prefix to server package filename in release workflow

* Fix download location

* style: improve dropdown and settings layout responsiveness with flex-shrink and max-width

* feat: add package.json version detection and refactor path utilities

* refactor: simplify imports and use fully qualified names in ServerInstaller.cs

* refactor: replace Unity Debug.Log calls with custom McpLog class

* fix: extract server files to temp directory before moving to final location

* docs: add v6 UI documentation and screenshots with service architecture overview

* docs: add new UI Toolkit-based editor window with service architecture and path overrides

* feat: improve package path resolution to support Package Manager and Asset Store installations

* Change Claude Code's casing back to "UnityMCP"

There's no need to break anything as yet

* fix: update success dialog text to clarify manual bridge start requirement

* refactor: move RefreshDebounce and ManageScriptRefreshHelpers classes inside namespace

* feat: add Asset Store fallback path detection for package root lookup

* fix: update server installation success message to be more descriptive

* refactor: replace Unity Debug.Log calls with custom McpLog utility

* fix: add file existence check before opening configuration file

* refactor: simplify asset path handling and remove redundant helper namespace references

* docs: update code block syntax highlighting in UI changes doc

* docs: add code block syntax highlighting for file structure example

* feat: import UnityEditor.UIElements namespace for UI components for Unity 2021 compatibility

* refactor: rename Python server references to MCP server for consistency

* fix: reset client status label color after error state is cleared

* Replace the phrase "Python server" with "MCP server"

* MInor doc clarification

* docs: add path override methods for UV and Claude CLI executables

* docs: update service locator registration method name from SetCustomImplementation to Register
2025-10-11 03:08:16 -04:00