Skip to content

feat: add first-class qwen code support#131

Open
dorogao5 wants to merge 3 commits intovakovalskii:mainfrom
dorogao5:feat/qwen-code-support
Open

feat: add first-class qwen code support#131
dorogao5 wants to merge 3 commits intovakovalskii:mainfrom
dorogao5:feat/qwen-code-support

Conversation

@dorogao5
Copy link
Copy Markdown

@dorogao5 dorogao5 commented Apr 8, 2026

Summary

Adds Qwen Code as a first-class supported agent across the main CodeDash flows without changing the zero-dependency runtime model.

What changed

  • add Qwen session discovery from ~/.qwen/projects/*/(chats|sessions)/*.jsonl with version-tolerant parsing and graceful handling of missing or malformed files
  • load Qwen detail into the unified transcript format used by session detail, preview, replay, search, and export paths
  • include Qwen sessions in global search, replay, token analytics, running detection, launch/resume flows, handoff targets, and cross-agent conversion
  • expose Qwen throughout the CLI and UI: filters, labels, running cards, install command, stats, help text, supported agents docs, and changelog
  • keep cost reporting explicit: when Qwen usage metadata exists but the model has no pricing map, show token data and mark cost as unavailable instead of inventing a price

Validation

Manual checks run locally against real ~/.qwen data and a live local qwen CLI session:

  • node -c src/data.js
  • node -c src/convert.js
  • node -c src/terminals.js
  • node -c src/handoff.js
  • node -c src/frontend/app.js
  • node -c bin/cli.js
  • git diff --check
  • node bin/cli.js list 15
  • node bin/cli.js show 03a66a07-3e81-4ebf-8b21-df1bf08f10ac
  • node bin/cli.js search контрибьютером
  • node bin/cli.js stats
  • node bin/cli.js handoff 03a66a07-3e81-4ebf-8b21-df1bf08f10ac qwen
  • node bin/cli.js convert 03a66a07-3e81-4ebf-8b21-df1bf08f10ac codex
  • node bin/cli.js convert 17f89c71-9c2a-42cf-a68b-7c757d9b05ab qwen
  • node bin/cli.js run --port=3900 --host=127.0.0.1 --no-browser
  • curl http://127.0.0.1:3900/api/sessions
  • curl http://127.0.0.1:3900/api/session/56fb9dab-88e6-444e-9367-a19abbea4f89
  • curl http://127.0.0.1:3900/api/preview/56fb9dab-88e6-444e-9367-a19abbea4f89
  • curl http://127.0.0.1:3900/api/replay/03a66a07-3e81-4ebf-8b21-df1bf08f10ac
  • curl http://127.0.0.1:3900/api/search?q=контрибьютером
  • curl http://127.0.0.1:3900/api/cost/56fb9dab-88e6-444e-9367-a19abbea4f89
  • curl http://127.0.0.1:3900/api/active
  • qwen -r 03a66a07-3e81-4ebf-8b21-df1bf08f10ac

Additional parser checks were run in an isolated temporary HOME with:

  • no ~/.qwen present
  • multiple Qwen JSONL shapes (chats/, sessions/, mixed timestamps)
  • malformed JSONL lines
  • assistant messages containing MCP tool calls and usage metadata

Known limitations

  • Qwen cost stays unavailable when the stored model name has no entry in MODEL_PRICING.
  • Live session mapping is strongest for explicit qwen -r <session-id> or --session-id; plain qwen still falls back to cwd and open-file detection.
  • This PR does not add a dedicated automated test suite because the repository currently relies on manual validation and has no existing test harness for these flows.

@dorogao5 dorogao5 force-pushed the feat/qwen-code-support branch 6 times, most recently from 3d9ceb4 to 7d4343d Compare April 8, 2026 20:23
@vakovalskii
Copy link
Copy Markdown
Owner

Conflicts with current codebase — app.js was split into modules. Please rebase on latest main. Also 14 files / 1000+ lines is too big for one PR — consider splitting into: 1) data.js agent support 2) frontend UI 3) terminals support.

@dorogao5 dorogao5 force-pushed the feat/qwen-code-support branch from 7d4343d to 3341e00 Compare April 10, 2026 20:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants