Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

":Copilot model" fails with "Copilot: Could not retrieve completions models"

Aberta Para iniciantes
#305 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
82/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
vim
Domínio
tooling

Direção de pesquisa

Comece em autoload/copilot.vim, em s:FmtModel() e s:commands.model(), e então inspecione o formato da resposta da solicitação de metadados do modelo de completions. Verifique se o comando identifica os modelos capazes de fornecer completions e formata a mensagem de modelo único conforme esperado. Reproduza o problema com :Copilot model e confirme que ele informa GPT-4.1 Copilot em vez do erro de recuperação.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

The current implementation seems to rely on model_picker_enabled being true however it's false for the only completion mode in use: gpt-41-copilot.

What I expect to see from :Copilot model:

Copilot: Current/only completions model is GPT-4.1 Copilot (gpt-41-copilot)

What I see instead:

Copilot: Could not retrieve completions models

Here is a minimal fix which makes it work:

diff --git a/autoload/copilot.vim b/autoload/copilot.vim
index dfdc443..936e975 100644
--- a/autoload/copilot.vim
+++ b/autoload/copilot.vim
@@ -774,7 +774,7 @@ function! s:commands.panel(opts) abort
 endfunction
 
 function! s:FmtModel(model) abort
-  return a:model.modelName . ' (' . a:model.id . ')'
+  return a:model.name . ' (' . a:model.id . ')'
 endfunction
 
 function! s:commands.model(opts) abort
@@ -782,11 +782,11 @@ function! s:commands.model(opts) abort
     return
   endif
   let client = copilot#Client()
-  let response = client.Request('copilot/models', {}).Wait()
+  let response = client.Request('copilot/models/getModelMetadataList', {}).Wait()
   if response.status ==# 'error'
     return 'echoerr ' . string('Copilot: Error retrieving completions models: ' . response.error.message)
   endif
-  let models = filter(response.result, { _, m -> index(m.scopes, 'completion') >= 0 })
+  let models = filter(response.result.models, { _, m -> m.capabilities.type ==# 'completion' })
   if len(models) == 0
     echo 'Copilot: Could not retrieve completions models'
   elseif len(models) == 1
Linguagem predominante
Vim Script
Estrelas
11.7k
Forks
821
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de github/copilot.vim

Todas as issues de github/copilot.vim

Issues semelhantes

Mais issues de DevTools

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.