CommandCodeAI / CommandCodeAI/command-code
<think> tags and "thought" leaks into transcript feed with qwen-3.7-plus
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Không có dữ liệu ngôn ngữ
- Star
- 4k
- Fork
- 350
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
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
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Tái hiện sự cố với qwen-3.7-plus và kiểm tra cách transcript feed xử lý các khối cùng các thẻ đóng của chúng. Xác minh rằng nội dung suy nghĩ của mô hình bị ẩn phía sau control mở rộng và không có thẻ dạng literal nào xuất hiện trong feed.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- typescript
- Lĩnh vực
- ai, cli
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 52/100