AnalyseDeCircuit/oxideterm

Preserva la compatibilidad de los plugins de OxideTerm al cambiar las API del host, el tiempo de ejecución o la carga de gramáticas, la selección de versión del catálogo o las verificaciones de plugins instalados. También se utiliza al extraer la compatibilidad de idiomas integrada en plugins.

¿Qué es oxideterm?

Esta habilidad está diseñada para mantener la compatibilidad de los plugins de OxideTerm cuando se realizan cambios en la API del host, el tiempo de ejecución, la carga de gramáticas, la selección de versión del catálogo o las verificaciones de plugins instalados. También se utiliza al extraer la compatibilidad de idiomas integrada en plugins independientes. El flujo de trabajo se basa en archivos fuente específicos, como `crates/oxideterm-plugin-manifest/src/registry.rs`, `crates/oxideterm-plugin-registry/src/registry.rs` y `compatibility.rs`, entre otros, para evaluar los límites de compatibilidad. La habilidad garantiza que la selección de versiones sea correcta, evitando degradaciones silenciosas y manteniendo la integridad de los plugins existentes. Es útil para desarrolladores que trabajan con OxideTerm y necesitan asegurar que los cambios en el host no rompan la funcionalidad de los plugins ni la experiencia del usuario.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AnalyseDeCircuit/oxideterm/tree/HEAD/.agents/skills/oxideterm-plugin-compatibility

Installed? Explore more Productividad y colaboración skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Compatibilidad de plugins de OxideTerm

Lee la implementación relevante antes de asignar un límite de compatibilidad:

  • crates/oxideterm-plugin-manifest/src/registry.rs: datos de lanzamiento y corrección del catálogo.
  • crates/oxideterm-plugin-registry/src/registry.rs y compatibility.rs: selección de versión, requisitos en caché y descubrimiento al inicio.
  • crates/oxideterm-plugin-registry/src/install.rs: verificaciones de instalación de paquetes.
  • crates/oxideterm-gpui-app/src/workspace/plugin_entity.rs: actualización, control de activación y propiedad de tareas.
  • La API específica del host, el tiempo de ejecución o la carga de gramática afectada por el cambio.
  • crates/oxideterm-editor-syntax/src/plugin.rs y crates/oxideterm-gpui-editor/src/languages.rs para la carga diferida de gramáticas y la actualización de documentos abiertos.

Contrato del lado del host

Selecciona la versión más alta compatible tanto con el host como con la plataforma. Ofrece una actualización solo cuando esa versión compatible sea más nueva que el plugin instalado; explica una versión incompatible superior por separado. Nunca realices una degradación silenciosa.

Vuelve a verificar los plugins instalados al inicio después de actualizaciones y degradaciones de la aplicación. Aplica la última corrección en caché para el ID y la versión exactos del plugin sin reescribir los archivos del paquete. Conserva los archivos, la configuración y las preferencias de habilitación mientras bloqueas la activación incompatible. Mantén la actualización al inicio limitada y propiedad de la entidad del plugin; el inicio sin conexión utiliza la última caché válida.

El cliente oficial utiliza el catálogo de resumen v2 y carga historias vinculadas a sumas de verificación para los plugins instalados y la página actual del mercado. Una historia debe coincidir con su identidad de resumen, la última versión, el rango efectivo del host, el tamaño y SHA-256. Conserva el endpoint v1 congelado, la instantánea histórica exacta, los activos referenciados y el lector de caché v1. Todos los plugins, lanzamientos y correcciones posteriores pertenecen solo a v2; los clientes existentes deben actualizar el host para recibirlos. Los clientes nuevos obtienen solo v2; si falla, conservan la última caché válida en lugar de reemplazarla con la v1 congelada. Publica v2 antes de enviar un host que lo requiera. Guarda las historias sin procesar verificadas antes de reemplazar la caché raíz compacta; el inicio y la instalación manual deben resolver correcciones para la versión exacta instalada. Cancela solicitudes de página obsoletas y descarta resultados de otra página o instantánea de catálogo. El mantenimiento y la generación del catálogo pertenecen a los registros fuente por plugin del mercado y a la automatización de lanzamientos.

Para la extracción de idiomas, verifica el cargador de gramáticas, la ABI de Tree-sitter y el comportamiento real del cliente antiguo. Un rango de host no puede reemplazar esas verificaciones. No asignes un límite superior a plugins antiguos solo porque se haya lanzado un nuevo plugin o versión de la aplicación.

A partir de 2.2.2, los manifiestos de idiomas pueden declarar displayName, grammarName, extensions y fileNames literales. Los nuevos ID son dinámicos; no extiendas el enum heredado ni las tablas de asociación de archivos para ellos. Los paquetes de idiomas publicados conservan sus asociaciones de respaldo. Las declaraciones del catálogo se toman de archivos verificados y están vinculadas a historias v2, con los manifiestos instalados precediendo a las sugerencias compatibles del catálogo. Las nuevas declaraciones requieren >=2.2.2; las correcciones de consultas ordinarias a paquetes heredados mantienen su rango de host existente. Mantén la redetección de documentos abiertos, el enrutamiento de plugins faltantes y las sugerencias de catálogo sin conexión consistentes en las vistas previas IDE, locales y SFTP.

A partir de 2.2.2, un paquete de idiomas puede incluir gramáticas incrustadas en injections. Verifica cada analizador, consulta de resaltado y selector principal por su suma de verificación declarada; los selectores capturan injection.content. El documento posee cada analizador incrustado, su cancelación y eliminación. Mantén las coordenadas originales de bytes a través de las ediciones y restringe los resaltados secundarios a las regiones incluidas, reemplazando las capturas principales allí para que las capturas de plantillas no puedan ocultar tokens de script. Las gramáticas incluidas son privadas para su paquete principal y no registran asociaciones de archivos separadas.

Para la extracción de agentes ACP, mantén el cliente ACP, las decisiones de permiso y la propiedad del proceso en el host. Los manifiestos acp publicados permanecen compatibles y se normalizan en el plan de ayuda común. Los nuevos manifiestos de ayuda declaran la característica acp, el protocolo acp y la versión 1. Los agentes hablan ACP stdio directamente; no enrutes su tráfico a través del supervisor de plugins ordinario. Verifica registry.acp_agents, workspace/acp_plugins.rs, y workspace/acp_workspace.rs para la activación al inicio, la resolución de lanzamiento y la limpieza. Los hosts hasta 2.2.1 no pueden cargar este tiempo de ejecución. Conserva las identidades de agentes existentes y las opciones de usuario al migrar adaptadores incluidos a enlaces de plugins.

Los manifiestos Mosh publicados usan terminal-transport; los nuevos manifiestos de ayuda declaran la característica terminal-transport, el protocolo oxideterm-mosh y la versión 1. Mantén el arranque SSH, la representación de la terminal y la predicción local en el host; UDP, SSP y cifrado pertenecen al motor del plugin. Los hosts hasta 2.2.1 no pueden cargarlo. Verifica oxideterm-mosh y sus MoshPluginSessions propiedad del espacio de trabajo para el control de lanzamiento y la finalización del proceso antes del reemplazo del paquete. Ambas direcciones de tubería deben permanecer independientes bajo la contrapresión de salida. RDP, VNC y Mosh comparten la categoría de catálogo remote-connections.

Coordinar la publicación

Los manifiestos de escritorio remoto publicados usan remote-desktop; los nuevos manifiestos de ayuda declaran la característica remote-desktop, el protocolo oxideterm-remote-desktop y la versión 1. Ambos se normalizan en el plan de ayuda común, fuera del supervisor de plugins ordinario. Mantén el visor nativo, la entrada, las credenciales y la propiedad del túnel SSH en el host. Requiere un contributes.remoteDesktop.protocolVersion compatible y resuelve solo ejecutables confiables, habilitados, compatibles e instalados. Detén y recoge los procesos de ayuda antes de actualizar o eliminar sus archivos; deshabilita la reconexión automática hasta que un proveedor compatible esté disponible. Mantén el formato stdio binario existente sin cambios cuando extraigas ayudantes. Los hosts hasta 2.2.1 no pueden cargar este tiempo de ejecución.

Los manifiestos genéricos de helper requieren hosts a partir de 2.2.2. Conserva los tipos de manifiesto publicados, los límites de aprobación de capacidad y las cargas útiles del protocolo al normalizarlos. La unificación del plan de tiempo de ejecución no transfiere la propiedad secundaria al supervisor de plugins. FIDO declara la característica ssh-authentication, el protocolo oxideterm-security-key y la versión 1; su tarea de autenticación posee la cancelación y la finalización.

La creación de plugins, los registros de lanzamiento y las correcciones de compatibilidad pertenecen al repositorio AnalyseDeCircuit/oxideterm-plugins. Localiza su checkout real por identidad del repositorio en lugar de asumir un nombre de directorio local. Lee su .agents/skills/oxideterm-plugin-release/SKILL.md y usa sus scripts de lanzamiento. La habilidad canónica también está disponible en:

https://github.com/AnalyseDeCircuit/oxideterm-plugins/blob/main/.agents/skills/oxideterm-plugin-release/SKILL.md

Usa un checkout local cuando esa habilidad o sus scripts aún no estén publicados. No inventes un proceso de publicación alternativo cuando falten las herramientas necesarias. Los cambios en la implementación del host por sí solos no autorizan la publicación de plugins.

Para el comportamiento cambiado, usa las pruebas existentes del registro y de la entidad del plugin en el límite que lo posee. Cubre los riesgos afectados: selección de versión compatible, rechazo de actualización/degradación, recuperación de corrección o inicio sin conexión. No vuelvas a ejecutar suites no relacionadas solo porque un archivo de compatibilidad de plugins cambió.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Skills relacionados