AnalyseDeCircuit/oxideterm

Preserva a compatibilidade de plugins do OxideTerm ao alterar APIs do host, runtime, carregamento de gramática, seleção de versão do catálogo ou verificações de plugins instalados. Também deve ser usado ao extrair suporte de linguagem integrado para plugins.

O que é oxideterm?

Esta skill garante que as alterações nas APIs do host, runtime ou carregamento de gramática do OxideTerm não quebrem a compatibilidade com plugins existentes. Ela lida com a seleção de versão do catálogo, verificações de plugins instalados e extração de suporte de linguagem integrado para plugins. A skill é essencial para desenvolvedores que trabalham no ecossistema OxideTerm, suportando desde a verificação de compatibilidade em inicializações offline até a publicação coordenada de novos tipos de plugins como ACP, Mosh e remote-desktop. Baseia-se em arquivos de implementação específicos como registry.rs, compatibility.rs e install.rs, e sua documentação canônica está disponível no repositório AnalyseDeCircuit/oxideterm-plugins, onde também estão os scripts de release.

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

Installed? Explore more Produtividade e Colaboração skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Compatibilidade de Plugins OxideTerm

Leia a implementação relevante antes de atribuir um limite de compatibilidade:

  • crates/oxideterm-plugin-manifest/src/registry.rs: dados de lançamento e correção do catálogo.
  • crates/oxideterm-plugin-registry/src/registry.rs e compatibility.rs: seleção de versão, requisitos em cache e descoberta na inicialização.
  • crates/oxideterm-plugin-registry/src/install.rs: verificações de instalação de pacotes.
  • crates/oxideterm-gpui-app/src/workspace/plugin_entity.rs: atualização, controle de ativação e propriedade de tarefas.
  • A API específica do host, runtime ou carregador de gramática afetado pela alteração.
  • crates/oxideterm-editor-syntax/src/plugin.rs e crates/oxideterm-gpui-editor/src/languages.rs para carregamento preguiçoso de gramática e atualização de documentos abertos.

Contrato do lado do host

Selecione a versão mais alta suportada tanto pelo host quanto pela plataforma. Ofereça uma atualização apenas quando essa versão compatível for mais nova que o plugin instalado; explique separadamente uma versão incompatível mais alta. Nunca faça downgrade silencioso.

Verifique novamente os plugins instalados na inicialização após atualizações e downgrades do aplicativo. Aplique a correção em cache mais recente para o ID e versão exatos do plugin, sem reescrever arquivos do pacote. Mantenha arquivos, configurações e preferências de ativação enquanto bloqueia a ativação incompatível. Mantenha a atualização de inicialização limitada e de propriedade da entidade do plugin; inicialização offline usa o último cache válido.

O cliente oficial usa o catálogo de resumo v2 e carrega históricos vinculados a checksums para plugins instalados e a página atual do marketplace. Um histórico deve corresponder à sua identidade de resumo, versão mais recente, faixa de host efetiva, tamanho e SHA-256. Preserve o endpoint v1 congelado, o snapshot histórico exato, os ativos referenciados e o leitor de cache v1. Todos os plugins, lançamentos e correções subsequentes pertencem apenas ao v2; clientes existentes devem atualizar o host para recebê-los. Novos clientes buscam apenas v2; em caso de falha, mantenha o último cache válido em vez de substituí-lo pelo v1 congelado. Publique v2 antes de enviar um host que o exija. Salve históricos brutos verificados antes de substituir o cache raiz compacto; a inicialização e a instalação manual devem resolver correções para a versão exata instalada. Cancele solicitações de página obsoletas e descarte resultados de outra página ou snapshot do catálogo. A manutenção e geração do catálogo pertencem aos registros de origem por plugin do marketplace e à automação de lançamento.

Para extração de linguagem, verifique o carregador de gramática, a ABI Tree-sitter e o comportamento real de clientes antigos. Uma faixa de host não pode substituir essas verificações. Não atribua um limite superior a plugins antigos apenas porque uma nova versão de plugin ou aplicativo foi lançada.

A partir de 2.2.2, manifestos de linguagem podem declarar displayName, grammarName, extensions e fileNames literais. Novos IDs são dinâmicos; não estenda o enum legado ou tabelas de associação de arquivos para eles. Pacotes de linguagem publicados mantêm suas associações de fallback. Declarações de catálogo são retiradas de arquivos verificados e vinculadas a históricos v2, com manifestos instalados precedendo dicas de catálogo compatíveis. Novas declarações exigem >=2.2.2; correções de consulta comuns para pacotes legados mantêm sua faixa de host existente. Mantenha a redetecção de documentos abertos, o roteamento de plugins ausentes e as dicas de catálogo offline consistentes em IDE, visualizações locais e SFTP.

