@qwen-code/qwen-code 0.21.1 → 0.21.2

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.
Files changed (321) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +1 -0
  2. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  3. package/bundled/qc-helper/docs/features/channels/github.md +42 -10
  4. package/bundled/qc-helper/docs/features/channels/gitlab.md +171 -0
  5. package/bundled/qc-helper/docs/features/code-review.md +20 -0
  6. package/bundled/qc-helper/docs/features/hooks.md +20 -0
  7. package/bundled/qc-helper/docs/features/sub-agents.md +22 -8
  8. package/bundled/qc-helper/docs/qwen-serve.md +7 -5
  9. package/bundled/review/SKILL.md +1 -1
  10. package/chunks/{MaxSizedBox-VI3ROJJA.js → MaxSizedBox-TQBQ247P.js} +42 -38
  11. package/chunks/{StandaloneSessionPicker-LYXKD2EV.js → StandaloneSessionPicker-2HPTKCLX.js} +58 -54
  12. package/chunks/{acp-startup-profiler-DFVPFQ6C.js → acp-startup-profiler-2C4A5ZTJ.js} +2 -2
  13. package/chunks/{acpAgent-WN5SRDQO.js → acpAgent-PS6EDGH3.js} +431 -168
  14. package/chunks/{agent-K6ECSM64.js → agent-VDOUB35F.js} +38 -34
  15. package/chunks/{agent-headless-NO4Y2HOE.js → agent-headless-EO53EFS2.js} +38 -34
  16. package/chunks/{anthropicContentGenerator-V2QOGVYD.js → anthropicContentGenerator-OFHSZJBF.js} +6 -6
  17. package/chunks/{artifact-tool-6K6U7XYJ.js → artifact-tool-RDN2W7ND.js} +2 -2
  18. package/chunks/{askUserQuestion-GD2IJJ7I.js → askUserQuestion-OZERWH5R.js} +2 -2
  19. package/chunks/{bridge-3KJEWDNE.js → bridge-W7AZSRZQ.js} +42 -38
  20. package/chunks/{build-S6DO7LMM.js → build-GDBLPA24.js} +1 -1
  21. package/chunks/{channel-management-service-XR7GZSWF.js → channel-management-service-5S7YCWX5.js} +20 -5
  22. package/chunks/{channel-settings-store-HW4FXXUA.js → channel-settings-store-JFVRSNER.js} +44 -40
  23. package/chunks/{channel-worker-group-XDPTDWTX.js → channel-worker-group-OVWGYMZS.js} +5 -5
  24. package/chunks/{channel-worker-manager-YYEHVRRE.js → channel-worker-manager-H55GKOQA.js} +5 -5
  25. package/chunks/{channel-worker-supervisor-74HTWA2G.js → channel-worker-supervisor-CABBXYHK.js} +3 -3
  26. package/chunks/{chunk-UWMLWVCA.js → chunk-2IIJTXYF.js} +26 -10
  27. package/chunks/{chunk-VYOXCEPJ.js → chunk-2KKCCLPT.js} +1 -1
  28. package/chunks/{chunk-T4TXDL7G.js → chunk-2LEOZTBT.js} +36 -24
  29. package/chunks/{chunk-XWWKIXVD.js → chunk-3APUUXRF.js} +1 -1
  30. package/chunks/{chunk-TCIFAA7K.js → chunk-3F2WDAV6.js} +2 -2
  31. package/chunks/{chunk-SGFT55XI.js → chunk-3I6DUGQD.js} +1 -1
  32. package/chunks/{chunk-ZURDMIDR.js → chunk-44F4LBWZ.js} +228 -71
  33. package/chunks/{chunk-GKX7E4CO.js → chunk-45IOTAUS.js} +1 -1
  34. package/chunks/{chunk-6QIGFD5W.js → chunk-4KP2F2TE.js} +1 -1
  35. package/chunks/{chunk-X5WNMMIA.js → chunk-54YCNSK5.js} +4241 -1636
  36. package/chunks/{chunk-P4WOAOJW.js → chunk-56Z7QEAQ.js} +67 -21
  37. package/chunks/{chunk-UPUG4GXM.js → chunk-5NNHICSA.js} +3 -3
  38. package/chunks/{chunk-LGAOC3ZS.js → chunk-675H6PLP.js} +1 -1
  39. package/chunks/{chunk-5KTQXHPY.js → chunk-6CQWRWUC.js} +3 -3
  40. package/chunks/chunk-6FMJLI5M.js +1591 -0
  41. package/chunks/{chunk-GZ3RCT54.js → chunk-6MPDY6ZG.js} +1 -1
  42. package/chunks/{chunk-RCUQIPTN.js → chunk-6PQPKTXP.js} +1 -1
  43. package/chunks/{chunk-KCO4FLFJ.js → chunk-6TAASXWL.js} +3 -3
  44. package/chunks/{chunk-JHNRZMHI.js → chunk-77V3VIKL.js} +9 -9
  45. package/chunks/{chunk-CAPPWD3X.js → chunk-7KAXXBER.js} +3 -3
  46. package/chunks/{chunk-A4COXFB3.js → chunk-7SJN2IWT.js} +5 -5
  47. package/chunks/{chunk-Y4IHBGBP.js → chunk-7ULQIS27.js} +1 -1
  48. package/chunks/{chunk-5MKRTI4T.js → chunk-A7Y5H4TX.js} +4 -4
  49. package/chunks/{chunk-CVHIL5IG.js → chunk-AOHY3QJ3.js} +13 -6
  50. package/chunks/chunk-AQ37AY7B.js +93 -0
  51. package/chunks/{chunk-OCESJA77.js → chunk-AUOULH6Q.js} +45 -45
  52. package/chunks/{chunk-UBEPNVDI.js → chunk-BBIQAX4V.js} +3 -3
  53. package/chunks/{chunk-JSD33JG6.js → chunk-CBBP4BMC.js} +23 -9
  54. package/chunks/{chunk-ZHBO7WVX.js → chunk-CNTR4GR6.js} +1 -1
  55. package/chunks/{chunk-PB3MBFKG.js → chunk-CO2U743O.js} +4 -4
  56. package/chunks/{chunk-XZC5VLBZ.js → chunk-CPZAH673.js} +4 -0
  57. package/chunks/{chunk-T3O2B4XO.js → chunk-CU47KXB5.js} +3 -3
  58. package/chunks/{chunk-2LKVPASC.js → chunk-D4HTUMGX.js} +3 -3
  59. package/chunks/{chunk-BNWB5CYE.js → chunk-D6MDRSZ6.js} +7 -7
  60. package/chunks/{chunk-7BAU433D.js → chunk-DEEABGH2.js} +867 -91
  61. package/chunks/{chunk-52ZSWYEG.js → chunk-DQ2O5QOJ.js} +1 -1
  62. package/chunks/{chunk-WBSMNTSV.js → chunk-DSFHVTWD.js} +2 -2
  63. package/chunks/{chunk-PT722TDT.js → chunk-DUNI4EBW.js} +701 -86
  64. package/chunks/{chunk-UHUSJ6X7.js → chunk-E2BHWIDT.js} +19 -4
  65. package/chunks/{chunk-T2QMKU3R.js → chunk-E2FN6SM7.js} +17 -5
  66. package/chunks/{chunk-W4MIWP6M.js → chunk-E6CJ2SMM.js} +2 -2
  67. package/chunks/{chunk-5ZF5XXTS.js → chunk-EQNUDTL6.js} +2 -2
  68. package/chunks/{chunk-2N7CODY5.js → chunk-EU5TBFJI.js} +2 -2
  69. package/chunks/{chunk-TFRMVU6R.js → chunk-FANRZEAJ.js} +1 -1
  70. package/chunks/{chunk-WBL3FJEU.js → chunk-FC4KQFCS.js} +1 -1
  71. package/chunks/{chunk-GNR2RNMP.js → chunk-FCYYAB4S.js} +2 -2
  72. package/chunks/{chunk-FNMZK765.js → chunk-FJ5WUMUQ.js} +1 -1
  73. package/chunks/{chunk-J7OACQDE.js → chunk-FNDXMN7I.js} +71 -49
  74. package/chunks/{chunk-U3E3UQAA.js → chunk-FS674JW4.js} +3 -3
  75. package/chunks/{chunk-S7W2GKIO.js → chunk-G7XXKQYS.js} +2 -0
  76. package/chunks/{chunk-VWOOBLTY.js → chunk-GJ2GBPBD.js} +2 -2
  77. package/chunks/{chunk-TBBV36Y4.js → chunk-GL4JOZXU.js} +4 -4
  78. package/chunks/{chunk-FTD6DP4T.js → chunk-GURGAJTX.js} +2 -1
  79. package/chunks/{chunk-65PQENQP.js → chunk-H6I4PGRV.js} +5 -5
  80. package/chunks/{chunk-7XATOOE7.js → chunk-HC45LTEN.js} +1 -1
  81. package/chunks/{chunk-VCPIZRYH.js → chunk-HIVKI6O6.js} +7 -7
  82. package/chunks/{chunk-HMRM2A3U.js → chunk-HX6RLYUO.js} +3 -3
  83. package/chunks/{chunk-GZXCZHCT.js → chunk-I3G5JWBV.js} +1 -1
  84. package/chunks/{chunk-2XSLTRFZ.js → chunk-I5BT7ADR.js} +2 -2
  85. package/chunks/{chunk-GATT5TKW.js → chunk-IGTHU3T4.js} +1 -1
  86. package/chunks/{chunk-4G2BISNC.js → chunk-IIUGIWWY.js} +1 -1
  87. package/chunks/{chunk-7I5GTCT4.js → chunk-JCJ7LKNA.js} +5104 -4817
  88. package/chunks/{chunk-657BH7VM.js → chunk-JE2CEOBO.js} +2 -2
  89. package/chunks/{chunk-S3TWXGKA.js → chunk-JE7KQ2UP.js} +4 -2
  90. package/chunks/{chunk-BPZKP57P.js → chunk-JJPKFJBT.js} +3 -3
  91. package/chunks/{chunk-6PE7N3A4.js → chunk-JLZ3RBQG.js} +7 -5
  92. package/chunks/{chunk-2LQTH543.js → chunk-JXVC2PL3.js} +2 -2
  93. package/chunks/{chunk-JCW2R7WC.js → chunk-K623ENWT.js} +3 -79
  94. package/chunks/{chunk-T2NCM2ET.js → chunk-K6KS3LTN.js} +2 -749
  95. package/chunks/{chunk-6RPMI2AB.js → chunk-KR32NIAN.js} +6 -6
  96. package/chunks/{chunk-XBYYDKAZ.js → chunk-KWHKHSIS.js} +8 -7
  97. package/chunks/{chunk-EVKE2FZL.js → chunk-KXDONCPU.js} +4 -4
  98. package/chunks/{chunk-5TBMQLGG.js → chunk-L2E5GFAG.js} +2 -2
  99. package/chunks/{chunk-MHAIJPTD.js → chunk-L32VV3ZJ.js} +12 -12
  100. package/chunks/{chunk-OKF7JF3R.js → chunk-LHKCY7DY.js} +3 -3
  101. package/chunks/{chunk-LW3RFMG7.js → chunk-LOY7RWQG.js} +3 -3
  102. package/chunks/{chunk-AQIDMUGU.js → chunk-LYI2PZDK.js} +1 -1
  103. package/chunks/{chunk-YGF33UXG.js → chunk-MB32MS4U.js} +12 -3
  104. package/chunks/{chunk-Y6AXW2OG.js → chunk-MM7TH7ZM.js} +1 -1
  105. package/chunks/{chunk-2DN4J57Y.js → chunk-N4ACHWNH.js} +1 -1
  106. package/chunks/{chunk-M7OONWYU.js → chunk-NBD76HUW.js} +4 -2
  107. package/chunks/{chunk-A2D5BAVP.js → chunk-NHFEMWAZ.js} +1 -1
  108. package/chunks/{chunk-3EFXSQCM.js → chunk-NTDH4IML.js} +7 -7
  109. package/chunks/chunk-O6GEWCJA.js +21 -0
  110. package/chunks/{chunk-7DXQIJID.js → chunk-OFZKFPYG.js} +3 -3
  111. package/chunks/{chunk-JTV5K7NH.js → chunk-P5VC5USY.js} +1 -1
  112. package/chunks/{chunk-Q43KPN7X.js → chunk-P755N4CS.js} +3 -3
  113. package/chunks/{chunk-XFZYFU3I.js → chunk-PCK4B6LR.js} +1 -1
  114. package/chunks/{chunk-EJGJIBRS.js → chunk-PJOHNFIY.js} +3 -3
  115. package/chunks/{chunk-WUZ7H6DP.js → chunk-PVNQRENX.js} +1 -1
  116. package/chunks/{chunk-LO4ROVP4.js → chunk-PZEXDV3H.js} +106 -8
  117. package/chunks/{chunk-WZRWHXFE.js → chunk-Q3T5KA2V.js} +1 -1
  118. package/chunks/{chunk-QIZKCVM3.js → chunk-Q5WZTTWE.js} +4 -4
  119. package/chunks/{chunk-BGTQCTQW.js → chunk-QARJNL2V.js} +3 -3
  120. package/chunks/{chunk-GXIJHV66.js → chunk-QCXGC7QB.js} +3 -3
  121. package/chunks/{chunk-DZLYR4U3.js → chunk-QDK4F2N5.js} +1 -1
  122. package/chunks/{chunk-NOKIVHOL.js → chunk-QTHQ6Z5X.js} +1 -1
  123. package/chunks/{chunk-A3NDJ5SB.js → chunk-R2XWGR75.js} +2 -2
  124. package/chunks/{chunk-JX27F6QS.js → chunk-RDJOB6S3.js} +1 -1
  125. package/chunks/{chunk-TV64SXKD.js → chunk-RG64CDT2.js} +4 -4
  126. package/chunks/{chunk-JFMA7Y5M.js → chunk-RSVPYAGK.js} +5 -5
  127. package/chunks/{chunk-64LQLPL7.js → chunk-SHN4KHDK.js} +3 -3
  128. package/chunks/chunk-T3CHYWJZ.js +758 -0
  129. package/chunks/{chunk-PONHVBRT.js → chunk-TEGJSJDF.js} +2 -2
  130. package/chunks/{chunk-75GFAX4R.js → chunk-THVU3RNH.js} +1 -1
  131. package/chunks/{record-artifact-XAMSFSW4.js → chunk-TIRRPCFS.js} +22 -7
  132. package/chunks/{chunk-HV26XH34.js → chunk-TTJZAIFP.js} +3 -3
  133. package/chunks/{chunk-JMONIXMJ.js → chunk-TZTAV5RH.js} +1 -1
  134. package/chunks/{chunk-7AEJDLRA.js → chunk-UV6KF7T3.js} +2 -2
  135. package/chunks/{chunk-PLDQBIO6.js → chunk-V25K5ID7.js} +1 -1
  136. package/chunks/{chunk-S4WJVPZW.js → chunk-V4XNUDPE.js} +3 -3
  137. package/chunks/{chunk-2FAK6PNM.js → chunk-VEMNQMHA.js} +2 -2
  138. package/chunks/{chunk-CQL64ESB.js → chunk-VMX5RZQH.js} +12 -10
  139. package/chunks/{chunk-EIF3FXTB.js → chunk-W3UKBMSI.js} +63 -18
  140. package/chunks/{chunk-TDL6LB4K.js → chunk-WWCMSZII.js} +21 -9
  141. package/chunks/{chunk-5YKDXHUY.js → chunk-XP4L6KS3.js} +2 -2
  142. package/chunks/{chunk-RPLGZJV2.js → chunk-XQK4XXTN.js} +1 -1
  143. package/chunks/{chunk-KAMYKP7E.js → chunk-XUGZYLDH.js} +1 -1
  144. package/chunks/{chunk-MR5EAQ5M.js → chunk-YANIWTRZ.js} +1 -1
  145. package/chunks/{chunk-3L2SPEBH.js → chunk-YGE3IXJP.js} +1 -1
  146. package/chunks/{chunk-BCZFQXWK.js → chunk-YUFIEIWC.js} +1 -1
  147. package/chunks/{chunk-75MIQ3LV.js → chunk-Z3S5EMOW.js} +4 -4
  148. package/chunks/{chunk-BMFALVGQ.js → chunk-ZMOJ7ISP.js} +1 -1
  149. package/chunks/{chunk-GEBV2JGB.js → chunk-ZPZ7ZJEE.js} +1 -1
  150. package/chunks/{computer-use-ZTIDHMMA.js → computer-use-5QWCFNKD.js} +38 -34
  151. package/chunks/{config-utils-NYSXDMEQ.js → config-utils-WADIDWGG.js} +4 -4
  152. package/chunks/{contextCommand-2PIEU37Z.js → contextCommand-4Z7T7TUM.js} +40 -36
  153. package/chunks/{core-runtime-3XEYLQFK.js → core-runtime-6N4EFC2Q.js} +38 -34
  154. package/chunks/{create-sub-session-SBYUMSSS.js → create-sub-session-62YZWVAY.js} +2 -2
  155. package/chunks/{create-sub-session-R76FVXCI.js → create-sub-session-AEREHZBQ.js} +38 -34
  156. package/chunks/{cron-create-2QK6TCEC.js → cron-create-6E7GIQTG.js} +4 -4
  157. package/chunks/{cron-delete-FDCDFYMG.js → cron-delete-JD26XY3W.js} +4 -4
  158. package/chunks/{cron-list-XN3WVBTP.js → cron-list-CUWFB44G.js} +4 -4
  159. package/chunks/{daemon-Q2AB5Z23.js → daemon-PCNCI5YU.js} +72 -3
  160. package/chunks/{daemon-status-provider-3XJI6CAL.js → daemon-status-provider-DDF7C5M7.js} +46 -42
  161. package/chunks/{daemon-trust-policy-ILUDTLHD.js → daemon-trust-policy-Q4KSOJTR.js} +43 -39
  162. package/chunks/{daemon-trust-policy-monitor-HS3PKKRO.js → daemon-trust-policy-monitor-V6FTE3IY.js} +43 -39
  163. package/chunks/{deferred-core-runtime-X4QV662U.js → deferred-core-runtime-GHJ5GQHK.js} +38 -34
  164. package/chunks/{dist-BSTVRPMT.js → dist-26BIMQT6.js} +276 -16
  165. package/chunks/{dist-SV7Q3AWJ.js → dist-2PERFI23.js} +12 -9
  166. package/chunks/{dist-DOLYHMXE.js → dist-OAOC5OV4.js} +2 -2
  167. package/chunks/{dist-YGBBMK3Z.js → dist-PVEAFLHY.js} +5 -4
  168. package/chunks/{dist-HVRQ2CFL.js → dist-SL2LUMML.js} +1180 -5
  169. package/chunks/dist-ULIG4M5H.js +13415 -0
  170. package/chunks/{dist-IXQEQWRG.js → dist-WGMNT3JQ.js} +1 -1
  171. package/chunks/{dist-SSU66DM4.js → dist-ZHXOBXDN.js} +1 -1
  172. package/chunks/{earlyInputCapture-XKLZT7ZD.js → earlyInputCapture-TQXLLISD.js} +39 -35
  173. package/chunks/{edit-HHGIOTQ2.js → edit-FJEUV6KZ.js} +38 -34
  174. package/chunks/{enter-worktree-ZN7PUQ46.js → enter-worktree-7GE3TZ4P.js} +38 -34
  175. package/chunks/{enterPlanMode-EIFIDSIV.js → enterPlanMode-KR5TMPCJ.js} +38 -34
  176. package/chunks/{environment-XXQ75D2Q.js → environment-SWL3CMB3.js} +40 -36
  177. package/chunks/{errors-4GMVU7CK.js → errors-XQE7BGZV.js} +40 -36
  178. package/chunks/{exit-worktree-GXMI4ATY.js → exit-worktree-CHKTYNCV.js} +38 -34
  179. package/chunks/{exitPlanMode-34UVY7M6.js → exitPlanMode-QYAG6LWX.js} +38 -34
  180. package/chunks/{fast-path-VPIVA7L6.js → fast-path-Z2K7W6DC.js} +2 -2
  181. package/chunks/{gemini-4BWIK4WD.js → gemini-YU4XKEDG.js} +91 -87
  182. package/chunks/{geminiContentGenerator-3XVV5MSS.js → geminiContentGenerator-ZZX6NBO4.js} +6 -6
  183. package/chunks/{glob-TZ2ABCJG.js → glob-VYF5CXSX.js} +38 -34
  184. package/chunks/goal-tools-HGO6VXPB.js +335 -0
  185. package/chunks/{grep-BEF463NA.js → grep-5DP5ZUTW.js} +38 -34
  186. package/chunks/{handleAutoUpdate-L6ERF36Y.js → handleAutoUpdate-UVBJ56DL.js} +42 -38
  187. package/chunks/{i18n-FMM5FDXR.js → i18n-UQNYHEUD.js} +39 -35
  188. package/chunks/{image-gen-HHVLF7HS.js → image-gen-WHPIZNWF.js} +9 -9
  189. package/chunks/{initializer-625TIAIO.js → initializer-GMIICF4W.js} +44 -40
  190. package/chunks/{installationInfo-6AM4I2Y3.js → installationInfo-4MGG4WVI.js} +39 -35
  191. package/chunks/{keychain-token-storage-72IYCAZV.js → keychain-token-storage-IKO4G53C.js} +2 -2
  192. package/chunks/list-CPN2W334.js +92 -0
  193. package/chunks/{list-agents-R6KDXQR3.js → list-agents-PXJ7ZUFB.js} +2 -2
  194. package/chunks/{loadedSettingsAdapter-SPUTNKAV.js → loadedSettingsAdapter-ZQAV5NDO.js} +43 -39
  195. package/chunks/{loggingContentGenerator-LKOF7XI7.js → loggingContentGenerator-5E7W4IEP.js} +18 -18
  196. package/chunks/{loop-wakeup-3IQKCYAH.js → loop-wakeup-Y26NQZ5I.js} +13 -6
  197. package/chunks/{ls-DKZ37A7N.js → ls-ONQTTMQR.js} +4 -4
  198. package/chunks/{lsp-QNWN7KN3.js → lsp-YGHHRGMD.js} +2 -2
  199. package/chunks/{managed-npm-update-ACQGGIN5.js → managed-npm-update-MKKAXYXA.js} +39 -35
  200. package/chunks/{mcp-SZLHKFJW.js → mcp-V5NTJF6X.js} +43 -39
  201. package/chunks/{monitor-DF52UVHI.js → monitor-CO3ASY6E.js} +38 -34
  202. package/chunks/nonInteractiveCli-ZJYEOO7U.js +148 -0
  203. package/chunks/{notebook-edit-FCWS4XVN.js → notebook-edit-Z7AEE6FM.js} +38 -34
  204. package/chunks/{openaiContentGenerator-7LDK3DCJ.js → openaiContentGenerator-CA3MQOP3.js} +19 -19
  205. package/chunks/{pidfile-6ERW3DF4.js → pidfile-NL7MKDRU.js} +39 -35
  206. package/chunks/{processUtils-COKZAMUP.js → processUtils-PB5K2DYH.js} +2 -2
  207. package/chunks/{qwenContentGenerator-TKWUMR7N.js → qwenContentGenerator-JYFNDCOS.js} +44 -40
  208. package/chunks/{qwenOAuth2-7HMU47SF.js → qwenOAuth2-W2ALKQDD.js} +8 -8
  209. package/chunks/{read-file-X6DRC574.js → read-file-IEOR5H5W.js} +11 -11
  210. package/chunks/{read-mcp-resource-GFTWYXMK.js → read-mcp-resource-U2IJN5HM.js} +2 -2
  211. package/chunks/record-artifact-MGPJ7EG4.js +21 -0
  212. package/chunks/{resumeHistoryUtils-PFPM2GWM.js → resumeHistoryUtils-BNBTP5AS.js} +44 -40
  213. package/chunks/{ripGrep-OWV2IVJC.js → ripGrep-UMQODKEB.js} +38 -34
  214. package/chunks/{run-qwen-serve-TSTCO4XE.js → run-qwen-serve-RN2R6QQW.js} +116 -65
  215. package/chunks/{runtime-DAUPSUKI.js → runtime-QFJ2MJF5.js} +48 -44
  216. package/chunks/{scheduler-KMADMT26.js → scheduler-AMYUFOZI.js} +38 -34
  217. package/chunks/{sdk-exporters-http-WO556XNU.js → sdk-exporters-http-4BQANSJ6.js} +3 -3
  218. package/chunks/{sdk-impl-LPAVACSF.js → sdk-impl-Z4VXWVFX.js} +3 -3
  219. package/chunks/{send-message-SAWK4DZX.js → send-message-PMP4ATVM.js} +6 -11
  220. package/chunks/{serve-NNRWS6F4.js → serve-EIIYJVX3.js} +43 -39
  221. package/chunks/{server-WEH7DVCH.js → server-EP2LLAPD.js} +1768 -712
  222. package/chunks/{session-WXC56V2I.js → session-GMPZBLOW.js} +83 -79
  223. package/chunks/{settings-DJDXFDZ3.js → settings-LN7RNKBS.js} +47 -43
  224. package/chunks/{shell-JN5VRQXD.js → shell-EM2OWU5X.js} +38 -34
  225. package/chunks/{skill-SGXPKJCS.js → skill-T5VPSK73.js} +17 -16
  226. package/chunks/{skill-settings-VJ5PDMZI.js → skill-settings-GMR3GMNY.js} +42 -38
  227. package/chunks/{spawnChannel-ETMJW7YX.js → spawnChannel-YPCU62DI.js} +40 -36
  228. package/chunks/{standalone-update-MK3Z7KBI.js → standalone-update-JAKIM2NF.js} +40 -36
  229. package/chunks/{startInteractiveUI-ZCGIXPGT.js → startInteractiveUI-YETQWGYF.js} +774 -779
  230. package/chunks/{syntheticOutput-355CB6CJ.js → syntheticOutput-D7E6ZFKR.js} +3 -3
  231. package/chunks/{task-create-INGWNUG4.js → task-create-NFCYD43L.js} +10 -9
  232. package/chunks/{task-list-5XNNGTF4.js → task-list-TAVMGEVD.js} +5 -5
  233. package/chunks/{task-stop-4ROAOBXH.js → task-stop-ZDF2UJRM.js} +2 -2
  234. package/chunks/{task-update-CRK5VWWZ.js → task-update-6L7LHGEX.js} +10 -9
  235. package/chunks/{team-create-QQGAJG7P.js → team-create-LFJ6HGNY.js} +38 -34
  236. package/chunks/{team-delete-S2RCXA4P.js → team-delete-DPGGRQBU.js} +5 -5
  237. package/chunks/{team-plan-approval-RT7Q5R6O.js → team-plan-approval-C2KLSDGO.js} +38 -34
  238. package/chunks/{theme-manager-EEWIQJ7J.js → theme-manager-JQ3ZGBP5.js} +39 -35
  239. package/chunks/{todoWrite-7WM3VDMY.js → todoWrite-2UO5G6G6.js} +32 -4
  240. package/chunks/{tool-search-Z3Z4AYKP.js → tool-search-FAZBFRJZ.js} +15 -14
  241. package/chunks/{total-session-admission-44JKRWQD.js → total-session-admission-5CALIVYO.js} +42 -38
  242. package/chunks/{trustedFolders-X2JEIO57.js → trustedFolders-KOPSP44S.js} +39 -35
  243. package/chunks/{update-relaunch-VWNPYDIP.js → update-relaunch-6QL2TICS.js} +5 -5
  244. package/chunks/{updateCheck-KAQH67DV.js → updateCheck-4Q6RIKFW.js} +41 -37
  245. package/chunks/{useAutoAcceptIndicator-JH6BCF7S.js → useAutoAcceptIndicator-Q5BMKZV3.js} +47 -43
  246. package/chunks/{validateNonInterActiveAuth-GIUJ2UFS.js → validateNonInterActiveAuth-GKOC5F6Z.js} +79 -75
  247. package/chunks/{version-BGLYIJUY.js → version-VSATY2LD.js} +1 -1
  248. package/chunks/{web-fetch-OTDU4VQF.js → web-fetch-JCLKL6NL.js} +14 -14
  249. package/chunks/{web-search-FP6SIHPR.js → web-search-DSQTFUBX.js} +8 -8
  250. package/chunks/{workflow-YCIVBYSB.js → workflow-M6QAVKVJ.js} +41 -37
  251. package/chunks/workspace-providers-status-YKLTLMJA.js +89 -0
  252. package/chunks/{workspace-registration-store-OTMS3H4C.js → workspace-registration-store-5DMGKU64.js} +1 -1
  253. package/chunks/{workspace-registry-O63R6IZ4.js → workspace-registry-PTYUSYXX.js} +42 -38
  254. package/chunks/{workspace-service-M6LLHKJ5.js → workspace-service-25ML3T47.js} +48 -44
  255. package/chunks/{workspace-skills-status-C2V7BAIS.js → workspace-skills-status-YKZWOYRX.js} +44 -40
  256. package/chunks/{workspace-trust-reconciler-IBUPOUJN.js → workspace-trust-reconciler-5FI2S3OS.js} +47 -43
  257. package/chunks/write-file-AY7VLP5X.js +78 -0
  258. package/chunks/zoom-image-S4LJZMD5.js +224 -0
  259. package/cli.js +50 -16
  260. package/package.json +3 -3
  261. package/web-shell/assets/{arc-75-Wdeo3.js → arc-xjArKHU2.js} +1 -1
  262. package/web-shell/assets/{architectureDiagram-3BPJPVTR-FKeXQbyP.js → architectureDiagram-3BPJPVTR-BgrQDNYG.js} +1 -1
  263. package/web-shell/assets/{blockDiagram-GPEHLZMM-CY0vc-A3.js → blockDiagram-GPEHLZMM-CXxWC-1_.js} +1 -1
  264. package/web-shell/assets/{c4Diagram-AAUBKEIU-CNP-A-8u.js → c4Diagram-AAUBKEIU-Dx1tLm3v.js} +1 -1
  265. package/web-shell/assets/channel-B1cyk94G.js +1 -0
  266. package/web-shell/assets/{chunk-2J33WTMH-GybS4Gii.js → chunk-2J33WTMH-CBxjogVR.js} +1 -1
  267. package/web-shell/assets/{chunk-4BX2VUAB-02H91V8v.js → chunk-4BX2VUAB-izb-rY5W.js} +1 -1
  268. package/web-shell/assets/{chunk-55IACEB6-D3M-2VT6.js → chunk-55IACEB6-NzLyvSb8.js} +1 -1
  269. package/web-shell/assets/{chunk-727SXJPM-CCu29u4H.js → chunk-727SXJPM-DVyKb0dl.js} +1 -1
  270. package/web-shell/assets/{chunk-AQP2D5EJ-CaFKWgrn.js → chunk-AQP2D5EJ-BtqL7NzB.js} +1 -1
  271. package/web-shell/assets/{chunk-FMBD7UC4-ZZpPqIwQ.js → chunk-FMBD7UC4-iNpdKIO0.js} +1 -1
  272. package/web-shell/assets/{chunk-ND2GUHAM-D22DqGs8.js → chunk-ND2GUHAM-DI7cbFmX.js} +1 -1
  273. package/web-shell/assets/{chunk-QZHKN3VN-Bu85S0fw.js → chunk-QZHKN3VN-3Y_-xFYs.js} +1 -1
  274. package/web-shell/assets/classDiagram-4FO5ZUOK-BpBYZoRE.js +1 -0
  275. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BpBYZoRE.js +1 -0
  276. package/web-shell/assets/{cose-bilkent-S5V4N54A-f1CK1Gwe.js → cose-bilkent-S5V4N54A--raRatZn.js} +1 -1
  277. package/web-shell/assets/{dagre-BM42HDAG-D0Ow8F_n.js → dagre-BM42HDAG-B8SU70mO.js} +1 -1
  278. package/web-shell/assets/{diagram-2AECGRRQ-BPrmTWp8.js → diagram-2AECGRRQ-ewgoakXo.js} +1 -1
  279. package/web-shell/assets/{diagram-5GNKFQAL-HccuFAzy.js → diagram-5GNKFQAL-Bm_JLTnS.js} +1 -1
  280. package/web-shell/assets/{diagram-KO2AKTUF-BrS76mbA.js → diagram-KO2AKTUF-DEIUjUy9.js} +1 -1
  281. package/web-shell/assets/{diagram-LMA3HP47-V7T9lU-5.js → diagram-LMA3HP47-C2Wmrpj-.js} +1 -1
  282. package/web-shell/assets/{diagram-OG6HWLK6-DKidyJMR.js → diagram-OG6HWLK6-CtYe6bFx.js} +1 -1
  283. package/web-shell/assets/{erDiagram-TEJ5UH35-DBadZIkp.js → erDiagram-TEJ5UH35-DfpHcWLV.js} +1 -1
  284. package/web-shell/assets/{flowDiagram-I6XJVG4X-BymfqdNJ.js → flowDiagram-I6XJVG4X-CAiUhio5.js} +1 -1
  285. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DOw340jf.js → ganttDiagram-6RSMTGT7-CYc7ezr4.js} +1 -1
  286. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-_8EiD8sl.js → gitGraphDiagram-PVQCEYII-70lbkcRS.js} +1 -1
  287. package/web-shell/assets/index-C1k3PDuU.css +5 -0
  288. package/web-shell/assets/index-C2GE3DAF.js +74 -0
  289. package/web-shell/assets/index-DZLIXILO.js +1750 -0
  290. package/web-shell/assets/{index-CKIadvET.js → index-Ww86nT9f.js} +1 -1
  291. package/web-shell/assets/{infoDiagram-5YYISTIA-D61KYQBu.js → infoDiagram-5YYISTIA-C7e8DWPa.js} +1 -1
  292. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CsiXSpNx.js → ishikawaDiagram-YF4QCWOH-BYLr2op-.js} +1 -1
  293. package/web-shell/assets/{journeyDiagram-JHISSGLW-Sdfionyh.js → journeyDiagram-JHISSGLW-hEibAHKX.js} +1 -1
  294. package/web-shell/assets/{kanban-definition-UN3LZRKU-C3WI3Cnl.js → kanban-definition-UN3LZRKU-F2rt8Uhp.js} +1 -1
  295. package/web-shell/assets/{linear-Dpigcc62.js → linear-DPhyNezd.js} +1 -1
  296. package/web-shell/assets/{mermaid.core-Ct97pqgW.js → mermaid.core-ZUtnug0n.js} +5 -5
  297. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BzeaN0rB.js → mindmap-definition-RKZ34NQL-DDWcMoi8.js} +1 -1
  298. package/web-shell/assets/{pieDiagram-4H26LBE5-CvjgcbVD.js → pieDiagram-4H26LBE5-CTRKzw1_.js} +1 -1
  299. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BUzgTNdH.js → quadrantDiagram-W4KKPZXB-CAEwYG_z.js} +1 -1
  300. package/web-shell/assets/{requirementDiagram-4Y6WPE33-B7zKlgUQ.js → requirementDiagram-4Y6WPE33-CRjnH9D9.js} +1 -1
  301. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Bb9CQgrT.js → sankeyDiagram-5OEKKPKP-LPQT_sOd.js} +1 -1
  302. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DJ6V7itG.js → sequenceDiagram-3UESZ5HK-Ht2Iqvb0.js} +1 -1
  303. package/web-shell/assets/{stateDiagram-AJRCARHV-IImflERY.js → stateDiagram-AJRCARHV-CIUdqOXu.js} +1 -1
  304. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BmqqQZ6w.js +1 -0
  305. package/web-shell/assets/{timeline-definition-PNZ67QCA-6Q_uWHKh.js → timeline-definition-PNZ67QCA-BcilneZF.js} +1 -1
  306. package/web-shell/assets/{vennDiagram-CIIHVFJN-TmyKyjwv.js → vennDiagram-CIIHVFJN-BljwiiH1.js} +1 -1
  307. package/web-shell/assets/{wardley-L42UT6IY-CRh9uiPv.js → wardley-L42UT6IY-DeKjkYjq.js} +1 -1
  308. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-59TKAW8w.js → wardleyDiagram-YWT4CUSO-L3U1H7KG.js} +1 -1
  309. package/web-shell/assets/{xychartDiagram-2RQKCTM6-GCSUIK2L.js → xychartDiagram-2RQKCTM6-IJnWsgMT.js} +1 -1
  310. package/web-shell/index.html +2 -2
  311. package/chunks/list-L2GA674Y.js +0 -88
  312. package/chunks/nonInteractiveCli-5T7KYKLK.js +0 -144
  313. package/chunks/workspace-providers-status-S35YAIUS.js +0 -85
  314. package/chunks/write-file-3BZC3EAE.js +0 -72
  315. package/chunks/zoom-image-TZ6S2O57.js +0 -351
  316. package/web-shell/assets/channel-DPYMT76A.js +0 -1
  317. package/web-shell/assets/classDiagram-4FO5ZUOK--JstsIgL.js +0 -1
  318. package/web-shell/assets/classDiagram-v2-Q7XG4LA2--JstsIgL.js +0 -1
  319. package/web-shell/assets/index-D1eXNRHe.js +0 -1389
  320. package/web-shell/assets/index-DVLD4CQq.css +0 -5
  321. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CYI_YoNR.js +0 -1
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-OCPBI7J5.js";
18
18
  import {
19
19
  defaultSpawnChannelFactory
20
- } from "./chunk-KAMYKP7E.js";
20
+ } from "./chunk-XUGZYLDH.js";
21
21
  import {
22
22
  BridgeChannelClosedError,
23
23
  BridgeTimeoutError,
@@ -26,12 +26,13 @@ import {
26
26
  STATUS_SCHEMA_VERSION,
27
27
  createIdleWorkspaceExtensionsStatus,
28
28
  createIdleWorkspaceHooksStatus
29
- } from "./chunk-FTD6DP4T.js";
29
+ } from "./chunk-GURGAJTX.js";
30
30
  import {
31
31
  CHANNEL_STARTUP_PROFILE_META_KEY,
32
32
  CHANNEL_STARTUP_PROFILE_VERSION,
33
33
  DAEMON_CHANNEL_DELIVERY_META_KEY,
34
34
  LOAD_REPLAY_BULK_MODE,
35
+ LOAD_REPLAY_HIDE_INHERITED_META_KEY,
35
36
  LOAD_REPLAY_META_KEY,
36
37
  LOAD_REPLAY_MODE_META_KEY,
37
38
  LOAD_REPLAY_PAGE_SIZE_META_KEY,
@@ -39,8 +40,9 @@ import {
39
40
  MID_TURN_QUEUE_DRAIN_METHOD,
40
41
  PROMPT_CANCEL_METHOD,
41
42
  TODO_STOP_GUARD_CONTINUATION_CLAIM_METHOD,
42
- TODO_STOP_GUARD_QUEUE_RELEASE_METHOD
43
- } from "./chunk-XZC5VLBZ.js";
43
+ TODO_STOP_GUARD_QUEUE_RELEASE_METHOD,
44
+ WORKTREE_MCP_DEFER_META_KEY
45
+ } from "./chunk-CPZAH673.js";
44
46
  import {
45
47
  BranchWhilePromptActiveError,
46
48
  CancelSentinelCollisionError,
@@ -87,16 +89,16 @@ import {
87
89
  metadataBudgetBytes,
88
90
  normalizeSnapshotPayload,
89
91
  stableSessionArtifactId
90
- } from "./chunk-X5WNMMIA.js";
92
+ } from "./chunk-54YCNSK5.js";
91
93
  import {
92
94
  DAEMON_TRACEPARENT_META_KEY,
93
95
  DAEMON_TRACESTATE_META_KEY
94
- } from "./chunk-75MIQ3LV.js";
96
+ } from "./chunk-Z3S5EMOW.js";
95
97
  import {
96
98
  INVOCATION_CONTEXT_META_KEY,
97
99
  PRIVATE_ACP_CAPABILITY_ENV,
98
100
  PRIVATE_PARENT_CAPABILITY_META_KEY
99
- } from "./chunk-PT722TDT.js";
101
+ } from "./chunk-DUNI4EBW.js";
100
102
  import {
101
103
  init_esbuild_shims
102
104
  } from "./chunk-5O2XNYP6.js";
