Files
coplaydev--unity-mcp/MCPForUnity/Editor/Setup/McpForUnitySkillInstaller.cs.meta
张洋凡 6682c8bd29 feat(editor): add GitHub-based skill sync window with safe incremental mirroring (#845)
* Add Unity MCP skill sync installer

Add an EditorWindow (McpForUnitySkillInstaller) that syncs the unity-mcp skill from a GitHub repository without cloning. The tool reads the repo tree via the GitHub API, computes git blob SHA-1s to build an incremental sync plan (added/updated/deleted), downloads raw files for changed items, validates hashes, and writes a last-synced commit to EditorPrefs. UI supports branch and CLI (codex/claude) selection, configurable install path, logging, and safety checks (aborts on truncated trees). Also add the corresponding .meta file.

* fix namespace

* fix: harden skill installer sync safety (由codex生成)

- Resolve branch head commit SHA via GitHub branches API and use it for snapshot/raw download refs
- Reject unsafe remote relative paths and enforce install-root containment for all file IO
- Handle case-only renames on case-insensitive filesystems during sync planning
- Add managed install-root marker guard to avoid destructive deletes in unmanaged directories

* meta update

* fix: freeze sync inputs and validate install path (由codex生成)

- Snapshot repo/branch/installDir before starting background sync task
- Disable config inputs while sync is running to avoid mid-run mutations
- Validate install directory explicitly with clear errors before filesystem operations
- Scope last-synced-commit key derivation to captured repo/branch values

* Update to incorporate the skill installation into current config

1. Incorporate the Config into a simple one-click in Client Configuration.
2. Simplify the logs to only 1 entry, convenient for LLM checking.

---------

Co-authored-by: Shutong Wu <51266340+Scriptwonder@users.noreply.github.com>
2026-03-01 22:51:14 -05:00

12 lines
243 B
Plaintext

fileFormatVersion: 2
guid: 7886932de812549f195fa4f6006ef0dd
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: