@qwen-code/qwen-code 0.21.2 → 0.21.3-nightly.20260803.e1e5b42ce
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/docs/configuration/settings.md +53 -38
- package/bundled/qc-helper/docs/features/channels/github.md +16 -5
- package/bundled/qc-helper/docs/features/channels/gitlab.md +6 -0
- package/bundled/qc-helper/docs/features/code-review.md +92 -24
- package/bundled/qc-helper/docs/features/commands.md +46 -38
- package/bundled/qc-helper/docs/features/hooks.md +115 -18
- package/bundled/qc-helper/docs/features/memory.md +27 -0
- package/bundled/qc-helper/docs/features/skills.md +46 -1
- package/bundled/qc-helper/docs/features/sub-agents.md +42 -9
- package/bundled/qc-helper/docs/features/tool-use-summaries.md +7 -7
- package/bundled/qc-helper/docs/qwen-serve.md +46 -25
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +62 -31
- package/bundled/qc-helper/docs/support/troubleshooting.md +6 -1
- package/bundled/review/DESIGN.md +167 -32
- package/bundled/review/SKILL.md +207 -38
- package/chunks/{MaxSizedBox-TQBQ247P.js → MaxSizedBox-FCEK5P5K.js} +41 -38
- package/chunks/{StandaloneSessionPicker-2HPTKCLX.js → StandaloneSessionPicker-AT77J3PM.js} +63 -59
- package/chunks/{acp-startup-profiler-2C4A5ZTJ.js → acp-startup-profiler-3RICG2YW.js} +2 -2
- package/chunks/{acpAgent-PS6EDGH3.js → acpAgent-PBMKZ5KH.js} +664 -560
- package/chunks/{agent-VDOUB35F.js → agent-55W5BPK3.js} +37 -34
- package/chunks/{agent-headless-EO53EFS2.js → agent-headless-I7VMHI22.js} +37 -34
- package/chunks/{anthropicContentGenerator-OFHSZJBF.js → anthropicContentGenerator-3CAHEZBM.js} +341 -29
- package/chunks/{artifact-tool-RDN2W7ND.js → artifact-tool-TBOYEKTY.js} +2 -2
- package/chunks/{askUserQuestion-OZERWH5R.js → askUserQuestion-23Y5WZFJ.js} +2 -2
- package/chunks/{bridge-W7AZSRZQ.js → bridge-XNAWEDAN.js} +43 -40
- package/chunks/{ca-6W3SK7OQ.js → ca-NYKNH222.js} +50 -5
- package/chunks/{channel-management-service-5S7YCWX5.js → channel-management-service-UHX56NBO.js} +7 -7
- package/chunks/{channel-settings-store-JFVRSNER.js → channel-settings-store-7P6RJSSF.js} +44 -41
- package/chunks/{channel-worker-group-OVWGYMZS.js → channel-worker-group-NDG4WOOZ.js} +8 -8
- package/chunks/{channel-worker-manager-H55GKOQA.js → channel-worker-manager-ZCW6UW34.js} +8 -8
- package/chunks/{channel-worker-supervisor-CABBXYHK.js → channel-worker-supervisor-ATGFTZRN.js} +4 -4
- package/chunks/{chunk-6MPDY6ZG.js → chunk-24ER7UV4.js} +1 -1
- package/chunks/{chunk-QDK4F2N5.js → chunk-2DNKEBXY.js} +1 -1
- package/chunks/{chunk-AUOULH6Q.js → chunk-2GF3IDEK.js} +1610 -2196
- package/chunks/{chunk-JYBU6YUE.js → chunk-2M5N3DHY.js} +1 -1
- package/chunks/{chunk-LHKCY7DY.js → chunk-2UISUFHQ.js} +3 -3
- package/chunks/{chunk-BBIQAX4V.js → chunk-2ZCYE3F2.js} +30 -18
- package/chunks/{chunk-GJ2GBPBD.js → chunk-332FMXSD.js} +5 -5
- package/chunks/{chunk-JXVC2PL3.js → chunk-33FNCQSY.js} +2 -2
- package/chunks/{chunk-P755N4CS.js → chunk-3GALLNII.js} +6 -6
- package/chunks/{chunk-YANIWTRZ.js → chunk-3ICGQSVO.js} +1 -1
- package/chunks/{chunk-NBD76HUW.js → chunk-3LGZEYOF.js} +2 -2
- package/chunks/{chunk-E2BHWIDT.js → chunk-3RXUYQJI.js} +6 -2
- package/chunks/{chunk-E5Z2AVNV.js → chunk-3SH53ANB.js} +0 -11
- package/chunks/{chunk-N4ACHWNH.js → chunk-432XCUHF.js} +1 -1
- package/chunks/{chunk-JLZ3RBQG.js → chunk-44EJDGMS.js} +144 -11
- package/chunks/{chunk-KR32NIAN.js → chunk-4JP34TZ6.js} +10 -10
- package/chunks/{chunk-L2E5GFAG.js → chunk-4LKVQFHM.js} +2 -2
- package/chunks/{chunk-YDLJGZHL.js → chunk-4NFY2S7N.js} +0 -33
- package/chunks/{chunk-NHFEMWAZ.js → chunk-5WY5QEM6.js} +1 -1
- package/chunks/{chunk-56Z7QEAQ.js → chunk-6BUPGI3J.js} +16 -16
- package/chunks/{chunk-H6I4PGRV.js → chunk-6DNHLK7F.js} +4 -4
- package/chunks/{chunk-XQK4XXTN.js → chunk-6O5DVH27.js} +1 -1
- package/chunks/{chunk-2RFKHEXL.js → chunk-6PLDPT2C.js} +1 -1
- package/chunks/{chunk-Q5WZTTWE.js → chunk-7UPJXZLD.js} +6 -8
- package/chunks/{chunk-CBBP4BMC.js → chunk-7UXI6P72.js} +82 -207
- package/chunks/{chunk-6CQWRWUC.js → chunk-7XLPYF6B.js} +3 -3
- package/chunks/{chunk-VEMNQMHA.js → chunk-7ZH55K26.js} +5 -13
- package/chunks/{chunk-JJPKFJBT.js → chunk-A2FOI762.js} +3 -3
- package/chunks/{chunk-LYI2PZDK.js → chunk-A5LNZGJB.js} +2 -2
- package/chunks/{chunk-3APUUXRF.js → chunk-A5YZ3FA2.js} +2 -1
- package/chunks/{chunk-SHN4KHDK.js → chunk-A6SX5TAH.js} +3 -3
- package/chunks/{chunk-QCXGC7QB.js → chunk-A7PONO5G.js} +3 -3
- package/chunks/{chunk-SZ3KHTDR.js → chunk-AKA24BGO.js} +1 -1
- package/chunks/{chunk-RSVPYAGK.js → chunk-B4HXOGF5.js} +5 -5
- package/chunks/{chunk-D6MDRSZ6.js → chunk-BBXSRVSN.js} +22 -11
- package/chunks/{chunk-Q3T5KA2V.js → chunk-BFHXDAR7.js} +1 -1
- package/chunks/{chunk-L55JWS76.js → chunk-BGXZBI5B.js} +1 -1
- package/chunks/{chunk-2KKCCLPT.js → chunk-C4IUDGPI.js} +1 -1
- package/chunks/{chunk-MM7TH7ZM.js → chunk-CFDR3GNL.js} +18 -3
- package/chunks/{chunk-3F2WDAV6.js → chunk-CFVFQWFB.js} +14 -14
- package/chunks/{chunk-E2FN6SM7.js → chunk-CIUUYB23.js} +5 -5
- package/chunks/{chunk-JCJ7LKNA.js → chunk-DIEFUBV6.js} +1644 -1570
- package/chunks/{chunk-KWHKHSIS.js → chunk-DTAPI453.js} +8 -8
- package/chunks/{chunk-WWCMSZII.js → chunk-DV2GAGR7.js} +71 -7
- package/chunks/{chunk-675H6PLP.js → chunk-DYA25Y7U.js} +1 -1
- package/chunks/{chunk-3I6DUGQD.js → chunk-E4WHKETF.js} +32 -4
- package/chunks/{chunk-QTERJVPZ.js → chunk-EKTCKZV5.js} +1 -0
- package/chunks/{chunk-HX6RLYUO.js → chunk-ENOHFX2M.js} +4 -4
- package/chunks/{chunk-VMX5RZQH.js → chunk-EZZJHMFK.js} +18 -9
- package/chunks/{chunk-KXDONCPU.js → chunk-FBDRTW3I.js} +4 -4
- package/chunks/{chunk-FCYYAB4S.js → chunk-FHPKHXHT.js} +3 -3
- package/chunks/{chunk-DQ2O5QOJ.js → chunk-FJZS2MXB.js} +1 -1
- package/chunks/{chunk-EQNUDTL6.js → chunk-FVLPZSKH.js} +3 -3
- package/chunks/{chunk-2LEOZTBT.js → chunk-FYMMZV5F.js} +111 -26
- package/chunks/{chunk-UV6KF7T3.js → chunk-GNZ7MX73.js} +3 -3
- package/chunks/chunk-GOFAQQZA.js +132 -0
- package/chunks/{chunk-YUFIEIWC.js → chunk-GTM6IHBB.js} +2 -2
- package/chunks/{chunk-W3UKBMSI.js → chunk-GU5B6IF3.js} +118 -9
- package/chunks/{chunk-PCK4B6LR.js → chunk-GU5XWZU2.js} +1 -1
- package/chunks/{chunk-DEEABGH2.js → chunk-H2EDCJIM.js} +5954 -1766
- package/chunks/{chunk-FJ5WUMUQ.js → chunk-H36SETQS.js} +1 -1
- package/chunks/{chunk-6FMJLI5M.js → chunk-HFVW54NL.js} +41 -6
- package/chunks/chunk-HGCQ5SE7.js +136 -0
- package/chunks/{chunk-OFZKFPYG.js → chunk-HR4CHEQS.js} +3 -3
- package/chunks/{chunk-CO2U743O.js → chunk-I3GX6LGS.js} +4 -4
- package/chunks/{chunk-5NNHICSA.js → chunk-I7JDGNG6.js} +3 -3
- package/chunks/{chunk-RDJOB6S3.js → chunk-IEBT6DXF.js} +1 -1
- package/chunks/{chunk-EU5TBFJI.js → chunk-IV7QPMC2.js} +2 -2
- package/chunks/{chunk-B4AJNNOL.js → chunk-J26HHFI5.js} +1 -1
- package/chunks/{chunk-CNTR4GR6.js → chunk-JELIWHXD.js} +1 -1
- package/chunks/{chunk-FNDXMN7I.js → chunk-JQFMW7BD.js} +936 -223
- package/chunks/{chunk-IGTHU3T4.js → chunk-KKN2IE7Q.js} +1 -1
- package/chunks/{chunk-TZTAV5RH.js → chunk-KVUBYJDM.js} +2 -2
- package/chunks/{chunk-DUNI4EBW.js → chunk-KZXSAQYV.js} +86 -52
- package/chunks/chunk-LBOVL47Y.js +29 -0
- package/chunks/{chunk-FS674JW4.js → chunk-LBWNSLJK.js} +3 -3
- package/chunks/{chunk-I5BT7ADR.js → chunk-LEZFUYPM.js} +4 -4
- package/chunks/chunk-LLMGP5IC.js +222 -0
- package/chunks/{chunk-44F4LBWZ.js → chunk-LVW7BHTW.js} +56 -18
- package/chunks/{chunk-YGE3IXJP.js → chunk-M744OFVE.js} +1 -1
- package/chunks/chunk-MISUEWB4.js +8749 -0
- package/chunks/{chunk-7SJN2IWT.js → chunk-MJ2SKNTY.js} +5 -5
- package/chunks/{chunk-JE2CEOBO.js → chunk-MNTXIO6T.js} +4 -4
- package/chunks/{chunk-TEGJSJDF.js → chunk-MOHAWIAW.js} +2 -2
- package/chunks/{chunk-54YCNSK5.js → chunk-MVMBE5EH.js} +4521 -10220
- package/chunks/{chunk-PZEXDV3H.js → chunk-NCY2CDDX.js} +71 -43
- package/chunks/{chunk-TTJZAIFP.js → chunk-NJELCSFL.js} +3 -3
- package/chunks/{chunk-A7Y5H4TX.js → chunk-NXDJEZCI.js} +7 -7
- package/chunks/{chunk-PQNHRFJC.js → chunk-NYX53SV4.js} +0 -2
- package/chunks/{chunk-QARJNL2V.js → chunk-O2ZYHG33.js} +5 -4
- package/chunks/{chunk-6PQPKTXP.js → chunk-OPMLL3B3.js} +1 -1
- package/chunks/{chunk-PVNQRENX.js → chunk-OUQGNGIU.js} +1 -1
- package/chunks/{chunk-V7RNNPGC.js → chunk-P5Y23G2L.js} +18 -1
- package/chunks/{chunk-GURGAJTX.js → chunk-PDDYAXL2.js} +4 -1
- package/chunks/chunk-PWCQRLM5.js +1170 -0
- package/chunks/{chunk-GL4JOZXU.js → chunk-Q43MIWDH.js} +4 -4
- package/chunks/{chunk-V4XNUDPE.js → chunk-QFIYH5KR.js} +28 -7
- package/chunks/chunk-QL4TN4HS.js +59 -0
- package/chunks/{chunk-E6CJ2SMM.js → chunk-QMBEW7EW.js} +2 -2
- package/chunks/{chunk-U4VTUMMK.js → chunk-QONSRAEV.js} +1 -1
- package/chunks/{chunk-LOY7RWQG.js → chunk-QYPT3QUD.js} +3 -3
- package/chunks/{chunk-RG64CDT2.js → chunk-RJAVNGJJ.js} +131 -48
- package/chunks/{chunk-Z3S5EMOW.js → chunk-RPYYTL7E.js} +60 -12
- package/chunks/{chunk-V25K5ID7.js → chunk-SWCEYR6T.js} +1 -1
- package/chunks/{chunk-77V3VIKL.js → chunk-SXGNNAMC.js} +9 -9
- package/chunks/{chunk-7KAXXBER.js → chunk-TNQ5BEEB.js} +3 -3
- package/chunks/{chunk-R2XWGR75.js → chunk-TYERNYH4.js} +2 -2
- package/chunks/{chunk-45IOTAUS.js → chunk-U25CMJYY.js} +1 -1
- package/chunks/{chunk-7ULQIS27.js → chunk-UEJESCS7.js} +1 -1
- package/chunks/{chunk-HC45LTEN.js → chunk-UH7Z7Y45.js} +1 -1
- package/chunks/{chunk-P5VC5USY.js → chunk-UIKCPMID.js} +1 -1
- package/chunks/{chunk-CPZAH673.js → chunk-UKZEXS6K.js} +2 -0
- package/chunks/{chunk-HIVKI6O6.js → chunk-UO7AWUZJ.js} +9 -7
- package/chunks/{chunk-XP4L6KS3.js → chunk-URN76TKR.js} +2 -2
- package/chunks/{chunk-XUGZYLDH.js → chunk-UWSXFI6E.js} +1 -1
- package/chunks/{chunk-AOHY3QJ3.js → chunk-VA5NLVPT.js} +3 -3
- package/chunks/{chunk-FANRZEAJ.js → chunk-VWOVHOTT.js} +1 -1
- package/chunks/{chunk-NTDH4IML.js → chunk-W2K4OEW4.js} +7 -7
- package/chunks/{chunk-L32VV3ZJ.js → chunk-WH7W24EN.js} +12 -12
- package/chunks/{chunk-QTHQ6Z5X.js → chunk-WK4TJUEA.js} +1 -1
- package/chunks/{chunk-ZPZ7ZJEE.js → chunk-WUC6ZFXO.js} +1 -1
- package/chunks/{chunk-TIRRPCFS.js → chunk-X6QNZOTC.js} +1 -1
- package/chunks/{chunk-IIUGIWWY.js → chunk-XC2VAFVZ.js} +1 -1
- package/chunks/{chunk-D4HTUMGX.js → chunk-XC656O42.js} +3 -3
- package/chunks/{chunk-ZMOJ7ISP.js → chunk-XXOVLDZQ.js} +1 -1
- package/chunks/{chunk-THVU3RNH.js → chunk-YAVY33G4.js} +1 -1
- package/chunks/{chunk-PJOHNFIY.js → chunk-YIAC2OXH.js} +5 -5
- package/chunks/{chunk-CU47KXB5.js → chunk-YTSN63PD.js} +6 -6
- package/chunks/{chunk-DSFHVTWD.js → chunk-YXEVDA66.js} +2 -2
- package/chunks/{chunk-MB32MS4U.js → chunk-ZLJQIGCH.js} +260 -175
- package/chunks/{chunk-6TAASXWL.js → chunk-ZX6RZZFB.js} +3 -3
- package/chunks/{computer-use-5QWCFNKD.js → computer-use-BG2EHNJE.js} +37 -34
- package/chunks/{config-utils-WADIDWGG.js → config-utils-E3ZQTHGM.js} +4 -4
- package/chunks/{contextCommand-4Z7T7TUM.js → contextCommand-JAPYNKFC.js} +41 -38
- package/chunks/{core-runtime-6N4EFC2Q.js → core-runtime-2VCZN5QF.js} +37 -34
- package/chunks/{create-sub-session-AEREHZBQ.js → create-sub-session-52OUA2VU.js} +52 -43
- package/chunks/{create-sub-session-62YZWVAY.js → create-sub-session-J32WC64U.js} +2 -2
- package/chunks/{cron-create-6E7GIQTG.js → cron-create-HMFSHIAR.js} +4 -4
- package/chunks/{cron-delete-JD26XY3W.js → cron-delete-ZJFHOX57.js} +4 -4
- package/chunks/{cron-list-CUWFB44G.js → cron-list-ZEX2NBMN.js} +4 -4
- package/chunks/{daemon-PCNCI5YU.js → daemon-CCIX4BMG.js} +47 -6
- package/chunks/{daemon-status-provider-DDF7C5M7.js → daemon-status-provider-F2YGDKHR.js} +48 -45
- package/chunks/{daemon-trust-policy-Q4KSOJTR.js → daemon-trust-policy-XCY7JETR.js} +43 -40
- package/chunks/{daemon-trust-policy-monitor-V6FTE3IY.js → daemon-trust-policy-monitor-FBHB5GMQ.js} +43 -40
- package/chunks/{de-SY6O76BF.js → de-VL76CPLV.js} +50 -5
- package/chunks/{deferred-core-runtime-GHJ5GQHK.js → deferred-core-runtime-BBLJ4JUM.js} +37 -34
- package/chunks/display-image-2WOG27DY.js +184 -0
- package/chunks/{dist-ZHXOBXDN.js → dist-3BMEUGTG.js} +1 -1
- package/chunks/{dist-OAOC5OV4.js → dist-7JGAAQSC.js} +2 -2
- package/chunks/{dist-SL2LUMML.js → dist-A7H2KKUC.js} +1 -1
- package/chunks/{dist-ULIG4M5H.js → dist-C5U4LJKW.js} +162 -15
- package/chunks/{dist-2PERFI23.js → dist-DPPHJAVL.js} +3 -3
- package/chunks/{dist-PVEAFLHY.js → dist-HVBMEYWK.js} +1 -1
- package/chunks/{dist-26BIMQT6.js → dist-IKGVITP3.js} +676 -37
- package/chunks/{dist-WGMNT3JQ.js → dist-SFQ34F4M.js} +24 -6
- package/chunks/{earlyInputCapture-TQXLLISD.js → earlyInputCapture-ALVSMKP7.js} +38 -35
- package/chunks/{edit-FJEUV6KZ.js → edit-POB3CIHQ.js} +37 -34
- package/chunks/{en-NBK3JKCE.js → en-IRJ2WN5T.js} +61 -6
- package/chunks/{enter-worktree-7GE3TZ4P.js → enter-worktree-Q2N7UZWC.js} +37 -34
- package/chunks/{enterPlanMode-KR5TMPCJ.js → enterPlanMode-QGAH2GMP.js} +37 -34
- package/chunks/{environment-SWL3CMB3.js → environment-FE5AX2U5.js} +40 -37
- package/chunks/{errors-XQE7BGZV.js → errors-SLMCFLSC.js} +40 -37
- package/chunks/{exit-worktree-CHKTYNCV.js → exit-worktree-7WO2LPLF.js} +37 -34
- package/chunks/{exitPlanMode-QYAG6LWX.js → exitPlanMode-3PINWUTY.js} +37 -34
- package/chunks/{fast-path-Z2K7W6DC.js → fast-path-SVFFEL6U.js} +17 -4
- package/chunks/{fr-4KG5V7UT.js → fr-GK3HQYVB.js} +50 -5
- package/chunks/{gemini-YU4XKEDG.js → gemini-QECJNKNJ.js} +151 -90
- package/chunks/{geminiContentGenerator-ZZX6NBO4.js → geminiContentGenerator-ZFAZKT6R.js} +6 -6
- package/chunks/{glob-VYF5CXSX.js → glob-GXUNQYNR.js} +37 -34
- package/chunks/{goal-tools-HGO6VXPB.js → goal-tools-SPQ5M6D3.js} +3 -3
- package/chunks/{grep-5DP5ZUTW.js → grep-LVU5KBCV.js} +37 -34
- package/chunks/{handleAutoUpdate-UVBJ56DL.js → handleAutoUpdate-MPDHQY72.js} +43 -40
- package/chunks/{i18n-UQNYHEUD.js → i18n-LEYRN6RV.js} +39 -36
- package/chunks/{image-gen-WHPIZNWF.js → image-gen-4T2D4PTP.js} +9 -9
- package/chunks/{initializer-GMIICF4W.js → initializer-PQV2THBS.js} +44 -41
- package/chunks/{installationInfo-4MGG4WVI.js → installationInfo-XC3HXLTX.js} +38 -35
- package/chunks/{ja-F3GSQXMF.js → ja-3FA46IKD.js} +50 -5
- package/chunks/{keychain-token-storage-IKO4G53C.js → keychain-token-storage-7BT4TQ2A.js} +2 -2
- package/chunks/{kittyProtocolDetector-MBRTDRBK.js → kittyProtocolDetector-BFLAKYXH.js} +1 -1
- package/chunks/{list-CPN2W334.js → list-AQBTPZRG.js} +46 -43
- package/chunks/{list-agents-PXJ7ZUFB.js → list-agents-TWEGRJWO.js} +2 -2
- package/chunks/{loadedSettingsAdapter-ZQAV5NDO.js → loadedSettingsAdapter-EZYPDX2J.js} +43 -40
- package/chunks/{loggingContentGenerator-5E7W4IEP.js → loggingContentGenerator-WD6YWU7Q.js} +52 -37
- package/chunks/{loop-wakeup-Y26NQZ5I.js → loop-wakeup-6LLEOQYV.js} +5 -5
- package/chunks/{ls-ONQTTMQR.js → ls-H5WX22VK.js} +4 -4
- package/chunks/{lsp-YGHHRGMD.js → lsp-G6FXYEIS.js} +2 -2
- package/chunks/{managed-npm-update-MKKAXYXA.js → managed-npm-update-BMM57CHD.js} +40 -37
- package/chunks/{mcp-V5NTJF6X.js → mcp-FMI6NCWA.js} +43 -40
- package/chunks/{monitor-CO3ASY6E.js → monitor-PZJOYAA2.js} +37 -34
- package/chunks/nonInteractiveCli-QPX6R4LL.js +152 -0
- package/chunks/{notebook-edit-Z7AEE6FM.js → notebook-edit-GZF2SKTQ.js} +37 -34
- package/chunks/{openaiContentGenerator-CA3MQOP3.js → openaiContentGenerator-ZPLCFAAG.js} +18 -18
- package/chunks/{pidfile-NL7MKDRU.js → pidfile-PCADVJQW.js} +38 -35
- package/chunks/{processUtils-PB5K2DYH.js → processUtils-FKUVQVEU.js} +2 -2
- package/chunks/{pt-EQ33KWEN.js → pt-3AOBKPIJ.js} +50 -5
- package/chunks/{qwenContentGenerator-JYFNDCOS.js → qwenContentGenerator-2Y4R6YLB.js} +42 -40
- package/chunks/{qwenOAuth2-W2ALKQDD.js → qwenOAuth2-UCEHY3I2.js} +8 -8
- package/chunks/{read-file-IEOR5H5W.js → read-file-DYHDFVAS.js} +10 -10
- package/chunks/{read-mcp-resource-U2IJN5HM.js → read-mcp-resource-DRZSI3HE.js} +2 -2
- package/chunks/{record-artifact-MGPJ7EG4.js → record-artifact-IPIRWMFY.js} +3 -3
- package/chunks/{resumeHistoryUtils-BNBTP5AS.js → resumeHistoryUtils-5JS6R3AJ.js} +45 -42
- package/chunks/{ripGrep-UMQODKEB.js → ripGrep-2QOR3ZQT.js} +37 -34
- package/chunks/{ru-7OZAUKGG.js → ru-VJRAMC4W.js} +50 -5
- package/chunks/{run-qwen-serve-RN2R6QQW.js → run-qwen-serve-MTVRAUBR.js} +271 -60
- package/chunks/{runtime-QFJ2MJF5.js → runtime-DQGE2DYR.js} +50 -45
- package/chunks/{scheduler-AMYUFOZI.js → scheduler-BXIZQ4OO.js} +37 -34
- package/chunks/{sdk-exporters-http-4BQANSJ6.js → sdk-exporters-http-IKNWQJNV.js} +2 -2
- package/chunks/{sdk-impl-Z4VXWVFX.js → sdk-impl-7CUUMQDB.js} +2 -2
- package/chunks/{send-message-PMP4ATVM.js → send-message-LHJLVWFD.js} +5 -4
- package/chunks/{serve-EIIYJVX3.js → serve-D4GYHFLL.js} +44 -40
- package/chunks/{server-EP2LLAPD.js → server-S22MLWTJ.js} +618 -387
- package/chunks/{session-GMPZBLOW.js → session-AHNM6YXP.js} +151 -87
- package/chunks/{settings-LN7RNKBS.js → settings-77MDDUSX.js} +42 -39
- package/chunks/{shell-EM2OWU5X.js → shell-DLD2VQTQ.js} +37 -34
- package/chunks/{skill-T5VPSK73.js → skill-3B2PAQE4.js} +27 -14
- package/chunks/{skill-settings-GMR3GMNY.js → skill-settings-STR5NF4B.js} +42 -39
- package/chunks/{spawnChannel-YPCU62DI.js → spawnChannel-TOWYOVDZ.js} +39 -36
- package/chunks/{standalone-update-JAKIM2NF.js → standalone-update-F6ZWABD7.js} +40 -37
- package/chunks/{startInteractiveUI-YETQWGYF.js → startInteractiveUI-QR7MHDX7.js} +1829 -1036
- package/chunks/{syntheticOutput-D7E6ZFKR.js → syntheticOutput-EYL7DWO7.js} +3 -3
- package/chunks/{task-create-NFCYD43L.js → task-create-4ALZMGP5.js} +10 -9
- package/chunks/{task-list-TAVMGEVD.js → task-list-6CVQPORX.js} +6 -6
- package/chunks/{task-stop-ZDF2UJRM.js → task-stop-Y5ZTFVRX.js} +2 -2
- package/chunks/{task-update-6L7LHGEX.js → task-update-IKCEEWJ6.js} +10 -9
- package/chunks/{team-create-LFJ6HGNY.js → team-create-LQVIAVRF.js} +37 -34
- package/chunks/{team-delete-DPGGRQBU.js → team-delete-CE7DC53R.js} +6 -6
- package/chunks/{team-plan-approval-C2KLSDGO.js → team-plan-approval-G5PUNI52.js} +37 -34
- package/chunks/terminal-image-renderer-33GSM55L.js +90 -0
- package/chunks/{theme-manager-JQ3ZGBP5.js → theme-manager-DBFM5QOG.js} +38 -35
- package/chunks/{todoWrite-2UO5G6G6.js → todoWrite-FTZWQRZH.js} +108 -36
- package/chunks/{tool-search-FAZBFRJZ.js → tool-search-RGG7BBC4.js} +13 -12
- package/chunks/{total-session-admission-5CALIVYO.js → total-session-admission-LY3RMXXI.js} +44 -41
- package/chunks/{trustedFolders-KOPSP44S.js → trustedFolders-3M4IQ6K6.js} +39 -36
- package/chunks/{update-relaunch-6QL2TICS.js → update-relaunch-G3CMSX3M.js} +5 -5
- package/chunks/{updateCheck-4Q6RIKFW.js → updateCheck-ZKFGBDTG.js} +42 -39
- package/chunks/{useAutoAcceptIndicator-Q5BMKZV3.js → useAutoAcceptIndicator-7SAFZK5H.js} +47 -44
- package/chunks/{validateNonInterActiveAuth-GKOC5F6Z.js → validateNonInterActiveAuth-F2K6UGE4.js} +88 -84
- package/chunks/{version-VSATY2LD.js → version-KM6MYV2D.js} +1 -1
- package/chunks/{web-fetch-JCLKL6NL.js → web-fetch-SM4LZHRS.js} +13 -13
- package/chunks/{web-search-DSQTFUBX.js → web-search-OGKZNDAC.js} +8 -8
- package/chunks/{workflow-M6QAVKVJ.js → workflow-HU365RFR.js} +419 -304
- package/chunks/{workspace-providers-status-YKLTLMJA.js → workspace-providers-status-QKKXQHL7.js} +46 -43
- package/chunks/{workspace-registration-store-5DMGKU64.js → workspace-registration-store-7J7KOXFD.js} +2 -2
- package/chunks/{workspace-registry-PTYUSYXX.js → workspace-registry-KC66O6DH.js} +44 -41
- package/chunks/{workspace-service-25ML3T47.js → workspace-service-TEV5Q2AA.js} +51 -48
- package/chunks/{workspace-skills-status-YKZWOYRX.js → workspace-skills-status-VRL55OMU.js} +45 -42
- package/chunks/{workspace-trust-reconciler-5FI2S3OS.js → workspace-trust-reconciler-COC5M7CY.js} +50 -47
- package/chunks/{write-file-AY7VLP5X.js → write-file-3SO2BMNO.js} +37 -34
- package/chunks/{zh-H3YDK5QW.js → zh-ARWDLDLR.js} +58 -6
- package/chunks/{zh-TW-JYCP7XUA.js → zh-TW-Y4RGI3P7.js} +58 -6
- package/chunks/{zoom-image-S4LJZMD5.js → zoom-image-O3RWTVKV.js} +10 -10
- package/cli.js +32 -48
- package/locales/ca.js +68 -4
- package/locales/de.js +70 -4
- package/locales/en.js +84 -6
- package/locales/fr.js +72 -4
- package/locales/ja.js +69 -4
- package/locales/pt.js +68 -4
- package/locales/ru.js +71 -4
- package/locales/zh-TW.js +74 -6
- package/locales/zh.js +74 -6
- package/package.json +3 -3
- package/web-shell/assets/{arc-xjArKHU2.js → arc-KuwiZ67W.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BgrQDNYG.js → architectureDiagram-3BPJPVTR-Cppop6HB.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CXxWC-1_.js → blockDiagram-GPEHLZMM-DQ6HT72s.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-Dx1tLm3v.js → c4Diagram-AAUBKEIU-B8TX_Mh-.js} +1 -1
- package/web-shell/assets/channel-BZd6Ile0.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-CBxjogVR.js → chunk-2J33WTMH-B2WBUTp8.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-izb-rY5W.js → chunk-4BX2VUAB-DXUsWC6O.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-NzLyvSb8.js → chunk-55IACEB6-DtB-6cyk.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DVyKb0dl.js → chunk-727SXJPM-B-PhPyC3.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BtqL7NzB.js → chunk-AQP2D5EJ-DNaTFMSC.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-iNpdKIO0.js → chunk-FMBD7UC4-DZ345tFf.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-DI7cbFmX.js → chunk-ND2GUHAM-BR_EpgzJ.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-3Y_-xFYs.js → chunk-QZHKN3VN-BTU-0gDT.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-B7c-TqtK.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B7c-TqtK.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A--raRatZn.js → cose-bilkent-S5V4N54A-BmsKBCNt.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-B8SU70mO.js → dagre-BM42HDAG-Ba8YWdDC.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-ewgoakXo.js → diagram-2AECGRRQ-CCt2SnI6.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-Bm_JLTnS.js → diagram-5GNKFQAL-BVTLXEU7.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-DEIUjUy9.js → diagram-KO2AKTUF-DpDAVCYV.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-C2Wmrpj-.js → diagram-LMA3HP47-8ljXg-TB.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-CtYe6bFx.js → diagram-OG6HWLK6-JAXfQSmd.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-DfpHcWLV.js → erDiagram-TEJ5UH35-CUeakG6k.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-CAiUhio5.js → flowDiagram-I6XJVG4X-Cd4Wrdwv.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-CYc7ezr4.js → ganttDiagram-6RSMTGT7-C0nMFvH_.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-70lbkcRS.js → gitGraphDiagram-PVQCEYII-uKk88n_L.js} +1 -1
- package/web-shell/assets/index-BXGtjHs5.js +1756 -0
- package/web-shell/assets/{index-Ww86nT9f.js → index-C1UWBJSX.js} +1 -1
- package/web-shell/assets/index-WxSvj2tI.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-C7e8DWPa.js → infoDiagram-5YYISTIA-GfPN17hR.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BYLr2op-.js → ishikawaDiagram-YF4QCWOH-CDbWTcGa.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-hEibAHKX.js → journeyDiagram-JHISSGLW-J8TvvVFz.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-F2rt8Uhp.js → kanban-definition-UN3LZRKU-Ds_ndLrs.js} +1 -1
- package/web-shell/assets/{linear-DPhyNezd.js → linear-DuL9O4i3.js} +1 -1
- package/web-shell/assets/{mermaid.core-ZUtnug0n.js → mermaid.core-DtK4PsQB.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-DDWcMoi8.js → mindmap-definition-RKZ34NQL-DD0r7MS3.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-CTRKzw1_.js → pieDiagram-4H26LBE5-CxGPZ8Q-.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CAEwYG_z.js → quadrantDiagram-W4KKPZXB-Ds7Buxed.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CRjnH9D9.js → requirementDiagram-4Y6WPE33-DIx28ph5.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-LPQT_sOd.js → sankeyDiagram-5OEKKPKP-AxdAYcVX.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Ht2Iqvb0.js → sequenceDiagram-3UESZ5HK-CojoXAZ5.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CIUdqOXu.js → stateDiagram-AJRCARHV-Dy1WN3mi.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BaTNMz02.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-BcilneZF.js → timeline-definition-PNZ67QCA-DeWe_43M.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BljwiiH1.js → vennDiagram-CIIHVFJN-BN8PVlFq.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-DeKjkYjq.js → wardley-L42UT6IY-CbjV_1hf.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-L3U1H7KG.js → wardleyDiagram-YWT4CUSO-D2mw84_p.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-IJnWsgMT.js → xychartDiagram-2RQKCTM6-er9CTQXi.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-4KP2F2TE.js +0 -82
- package/chunks/chunk-HGT6JR3U.js +0 -177
- package/chunks/nonInteractiveCli-ZJYEOO7U.js +0 -148
- package/web-shell/assets/channel-B1cyk94G.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BpBYZoRE.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BpBYZoRE.js +0 -1
- package/web-shell/assets/index-C1k3PDuU.css +0 -5
- package/web-shell/assets/index-DZLIXILO.js +0 -1750
- package/web-shell/assets/insert-DmRbh9Rv.svg +0 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BmqqQZ6w.js +0 -1
|
@@ -380,31 +380,52 @@ Notes:
|
|
|
380
380
|
|
|
381
381
|
## CLI flags
|
|
382
382
|
|
|
383
|
-
| Flag | Default
|
|
384
|
-
| --------------------------------------- |
|
|
385
|
-
| `--port <n>` | `4170`
|
|
386
|
-
| `--hostname <addr>` | `127.0.0.1`
|
|
387
|
-
| `--token <str>` | —
|
|
388
|
-
| `--require-auth` | `false`
|
|
389
|
-
| `--tls-cert <path>` | —
|
|
390
|
-
| `--tls-key <path>` | —
|
|
391
|
-
| `--max-sessions <n>` | `
|
|
392
|
-
| `--max-total-sessions <n>` | derived
|
|
393
|
-
| `--max-pending-prompts-per-session <n>` | `5`
|
|
394
|
-
| `--workspace <path>` | `process.cwd()`
|
|
395
|
-
| `--
|
|
396
|
-
| `--
|
|
397
|
-
| `--
|
|
398
|
-
| `--
|
|
399
|
-
| `--
|
|
400
|
-
| `--max-
|
|
401
|
-
| `--
|
|
402
|
-
| `--
|
|
403
|
-
| `--
|
|
404
|
-
| `--
|
|
405
|
-
| `--
|
|
406
|
-
| `--
|
|
407
|
-
| `--
|
|
383
|
+
| Flag | Default | Purpose |
|
|
384
|
+
| --------------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
385
|
+
| `--port <n>` | `4170` | TCP port. `0` = OS-assigned ephemeral port. |
|
|
386
|
+
| `--hostname <addr>` | `127.0.0.1` | Bind interface. Anything beyond loopback requires a token. |
|
|
387
|
+
| `--token <str>` | — | Bearer token. Falls back to `QWEN_SERVER_TOKEN` env var (with leading/trailing whitespace stripped — handy for `$(cat token.txt)`). |
|
|
388
|
+
| `--require-auth` | `false` | Refuse to start without a bearer token, even on loopback. Hardens the `127.0.0.1` developer default for shared dev hosts / CI runners / multi-tenant workstations where any local user can hit the listener. Boots only with `--token` or `QWEN_SERVER_TOKEN` set; gates `/health` behind the bearer too. |
|
|
389
|
+
| `--tls-cert <path>` | — | Path to a PEM certificate file. Serve over **HTTPS** instead of HTTP. Must be paired with `--tls-key` (boot fails if only one is given). Unlocks secure-context browser APIs — voice input (`getUserMedia`), WebRTC — over a LAN IP, which browsers otherwise block on plain `http://`. TLS termination only; no auto-generation / ACME. See [HTTPS / TLS](#https--tls-for-mobile--cross-device-access) below. |
|
|
390
|
+
| `--tls-key <path>` | — | Path to a PEM private key file. Must be paired with `--tls-cert`. |
|
|
391
|
+
| `--max-sessions <n>` | `32` | Cap on concurrent live sessions. New `POST /session` requests that would spawn a fresh child return `503` (with `Retry-After: 5`) when the cap is hit; attaches to existing sessions are NOT counted. Set to `0` to disable. Sized for single-user / small-team usage; raise it if your deployment has the RAM/FD headroom (~30–50 MB per session). |
|
|
392
|
+
| `--max-total-sessions <n>` | derived | Optional non-negative integer daemon-wide cap on fresh session creation across all registered workspace runtimes. It applies to new child sessions, session restore, and branch/fork-created sessions; attaching to an existing live session does not consume a slot. Set to `0` for unlimited. When omitted with several startup/restored workspaces, the daemon derives a fixed cap from the per-workspace limit and the startup workspace count; later dynamic registration does not recompute it. |
|
|
393
|
+
| `--max-pending-prompts-per-session <n>` | `5` | Per-session cap on prompts accepted by `POST /session/:id/prompt` but not yet settled, including queued prompts and the active prompt. The bridge rejects overflow synchronously with `503`, `Retry-After: 5`, and `code: "prompt_queue_full"` before returning a `promptId`. Set to `0` to disable. `branchSession` serializes on the same FIFO but does not count against this prompt cap. |
|
|
394
|
+
| `--workspace <path>` | `process.cwd()` | Absolute workspace directory registered by this daemon. Repeat the flag to host multiple workspaces in one process; the first is primary and remains the default when a request omits `cwd`. Relative values are rejected. Session requests whose canonical `cwd` is not registered return `400 workspace_mismatch`. |
|
|
395
|
+
| `--memory-project-scope <mode>` | `git-root` | Project-memory partitioning mode. `git-root` (default) shares memory among workspaces resolved to the same Git root; `workspace` keys memory by the exact registered workspace directory so each daemon workspace gets its own isolated memory. Overrides `QWEN_CODE_MEMORY_PROJECT_SCOPE` when provided; an unrecognized env value is ignored with a one-time warning and falls back to `git-root`. Switching to `workspace` does not migrate existing git-root project memory — those entries stop being visible until you switch back. |
|
|
396
|
+
| `--channel <name\|all>` | — | Experimental daemon-managed channel worker. Repeat the flag to select multiple configured channels, or pass `all` to start every configured channel. `all` cannot be combined with named channels. Selected channel `cwd` values must resolve to a registered workspace; a multi-workspace daemon runs one worker per owning workspace. The worker is owned by `qwen serve`; stop the daemon to stop serve-managed channels. |
|
|
397
|
+
| `--max-connections <n>` | `256` | Listener-level TCP connection cap (`server.maxConnections`). Bounds raw socket count irrespective of session count — slow / phantom SSE clients get rejected at accept time once full. Raise alongside `--max-sessions` if your deployment expects many SSE subscribers per session. |
|
|
398
|
+
| `--memory-budget-mb <n>` | 50% of cgroup/host | Total memory budget in MB for the whole daemon process tree. When unset, derived as 50% of the cgroup limit or host memory; either way the effective value is capped at resolved available memory, and both the configured and effective figures are reported. Currently observation only — it does not change how any `qwen --acp` child is sized. Resolved figures appear under `limits.memory` in `GET /daemon/status`, alongside registered and live child counts and advisory per-child shares under `runtime.memory`. A host too small for the minimum reports `insufficientMemory` rather than being clamped upward; because the derived fraction is 50%, any host under ~2 GB trips this. Pass an explicit `--memory-budget-mb 1024` on such a host to override the derived figure (the flag still requires at least 1024 MB of available memory to clear the warning). Must be an integer in `[1024, 1048576]`. |
|
|
399
|
+
| `--event-ring-size <n>` | `8000` | Per-session SSE replay ring depth (#3803 §02 target). Sets the backlog available to `GET /session/:id/events` with `Last-Event-ID: N`. Larger = more reconnect headroom at the cost of a few hundred KB extra RAM per session. SDK clients can additionally request a larger per-subscriber backlog cap on a specific subscription via `?maxQueued=N` (range `[16, 2048]`, default 256). Daemons also emit a non-terminal `slow_client_warning` SSE frame at 75% queue fill so clients can drain / reconnect before getting evicted. Pre-flight `caps.features.slow_client_warning`. |
|
|
400
|
+
| `--compacted-replay-max-bytes <n>` | `4194304` | Per-live-session byte cap for the retained replay events in the bounded snapshot returned by `POST /session/:id/load`. The cap applies to `compactedReplay`; the current in-flight `liveJournal` is separately capped by `--max-journal-events` and `--max-journal-bytes`. Values must be positive safe integers; invalid values fail at boot, and the hard ceiling is 256 MiB. When older retained replay is dropped, the snapshot begins with `history_truncated`. This does not limit the on-disk transcript. |
|
|
401
|
+
| `--max-journal-events <n>` | `10000` | Per-session cap on the number of raw events retained in the in-flight live journal (the current unfinished turn). When exceeded, the oldest journal entries are dropped and a `history_truncated` marker is prepended. Must be a positive safe integer. |
|
|
402
|
+
| `--max-journal-bytes <n>` | `8388608` | Per-session byte cap on the in-flight live journal. When exceeded, the oldest journal entries are dropped (at least one entry is always kept). Must be a positive safe integer. Defaults to 8 MiB. |
|
|
403
|
+
| `--mcp-client-budget <n>` | — | Positive integer cap on live MCP clients. When `mcp_workspace_pool` is advertised, the cap and transports are shared per workspace runtime; when the tag is absent, the legacy per-session manager enforces it. Combine with `--mcp-budget-mode`. When unset, no accounting-driven enforcement (but `GET /workspace/mcp` still reports `clientCount`). Distinct from claude-code's `MCP_SERVER_CONNECTION_BATCH_SIZE`, which gates startup concurrency rather than total live clients. Pre-flight `caps.features.mcp_guardrails` and `caps.features.mcp_workspace_pool`. |
|
|
404
|
+
| `--mcp-budget-mode <m>` | `warn` / `off` | How `--mcp-client-budget` is enforced. `warn` (default when budget set): no refusal, snapshot's `budgets[0].status` flips to `warning` at ≥75% of budget. `enforce`: connects past the cap are refused, per-server cell shows `disabledReason: 'budget'`, deterministic by `mcpServers` declaration order. `off` (default when budget unset): pure observability. Boot rejects `enforce` without a budget. |
|
|
405
|
+
| `--http-bridge` | `true` | Stage 1 mode: production attempts to preheat one primary `qwen --acp` child for compatibility and retries on first use after failure, while each trusted secondary can start one child on demand. Sessions targeting a runtime multiplex onto its child via ACP `newSession()`; untrusted secondaries cannot start ACP. Stage 2 native in-process becomes available later. |
|
|
406
|
+
| `--initialize-timeout-ms <n>` | `10000` | ACP child request timeout, including the `initialize` handshake (ms). Must be a positive integer up to `2147483647`. Values above the JS timer ceiling (`2^31-1`) are rejected at boot because Node silently compresses them to 1 ms. Cold-container deployments that need extra headroom for child startup can raise this; the same value governs `newSession`, workspace-status polls, and other ACP ext-method deadlines. |
|
|
407
|
+
| `--allow-origin <pat>` | — | T2.4 ([#4514](https://github.com/QwenLM/qwen-code/issues/4514)). Cross-origin allowlist for browser webui clients. Repeatable. Each value is `*` (any origin — boot refuses if no bearer token is configured; `--require-auth` on loopback is recommended so `/health` and `/demo` are also bearer-gated, since both are pre-auth on loopback by default) or a canonical URL origin (`<scheme>://<host>[:<port>]`, no trailing slash / path / userinfo / query). **Subdomain wildcards (`https://*.example.com`) are intentionally unsupported** — list each subdomain explicitly, or use `*` with a configured token (and `--require-auth` for full hardening). Matched origins receive CORS response headers (`Access-Control-Allow-Origin`, `Vary: Origin`, methods, headers, max-age, and exposed `Retry-After`); unmatched origins still get a 403 with the same envelope as today's wall. `Origin: null` (sandboxed iframes, file:// docs) is always rejected, even under `*`. Pre-flight via `caps.features.allow_origin`. Loopback self-origin hits are unaffected. |
|
|
408
|
+
| `--web` / `--no-web` | `true` | Serve the built Web Shell SPA at the daemon root (`GET /`, `/assets/*`, and SPA deep-link fallback). The static shell is registered **before** the bearer-auth gate — a browser can't attach a token to a `<script>` subresource or an address-bar navigation, the shell carries no secrets, and every API route stays token-gated regardless. On non-loopback binds a one-line stderr warning notes the UI is reachable without auth. Use `--no-web` for an API-only daemon. No effect when the build omits the Web Shell assets (the daemon logs a breadcrumb and runs API-only). |
|
|
409
|
+
| `--open` | `false` | After the listener is up, open the Web Shell in your default browser at the daemon URL (with `#token=` appended as a URL fragment when a token is configured — a fragment is never sent to the server, keeping the token out of access logs and Referer headers). No-op with `--no-web`, or in headless / CI / SSH environments where no browser is available. |
|
|
410
|
+
|
|
411
|
+
> **Memory project scope caveats.**
|
|
412
|
+
>
|
|
413
|
+
> - **Daemon vs. standalone CLI.** `--memory-project-scope` (and
|
|
414
|
+
> `QWEN_CODE_MEMORY_PROJECT_SCOPE`) only affects daemon-managed runtimes.
|
|
415
|
+
> A standalone `qwen` TUI started in the same directory still uses the
|
|
416
|
+
> git-root scope unless the environment variable is exported globally. To keep
|
|
417
|
+
> both entry points consistent, pin the scope in the workspace `.env` or
|
|
418
|
+
> `settings.env` so every process that reads the workspace agrees.
|
|
419
|
+
> - **Directory-name collisions.** The storage key is derived by
|
|
420
|
+
> `sanitizeCwd`, which replaces every non-alphanumeric character with
|
|
421
|
+
> `-`. Sibling directories that differ only in punctuation (e.g.
|
|
422
|
+
> `feature_1` and `feature-1`) map to the same memory directory even
|
|
423
|
+
> under `workspace` scope. Avoid such naming when relying on workspace
|
|
424
|
+
> isolation.
|
|
425
|
+
> - **Normalization differs between flag and env var.** The environment variable
|
|
426
|
+
> is trimmed and lowercased (`" Workspace "` works); the CLI flag is
|
|
427
|
+
> matched case-sensitively by yargs `choices` (`--memory-project-scope
|
|
428
|
+
Workspace` is rejected). Use lowercase values when copying between the two.
|
|
408
429
|
|
|
409
430
|
> **Sizing the load knobs.** `--max-sessions` is the per-workspace fresh-session cap. `--max-total-sessions`, when set, is the daemon-wide fresh-session cap.
|
|
410
431
|
> Three other layers also limit load — when sizing for a high-concurrency
|
|
@@ -4,18 +4,17 @@ This document lists the available keyboard shortcuts in Qwen Code.
|
|
|
4
4
|
|
|
5
5
|
## General
|
|
6
6
|
|
|
7
|
-
| Shortcut | Description
|
|
8
|
-
| ------------------------------ |
|
|
9
|
-
| `Esc` | Close dialogs and suggestions.
|
|
10
|
-
| `Ctrl+C` | Cancel the ongoing request and clear the input. Press twice to exit the application.
|
|
11
|
-
| `Ctrl+D` | Exit the application if the input is empty. Press twice to confirm.
|
|
12
|
-
| `Ctrl+L` | Clear the screen.
|
|
13
|
-
| `Ctrl+O`
|
|
14
|
-
| `Ctrl+S` | Stashes non-empty input for the current project and restores it on the next launch. With empty input, allows long responses to print fully, disabling truncation. Use your terminal's scrollback to view the entire output.
|
|
15
|
-
| `Ctrl+T` | Toggle the display of tool descriptions.
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
| `Shift+Tab` (`Tab` on Windows) | Cycle approval modes (`plan` → `default` → `auto-edit` → `auto` → `yolo`) |
|
|
7
|
+
| Shortcut | Description |
|
|
8
|
+
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
9
|
+
| `Esc` | Close dialogs and suggestions. With an empty prompt, cancel an ongoing request; when idle outside IDE mode, press twice to open the rewind selector. |
|
|
10
|
+
| `Ctrl+C` | Cancel the ongoing request and clear the input. Press twice to exit the application. |
|
|
11
|
+
| `Ctrl+D` | Exit the application if the input is empty. Press twice to confirm. |
|
|
12
|
+
| `Ctrl+L` | Clear the screen. |
|
|
13
|
+
| `Ctrl+O` / `Alt/Option+T` | Toggle expanded detail mode: expand or collapse all thinking blocks and tool outputs inline. Press again to collapse. When `ui.useTerminalBuffer` is off, toggling redraws the full conversation with untruncated output into terminal scrollback. |
|
|
14
|
+
| `Ctrl+S` | Stashes non-empty input for the current project and restores it on the next launch. With empty input, allows long responses to print fully, disabling truncation. Use your terminal's scrollback to view the entire output. |
|
|
15
|
+
| `Ctrl+T` | Toggle the display of tool descriptions. |
|
|
16
|
+
| `Alt/Option+M` | Toggle Markdown output between rich rendered previews and raw/source mode. On macOS, the terminal must send Option as Meta. |
|
|
17
|
+
| `Shift+Tab` (`Tab` on Windows) | Cycle approval modes (`plan` → `default` → `auto-edit` → `auto` → `yolo`) |
|
|
19
18
|
|
|
20
19
|
## Input Prompt
|
|
21
20
|
|
|
@@ -23,10 +22,15 @@ This document lists the available keyboard shortcuts in Qwen Code.
|
|
|
23
22
|
| ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
24
23
|
| `!` | Toggle shell mode when the input is empty. |
|
|
25
24
|
| `?` | Toggle keyboard shortcuts display when the input is empty. |
|
|
25
|
+
| `/` | Open slash-command completion. |
|
|
26
|
+
| `@` | Open completion for files, folders, and other context. |
|
|
27
|
+
| `Space` (empty prompt) | Start voice dictation when it and a voice model are configured; hold or tap behavior follows `general.voice.mode`. |
|
|
26
28
|
| `Ctrl+Enter` / `Cmd+Enter` / `Shift+Enter` / `Ctrl+J` | Insert a newline. |
|
|
27
29
|
| `Down Arrow` | Row down, then snap to end, then history next. |
|
|
28
|
-
| `Enter` | Submit the current prompt.
|
|
29
|
-
| `
|
|
30
|
+
| `Enter` | Submit the current prompt. While a response is running, steer the current turn. |
|
|
31
|
+
| `Ctrl+Q` | Queue the current prompt or command for the next turn instead of steering; it runs after Qwen Code returns to idle. |
|
|
32
|
+
| `Up Arrow` (at the top) / `Esc` | When queued messages are present, move them back into the input for editing. |
|
|
33
|
+
| `Meta+D` / `Meta+Delete` / `Ctrl+Delete` | Delete the word to the right of the cursor. |
|
|
30
34
|
| `Tab` | Autocomplete the current suggestion if one exists. |
|
|
31
35
|
| `Up Arrow` | Row up, then snap to start, then history prev. |
|
|
32
36
|
| `Ctrl+A` / `Home` | Move the cursor to the beginning of the line. |
|
|
@@ -45,17 +49,44 @@ This document lists the available keyboard shortcuts in Qwen Code.
|
|
|
45
49
|
| `Ctrl+Y` | Retry the last failed request. |
|
|
46
50
|
| `Ctrl+Right Arrow` / `Meta+Right Arrow` / `Meta+F` | Move the cursor one word to the right. |
|
|
47
51
|
| `Ctrl+U` | Delete from the cursor to the beginning of the line. |
|
|
48
|
-
| `Ctrl+V` (Windows: `Alt+V`)
|
|
52
|
+
| `Ctrl+V` / `Option+V` (Windows: `Alt+V`) | Paste clipboard content. If the clipboard contains an image, it will be saved and a reference to it will be inserted in the prompt. |
|
|
49
53
|
| `Ctrl+W` / `Meta+Backspace` / `Ctrl+Backspace` | Delete the word to the left of the cursor. |
|
|
50
54
|
| `Ctrl+X` | Open the current input in an external editor. |
|
|
55
|
+
| `Ctrl+Z` | Undo the last input edit. |
|
|
56
|
+
| `Ctrl+Shift+Z` | Redo the last undone input edit. |
|
|
57
|
+
|
|
58
|
+
## Foreground Shell
|
|
59
|
+
|
|
60
|
+
These shortcuts apply while an interactive foreground shell command is running.
|
|
61
|
+
|
|
62
|
+
| Shortcut | Description |
|
|
63
|
+
| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
64
|
+
| `Ctrl+F` | Toggle keyboard focus between the shell and the prompt. When no shell is running, `Ctrl+F` moves the prompt cursor right. |
|
|
65
|
+
| `Ctrl+Shift+Up` / `Ctrl+Shift+Down` | Scroll the focused shell up or down. |
|
|
66
|
+
| `Ctrl+B` | Promote the shell to a background task. The child keeps running, the agent's turn unblocks, and the shell appears in `/tasks` and the Background tasks dialog. |
|
|
51
67
|
|
|
52
68
|
## Suggestions
|
|
53
69
|
|
|
54
|
-
| Shortcut
|
|
55
|
-
|
|
|
56
|
-
| `Down Arrow` / `Ctrl+N`
|
|
57
|
-
| `Tab` / `Enter`
|
|
58
|
-
| `Up Arrow` / `Ctrl+P`
|
|
70
|
+
| Shortcut | Description |
|
|
71
|
+
| ------------------------------------ | ------------------------------------------------------------------------ |
|
|
72
|
+
| `Down Arrow` / `Ctrl+N` | Navigate down through the suggestions. |
|
|
73
|
+
| `Tab` / `Enter` | Accept the selected suggestion. |
|
|
74
|
+
| `Up Arrow` / `Ctrl+P` | Navigate up through the suggestions. |
|
|
75
|
+
| `Right Arrow` | Accept a ghost-text suggestion when the prompt is empty. |
|
|
76
|
+
| `Ctrl+Tab` / `Ctrl+Right Arrow` | Switch to the next completion category when category tabs are shown. |
|
|
77
|
+
| `Ctrl+Shift+Tab` / `Ctrl+Left Arrow` | Switch to the previous completion category when category tabs are shown. |
|
|
78
|
+
|
|
79
|
+
## History Search
|
|
80
|
+
|
|
81
|
+
Press `Ctrl+R` to search prompt history, or shell history while shell mode is active.
|
|
82
|
+
|
|
83
|
+
| Shortcut | Description |
|
|
84
|
+
| ---------------------------- | ---------------------------------------------------------- |
|
|
85
|
+
| `Up Arrow` / `Down Arrow` | Navigate through matching history entries. |
|
|
86
|
+
| `Left Arrow` / `Right Arrow` | Collapse or expand a long selected entry. |
|
|
87
|
+
| `Tab` | Accept the selected entry into the prompt without sending. |
|
|
88
|
+
| `Enter` | Submit the selected entry. |
|
|
89
|
+
| `Esc` | Close history search. |
|
|
59
90
|
|
|
60
91
|
## Radio Button Select
|
|
61
92
|
|
|
@@ -71,23 +102,23 @@ This document lists the available keyboard shortcuts in Qwen Code.
|
|
|
71
102
|
|
|
72
103
|
Active when `ui.useTerminalBuffer` is enabled (Settings → UI → Virtualized History), screen reader mode is off, and Qwen Code is running in a compatible interactive terminal (`stdout` is a TTY, CI is inactive, and `TERM` is not `dumb`), which is the default for ordinary non-screen-reader sessions. In that mode conversation history is rendered inside an in-app viewport instead of the host terminal scrollback, so the keys below replace the terminal's native scroll.
|
|
73
104
|
|
|
74
|
-
| Shortcut | Description
|
|
75
|
-
| --------------- |
|
|
76
|
-
| `Shift+Up` | Scroll history up one line.
|
|
77
|
-
| `Shift+Down` | Scroll history down one line.
|
|
78
|
-
| `PgUp` | Scroll history up one page (viewport height).
|
|
79
|
-
| `PgDn` | Scroll history down one page (viewport height).
|
|
80
|
-
| `Ctrl+Home` | Jump to the top of the conversation.
|
|
81
|
-
| `Ctrl+End` | Jump to the bottom (and re-engage live auto-follow).
|
|
82
|
-
| **Mouse wheel** | Scroll history (3 lines per tick).
|
|
105
|
+
| Shortcut | Description |
|
|
106
|
+
| --------------- | ------------------------------------------------------------------------------- |
|
|
107
|
+
| `Shift+Up` | Scroll history up one line. |
|
|
108
|
+
| `Shift+Down` | Scroll history down one line. |
|
|
109
|
+
| `PgUp` | Scroll history up one page (viewport height). |
|
|
110
|
+
| `PgDn` | Scroll history down one page (viewport height). |
|
|
111
|
+
| `Ctrl+Home` | Jump to the top of the conversation. |
|
|
112
|
+
| `Ctrl+End` | Jump to the bottom (and re-engage live auto-follow). |
|
|
113
|
+
| **Mouse wheel** | Scroll history (3 lines per tick). Requires `ui.mouseTracking` (on by default). |
|
|
83
114
|
|
|
84
|
-
When `ui.useTerminalBuffer` is on, the terminal forwards mouse events to qwen-code so the wheel can drive the in-app viewport. As a side effect, native click-and-drag text selection is consumed by the program, so qwen-code provides its own: **drag to select text in the history viewport, double-click to select a word, triple-click to select a line.** The selection is highlighted and copied to the clipboard when you release the mouse (works locally, over SSH via OSC 52, and inside tmux). A single click clears the selection; scrolling or new output clears it too. Selection is limited to the visible viewport for now. You can still fall back to the terminal's own selection by holding `Shift` (or `Option` on macOS Terminal / iTerm) while dragging.
|
|
115
|
+
When `ui.useTerminalBuffer` is on and `ui.mouseTracking` is enabled (the default), the terminal forwards mouse events to qwen-code so the wheel can drive the in-app viewport. As a side effect, native click-and-drag text selection is consumed by the program, so qwen-code provides its own: **drag to select text in the history viewport, double-click to select a word, triple-click to select a line.** The selection is highlighted and copied to the clipboard when you release the mouse (works locally, over SSH via OSC 52, and inside tmux). A single click clears the selection; scrolling or new output clears it too. Selection is limited to the visible viewport for now. You can still fall back to the terminal's own selection by holding `Shift` (or `Option` on macOS Terminal / iTerm) while dragging. Set `ui.mouseTracking` to `false` to stop qwen-code from capturing the mouse entirely; that restores the terminal's native right-click menu, OSC 8 hyperlink clicks, and click-and-drag selection, but the in-app viewport no longer responds to the mouse, so use the keyboard shortcuts above to scroll.
|
|
85
116
|
|
|
86
117
|
### tmux trackpad scrolling
|
|
87
118
|
|
|
88
119
|
Inside tmux, some terminals translate trackpad or wheel gestures into plain `Up Arrow` and `Down Arrow` sequences before qwen-code sees them. Those bytes are identical to real arrow-key presses, so qwen-code cannot tell whether you meant to scroll the viewport or navigate prompt history.
|
|
89
120
|
|
|
90
|
-
If trackpad scrolling changes the prompt history in tmux, make sure `ui.useTerminalBuffer` is enabled; then use `Shift+Up` / `Shift+Down`, or the mouse wheel when tmux forwards wheel events to the app. If you prefer host scrollback, adjust your tmux mouse bindings for wheel events.
|
|
121
|
+
If trackpad scrolling changes the prompt history in tmux, make sure `ui.useTerminalBuffer` is enabled; then use `Shift+Up` / `Shift+Down`, or the mouse wheel when tmux forwards wheel events to the app (requires `ui.mouseTracking`). If you prefer host scrollback, adjust your tmux mouse bindings for wheel events.
|
|
91
122
|
|
|
92
123
|
## IDE Integration
|
|
93
124
|
|
|
@@ -100,7 +100,12 @@ This guide provides solutions to common issues and debugging tips, including top
|
|
|
100
100
|
- **Trackpad scrolling in tmux changes prompt history instead of scrolling the conversation**
|
|
101
101
|
- **Issue:** In a tmux session, trackpad or wheel scrolling may cycle through previous prompts, similar to pressing `Up Arrow` or `Down Arrow`.
|
|
102
102
|
- **Cause:** tmux can translate wheel gestures into plain arrow-key sequences. Those sequences are indistinguishable from real arrow-key presses by the time qwen-code receives them.
|
|
103
|
-
- **Solution:** If screen reader mode is disabled, make sure `ui.useTerminalBuffer` is enabled; then use `Shift+Up` / `Shift+Down`, or the mouse wheel when tmux forwards wheel events to the app. If you prefer host scrollback, adjust your tmux mouse bindings for wheel events.
|
|
103
|
+
- **Solution:** If screen reader mode is disabled, make sure `ui.useTerminalBuffer` is enabled; then use `Shift+Up` / `Shift+Down`, or the mouse wheel when tmux forwards wheel events to the app (requires `ui.mouseTracking`). If you prefer host scrollback, adjust your tmux mouse bindings for wheel events.
|
|
104
|
+
|
|
105
|
+
- **Right-click does nothing, links do not open, or text cannot be selected in the terminal**
|
|
106
|
+
- **Issue:** Native right-click context menus, OSC 8 hyperlink clicks (Ctrl+Click or plain click on URLs), and terminal-native text selection stop working while Qwen Code is running.
|
|
107
|
+
- **Cause:** When `ui.mouseTracking` is enabled (the default), Qwen Code captures all mouse events via SGR mouse tracking to power in-app text selection, click-to-position, row hover, and viewport scrolling. The terminal forwards every mouse event to the app instead of handling it natively.
|
|
108
|
+
- **Solution:** Set `"ui.mouseTracking": false` in your `settings.json` to restore native right-click menus and clickable URL links. This turns off all in-app mouse interaction. In Virtualized History (`ui.useTerminalBuffer: true`, the default), the wheel will no longer scroll the transcript — use `Shift+↑/↓`, `PgUp/PgDn`, or `Ctrl+Home/End` instead. To also restore native terminal scrollback, set `"ui.useTerminalBuffer": false`. Requires restart.
|
|
104
109
|
|
|
105
110
|
## IDE Companion not connecting
|
|
106
111
|
|