A partir de 2.2.2, um pacote de linguagem pode agrupar gramáticas incorporadas em injections. Verifique cada parser, consulta de destaque e seletor pai por seu checksum declarado; seletores capturam injection.content. O documento é dono de cada parser incorporado, sua cancelamento e descarte. Mantenha as coordenadas de bytes originais entre edições e restrinja os destaques filhos às regiões incluídas, substituindo as capturas pai lá para que capturas de template não possam ocultar tokens de script. Gramáticas agrupadas são privadas ao seu pacote pai e não registram associações de arquivos separadas.

Para extração de agente ACP, mantenha o cliente ACP, decisões de permissão e propriedade de processo no host. Manifestos acp publicados permanecem suportados e são normalizados no plano auxiliar comum. Novos manifestos auxiliares declaram recurso acp, protocolo acp e versão 1. Agentes falam ACP stdio diretamente; não roteie seu tráfego através do supervisor de plugin comum. Verifique registry.acp_agents, workspace/acp_plugins.rs e workspace/acp_workspace.rs para ativação na inicialização, resolução de lançamento e limpeza. Hosts até 2.2.1 não podem carregar este runtime. Preserve identidades de agente existentes e opções do usuário ao migrar adaptadores agrupados para bindings de plugin.

Manifestos Mosh publicados usam terminal-transport; novos manifestos auxiliares declaram recurso terminal-transport, protocolo oxideterm-mosh e versão 1. Mantenha o bootstrap SSH, renderização de terminal e previsão local no host; UDP, SSP e criptografia pertencem ao plugin do motor. Hosts até 2.2.1 não podem carregá-lo. Verifique oxideterm-mosh e seu MoshPluginSessions de propriedade do workspace para ativação de lançamento e retirada de processo antes da substituição do pacote. Ambas as direções de pipe devem permanecer independentes sob contrapressão de saída. RDP, VNC e Mosh compartilham a categoria de catálogo remote-connections.

Publicação coordenada

Manifestos de desktop remoto publicados usam remote-desktop; novos manifestos auxiliares declaram recurso remote-desktop, protocolo oxideterm-remote-desktop e versão 1. Ambos são normalizados no plano auxiliar comum, fora do supervisor de plugin comum. Mantenha o visualizador nativo, entrada, credenciais e propriedade do túnel SSH no host. Exija um contributes.remoteDesktop.protocolVersion suportado e resolva apenas executáveis instalados confiáveis, habilitados e compatíveis. Pare e finalize processos auxiliares antes de atualizar ou remover seus arquivos; desative a reconexão automática até que um provedor compatível esteja disponível. Mantenha o formato stdio binário existente inalterado ao extrair auxiliares. Hosts até 2.2.1 não podem carregar este runtime.

Manifestos helper genéricos exigem hosts a partir de 2.2.2. Preserve os tipos de manifesto publicados, limites de aprovação de capacidade e payloads de protocolo ao normalizá-los. A unificação do plano de runtime não transfere a propriedade do filho para o supervisor de plugin. FIDO declara recurso ssh-authentication, protocolo oxideterm-security-key e versão 1; sua tarefa de autenticação é dona do cancelamento e finalização.

Criação de plugin, registros de lançamento e correções de compatibilidade pertencem ao repositório AnalyseDeCircuit/oxideterm-plugins. Localize seu checkout real pela identidade do repositório, em vez de assumir um nome de diretório local. Leia seu .agents/skills/oxideterm-plugin-release/SKILL.md e use seus scripts de lançamento. A skill canônica também está disponível em:

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

Use um checkout local quando essa skill ou seus scripts ainda não estiverem publicados. Não invente um processo de publicação alternativo quando a ferramenta necessária estiver ausente. Alterações na implementação do host por si só não autorizam a publicação de plugins.

Para comportamento alterado, use os testes existentes de registro e entidade de plugin no limite que o possui. Cubra os riscos afetados: seleção de versão compatível, rejeição de upgrade/downgrade, recuperação de correção ou inicialização offline. Não execute novamente suítes não relacionadas apenas porque um arquivo de compatibilidade de plugin foi alterado.

Individual skills in this repo

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

Habilidades Relacionadas