inreview
InReview
InReview は、プルリクエストを開かずにローカルの Jujutsu (jj) の変更をレビューするための VS Code 拡張機能です。
jj の変更の連続した範囲を選択し、VS Code でそれらの結合差分または変更単位の差分を確認し、差分の新しい側にコメントを残せます。ネイティブなローカル MCP ブリッジにより、GitHub Copilot CLI がそれらのコメントを読み取り、返信し、コードを更新した後に解決できます。
InReview は実験的なローカルビルドです。VS Code Marketplace には公開されていません。
機能
過去の連続した変更範囲、revset、または
@で終わる最新のX件の変更をレビューします。1 つの結合スタック差分と変更単位の差分を切り替えられます。
VS Code のネイティブな差分エディター、シンタックスハイライト、テーマ、Comments API を使用します。
追加された行、変更されていないコンテキスト行、ファイル全体にコメントを追加できます。
追加、変更、削除、名前変更、コピー、バイナリ、シンボリックリンクのエントリをレビューします。
jj の書き換え後も正確なコメント履歴を保持したままレビューを更新できます。
一致しないコメントは、元のスナップショットにリンクされた古いスレッドとして保持されます。
ローカルレビューをアーカイブおよび復元できます。
ネイティブなユーザー単位の MCP ブリッジを介して GitHub Copilot CLI を一度接続します。
Related MCP server: copilot-mcp-server
要件
VS Code 1.96 以降。
VS Code 拡張機能ホストが利用できる
jj0.44 以降。1 つの jj リポジトリを含む信頼されたファイルシステムワークスペース。
エージェントレビューサポートが必要な場合は GitHub Copilot CLI。
パッケージ化された拡張機能には、ネイティブブリッジの実行可能ファイルが含まれています。エンドユーザーは Node.js、Rust、その他のブリッジランタイムを必要としません。
対応するネイティブ VSIX がそこで実行できる場合、ローカルおよびリモートの拡張機能ホストがサポートされます。これには WSL、SSH、Dev Containers、VS Code Tunnels が含まれます。GitHub Copilot CLI は、InReview と同じ拡張機能ホスト環境で実行してください。ブリッジはホスト間で IPC を転送しません。
VS Code が jj を見つけられない場合は、PATH を変更した後にすべての VS Code ウィンドウを再起動するか、InReview: Jj Path に実行可能ファイルの絶対パスを設定してください。
ローカル VSIX のインストール
ビルドしてインストール:
npm ci
npm run package:vsix
code --install-extension .\inreview-<target>-0.0.1.vsix --forceVSIX のビルドには Rust 1.88 以降が必要です。<target> は現在のネイティブプラットフォームです。例: linux-x64、darwin-arm64、win32-x64。
main への各コミットは、Build VSIX packages GitHub Actions ワークフローを実行します。この実行では、Linux、macOS、Windows の x64 および arm64 バリアントごとに個別のアーティファクトがアップロードされます。
インストール後に VS Code をリロードしてください。
既知の問題: Node URL 非推奨警告
VS Code 1.135 は、ローカル VSIX のインストールに成功した後、url.parse() に関する Node の DEP0169 警告を出力することがあります。非推奨トレースは、VS Code の cliProcessMain.js 内のギャラリーメタデータ要求を指しています。同じトレースは、分離されたユーザーデータディレクトリと拡張機能ディレクトリ内の最小限の拡張機能でも発生します。テスト起動時にも、VS Code 組み込みの Agent Host が起動した直後に [AgentHost:stderr] として警告が報告されることがあります。InReview のソースとプロダクションバンドルは、非推奨 API を呼び出しません。上流の修正は Microsoft が担当しており、microsoft/vscode#301941 を参照してください。対応する VSIX レポート は重複としてクローズされました。
変更をレビューする
VS Code で信頼された jj リポジトリを 1 つ開きます。
InReview アクティビティバービューを開きます。
InReview: Start Review を実行します。
Choose Range、Current Stack (Last X)、または Advanced: Enter jj Revset を選択します。
範囲の場合、含める最新の変更を選択し、次に含める最古の変更を選択します。Load older changes を使用して履歴ウィンドウを拡張します。
順序付けされた選択プレビューを確認します。
Active Review の下でファイルを選択して、そのネイティブ差分を開きます。
追加された行または変更されていない新しい側の行のコメントガターを使用するか、Add File Comment を使用します。
選択した変更が書き換えられた後、InReview: Refresh Review を実行します。
InReview は不変のスナップショットを保存します。スレッドがインラインに残るのは、その完全なターゲットとコンテキストが更新後の差分に正確かつ一意にマッピングされる場合のみです。それ以外の場合、スレッドは 古い になり、コメントビューから引き続き利用できます。
Last X は、@ と、その直接の祖先の最大 X - 1 件を意味します。選択範囲は、連続した単一親のスタックです。jj のルート変更の前で停止するため、リクエストに含まれる変更は X 件未満になることがあります。InReview は、選択したスタック内のマージ、分岐した変更、未解決の競合を拒否します。更新は、書き換え後の元の安定した変更 ID に従います。後で @ になる新しい子を追加することはありません。
Choose Range は、@ の最大 200 件の祖先を 50 件ずつページングして参照します。選択した最新と最古の変更の両方が含まれます。InReview は、マージをまたぐ範囲、分岐した変更または未解決の競合を含む範囲、または 1 つの連続した親チェーンを形成しない範囲を拒否します。
Advanced jj Revset は、1 つの連続した単一親チェーン内の 1〜200 件の変更に解決される任意の revset を受け入れます。InReview は解決された変更をプレビューし、その完全な安定した変更 ID を保存します。更新中に元の revset を保存したり再評価したりすることはありません。
行コメントは、新しい側の追加された行または変更されていない行でのみ利用できます。削除された行は表示されたままですが、コメントはできません。削除されたファイルにはファイルコメントを付けることができます。更新でスレッドが現在のまま維持されるのは、その完全なターゲットとコンテキストが正確に 1 つ一致する場合のみです。他のすべてのスレッドは 古い になり、不変の元のスナップショットにリンクされたままになります。ユーザーコメントは編集または削除できます。エージェントの返信は不変です。解決済みのスレッドは再度開くことができます。
GitHub Copilot CLI を接続する
拡張機能は、パッケージ化されたネイティブブリッジを安定した拡張機能ストレージにインストールします。同じ拡張機能ホスト環境内のすべての対象 InReview ウィンドウに対して、ユーザーごとに 1 つのブリッジデーモンがサービスを提供します。各信頼されたウィンドウは、ユーザー制限付きの Unix ドメインソケットまたは Windows 名前付きパイプを介して、その正規のワークスペースを登録します。InReview は TCP ポートを開きません。
ブリッジは、信頼されたウィンドウにサポートされている jj リポジトリが 1 つ含まれ、inreview.mcp.enabled がオンの場合に自動的に起動します。InReview ビューを開いたりコマンドを実行したりする必要はありません。
InReview: Copy InReview MCP Setup を実行します。
copilot mcp addコマンドまたはmcp-config.jsonフラグメントのいずれかを選択します。結果を同じ拡張機能ホスト環境の GitHub Copilot CLI に一度貼り付けます。
/mcp showを使用してサーバー接続を確認します。
コピーされたコマンドは次の形式です:
copilot mcp add --tools "list_workspaces,connect_workspace,read_review_metadata,read_comments,reply_comment,close_comments" inreview -- "<native-launcher>"inreview エントリは、その環境に登録されているすべてのワークスペースを検出します。リポジトリごとに MCP エントリを 1 つ用意する必要はありません。エージェントに、開いているワークスペースの一覧表示、返された絶対ルートの 1 つへの接続、その開いているコメントのレビューを依頼してください。
MCP ツール
Tool | Purpose |
| ブリッジに登録されている正規のルートとホストプラットフォームを一覧表示します。 |
| MCP セッションを正確なワークスペースルートとアクティブなレビューにバインドします。 |
| 選択した変更、スナップショット、ファイルメタデータ、コメント数を読み取ります。 |
| フィルタリングされた現在、古い、未解決、または解決済みのスレッドを読み取ります。 |
| 解決せずに 1 つの未解決スレッドに |
| オプションの解決メモを付けて、1 つ以上の未解決スレッドを原子的に解決します。 |
ブリッジはベアラートークンを使用しません。ソケットまたは名前付きパイプを現在のユーザーに制限し、境界のあるメッセージを検証し、MCP セッションを分離し、上記の 6 つのツールのみを公開します。ブリッジは操作を登録済みの拡張機能プロセスにルーティングします。任意のファイルを読み取ったり、シェルコマンドを実行したり、jj を実行したりすることはできません。信頼されていない共有ユーザー環境では使用しないでください。
コマンド
コマンドパレット、または対応するビューとコメントアクションを使用します。
Command | Purpose |
InReview: Start Review | 範囲、revset、または最新の変更スタックを選択してキャプチャします。 |
InReview: Refresh Review | 同じ安定した変更 ID の書き換えられたバージョンをキャプチャします。 |
InReview: Archive Review | アクティブなレビューを読み取り専用にして履歴に移動します。 |
InReview: Restore Archived Review | アーカイブされたレビューをアクティブなレビューとして復元します。 |
InReview: Rename Review | アクティブなレビューのタイトルを変更します。 |
InReview: Delete Archived Review | アーカイブされたレビューを 1 つ完全に削除します。 |
InReview: Show Combined Diff | 最古の変更の親とスタックの先頭を比較します。 |
InReview: Show Per-Change Diffs | 選択した各変更を直接の親と比較して表示します。 |
InReview: Add File Comment | ファイル全体に適用されるコメントを追加します。 |
InReview: Resolve Comment / Reopen Comment | スレッドの解決状態を変更します。 |
InReview: Submit/Edit/Save/Cancel/Delete Comment | VS Code の Comments UI を使用してユーザーコメントを管理します。 |
InReview: Copy InReview MCP Setup | 一度だけ使用するネイティブ stdio コマンドまたは JSON MCP 構成をコピーします。 |
InReview: Show MCP Bridge Status | ネイティブブリッジのインストールとワークスペース登録状態を表示します。 |
ビュー
Active Review は、選択した変更、現在のスナップショット、表示モード、変更されたファイルを表示します。
Comments は、未解決の現在のスレッド、未解決の古いスレッド、解決済みのスレッドをグループ化します。
History は、最新の 20 件のアーカイブされたレビューを表示します。
レビューデータは、VS Code の拡張機能グローバルストレージに保存されます。これには、不変のファイルスナップショット、レビューメタデータ、コメントが含まれます。リポジトリに書き込まれることはありません。InReview は、圧縮されたコンテンツアドレス型ブロブを使用し、リポジトリごとに書き込みを直列化し、最新の 20 件のアーカイブされたレビューを保持し、参照されていないブロブをガベージコレクションします。テレメトリを送信せず、ネットワーク要求も行いません。MCP トラフィックは、ローカルのユーザー単位のソケットまたは名前付きパイプ上に留まります。
設定
Setting | Default | Description |
|
| jj 実行可能ファイルのコマンド名または絶対パス。 |
|
| Current Stack (Last X) プロンプトの初期値。 |
|
| 確認が必要な変更行数。 |
|
| 対象となる信頼されたワークスペースをネイティブ MCP ブリッジに登録します。 |
|
| 出力チャンネルのログしきい値。 |
現在の制限事項
VS Code ウィンドウごとに 1 つの jj リポジトリ。
レビューには、連続した単一親の変更スタックが 1 つだけ含まれている必要があります。
マージ変更と未解決の競合は拒否されます。
削除された行へのコメントはありません。
VS Code の提案中のマルチファイル diff API ではなく、ネイティブのファイル単位の diff を使用します。
ローカル拡張ホストとリモート拡張ホストの間のブリッジ転送はありません。
クラウド同期や共有レビューサーバーはありません。
ブリッジにはアプリケーショントークンがありません。そのローカル IPC エンドポイントは、現在のユーザーの オペレーティングシステムのアクセス制御に依存しています。
Linux、macOS、WSL、SSH、Dev Container、Tunnel 拡張ホストはサポート対象ですが、 0.0.1 リリースではすべてを手動でテストしたわけではありません。
開発
npm ci
npm run typecheck
npm run lint
npm run test:unit
npm run test:integration
npm run build:production
npm run validate:package
npm run package:vsixnpm run check は、型チェック、リンティング、ユニットテストと jj 統合テスト、本番バンドル、パッケージ検証を実行します。
この拡張機能は、安定した公開 VS Code API を使用しています。提案中の API は有効にしていません。 パッケージ検証では、正確な VSIX 許可リスト: マニフェスト、README、 changelog、本番バンドル、アイコンが適用されます。
主なソース領域は次のとおりです。
src/domain/ Persisted review and comment models
src/storage/ Atomic manifests, locks, and content-addressed blobs
src/jj/ Safe jj process adapter and snapshot capture
src/diff/ Git patch parsing and file classification
src/review/ Review lifecycle and comment services
src/vscode/ Views, native virtual diffs, and Comments API integration
src/mcp/ Streamable HTTP transport, tools, and Copilot setupThis server cannot be deployed
Maintenance
Related MCP Connectors
AI code review for GitHub PRs with an MCP autofix loop for Claude Code and Cursor
Adaptive plan/build/review cycles for AI coding assistants, persisted across sessions.
Read and write your Fresh Jots notes from Claude, Cursor, and any MCP client.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables management of GitHub pull request review threads through natural language, allowing users to list, reply to, and resolve PR review comments using GitHub's GraphQL API.4MIT
- AlicenseCqualityDmaintenanceConnects MCP-enabled editors to GitHub Copilot CLI for non-interactive code analysis, batch processing, and code review.106 npm5MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to fetch GitHub pull request diffs and metadata, and post review comments directly through the MCP protocol.1MIT
- FlicenseNot gradedqualityDmaintenanceFetches GitHub PR comments and intelligently applies fixes directly in workspace files, supporting automatic issue resolution with smart pattern recognition.-