mirror of
https://github.com/AgentSeal/codeburn.git
synced 2026-05-17 12:20:43 +00:00
Document the contributor onboarding path: - CONTRIBUTING.md: setup, npm scripts, coding conventions, PR process, the block-claude-coauthor enforcement, and the five providers without test coverage today (claude, gemini, goose, qwen, antigravity). - docs/architecture.md: 12-command CLI surface, parser pipeline, three cache layers, 14 optimize detectors, and the mac / gnome / build layouts with cited line numbers. - docs/providers/: one file per provider (17 providers plus the shared vscode-cline-parser helper). Each covers data path, storage format, caching, dedup key, quirks, and a "when fixing a bug here" checklist. Also fix two pre-existing documentation issues surfaced while writing the new docs: - RELEASING.md claimed GitHub Actions auto-publishes the CLI when a v* tag is pushed. There is no such workflow; CLI publishing is manual via npm publish. Updated the CLI section to reflect reality and kept the menubar (mac-v* tag) automation accurate. - .gitignore had CLAUDE.md unanchored, which on case-insensitive filesystems also matched docs/providers/claude.md. Anchored to /CLAUDE.md so the root-level memory file stays ignored without affecting subdirectory docs. All cited file paths, line numbers, function names, and test counts were verified against current code (41 test files, 558 tests passing).
1.6 KiB
1.6 KiB
Qwen
Qwen Code CLI.
- Source:
src/providers/qwen.ts - Loading: eager (
src/providers/index.ts:10) - Test: none. Adding a fixture-based test is a known good first issue.
Where it reads from
$QWEN_DATA_DIR if set, otherwise ~/.qwen/projects/<project>/chats/*.jsonl (qwen.ts:52-54).
Storage format
JSONL.
Caching
None.
Deduplication
Per <sessionId>:<uuid> (qwen.ts:110).
Quirks
- Project name comes from the last path component (
qwen.ts:56-59), not from any in-file field. If a user puts the same project under two different paths, they will appear as two projects. - Thought parts are filtered out before token accounting (
qwen.ts:97). Qwen reportsthoughtsTokenCountseparately fromcandidatesTokenCount; this parser counts both as output but does not double-count thoughts in the main message. - Tool calls are extracted from a fixed envelope shape (
qwen.ts:61-76). If Qwen restructures its tool-call format in a future release, this is where it will break first. - Tokens come from
usageMetadata:promptTokenCount,candidatesTokenCount,thoughtsTokenCount,cachedContentTokenCount.
When fixing a bug here
- Add a fixture and a test before changing logic. The lack of
tests/providers/qwen.test.tsmakes regressions invisible. - If the bug is "tools missing", look at the function-call extraction loop at
qwen.ts:61-76. - If the bug is "duplicate counts", confirm
<sessionId>:<uuid>actually uniquely identifies a turn in your reproducer; some Qwen builds repeat UUIDs across resumed sessions.