Support OpenCode v2 diff and plan review integration
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Start in plugins/opencode/ and read the linked OpenCode v2 migration, plugin, and CLI plugin documentation alongside the existing revdiff tool, /revdiff command, and plan-review plugin. Trace the installer and existing tests, then define the v2 entrypoints, server/client routing, lifecycle cleanup, and version selection while preserving the v1 integration and stated exit-code behavior.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I'd like revdiff's OpenCode integration to support OpenCode v2. The current integration under plugins/opencode/ uses the v1 plugin and custom-tool APIs, which need to be ported for v2.
References:
Migration considerations
The integration currently includes a revdiff tool, a /revdiff command, and an automatic plan-review plugin.
The plan-review plugin exports an async function returning an event hook. On session.idle, it reads the last assistant message, checks whether it was produced in plan mode, launches revdiff, and sends annotations back to the session. V2 requires a new plugin entrypoint and explicit subscriptions, and the message-reading, plan-detection, and prompt-submission logic needs to be checked against the new server API and lifecycle contracts.
The custom tool also uses the v1 tool() helper. V2 documents tool registration through ctx.tool.transform, with JSON Schema inputs and structured results. Existing Markdown command definitions remain supported, so the /revdiff command may need little change once its underlying tool is available.
There is also a routing consideration beyond the API changes: v2 uses a shared background server by default, including for tool execution. The existing launchers rely on terminal-specific environment variables to open the overlay in the correct pane. The server's environment may not identify the client that requested the review.
A CLI plugin may be a better fit for launching the interactive review in the user's terminal. Preserving the agent-callable tool would also require defining how a server-side request reaches the appropriate CLI client and returns annotations to the originating session.
Expected behavior
- Support manual diff review through
/revdiffand the agent-callablerevdifftool, preserving the existing ref, staged, and only options. - Automatically review completed plans and return annotations to the originating session for revision in plan mode.
- Open reviews in the correct terminal pane and project directory when multiple OpenCode clients share a server.
- Avoid duplicate reviews and unintended launches for unrelated sessions or subagents.
- Preserve exit-code handling: 0 for a clean exit, 10 for success with annotations, and other nonzero statuses as failures.
- Handle cancellation and plugin cleanup without leaving review processes or temporary files behind.
- Update installation instructions and tests for the supported v2 integration.
- Installer checks OpenCode version and installs appropriate plugin + tool + command.
- Existing v1 integration remains intact
Contribution
I'd be happy to try implementing this and submit a PR. Before starting, I'd appreciate feedback on the preferred approach
- Lenguaje dominante
- Go
- Estrellas
- 922
- Forks
- 95
- Merge medio
- 11 h 53 min
- PR fusionados (30 d)
- 24
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de umputun/revdiff
-
Support horizontal scrollAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
umputun/revdiff#334 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 64/100
umputun/revdiff#350 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 78/100
umputun/revdiff#341 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
umputun/revdiff#331 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 64/100
umputun/revdiff#324 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de umputun/revdiff
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
LanternOps/breeze#8353 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
prime-radiant-inc/evener#4223 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
input.Scanner.Scan loops forever when the input reaches EOF, hanging every ConfirmAction promptPosiblemente ocupada @mlliarm la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
elastic/cloud-sdk-go#521 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
open-telemetry/opentelemetry-go-compile-instrumentation#1467 ·
Los mantenedores suelen responder en 3 días