@@ -740,6 +742,7 @@ __name(mergeTranscriptUpdateMeta, "mergeTranscriptUpdateMeta");
740
742
 
741
743
  // packages/acp-bridge/src/session-source.ts
742
744
  init_esbuild_shims();
745
+ var SESSION_SOURCE_META_KEY = "qwen.session.source";
743
746
  var SESSION_SOURCE_TYPE_PATTERN = /^[a-z][a-z0-9_-]{0,63}$/;
744
747
  var MAX_SESSION_SOURCE_ID_LENGTH = 256;
745
748
  function parseSessionSource(sourceType, sourceId) {
@@ -5424,6 +5427,15 @@ function isRecord3(value) {
5424
5427
  return typeof value === "object" && value !== null && !Array.isArray(value);
5425
5428
  }
5426
5429
  __name(isRecord3, "isRecord");
5430
+ function sessionSourceRequestMeta(sourceType, sourceId) {
5431
+ return sourceType ? {
5432
+ [SESSION_SOURCE_META_KEY]: {
5433
+ sourceType,
5434
+ ...sourceId !== void 0 ? { sourceId } : {}
5435
+ }
5436
+ } : {};
5437
+ }
5438
+ __name(sessionSourceRequestMeta, "sessionSourceRequestMeta");
5427
5439
  function isDefinitiveAcpRequestError(error) {
5428
5440
  if (error instanceof RequestError) return true;
5429
5441
  if (!isRecord3(error)) return false;
@@ -6670,12 +6682,20 @@ function createAcpSessionBridge(opts) {
6670
6682
  "qwen-code.daemon.acp_channel.id": ci.id
6671
6683
  },
6672
6684
  async () => {
6685
+ const request = telemetry.injectPromptContext({
6686
+ cwd: boundWorkspace,
6687
+ mcpServers: [],
6688
+ ...sourceType ? { _meta: sessionSourceRequestMeta(sourceType, sourceId) } : {}
6689
+ });
6673
6690
  const response = await withTimeout(
6674
6691
  ci.connection.newSession(
6675
- telemetry.injectPromptContext({
6676
- cwd: boundWorkspace,
6677
- mcpServers: []
6678
- })
6692
+ worktree ? {
6693
+ ...request,
6694
+ _meta: {
6695
+ ...isRecord3(request._meta) ? request._meta : {},
6696
+ [WORKTREE_MCP_DEFER_META_KEY]: true
6697
+ }
6698
+ } : request
6679
6699
  ),
6680
6700
  initTimeoutMs,
6681
6701
  "newSession"
@@ -7449,6 +7469,7 @@ function createAcpSessionBridge(opts) {
7449
7469
  const entry = {
7450
7470
  sessionId,
7451
7471
  workspaceCwd,
7472
+ effectiveCwd: workspaceCwd,
7452
7473
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
7453
7474
  ...options.parentSessionId ? { parentSessionId: options.parentSessionId } : {},
7454
7475
  ...options.sourceType ? { sourceType: options.sourceType } : {},
@@ -7465,6 +7486,7 @@ function createAcpSessionBridge(opts) {
7465
7486
  }),
7466
7487
  recordingDegraded: false,
7467
7488
  closing: false,
7489
+ cwdChangeQueue: Promise.resolve(),
7468
7490
  promptQueue: Promise.resolve(),
7469
7491
  pendingPromptCount: 0,
7470
7492
  pendingPromptList: [],
@@ -7782,6 +7804,7 @@ function createAcpSessionBridge(opts) {
7782
7804
  );
7783
7805
  }
7784
7806
  const historyReplay = action === "load" ? req.historyReplay ?? "stream" : "stream";
7807
+ const hideInheritedHistory = action === "load" && req.hideInheritedHistory === true;
7785
7808
  const existing = byId.get(req.sessionId);
7786
7809
  if (existing) {
7787
7810
  if (existing.closing) {
@@ -7819,7 +7842,7 @@ function createAcpSessionBridge(opts) {
7819
7842
  }
7820
7843
  const inFlight = inFlightRestores.get(req.sessionId);
7821
7844
  if (inFlight) {
7822
- if (action !== inFlight.action || historyReplay !== inFlight.historyReplay) {
7845
+ if (action !== inFlight.action || historyReplay !== inFlight.historyReplay || hideInheritedHistory !== inFlight.hideInheritedHistory) {
7823
7846
  throw new RestoreInProgressError(
7824
7847
  req.sessionId,
7825
7848
  inFlight.action,
@@ -7901,11 +7924,20 @@ function createAcpSessionBridge(opts) {
7901
7924
  // intentionally has no `mcpServers` field for the
7902
7925
  // same reason.
7903
7926
  mcpServers: [],
7904
- ...historyReplay === "response" ? {
7927
+ ...historyReplay === "response" || hideInheritedHistory || req.sourceType ? {
7905
7928
  _meta: {
7906
- [LOAD_REPLAY_MODE_META_KEY]: LOAD_REPLAY_BULK_MODE,
7907
- ...req.historyPageSize !== void 0 ? {
7908
- [LOAD_REPLAY_PAGE_SIZE_META_KEY]: req.historyPageSize
7929
+ ...sessionSourceRequestMeta(
7930
+ req.sourceType,
7931
+ req.sourceId
7932
+ ),
7933
+ ...historyReplay === "response" ? {
7934
+ [LOAD_REPLAY_MODE_META_KEY]: LOAD_REPLAY_BULK_MODE,
7935
+ ...req.historyPageSize !== void 0 ? {
7936
+ [LOAD_REPLAY_PAGE_SIZE_META_KEY]: req.historyPageSize
7937
+ } : {}
7938
+ } : {},
7939
+ ...hideInheritedHistory ? {
7940
+ [LOAD_REPLAY_HIDE_INHERITED_META_KEY]: true
7909
7941
  } : {}
7910
7942
  }
7911
7943
  } : {}
@@ -7921,7 +7953,13 @@ function createAcpSessionBridge(opts) {
7921
7953
  ci.connection.unstable_resumeSession({
7922
7954
  sessionId: req.sessionId,
7923
7955
  cwd: workspaceKey,
7924
- mcpServers: []
7956
+ mcpServers: [],
7957
+ ...req.sourceType ? {
7958
+ _meta: sessionSourceRequestMeta(
7959
+ req.sourceType,
7960
+ req.sourceId
7961
+ )
7962
+ } : {}
7925
7963
  }),
7926
7964
  initTimeoutMs,
7927
7965
  "resumeSession"
@@ -8099,6 +8137,7 @@ function createAcpSessionBridge(opts) {
8099
8137
  inFlightRestores.set(req.sessionId, {
8100
8138
  action,
8101
8139
  historyReplay,
8140
+ hideInheritedHistory,
8102
8141
  promise,
8103
8142
  coalesceState
8104
8143
  });
@@ -8977,12 +9016,18 @@ function createAcpSessionBridge(opts) {
8977
9016
  if (shuttingDown) throw new Error("AcpSessionBridge is shutting down");
8978
9017
  const entry = byId.get(sessionId);
8979
9018
  if (!entry) throw new SessionNotFoundError(sessionId);
9019
+ const source = parseSessionSource(req.sourceType, req.sourceId);
9020
+ if ("error" in source) {
9021
+ throw new InvalidSessionMetadataError("sourceType", source.error);
9022
+ }
9023
+ const isSideTask = source.sourceType === "side_task";
8980
9024
  let originatorClientId;
8981
9025
  if (context?.clientId !== void 0) {
8982
9026
  originatorClientId = resolveTrustedClientId(entry, context.clientId);
8983
9027
  }
8984
- const branchResult = entry.promptQueue.then(async () => {
8985
- if (entry.promptActive) {
9028
+ const concurrentSideTask = isSideTask && entry.promptActive;
9029
+ const branchResult = (concurrentSideTask ? Promise.resolve() : entry.promptQueue).then(async () => {
9030
+ if (entry.promptActive && !isSideTask) {
8986
9031
  throw new BranchWhilePromptActiveError(sessionId);
8987
9032
  }
8988
9033
  if (byId.size + inFlightSpawns.size + inFlightRestores.size >= maxSessions) {
@@ -9002,13 +9047,16 @@ function createAcpSessionBridge(opts) {
9002
9047
  try {
9003
9048
  const ci = await ensureChannel();
9004
9049
  const result = await withTimeout(
9005
- ci.connection.extMethod(SERVE_CONTROL_EXT_METHODS.sessionBranch, {
9006
- sessionId,
9007
- cwd: boundWorkspace,
9008
- name: req.name
9009
- }),
9050
+ ci.connection.extMethod(
9051
+ isSideTask ? SERVE_CONTROL_EXT_METHODS.sessionSideTask : SERVE_CONTROL_EXT_METHODS.sessionBranch,
9052
+ {
9053
+ sessionId,
9054
+ cwd: boundWorkspace,
9055
+ name: req.name
9056
+ }
9057
+ ),
9010
9058
  initTimeoutMs,
9011
- "branchSession"
9059
+ isSideTask ? "createSideTaskSession" : "branchSession"
9012
9060
  );
9013
9061
  if (!result || typeof result.newSessionId !== "string") {
9014
9062
  throw new Error(
@@ -9019,12 +9067,18 @@ function createAcpSessionBridge(opts) {
9019
9067
  const branchDisplayName = typeof rawBranchName === "string" ? rawBranchName : result.newSessionId.slice(0, 8);
9020
9068
  let restored;
9021
9069
  try {
9070
+ const hideInheritedHistory = req.replayInheritedHistory === false;
9022
9071
  restored = await restoreSession(
9023
9072
  "load",
9024
9073
  {
9025
9074
  sessionId: result.newSessionId,
9026
9075
  workspaceCwd: boundWorkspace,
9027
- clientId: context?.clientId
9076
+ clientId: context?.clientId,
9077
+ ...hideInheritedHistory ? {
9078
+ historyReplay: "response",
9079
+ hideInheritedHistory: true
9080
+ } : {},
9081
+ ...source
9028
9082
  },
9029
9083
  {
9030
9084
  skipFreshSessionAdmission: true
@@ -9049,35 +9103,80 @@ function createAcpSessionBridge(opts) {
9049
9103
  }
9050
9104
  const newEntry = byId.get(result.newSessionId);
9051
9105
  if (newEntry) newEntry.displayName = branchDisplayName;
9052
- const eventData = {
9053
- sourceSessionId: sessionId,
9054
- newSessionId: result.newSessionId,
9055
- displayName: branchDisplayName
9056
- };
9057
- const branchEnvelope = {
9058
- type: "session_branched",
9059
- data: eventData,
9060
- ...originatorClientId ? { originatorClientId } : {}
9061
- };
9062
- newEntry?.events.publish(branchEnvelope);
9106
+ let sourcePersisted;
9107
+ if (newEntry?.sourceType) {
9108
+ try {
9109
+ const sourceResult = await withTimeout(
9110
+ newEntry.connection.extMethod(
9111
+ SERVE_CONTROL_EXT_METHODS.sessionSource,
9112
+ {
9113
+ sessionId: newEntry.sessionId,
9114
+ sourceType: newEntry.sourceType,
9115
+ ...newEntry.sourceId !== void 0 ? { sourceId: newEntry.sourceId } : {}
9116
+ }
9117
+ ),
9118
+ initTimeoutMs,
9119
+ "sessionSource"
9120
+ );
9121
+ sourcePersisted = sourceResult?.persisted === true;
9122
+ } catch (error) {
9123
+ sourcePersisted = false;
9124
+ writeStderrLine(
9125
+ `qwen serve: source metadata for branched session ${result.newSessionId} was not persisted: ${error instanceof Error ? error.message : String(error)}`
9126
+ );
9127
+ }
9128
+ }
9129
+ if (!isSideTask) {
9130
+ const eventData = {
9131
+ sourceSessionId: sessionId,
9132
+ newSessionId: result.newSessionId,
9133
+ displayName: branchDisplayName
9134
+ };
9135
+ const branchEnvelope = {
9136
+ type: "session_branched",
9137
+ data: eventData,
9138
+ ...originatorClientId ? { originatorClientId } : {}
9139
+ };
9140
+ newEntry?.events.publish(branchEnvelope);
9141
+ }
9063
9142
  return {
9064
9143
  ...restored,
9065
9144
  displayName: branchDisplayName,
9066
9145
  forkedFrom: {
9067
9146
  sessionId,
9068
9147
  displayName: entry.displayName ?? sessionId.slice(0, 8)
9069
- }
9148
+ },
9149
+ ...sourcePersisted !== void 0 ? { sourcePersisted } : {}
9070
9150
  };
9071
9151
  } finally {
9072
9152
  releaseAdmissionOnce();
9073
9153
  }
9074
9154
  });
9075
- entry.promptQueue = branchResult.then(
9076
- () => void 0,
9077
- () => void 0
9078
- );
9155
+ if (!concurrentSideTask) {
9156
+ entry.promptQueue = branchResult.then(
9157
+ () => void 0,
9158
+ () => void 0
9159
+ );
9160
+ }
9079
9161
  return branchResult;
9080
9162
  },
9163
+ async createSideTaskSession(sessionId, req, context) {
9164
+ const result = await this.branchSession(
9165
+ sessionId,
9166
+ {
9167
+ name: req.name,
9168
+ sourceType: "side_task",
9169
+ sourceId: sessionId,
9170
+ replayInheritedHistory: false
9171
+ },
9172
+ context
9173
+ );
9174
+ const { forkedFrom: _forkedFrom, ...sideTask } = result;
9175
+ return {
9176
+ ...sideTask,
9177
+ parentSessionId: sessionId
9178
+ };
9179
+ },
9081
9180
  async changeSessionCwd(sessionId, req, context) {
9082
9181
  if (shuttingDown) throw new Error("AcpSessionBridge is shutting down");
9083
9182
  const entry = byId.get(sessionId);
@@ -9105,6 +9204,7 @@ function createAcpSessionBridge(opts) {
9105
9204
  `changeSessionCwd: unexpected response shape from agent: ${JSON.stringify(raw)}`
9106
9205
  );
9107
9206
  }
9207
+ entry.effectiveCwd = extResult.newCwd;
9108
9208
  if (extResult.previousCwd !== extResult.newCwd) {
9109
9209
  entry.events.publish({
9110
9210
  type: "session_cwd_changed",
@@ -9122,6 +9222,10 @@ function createAcpSessionBridge(opts) {
9122
9222
  () => void 0,
9123
9223
  () => void 0
9124
9224
  );
9225
+ entry.cwdChangeQueue = cdPromise.then(
9226
+ () => void 0,
9227
+ () => void 0
9228
+ );
9125
9229
  const result = await withTimeout(
9126
9230
  cdPromise,
9127
9231
  Math.max(initTimeoutMs, 3e4),
@@ -9623,44 +9727,79 @@ function createAcpSessionBridge(opts) {
9623
9727
  },
9624
9728
  async refreshExtensionsForAllSessions(data) {
9625
9729
  const sessions = Array.from(byId.values());
9730
+ const bootstrapRefreshConnections = /* @__PURE__ */ new Set();
9731
+ const refreshSession = /* @__PURE__ */ __name(async (entry, refreshBootstrap) => {
9732
+ let inFlight = inFlightExtensionRefreshes.get(entry.sessionId);
9733
+ if (!inFlight || inFlight.connection !== entry.connection || refreshBootstrap && !inFlight.refreshBootstrap) {
9734
+ const promise = (async () => {
9735
+ await entry.connection.extMethod(
9736
+ SERVE_CONTROL_EXT_METHODS.workspaceExtensionsRefresh,
9737
+ {
9738
+ sessionId: entry.sessionId,
9739
+ ...refreshBootstrap ? {} : { refreshBootstrap: false }
9740
+ }
9741
+ );
9742
+ })();
9743
+ inFlight = {
9744
+ connection: entry.connection,
9745
+ promise,
9746
+ refreshBootstrap
9747
+ };
9748
+ inFlightExtensionRefreshes.set(entry.sessionId, inFlight);
9749
+ const clear = /* @__PURE__ */ __name(() => {
9750
+ if (inFlightExtensionRefreshes.get(entry.sessionId) === inFlight) {
9751
+ inFlightExtensionRefreshes.delete(entry.sessionId);
9752
+ }
9753
+ }, "clear");
9754
+ void promise.then(clear, clear);
9755
+ }
9756
+ await Promise.race([
9757
+ withTimeout(
9758
+ inFlight.promise,
9759
+ 3e4,
9760
+ SERVE_CONTROL_EXT_METHODS.workspaceExtensionsRefresh
9761
+ ),
9762
+ getTransportClosedReject(entry)
9763
+ ]);
9764
+ }, "refreshSession");
9626
9765
  const results = await Promise.all(
9627
9766
  sessions.map(async (entry) => {
9628
9767
  const info = channelInfoForEntry(entry);
9629
9768
  if (!info || info.isDying) {
9630
- return { refreshed: 0, failed: 0 };
9769
+ return {
9770
+ refreshed: 0,
9771
+ failed: 0,
9772
+ entry,
9773
+ refreshBootstrap: false
9774
+ };
9631
9775
  }
9776
+ const refreshBootstrap = !bootstrapRefreshConnections.has(
9777
+ entry.connection
9778
+ );
9779
+ bootstrapRefreshConnections.add(entry.connection);
9632
9780
  try {
9633
- let inFlight = inFlightExtensionRefreshes.get(entry.sessionId);
9634
- if (!inFlight || inFlight.connection !== entry.connection) {
9635
- const promise = (async () => {
9636
- await entry.connection.extMethod(
9637
- SERVE_CONTROL_EXT_METHODS.workspaceExtensionsRefresh,
9638
- { sessionId: entry.sessionId }
9639
- );
9640
- })();
9641
- inFlight = { connection: entry.connection, promise };
9642
- inFlightExtensionRefreshes.set(entry.sessionId, inFlight);
9643
- const clear = /* @__PURE__ */ __name(() => {
9644
- if (inFlightExtensionRefreshes.get(entry.sessionId) === inFlight) {
9645
- inFlightExtensionRefreshes.delete(entry.sessionId);
9646
- }
9647
- }, "clear");
9648
- void promise.then(clear, clear);
9649
- }
9650
- await Promise.race([
9651
- withTimeout(
9652
- inFlight.promise,
9653
- 3e4,
9654
- SERVE_CONTROL_EXT_METHODS.workspaceExtensionsRefresh
9655
- ),
9656
- getTransportClosedReject(entry)
9657
- ]);
9658
- return { refreshed: 1, failed: 0 };
9781
+ await refreshSession(entry, refreshBootstrap);
9782
+ return { refreshed: 1, failed: 0, entry, refreshBootstrap };
9659
9783
  } catch (err) {
9660
9784
  writeServeDebugLine(
9661
9785
  `refreshExtensions: session ${entry.sessionId} failed: ${err instanceof Error ? err.message : String(err)}`
9662
9786
  );
9663
- return { refreshed: 0, failed: 1 };
9787
+ return { refreshed: 0, failed: 1, entry, refreshBootstrap };
9788
+ }
9789
+ })
9790
+ );
9791
+ await Promise.all(
9792
+ results.filter((result) => result.failed > 0 && result.refreshBootstrap).map(async (failedBootstrap) => {
9793
+ const retry = results.find(
9794
+ (result) => result.refreshed > 0 && result.entry.connection === failedBootstrap.entry.connection
9795
+ );
9796
+ if (!retry) return;
9797
+ try {
9798
+ await refreshSession(retry.entry, true);
9799
+ } catch (err) {
9800
+ writeServeDebugLine(
9801
+ `refreshExtensions: bootstrap retry via session ${retry.entry.sessionId} failed: ${err instanceof Error ? err.message : String(err)}`
9802
+ );
9664
9803
  }
9665
9804
  })
9666
9805
  );
@@ -10097,7 +10236,24 @@ function createAcpSessionBridge(opts) {
10097
10236
  if (signal?.aborted) {
10098
10237
  return { exitCode: null, output: "", aborted: true };
10099
10238
  }
10100
- const cwd = entry.workspaceCwd;
10239
+ let abortResolve;
10240
+ const onAbort = /* @__PURE__ */ __name(() => abortResolve?.(), "onAbort");
10241
+ try {
10242
+ await Promise.race([
10243
+ entry.cwdChangeQueue,
10244
+ new Promise((resolve2) => {
10245
+ abortResolve = resolve2;
10246
+ if (signal?.aborted) return resolve2();
10247
+ signal?.addEventListener("abort", onAbort, { once: true });
10248
+ })
10249
+ ]);
10250
+ } finally {
10251
+ signal?.removeEventListener("abort", onAbort);
10252
+ }
10253
+ if (signal?.aborted) {
10254
+ return { exitCode: null, output: "", aborted: true };
10255
+ }
10256
+ const cwd = entry.effectiveCwd;
10101
10257
  entry.events.publish({
10102
10258
  type: "user_shell_command",
10103
10259
  data: { sessionId, command, cwd },
@@ -10840,6 +10996,7 @@ var createHttpAcpBridge = createAcpSessionBridge;
10840
10996
  export {
10841
10997
  SessionArtifactValidationError,
10842
10998
  SessionArtifactAuthorizationError,
10999
+ SESSION_SOURCE_META_KEY,
10843
11000
  parseSessionSource,
10844
11001
  extractErrorMessage,
10845
11002
  extractErrorCode,
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  themeManager
5
- } from "./chunk-GATT5TKW.js";
5
+ } from "./chunk-IGTHU3T4.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-UHUSJ6X7.js";
5
+ } from "./chunk-E2BHWIDT.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";