Skip to content

chore(release): v0.3.0#109

Merged
akiojin merged 12 commits into
mainfrom
develop
Mar 10, 2026
Merged

chore(release): v0.3.0#109
akiojin merged 12 commits into
mainfrom
develop

Conversation

@akiojin

@akiojin akiojin commented Mar 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • Strengthen C# edit workflow and LSP capabilities
  • Add package settings handler for Unity package management
  • Improve E2E test coverage and CI reliability

Changes

  • feat: Strengthen C# edit workflow with enhanced LSP support
  • feat(ci): Add cargo publish step to release workflow
  • fix: Retry transient LSP manifest fetches
  • fix(publish): Restrict crate package to src and root files only
  • docs: Add OpenUPM install instructions to all READMEs
  • docs: Codify issue completion criteria
  • test: Tighten E2E coverage
  • chore: Ignore local cache directory

Version

v0.3.0

Closing Issues

None

Summary by CodeRabbit

Release Notes v0.3.0

  • New Features

    • C#ファイルの編集・作成機能を追加
    • プロジェクト設定およびパッケージ設定の読み書きサポート
    • コンパイル状態の監視機能を強化
  • Installation

    • OpenUPMを推奨インストール方法として追加
    • Unity Package Managerでのインストールオプションも継続サポート
  • Improvements

    • ユニティ依存関係を最新化
    • テスト基盤を改善

akiojin and others added 12 commits March 6, 2026 11:28
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Prevents Unity Library and other non-Rust files from being included
in the crate package (was 2 GiB / 34k files, now 18 files).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat: strengthen C# edit workflow
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@akiojin akiojin added the release Release PR label Mar 10, 2026
@akiojin
akiojin enabled auto-merge March 10, 2026 10:38
@akiojin
akiojin merged commit 2b055dd into main Mar 10, 2026
20 of 23 checks passed
@coderabbitai

coderabbitai Bot commented Mar 10, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 5cb296f1-de0c-47b5-8862-4651d70fac6a

📥 Commits

Reviewing files that changed from the base of the PR and between db5c0b5 and 3295667.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (33)
  • .github/workflows/release.yml
  • .gitignore
  • CHANGELOG.md
  • CLAUDE.md
  • Cargo.toml
  • README.de.md
  • README.es.md
  • README.fr.md
  • README.it.md
  • README.ja.md
  • README.md
  • README.zh.md
  • UnityCliBridge/Packages/manifest.json
  • UnityCliBridge/Packages/unity-cli-bridge/Editor/Core/UnityCliBridgeHost.cs
  • UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/PackageSettingsHandler.cs
  • UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/PackageSettingsHandler.cs.meta
  • UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/ProjectSettingsHandler.cs
  • UnityCliBridge/Packages/unity-cli-bridge/Editor/Helpers/AssetEditingGuard.cs
  • UnityCliBridge/Packages/unity-cli-bridge/Tests/Editor/Integration/UnityCliBridgeIntegrationTests.cs
  • UnityCliBridge/Packages/unity-cli-bridge/Tests/Editor/UnityCliBridge.Tests.asmdef
  • UnityCliBridge/Packages/unity-cli-bridge/package.json
  • lsp/Program.cs
  • package.json
  • scripts/e2e-all-tools.sh
  • scripts/lsp-perf-check.sh
  • src/local_tools.rs
  • src/lsp.rs
  • src/lsp_manager.rs
  • src/lspd.rs
  • src/main.rs
  • src/tool_catalog.rs
  • tasks/lessons.md
  • tasks/todo.md

Walkthrough

バージョン0.2.4から0.3.0へのマイナーリリース。C#ファイル編集ツール(write/create/apply)とプロジェクト/パッケージ設定ハンドラーを追加し、LSPおよびローカルツールチェーンを拡張。複数言語のREADMEを更新し、リリースCI/CDワークフローに自動公開ジョブを統合。

Changes

Cohort / File(s) Summary
リリース構成
Cargo.toml, package.json, UnityCliBridge/Packages/unity-cli-bridge/package.json
バージョンを0.2.4から0.3.0にバンプ。Cargo.tomlは相対パスから絶対パス参照に変更し、LICENSEを追加、RELEASE.mdとプロジェクトディレクトリを除外。
CI/CDワークフロー
.github/workflows/release.yml, .gitignore
新しいpublish-crateジョブをリリースワークフローに追加(タグ作成後に実行)。キャッシュ出力用に.cache/をgitignoreに追加。
リリースノート・ドキュメント
CHANGELOG.md, CLAUDE.md, tasks/lessons.md, tasks/todo.md
0.3.0向けの変更ログエントリ追加。gwt-spec仕様駆動開発ルールを強化。タスク履歴を新マイルストーンで更新。
多言語インストール案内
README.md, README.ja.md, README.de.md, README.es.md, README.fr.md, README.it.md, README.zh.md
Unity CLIブリッジのインストール方法を単一URLから2段階オプション(OpenUPM推奨+Git URL)に変更。各言語ファイルを統一。
プロジェクト設定ハンドラー
UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/ProjectSettingsHandler.cs
GetProjectSettingSetProjectSettingの2つの公開メソッド追加。設定パス正規化、スナップショット取得、ネストされたオブジェクト構築、書き込み可能セクション検証をサポート(+206行)。
パッケージ設定ハンドラー
UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/PackageSettingsHandler.cs, ...PackageSettingsHandler.cs.meta
新規クラス追加。GetPackageSettingSetPackageSettingで、Unity Settings Manager反射API経由またはJSON保存で設定を管理。リフレクション、型変換、エラーハンドリングを実装(+422行)。
ブリッジホスト・アセット編集
UnityCliBridge/Packages/unity-cli-bridge/Editor/Core/UnityCliBridgeHost.cs, UnityCliBridge/Packages/unity-cli-bridge/Editor/Helpers/AssetEditingGuard.cs
起動スキップ検出を拡張(AssetImportWorker、adb2、テストコンテキスト対応)。新コマンドハンドラー(get/set_project_setting、get/set_package_setting)を統合。アセット編集ガード早期リターン追加。
Unityテスト構成
UnityCliBridge/Packages/unity-cli-bridge/Tests/Editor/UnityCliBridge.Tests.asmdef, UnityCliBridge/Packages/unity-cli-bridge/Tests/Editor/Integration/UnityCliBridgeIntegrationTests.cs, UnityCliBridge/Packages/manifest.json
テストアセンブリ定義を最適化(TestRunner参照削除、optionalUnityReferences追加)。テストポート切り替え、バッチモード判定改善。Addressables 2.9.0・Recorder 5.1.5に更新、testablesに自身を追加。
LSPプログラム
lsp/Program.cs
C#ファイル編集ハンドラー追加(WriteCSharpFile、CreateCSharpFile、ApplyCSharpEdits)。シンボルインデックス処理、コード生成、差分プレビュー、診断結果を統一EditResult構造で返却。ヘルパーメソッド多数追加(+577行)。
LSPレイヤー
src/lsp.rs
3つの新LSPツールハンドラー(write/create/apply C#ファイル)追加。結果正規化ロジック強化(wrap_lsp_write_resultnormalize_lsp_write_result)。namePath・containerPath正規化、kind名マッピング、フォールバック実装(+337行)。
LSPマネージャー・デーモン
src/lsp_manager.rs, src/lspd.rs
HTTP再試行メカニズム追加(指数バックオフ、リトライ対象ステータス判定)。デーモン呼び出しで結果の非nullチェック強化。
ローカルツール統合
src/local_tools.rs
C#書き込み後パイプライン追加(シンボルインデックス更新、アセット更新、コンパイル待機)。新アクション(write/create/apply C#)をLSPパスに統合。リモートツール呼び出し、コンパイル状態ポーリング実装。namePath フィールド追加(+213行)。
メインエントリ・ツール カタログ
src/main.rs, src/tool_catalog.rs
call_remote_toolヘルパー導入。新ツール7種(write/create/apply_csharp_file、get/set_project/package_setting)をツールカタログに登録。実行分類、読み込み専用判定、パラメータスキーマ定義追加(+112行)。
E2Eテスト・パフォーマンス測定
scripts/e2e-all-tools.sh, scripts/lsp-perf-check.sh
ツールルートオーバーライド機構、コンパイル完了待機関数、トランジェント接続エラー再試行ロジック追加。C#編集・シンボル操作テストシーケンス、プロジェクト/パッケージ設定テスト統合。スキップ済みツール報告機能(+74行)。

Sequence Diagram(s)

sequenceDiagram
    actor User
    participant Client as C# LSP Client
    participant LSPServer as LSP Server<br/>(src/lsp.rs)
    participant LocalTools as Local Tools<br/>(src/local_tools.rs)
    participant LSPCompiler as LSP Program<br/>(lsp/Program.cs)
    participant UnityEditor as Unity Editor<br/>(Bridge Host)

    User->>Client: Request write_csharp_file<br/>(relative, newText, validate, apply)
    Client->>LSPServer: Handle write_csharp_file
    LSPServer->>LocalTools: Forward to local tool
    LocalTools->>LSPCompiler: WriteCSharpFileAsync
    LSPCompiler->>LSPCompiler: Validate & format code<br/>Collect diagnostics
    LSPCompiler-->>LocalTools: EditResult<br/>(success, changedFiles,<br/>diagnostics)
    LocalTools->>UnityEditor: Post-write pipeline:<br/>update_index,<br/>wait_for_compile
    UnityEditor-->>LocalTools: Compile state
    LocalTools-->>LSPServer: Augmented result<br/>(with compile info)
    LSPServer->>LSPServer: Normalize result:<br/>Add backend, diffPreview
    LSPServer-->>Client: Normalized response<br/>(success, applied,<br/>changedFiles, diagnostics)
    Client-->>User: Display edits & diagnostics
Loading
sequenceDiagram
    actor User
    participant Client as Local Tool Client
    participant MainApp as Main App<br/>(src/main.rs)
    participant LocalTools as Local Tools<br/>(src/local_tools.rs)
    participant UnityBridge as Unity Bridge<br/>(Host & Handlers)

    User->>Client: Invoke get_project_setting<br/>(path)
    Client->>MainApp: Tool dispatch
    MainApp->>LocalTools: Remote tool call
    LocalTools->>UnityBridge: Call unityd or TCP<br/>ProjectSettingsHandler.GetProjectSetting
    UnityBridge->>UnityBridge: Load ProjectSettings<br/>Normalize path<br/>Fetch value
    UnityBridge-->>LocalTools: {success, path, value}
    LocalTools-->>MainApp: Response
    MainApp-->>Client: Return setting value
    Client-->>User: Display result
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • chore(release): v0.1.3 #43: LSP C#書き込み/編集ツール(write/create/apply_csharp_file)、ローカル/LSPハンドラー、ツールカタログエントリの追加が両PRで共通。
  • chore(release): v0.2.1 #56: リリースワークフロー(.github/workflows/release.yml)の修正がメインPRとも関連;カレントPRがpublish-crateジョブを追加。
  • chore(release): v0.1.1 #37: リリースワークフロー(release.yml)の新CIジョブ追加(メインPRはpublish-crate、参照PRはビルド/マニフェスト生成)で共通。

Poem

🐰 バージョン上がって、ブリッジも完成
C#書き込み、設定も管理
LSPとローカル、つながる喜び
マルチ言語で、皆にお届け
テストは走る、コンパイル待ってな〜🏃‍♂️✨

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release Release PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant