inreview
InReview
InReview ist eine VS Code-Erweiterung zum Überprüfen lokaler Jujutsu (jj)-Änderungen, ohne einen Pull Request zu öffnen.
Wählen Sie einen zusammenhängenden Bereich von jj-Änderungen aus, untersuchen Sie deren kombinierte Diffs oder Diffs pro Änderung in VS Code und hinterlassen Sie Kommentare auf der neuen Seite des Diffs. Eine native lokale MCP-Brücke ermöglicht es GitHub Copilot CLI, diese Kommentare zu lesen, darauf zu antworten und sie aufzulösen, nachdem es den Code aktualisiert hat.
InReview ist ein experimenteller lokaler Build. Es ist nicht im VS Code Marketplace veröffentlicht.
Features
Überprüfen Sie einen historischen zusammenhängenden Änderungsbereich, einen Revset oder die letzten
XÄnderungen, die bei@enden.Wechseln Sie zwischen einem kombinierten Stack-Diff und Diffs pro Änderung.
Nutzen Sie den nativen Diff-Editor von VS Code, Syntaxhervorhebung, Designs und die Comments-API.
Fügen Sie Kommentare zu hinzugefügten Zeilen, unveränderten Kontextzeilen und ganzen Dateien hinzu.
Überprüfen Sie hinzugefügte, geänderte, gelöschte, umbenannte, kopierte, binäre und Einträge für symbolische Links.
Aktualisieren Sie eine Überprüfung nach jj-Umschreibungen, während die genaue Kommentarhistorie erhalten bleibt.
Behalten Sie nicht zugeordnete Kommentare als veraltete Threads, die mit ihrem ursprünglichen Snapshot verknüpft sind.
Archivieren und stellen Sie lokale Überprüfungen wieder her.
Verbinden Sie GitHub Copilot CLI einmal über eine native MCP-Brücke pro Benutzer.
Related MCP server: copilot-mcp-server
Requirements
VS Code 1.96 oder neuer.
jj0.44 oder neuer, verfügbar für den VS Code-Erweiterungshost.Ein vertrauenswürdiger Dateisystem-Arbeitsbereich, der ein jj-Repository enthält.
GitHub Copilot CLI, wenn Sie Agent-Review-Unterstützung wünschen.
Die gepackte Erweiterung enthält die native Bridge-Ausführungsdatei. Endbenutzer benötigen weder Node.js, Rust noch eine andere Bridge-Laufzeitumgebung.
Lokale und entfernte Erweiterungshosts werden unterstützt, wenn das passende native VSIX dort ausgeführt werden kann. Dies umfasst WSL, SSH, Dev Containers und VS Code Tunnels. Führen Sie GitHub Copilot CLI in derselben Erweiterungshost-Umgebung wie InReview aus. Die Brücke leitet IPC nicht zwischen Hosts weiter.
Wenn VS Code jj nicht finden kann, starten Sie jedes VS Code-Fenster neu, nachdem Sie PATH geändert haben, oder setzen Sie InReview: Jj Path auf den absoluten Pfad der ausführbaren Datei.
Lokales VSIX installieren
Erstellen und installieren:
npm ci
npm run package:vsix
code --install-extension .\inreview-<target>-0.0.1.vsix --forceDas Erstellen eines VSIX erfordert Rust 1.88 oder neuer. <target> ist die aktuelle native Plattform, z. B. linux-x64, darwin-arm64 oder win32-x64.
Jeder Commit an main führt den GitHub Actions-Workflow Build VSIX packages aus. Der Lauf lädt separate Artefakte für die x64- und arm64-Varianten von Linux, macOS und Windows hoch.
Laden Sie VS Code nach der Installation neu.
Bekanntes Problem: Node-URL-Deprecation-Warnung
VS Code 1.135 kann eine Node-DEP0169-Warnung zu url.parse() ausgeben, nachdem es erfolgreich ein lokales VSIX installiert hat. Eine Deprecation-Ablaufverfolgung verweist auf die Galerie-Metadatenanfrage in cliProcessMain.js von VS Code; dieselbe Ablaufverfolgung tritt bei einer minimalen Erweiterung in isolierten Benutzerdaten- und Erweiterungsverzeichnissen auf. Der Teststart kann die Warnung auch als [AgentHost:stderr] unmittelbar nach dem Start des integrierten Agent Hosts von VS Code melden. Die Quelle und das Produktions-Bundle von InReview rufen die veraltete API nicht auf. Microsoft ist für den Upstream-Fix in microsoft/vscode#301941 verantwortlich; der zugehörige VSIX-Bericht wurde als Duplikat geschlossen.
Änderungen überprüfen
Öffnen Sie ein vertrauenswürdiges jj-Repository in VS Code.
Öffnen Sie die InReview-Ansicht in der Aktivitätsleiste.
Führen Sie InReview: Start Review aus.
Wählen Sie Choose Range, Current Stack (Last X) oder Advanced: Enter jj Revset.
Wählen Sie für einen Bereich die neueste enthaltene Änderung und dann die älteste enthaltene Änderung. Verwenden Sie Load older changes, um das Verlaufsfenster zu erweitern.
Bestätigen Sie die Vorschau der geordneten Auswahl.
Wählen Sie unter Active Review eine Datei aus, um deren nativen Diff zu öffnen.
Verwenden Sie die Kommentarspalte in einer hinzugefügten oder unveränderten Zeile auf der neuen Seite, oder verwenden Sie Add File Comment.
Nachdem eine ausgewählte Änderung umgeschrieben wurde, führen Sie InReview: Refresh Review aus.
InReview speichert unveränderliche Snapshots. Ein Thread bleibt nur dann inline, wenn sein vollständiges Ziel und sein Kontext exakt und eindeutig auf das aktualisierte Diff abgebildet werden. Andernfalls wird er zu Outdated und bleibt über die Comments-Ansicht verfügbar.
Last X bedeutet @ plus bis zu X - 1 direkte Vorgänger. Die Auswahl ist ein zusammenhängender Stack mit einem einzigen Elternteil. Er endet vor der jj-Root-Änderung, sodass eine Anfrage weniger als X Änderungen enthalten kann. InReview lehnt Merges, divergente Änderungen und ungelöste Konflikte im ausgewählten Stack ab. Die Aktualisierung folgt nach Umschreibungen den ursprünglichen stabilen Änderungs-IDs; sie fügt kein neues Kind hinzu, das später zu @ wird.
Choose Range durchsucht bis zu 200 Vorgänger von @ in Seiten zu 50. Die neueste und die älteste ausgewählte Änderung sind beide enthalten. InReview lehnt einen Bereich ab, der einen Merge kreuzt, eine divergente Änderung oder einen ungelösten Konflikt enthält oder keine zusammenhängende Elternkette bildet.
Advanced jj Revset akzeptiert jeden Revset, der zu 1–200 Änderungen in einer zusammenhängenden Kette mit einem einzigen Elternteil aufgelöst wird. InReview zeigt eine Vorschau der aufgelösten Änderungen und speichert deren vollständige stabile Änderungs-IDs. Es speichert den ursprünglichen Revset während der Aktualisierung nicht und wertet ihn nicht erneut aus.
Zeilenkommentare sind nur auf hinzugefügten oder unveränderten Zeilen auf der neuen Seite verfügbar. Gelöschte Zeilen bleiben sichtbar, können aber nicht kommentiert werden. Gelöschte Dateien können Dateikommentare erhalten. Eine Aktualisierung hält einen Thread nur dann aktuell, wenn sein vollständiges Ziel und sein Kontext genau eine Übereinstimmung haben. Alle anderen Threads werden zu Outdated und bleiben mit ihrem unveränderlichen ursprünglichen Snapshot verknüpft. Benutzerkommentare können bearbeitet oder gelöscht werden. Agent-Antworten sind unveränderlich. Aufgelöste Threads können wieder geöffnet werden.
GitHub Copilot CLI verbinden
Die Erweiterung installiert ihre gepackte native Brücke im stabilen Erweiterungsspeicher. Ein Bridge-Daemon pro Benutzer bedient jedes berechtigte InReview-Fenster in derselben Erweiterungshost-Umgebung. Jedes vertrauenswürdige Fenster registriert seinen kanonischen Arbeitsbereich über einen benutzerbeschränkten Unix-Domain-Socket oder eine Windows Named Pipe. InReview öffnet keinen TCP-Port.
Die Brücke startet automatisch, wenn ein vertrauenswürdiges Fenster ein unterstütztes jj-Repository enthält und inreview.mcp.enabled aktiviert ist. Es ist nicht erforderlich, eine InReview-Ansicht zu öffnen oder einen Befehl auszuführen.
Führen Sie InReview: Copy InReview MCP Setup aus.
Wählen Sie entweder den Befehl
copilot mcp addoder dasmcp-config.json-Fragment.Fügen Sie das Ergebnis einmal in GitHub Copilot CLI in derselben Erweiterungshost-Umgebung ein.
Verwenden Sie
/mcp show, um die Serververbindung zu bestätigen.
Der kopierte Befehl hat diese Form:
copilot mcp add --tools "list_workspaces,connect_workspace,read_review_metadata,read_comments,reply_comment,close_comments" inreview -- "<native-launcher>"Der Eintrag inreview erkennt jeden Arbeitsbereich, der in dieser Umgebung registriert ist. Sie benötigen nicht einen MCP-Eintrag pro Repository. Bitten Sie den Agenten, die offenen Arbeitsbereiche aufzulisten, eine Verbindung zu einem zurückgegebenen absoluten Stammpfad herzustellen und dessen offene Kommentare zu überprüfen.
MCP-Tools
Tool | Zweck |
| Kanonische Roots und Host-Plattformen auflisten, die bei der Brücke registriert sind. |
| Die MCP-Sitzung an den genauen Arbeitsbereichs-Root und die aktive Überprüfung binden. |
| Ausgewählte Änderungen, Snapshots, Dateimetadaten und Kommentaranzahlen lesen. |
| Gefilterte aktuelle, veraltete, offene oder aufgelöste Threads lesen. |
| Auf einen offenen Thread als |
| Atomar einen oder mehrere offene Threads mit optionalen Auflösungshinweisen auflösen. |
Die Brücke verwendet kein Bearer-Token. Sie beschränkt ihren Socket oder ihre Named Pipe auf den aktuellen Benutzer, validiert begrenzte Nachrichten, isoliert MCP-Sitzungen und stellt nur die sechs oben genannten Tools bereit. Die Brücke leitet Vorgänge an den registrierten Erweiterungsprozess weiter; sie kann keine beliebigen Dateien lesen, Shell-Befehle ausführen oder jj ausführen. Verwenden Sie sie nicht in einer nicht vertrauenswürdigen Umgebung mit gemeinsam genutzten Benutzerkonten.
Befehle
Verwenden Sie die Befehlspalette oder die entsprechenden Ansichts- und Kommentaraktionen.
Befehl | Zweck |
InReview: Start Review | Einen Bereich, Revset oder den letzten Änderungs-Stack auswählen und erfassen. |
InReview: Refresh Review | Umgeschriebene Versionen derselben stabilen Änderungs-IDs erfassen. |
InReview: Archive Review | Die aktive Überprüfung schreibgeschützt machen und in den Verlauf verschieben. |
InReview: Restore Archived Review | Eine archivierte Überprüfung als aktive Überprüfung wiederherstellen. |
InReview: Rename Review | Den Titel der aktiven Überprüfung ändern. |
InReview: Delete Archived Review | Eine archivierte Überprüfung dauerhaft entfernen. |
InReview: Show Combined Diff | Das Elternteil der ältesten Änderung mit dem Stack-Kopf vergleichen. |
InReview: Show Per-Change Diffs | Jede ausgewählte Änderung gegen ihr direktes Elternteil anzeigen. |
InReview: Add File Comment | Einen Kommentar hinzufügen, der für die gesamte Datei gilt. |
InReview: Resolve Comment / Reopen Comment | Den Auflösungsstatus eines Threads ändern. |
InReview: Submit/Edit/Save/Cancel/Delete Comment | Benutzerkommentare über die Comments-UI von VS Code verwalten. |
InReview: Copy InReview MCP Setup | Den einmaligen nativen Stdio-Befehl oder die JSON-MCP-Konfiguration kopieren. |
InReview: Show MCP Bridge Status | Den Installationsstatus der nativen Brücke und den Registrierungsstatus des Arbeitsbereichs anzeigen. |
Ansichten
Active Review zeigt die ausgewählten Änderungen, den aktuellen Snapshot, den Anzeigemodus und geänderte Dateien.
Comments gruppiert offene aktuelle, offene veraltete und aufgelöste Threads.
History zeigt die letzten 20 archivierten Überprüfungen.
Überprüfungsdaten werden im globalen Erweiterungsspeicher von VS Code gespeichert. Sie umfassen unveränderliche Datei-Snapshots, Überprüfungsmetadaten und Kommentare. Sie werden niemals in das Repository geschrieben. InReview verwendet komprimierte, inhaltsadressierte Blobs, serialisiert Schreibvorgänge pro Repository, behält die letzten 20 archivierten Überprüfungen bei und bereinigt nicht referenzierte Blobs per Garbage Collection. Es sendet keine Telemetrie und stellt keine Netzwerkanfragen. MCP-Datenverkehr bleibt auf einem lokalen Socket oder einer Named Pipe pro Benutzer.
Einstellungen
Einstellung | Standard | Beschreibung |
|
| Befehlsname oder absoluter Pfad für die jj-Ausführungsdatei. |
|
| Anfangswert für die Eingabeaufforderung Current Stack (Last X). |
|
| Anzahl geänderter Zeilen, die eine Bestätigung erfordert. |
|
| Einen berechtigten vertrauenswürdigen Arbeitsbereich bei der nativen MCP-Brücke registrieren. |
|
| Schwellenwert für die Protokollierung im Ausgabekanal. |
Aktuelle Einschränkungen
Ein jj-Repository pro VS-Code-Fenster.
Reviews müssen einen zusammenhängenden Änderungsstapel mit einem einzigen übergeordneten Element enthalten.
Merge-Änderungen und ungelöste Konflikte werden abgelehnt.
Keine Kommentare zu gelöschten Zeilen.
Native Diffs pro Datei anstelle der vorgeschlagenen Multi-File-Diff-API von VS Code.
Keine Bridge-Weiterleitung zwischen lokalen und entfernten Erweiterungshosts.
Keine Cloud-Synchronisierung oder gemeinsamer Review-Server.
Die Bridge hat kein Anwendungstoken. Ihr lokaler IPC-Endpunkt stützt sich auf die Betriebssystem-Zugriffskontrollen des aktuellen Benutzers.
Linux-, macOS-, WSL-, SSH-, Dev-Container- und Tunnel-Erweiterungshosts sind unterstützte Ziele, wurden aber für das 0.0.1-Release nicht alle manuell getestet.
Entwicklung
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 führt Typprüfung, Linting, Unit- und jj-Integrationstests, das Produktions-Bundle und die Paketvalidierung aus.
Die Erweiterung verwendet stabile öffentliche VS-Code-APIs. Sie aktiviert keine vorgeschlagenen APIs. Die Paketvalidierung erzwingt eine exakte VSIX-Allowlist: das Manifest, die README, das Changelog, das Produktions-Bundle und das Icon.
Die wichtigsten Quellcode-Bereiche sind:
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.-