CommandCodeAI / CommandCodeAI/command-code
<think> tags and "thought" leaks into transcript feed with qwen-3.7-plus
未關閉
還沒有人認領這個 Issue。
- 主要語言
- 沒有語言資料
- 星號
- 4k
- 分支
- 350
- PR 合併指標
- 30 天內沒有已合併 PR
描述
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
貢獻指南
這個儲存庫沒有索引到貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
研究方向
使用 qwen-3.7-plus 重現此問題,並檢查 transcript feed 對 區塊及其結束標籤的處理。驗證模型的思考內容是否隱藏在展開控制項後方,以及 feed 中是否不會出現字面形式的 標籤。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- typescript
- 領域
- ai, cli
- Issue 類型
- 缺陷
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 活躍度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 52/100