CommandCodeAI / CommandCodeAI/command-code
<think> tags and "thought" leaks into transcript feed with qwen-3.7-plus
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Sem dados de linguagem
- Estrelas
- 4k
- Forks
- 350
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
Summary
I am building a spell checking mod with qwen-3.7-plus and several times (when context gets a big longer), the <think> end tag isn't parsed and thus "thought" leaks into the feed window of TUI:
✻ Thought for 4 seconds [ctrl+o to expand]
⠶ </think>
The user wants me to continue. I need to fix the __dirname / import.meta issue. Since this is a mod that runs in Command Code's jiti environment, __dirname
should be available. But the TypeScript checker is complaining because it doesn't know about the runtime environment.
Let me simplify the _dirname resolution to just use __dirname since jiti provides it. Or I can use a different approach - use cmd.cwd which is the workspace
root, and then resolve relative to that.
Actually, looking at the mod-builder docs, mods are loaded by jiti which compiles TypeScript at load time. The __dirname should be available in that context.
But the TypeScript checker doesn't know about it.
Let me just use a simpler approach - declare __dirname as a global or use a try/catch approach. Or better yet, since the mod file and the dictionary file are in
the same directory, I can use import.meta.url but that also has issues with TypeScript.
The simplest fix is to just declare __dirname at the top of the file or use a different approach. Let me check what the mod-builder examples do.
Actually, looking at the mod-builder skill instructions, it says mods are loaded by jiti which compiles TypeScript at load time. In a CommonJS context (which
jiti uses), __dirname is available. The issue is just that TypeScript doesn't know about it.
Let me just add a declaration at the top of the file or use a workaround. The simplest is to use process.cwd() or pass the path as a parameter.
Actually, the best approach is to just use __dirname but declare it properly. Let me fix this.
Now fix the __dirname issue — jiti provides __dirname at runtime, but TypeScript doesn't know about it:
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Edit File .commandcode/mods/spell-checker.ts
534 │ - const _dirname = typeof __dirname !== 'undefined'
535 │ - ? __dirname
536 │ - : dirname(fileURLToPath(import.meta.url));
534 │ + // jiti (the mod loader) provides __dirname at runtime
535 │ + declare const __dirname: string;
536 │
538 │ - const BUILTIN_DICTIONARY_PATH = join(_dirname, 'frequency_dictionary_en_82_765.txt');
537 │ + const BUILTIN_DICTIONARY_PATH = join(__dirname, 'frequency_dictionary_en_82_765.txt');
Expected Behavior
- model though is hidden behind expand ctrl+0
Actual Behavior
The </think> end tag is seen in the feed conversation transcript.
Steps to reproduce the issue
- Use qwen-3.7-plus
Command Code Version
1.4.6
Operating System
macOS
Terminal/IDE
ghostty
Shell
zsh
Additional context
No response
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Reproduza o problema com qwen-3.7-plus e inspecione como o feed de transcrição lida com blocos e suas tags de fechamento. Verifique se o conteúdo do pensamento do modelo está oculto atrás do controle de expansão e se nenhuma tag literal aparece no feed.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- typescript
- Domínio
- ai, cli
- Tipo de issue
- Bug
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Pouca atividade
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 52/100