@qwen-code/qwen-code 0.21.0-nightly.20260727.c003e1718 → 0.21.0-preview.0

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 (329) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +4 -0
  2. package/bundled/qc-helper/docs/features/channels/github.md +14 -14
  3. package/bundled/qc-helper/docs/features/hooks.md +50 -13
  4. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
  5. package/bundled/qc-helper/docs/support/troubleshooting.md +2 -1
  6. package/bundled/review/SKILL.md +15 -0
  7. package/chunks/{MaxSizedBox-2N5IOLMA.js → MaxSizedBox-UQGQ6O3I.js} +36 -36
  8. package/chunks/{StandaloneSessionPicker-6SNFY63D.js → StandaloneSessionPicker-QLO5COVM.js} +51 -51
  9. package/chunks/{acp-startup-profiler-RV3IV562.js → acp-startup-profiler-DFVPFQ6C.js} +2 -2
  10. package/chunks/{acpAgent-6BDY452E.js → acpAgent-ECMKCJPZ.js} +1265 -505
  11. package/chunks/{agent-WPMRCC7E.js → agent-NJ4VPY5B.js} +31 -31
  12. package/chunks/{agent-headless-OSOKZOZK.js → agent-headless-JB6RF5HT.js} +31 -31
  13. package/chunks/{anthropicContentGenerator-EJEHPX2W.js → anthropicContentGenerator-V2QOGVYD.js} +54 -13
  14. package/chunks/{artifact-tool-FQYTXKFY.js → artifact-tool-6K6U7XYJ.js} +2 -2
  15. package/chunks/{askUserQuestion-DJQIJ5T4.js → askUserQuestion-GD2IJJ7I.js} +2 -2
  16. package/chunks/{bridge-VR3WL36L.js → bridge-EXKCQ7MD.js} +38 -37
  17. package/chunks/{build-47LY6L7H.js → build-S6DO7LMM.js} +1 -1
  18. package/chunks/{ca-UBSN3YSM.js → ca-6W3SK7OQ.js} +1 -1
  19. package/chunks/{channel-management-service-2WRAWZQU.js → channel-management-service-XR7GZSWF.js} +7 -7
  20. package/chunks/{channel-settings-store-3FOVM5TF.js → channel-settings-store-VA4J7HPF.js} +38 -38
  21. package/chunks/{channel-worker-group-VMGKUBUY.js → channel-worker-group-XDPTDWTX.js} +9 -5
  22. package/chunks/{channel-worker-manager-2SCF42S2.js → channel-worker-manager-YYEHVRRE.js} +9 -5
  23. package/chunks/{channel-worker-supervisor-F3HADSDC.js → channel-worker-supervisor-74HTWA2G.js} +5 -4
  24. package/chunks/{chunk-2PHWA4IO.js → chunk-2DN4J57Y.js} +2 -2
  25. package/chunks/{chunk-HHYPUCUF.js → chunk-2LKVPASC.js} +3 -3
  26. package/chunks/{chunk-ECBKZ7SV.js → chunk-2LQTH543.js} +2 -2
  27. package/chunks/{chunk-EDEO3ZXU.js → chunk-2XSLTRFZ.js} +2 -2
  28. package/chunks/{chunk-HIJQF5B5.js → chunk-3L2SPEBH.js} +1 -1
  29. package/chunks/{chunk-2KHUM3TN.js → chunk-3MGBLIXX.js} +167 -81
  30. package/chunks/{chunk-CWFC2GZB.js → chunk-3Q4TGVUX.js} +1385 -785
  31. package/chunks/{chunk-KR2UZ6QL.js → chunk-4G2BISNC.js} +1 -1
  32. package/chunks/{chunk-IUYFCE34.js → chunk-4WSL256B.js} +3 -3
  33. package/chunks/{chunk-LI4HGDLZ.js → chunk-5FNROPXI.js} +4 -4
  34. package/chunks/{chunk-ECEJ6T4L.js → chunk-5TBMQLGG.js} +2 -2
  35. package/chunks/{chunk-KW3H2FM4.js → chunk-5YKDXHUY.js} +2 -2
  36. package/chunks/{chunk-PIVH7FAY.js → chunk-5YVWMI26.js} +5 -5
  37. package/chunks/{chunk-IUNB6SUW.js → chunk-64LQLPL7.js} +3 -3
  38. package/chunks/{chunk-7R4YENCL.js → chunk-6QIGFD5W.js} +1 -1
  39. package/chunks/{chunk-SHJ4R6JF.js → chunk-727I7LJ2.js} +5 -5
  40. package/chunks/{chunk-BRKWIX5C.js → chunk-74YNMTJP.js} +30 -19
  41. package/chunks/{chunk-IM6PC55H.js → chunk-75GFAX4R.js} +1 -1
  42. package/chunks/{chunk-IXNNGTUI.js → chunk-75MIQ3LV.js} +18 -3
  43. package/chunks/{chunk-VCBKBEU7.js → chunk-7A4ZDITM.js} +27 -14
  44. package/chunks/{chunk-FZZTCEXC.js → chunk-7HRXAFCW.js} +10 -10
  45. package/chunks/{chunk-BJHP755Z.js → chunk-7I5GTCT4.js} +271 -164
  46. package/chunks/{chunk-BOWYL27T.js → chunk-7XATOOE7.js} +1 -1
  47. package/chunks/{chunk-HAZMIZP7.js → chunk-A2APC6HM.js} +2 -2
  48. package/chunks/{chunk-ZYD3KZPB.js → chunk-A3NDJ5SB.js} +2 -2
  49. package/chunks/{chunk-IIJCNWAY.js → chunk-AL62VKMS.js} +4 -4
  50. package/chunks/{chunk-NZYXKNSZ.js → chunk-AOAYOH3R.js} +1 -1
  51. package/chunks/{chunk-C6U6ZR65.js → chunk-ATZOB5Y2.js} +11 -11
  52. package/chunks/{chunk-UH3WSE5L.js → chunk-B4AJNNOL.js} +1 -6
  53. package/chunks/{chunk-JJY7H2ZU.js → chunk-BCZFQXWK.js} +2 -2
  54. package/chunks/{chunk-FUFNINKB.js → chunk-BGTQCTQW.js} +42 -3
  55. package/chunks/{chunk-6PQHZ4YW.js → chunk-BWKCTLEJ.js} +193 -149
  56. package/chunks/{chunk-3FNJBOF7.js → chunk-CVHIL5IG.js} +3 -3
  57. package/chunks/{chunk-55PWRVIR.js → chunk-DABQX74H.js} +8 -8
  58. package/chunks/{chunk-N7U3LRNS.js → chunk-DDKAZLZ7.js} +17 -6
  59. package/chunks/{chunk-CPF4NIKT.js → chunk-DIQGH5CN.js} +1 -1
  60. package/chunks/{chunk-3YAW4B2W.js → chunk-DJGYJDYR.js} +1 -1
  61. package/chunks/{chunk-4IQSPE3A.js → chunk-DNDETPES.js} +3 -3
  62. package/chunks/{chunk-4CCAX23S.js → chunk-DZLYR4U3.js} +1 -1
  63. package/chunks/{chunk-7XSFZ3FM.js → chunk-EABYVKAK.js} +2 -2
  64. package/chunks/{chunk-SJXVC6ZO.js → chunk-F3EYHTOC.js} +4 -4
  65. package/chunks/{chunk-RKMMVQDZ.js → chunk-FNMZK765.js} +1 -1
  66. package/chunks/{chunk-2KLJYA37.js → chunk-FW4M4GA7.js} +1 -1
  67. package/chunks/chunk-FYJ7W2PI.js +194 -0
  68. package/chunks/{chunk-7GC5YKSS.js → chunk-GATT5TKW.js} +1 -1
  69. package/chunks/{chunk-4CSVLZXK.js → chunk-GBAZKAZW.js} +3 -3
  70. package/chunks/{chunk-5ADNRHTY.js → chunk-GEBV2JGB.js} +28 -5
  71. package/chunks/{chunk-VV6QF662.js → chunk-GKX7E4CO.js} +1 -1
  72. package/chunks/{chunk-ELHHYF7E.js → chunk-GNR2RNMP.js} +157 -4
  73. package/chunks/{chunk-PLMOXLFY.js → chunk-GW3XHA6P.js} +2 -2
  74. package/chunks/{chunk-SAXBG6AR.js → chunk-GXIJHV66.js} +3 -3
  75. package/chunks/{chunk-4AVIERNE.js → chunk-GZ3RCT54.js} +1 -1
  76. package/chunks/{chunk-6K2CPEAB.js → chunk-HKFEPLKW.js} +1 -1
  77. package/chunks/{chunk-QVKDVURA.js → chunk-HRD7NI6D.js} +11 -3
  78. package/chunks/{chunk-G3RJEBAA.js → chunk-HUK2P4RS.js} +2510 -1273
  79. package/chunks/{chunk-RRNQGWR4.js → chunk-HWNLU2HC.js} +7 -7
  80. package/chunks/{chunk-TH6TQR5Y.js → chunk-IZO36O6O.js} +252 -15
  81. package/chunks/{chunk-67IE7N5D.js → chunk-JMONIXMJ.js} +1 -1
  82. package/chunks/{chunk-DMEKUQ5Z.js → chunk-JSD33JG6.js} +3 -3
  83. package/chunks/{chunk-CX2KLDRX.js → chunk-JYBU6YUE.js} +1 -1
  84. package/chunks/{chunk-SJOQ5GW7.js → chunk-KADQPLPX.js} +1 -1
  85. package/chunks/{chunk-PAJNXBXO.js → chunk-KBNDRM4U.js} +3 -3
  86. package/chunks/{chunk-TD665TIY.js → chunk-KFPFJAR3.js} +24 -22
  87. package/chunks/{chunk-ZGVQLKMP.js → chunk-KY3NRFJ5.js} +9 -6
  88. package/chunks/{chunk-DEKCAHRS.js → chunk-LGAOC3ZS.js} +1 -1
  89. package/chunks/{chunk-GVHHFBJ2.js → chunk-LHZRAR2Q.js} +37 -40
  90. package/chunks/{chunk-2WUAKFCQ.js → chunk-LNHZ3A4I.js} +44 -11
  91. package/chunks/{chunk-2LFSPVBC.js → chunk-LW3RFMG7.js} +3 -3
  92. package/chunks/{chunk-SEWRIH7H.js → chunk-M7OONWYU.js} +2 -2
  93. package/chunks/{chunk-CO3BKKFP.js → chunk-ML5M5XOY.js} +269 -248
  94. package/chunks/{chunk-YF6D7CRB.js → chunk-NG3V2LPY.js} +8 -13
  95. package/chunks/{chunk-ZAJIOSFI.js → chunk-NNERMV7T.js} +2 -2
  96. package/chunks/{chunk-N5JEINK3.js → chunk-NOKIVHOL.js} +15 -2
  97. package/chunks/chunk-OCPBI7J5.js +18 -0
  98. package/chunks/{chunk-YF7TVSQK.js → chunk-OKF7JF3R.js} +3 -3
  99. package/chunks/{chunk-5FQ3CINJ.js → chunk-OXWFQXKX.js} +6 -6
  100. package/chunks/{chunk-EWYICJNY.js → chunk-P2YNZWXZ.js} +3 -3
  101. package/chunks/{chunk-6LOSXNKO.js → chunk-PONHVBRT.js} +2 -2
  102. package/chunks/{chunk-FZP2GLM4.js → chunk-QQLCYEN2.js} +1 -1
  103. package/chunks/{chunk-HEVX5YOM.js → chunk-R3NOCPFB.js} +4 -4
  104. package/chunks/{chunk-WZOPR2ZP.js → chunk-R7ZITH3J.js} +3 -1
  105. package/chunks/{chunk-ACPMPDKQ.js → chunk-RPLGZJV2.js} +38 -1
  106. package/chunks/{chunk-MFBM3CQZ.js → chunk-SGFT55XI.js} +1 -1
  107. package/chunks/{chunk-QSDUHJAR.js → chunk-SGM6M3XG.js} +1 -1
  108. package/chunks/{chunk-II55VZQA.js → chunk-SUWVXF2E.js} +3 -3
  109. package/chunks/{chunk-VYPFXUCB.js → chunk-SZ3KHTDR.js} +1 -1
  110. package/chunks/{chunk-UWSREISS.js → chunk-T2QMKU3R.js} +79 -1
  111. package/chunks/{chunk-7VOUXBKJ.js → chunk-TFRMVU6R.js} +1 -1
  112. package/chunks/{chunk-RGZ34F4F.js → chunk-TUQ36KWK.js} +10 -5
  113. package/chunks/{chunk-R2F2DRBY.js → chunk-U3E3UQAA.js} +4 -4
  114. package/chunks/{chunk-2XORP6RV.js → chunk-UEDIRTKG.js} +1 -1
  115. package/chunks/{chunk-VOTXHGKJ.js → chunk-UFI5GRDS.js} +3 -3
  116. package/chunks/{chunk-ATIV6G7N.js → chunk-UHUSJ6X7.js} +1 -1
  117. package/chunks/{chunk-2WVVMSPB.js → chunk-UPUG4GXM.js} +3 -3
  118. package/chunks/{chunk-TXI4LPWT.js → chunk-UWMLWVCA.js} +18 -6
  119. package/chunks/{chunk-G2W6OP2O.js → chunk-V5AWXXVA.js} +3 -3
  120. package/chunks/{chunk-5CGAUBFZ.js → chunk-VYO6YPYG.js} +3 -3
  121. package/chunks/{chunk-67ZRSECV.js → chunk-W4MIWP6M.js} +26 -15
  122. package/chunks/{chunk-OJJVALKY.js → chunk-WBSMNTSV.js} +3 -3
  123. package/chunks/{chunk-BZU6TRNQ.js → chunk-WUKGHS32.js} +5 -5
  124. package/chunks/{chunk-WTCKVXNT.js → chunk-WUNZAP5I.js} +4 -4
  125. package/chunks/{chunk-XM5V2A2E.js → chunk-WZRWHXFE.js} +1 -1
  126. package/chunks/{chunk-K2P7QBXF.js → chunk-X6XZITHR.js} +3 -3
  127. package/chunks/{chunk-ZEVUICUF.js → chunk-XBYYDKAZ.js} +7 -7
  128. package/chunks/{chunk-XL7TLW5I.js → chunk-XBZQT63P.js} +1 -1
  129. package/chunks/{chunk-DC2Y3JSV.js → chunk-XH7E5IGP.js} +1 -1
  130. package/chunks/{chunk-B5DJFAHN.js → chunk-XR2NFLNQ.js} +4 -4
  131. package/chunks/{chunk-FOT6JBY5.js → chunk-XRYM3MCI.js} +348 -126
  132. package/chunks/{chunk-IJDXG4RL.js → chunk-XWWKIXVD.js} +1 -1
  133. package/chunks/{chunk-3SJ43L4W.js → chunk-XZC5VLBZ.js} +2 -0
  134. package/chunks/{chunk-ZWL7SSVL.js → chunk-Y4IHBGBP.js} +1 -1
  135. package/chunks/{chunk-MB3M2BFP.js → chunk-Y6AXW2OG.js} +9 -3
  136. package/chunks/{chunk-6ENJ2DGB.js → chunk-Y6RATHM5.js} +2 -2
  137. package/chunks/{chunk-D33ZN3GK.js → chunk-YAKKV4WO.js} +12 -12
  138. package/chunks/{chunk-IPUUTYMV.js → chunk-YDLJGZHL.js} +1 -1
  139. package/chunks/{chunk-H6YTFKW7.js → chunk-YGF33UXG.js} +60 -7
  140. package/chunks/{chunk-BV6LBI45.js → chunk-YPCRRO7K.js} +3 -3
  141. package/chunks/{chunk-WDMODYUC.js → chunk-ZBVS26BY.js} +4 -0
  142. package/chunks/{chunk-GBJUC5ZL.js → chunk-ZHBO7WVX.js} +1 -1
  143. package/chunks/{chunk-4CKLWQQR.js → chunk-ZSQ5LDBH.js} +1 -1
  144. package/chunks/{computer-use-42W2GDED.js → computer-use-TGJRGZWO.js} +31 -31
  145. package/chunks/{config-utils-OTUC46XY.js → config-utils-NYSXDMEQ.js} +4 -4
  146. package/chunks/{contextCommand-2WIK6DG3.js → contextCommand-HGWDMG36.js} +33 -33
  147. package/chunks/{core-runtime-YFT4JKHA.js → core-runtime-WHE3LSHF.js} +31 -31
  148. package/chunks/{create-sub-session-HQMFFLL5.js → create-sub-session-OWI4RC7D.js} +31 -31
  149. package/chunks/{create-sub-session-Q4BUPKIO.js → create-sub-session-SBYUMSSS.js} +2 -2
  150. package/chunks/{cron-create-NI2G2ACR.js → cron-create-2QK6TCEC.js} +4 -4
  151. package/chunks/{cron-delete-KHD2WOMV.js → cron-delete-FDCDFYMG.js} +4 -4
  152. package/chunks/{cron-list-LZMV5V7N.js → cron-list-XN3WVBTP.js} +4 -4
  153. package/chunks/{daemon-KN3FWTYU.js → daemon-Q2AB5Z23.js} +139 -2
  154. package/chunks/{daemon-status-provider-DYVQTAZX.js → daemon-status-provider-KY35PVUR.js} +43 -42
  155. package/chunks/{daemon-trust-policy-QUHMUDOQ.js → daemon-trust-policy-QSQRPXHD.js} +37 -37
  156. package/chunks/{daemon-trust-policy-monitor-AHIPWCQD.js → daemon-trust-policy-monitor-VJQ54EM3.js} +37 -37
  157. package/chunks/{de-LVJPZWUT.js → de-SY6O76BF.js} +1 -1
  158. package/chunks/{deferred-core-runtime-VWKP5HVD.js → deferred-core-runtime-U3DDMMV2.js} +31 -31
  159. package/chunks/{dist-CWCPAMA2.js → dist-BSTVRPMT.js} +234 -78
  160. package/chunks/{dist-GWORRKWL.js → dist-DOLYHMXE.js} +2 -2
  161. package/chunks/{dist-CRNO2KXU.js → dist-HVRQ2CFL.js} +271 -11
  162. package/chunks/{dist-TPJRJ237.js → dist-IXQEQWRG.js} +1 -1
  163. package/chunks/{dist-ONF2ZUUX.js → dist-SSU66DM4.js} +1 -1
  164. package/chunks/{dist-BRVIXBFA.js → dist-SV7Q3AWJ.js} +1 -1
  165. package/chunks/{dist-2HFXMUT6.js → dist-YGBBMK3Z.js} +1 -1
  166. package/chunks/{earlyInputCapture-AZAUUSDE.js → earlyInputCapture-H4YOY6R7.js} +32 -32
  167. package/chunks/{edit-2GM73YUN.js → edit-NZWMOOX6.js} +31 -31
  168. package/chunks/{en-7JEDYSBE.js → en-NBK3JKCE.js} +4 -1
  169. package/chunks/{enter-worktree-O6MC2FZM.js → enter-worktree-6FMYNZ4S.js} +31 -31
  170. package/chunks/{enterPlanMode-NJNHHLAJ.js → enterPlanMode-RYK5P7WC.js} +31 -31
  171. package/chunks/{environment-L5QWIYKQ.js → environment-RBLY3QVX.js} +33 -33
  172. package/chunks/{errors-GO7MH572.js → errors-WVUI42QV.js} +33 -33
  173. package/chunks/{exit-worktree-FR7KKQSW.js → exit-worktree-FRFYEX6R.js} +31 -31
  174. package/chunks/{exitPlanMode-QKNK5MBZ.js → exitPlanMode-STTGKHP2.js} +31 -31
  175. package/chunks/{fast-path-7SP4KXIF.js → fast-path-OZD2JFDY.js} +3 -3
  176. package/chunks/{fast-path-settings-GTWXZLJZ.js → fast-path-settings-WQJU2LAT.js} +2 -2
  177. package/chunks/{fr-JXF5ONTD.js → fr-4KG5V7UT.js} +1 -1
  178. package/chunks/{gemini-J5WX6DS3.js → gemini-PUKYW6OF.js} +83 -82
  179. package/chunks/{geminiContentGenerator-X4FCO2IH.js → geminiContentGenerator-HYMWIERE.js} +6 -6
  180. package/chunks/{glob-UYGYQ73X.js → glob-IZATNUPS.js} +31 -31
  181. package/chunks/{grep-HWLK333D.js → grep-DWHBLRXJ.js} +33 -32
  182. package/chunks/{handleAutoUpdate-H55RTXMU.js → handleAutoUpdate-3VHGEOAV.js} +35 -35
  183. package/chunks/{i18n-6YL3VGHQ.js → i18n-A56PNKBP.js} +32 -32
  184. package/chunks/{image-gen-ZN43Y352.js → image-gen-RBLQKXQJ.js} +9 -9
  185. package/chunks/{initializer-ATU3WGM5.js → initializer-TCD6H7VY.js} +38 -38
  186. package/chunks/{installationInfo-3D4M363G.js → installationInfo-276EXQW2.js} +32 -32
  187. package/chunks/{ja-72VBFAM5.js → ja-F3GSQXMF.js} +1 -1
  188. package/chunks/{keychain-token-storage-U6BBK3IE.js → keychain-token-storage-72IYCAZV.js} +2 -2
  189. package/chunks/{list-K7TOZQ5T.js → list-NWDHWJ4D.js} +40 -40
  190. package/chunks/{list-agents-FHIQAX2Y.js → list-agents-R6KDXQR3.js} +2 -2
  191. package/chunks/{loadedSettingsAdapter-IDASCO2P.js → loadedSettingsAdapter-YXJKWUYF.js} +37 -37
  192. package/chunks/{loggingContentGenerator-C7ECOBP5.js → loggingContentGenerator-LU6TII3U.js} +18 -18
  193. package/chunks/{loop-wakeup-PSF72P7O.js → loop-wakeup-3IQKCYAH.js} +5 -5
  194. package/chunks/{ls-RVQ2JC4C.js → ls-DKZ37A7N.js} +4 -4
  195. package/chunks/{lsp-UFP2H2RG.js → lsp-QNWN7KN3.js} +2 -2
  196. package/chunks/{managed-npm-update-MWQIFEJC.js → managed-npm-update-AO3CL6VU.js} +32 -32
  197. package/chunks/{mcp-YJ4SZXFF.js → mcp-5PMHEFAR.js} +37 -37
  198. package/chunks/{monitor-MWKW6W4Q.js → monitor-2YELRQ6S.js} +31 -31
  199. package/chunks/nonInteractiveCli-74R5S76M.js +144 -0
  200. package/chunks/{notebook-edit-ALAKK5DZ.js → notebook-edit-SV6GDWUG.js} +31 -31
  201. package/chunks/{openaiContentGenerator-V5GYCLVN.js → openaiContentGenerator-FMBXX26Z.js} +19 -19
  202. package/chunks/{pidfile-I7IOGSVT.js → pidfile-HZA26WFC.js} +32 -32
  203. package/chunks/process-registry-2CHQBXH5.js +157 -0
  204. package/chunks/{processUtils-SRGJPX5P.js → processUtils-4F7EMUKQ.js} +2 -2
  205. package/chunks/{pt-E4AMXNUG.js → pt-EQ33KWEN.js} +1 -1
  206. package/chunks/{qwenContentGenerator-INCMQJG3.js → qwenContentGenerator-CXAD5IOE.js} +37 -37
  207. package/chunks/{qwenOAuth2-MIL7MEKO.js → qwenOAuth2-7V2RGLUU.js} +8 -8
  208. package/chunks/{read-file-BBQ6BN7G.js → read-file-AQKNOXOV.js} +11 -11
  209. package/chunks/{read-mcp-resource-M4IJUOXP.js → read-mcp-resource-GFTWYXMK.js} +2 -2
  210. package/chunks/{record-artifact-4NWBVHNM.js → record-artifact-XAMSFSW4.js} +2 -2
  211. package/chunks/{resumeHistoryUtils-X74IGERO.js → resumeHistoryUtils-NSHGEJZY.js} +37 -37
  212. package/chunks/{ripGrep-GCSZGI22.js → ripGrep-KVWIREMR.js} +31 -31
  213. package/chunks/{ru-OJOR34RM.js → ru-7OZAUKGG.js} +1 -1
  214. package/chunks/{run-qwen-serve-RAPQ4UBN.js → run-qwen-serve-LBBMQRWJ.js} +94 -58
  215. package/chunks/{runtime-F4YK7A5M.js → runtime-XR3VFARS.js} +42 -42
  216. package/chunks/{scheduler-JFOAST7W.js → scheduler-OLI5YERT.js} +31 -31
  217. package/chunks/{sdk-exporters-http-H6MWAYGV.js → sdk-exporters-http-WO556XNU.js} +2 -2
  218. package/chunks/{sdk-impl-U4BU6LE5.js → sdk-impl-LPAVACSF.js} +2 -2
  219. package/chunks/{send-message-GAB3K4KN.js → send-message-SAWK4DZX.js} +4 -4
  220. package/chunks/{serve-WAK4FQIT.js → serve-2WM3HPSN.js} +37 -37
  221. package/chunks/{server-GJFU7OZ6.js → server-T4C6UGPM.js} +895 -127
  222. package/chunks/{session-WFWS7D6U.js → session-IAPGXMG3.js} +78 -77
  223. package/chunks/{settings-NI7K6BOS.js → settings-LIYC7NVY.js} +39 -39
  224. package/chunks/{shell-PI52ZRBM.js → shell-M455ZXG6.js} +31 -31
  225. package/chunks/{skill-EGJY4VDT.js → skill-ZHDF6IVV.js} +15 -15
  226. package/chunks/{skill-settings-27BQIOWC.js → skill-settings-MEFO33AC.js} +36 -36
  227. package/chunks/{spawnChannel-LU6YO2IZ.js → spawnChannel-NAISQSBK.js} +33 -33
  228. package/chunks/{standalone-update-TG2BLT73.js → standalone-update-K4RNR537.js} +33 -33
  229. package/chunks/{startInteractiveUI-4NTL2RZ6.js → startInteractiveUI-HJUQMCBD.js} +426 -216
  230. package/chunks/{syntheticOutput-YCOHYBPM.js → syntheticOutput-355CB6CJ.js} +3 -3
  231. package/chunks/{task-create-YRN3PDAT.js → task-create-INGWNUG4.js} +8 -8
  232. package/chunks/{task-list-FYGHXFOT.js → task-list-5XNNGTF4.js} +5 -5
  233. package/chunks/{task-stop-I7CNWL7J.js → task-stop-4ROAOBXH.js} +2 -2
  234. package/chunks/{task-update-5QOY2AIK.js → task-update-CRK5VWWZ.js} +8 -8
  235. package/chunks/{team-create-5H4T3ENJ.js → team-create-YWCUC55A.js} +31 -31
  236. package/chunks/{team-delete-OAA4YOAC.js → team-delete-S2RCXA4P.js} +5 -5
  237. package/chunks/{team-plan-approval-44SCBFBB.js → team-plan-approval-ZJGZRKV5.js} +31 -31
  238. package/chunks/{theme-manager-HYFW3GL7.js → theme-manager-5LUFI5NY.js} +32 -32
  239. package/chunks/{todoWrite-YFIBFZO3.js → todoWrite-7WM3VDMY.js} +4 -4
  240. package/chunks/{tool-search-YAIIWTSJ.js → tool-search-LZMDLBAK.js} +13 -13
  241. package/chunks/{total-session-admission-FPF66OF6.js → total-session-admission-MDA3ANYQ.js} +39 -38
  242. package/chunks/{trustedFolders-4RSRSIO3.js → trustedFolders-NZEZRJPU.js} +32 -32
  243. package/chunks/{update-relaunch-4NKVI2H5.js → update-relaunch-D7EKBO4E.js} +5 -5
  244. package/chunks/{updateCheck-E2336RGI.js → updateCheck-AKFMZZCG.js} +34 -34
  245. package/chunks/{useAutoAcceptIndicator-YXC4OJ2B.js → useAutoAcceptIndicator-55OEL7UZ.js} +40 -40
  246. package/chunks/{validateNonInterActiveAuth-G5PREALO.js → validateNonInterActiveAuth-K5WQOFUQ.js} +72 -71
  247. package/chunks/{version-IBROP4MJ.js → version-ANSPR52A.js} +1 -1
  248. package/chunks/{web-fetch-G2GFNE3L.js → web-fetch-WFKX5SJM.js} +14 -14
  249. package/chunks/{web-search-4ISTNKIX.js → web-search-XDPHXEUC.js} +9 -9
  250. package/chunks/{workflow-OQY4Y74P.js → workflow-6YYVMHCS.js} +32 -32
  251. package/chunks/{workspace-providers-status-SRB65GMC.js → workspace-providers-status-5L4FEPYR.js} +40 -40
  252. package/chunks/{workspace-registration-store-XOUNCX5G.js → workspace-registration-store-C2HIDNXV.js} +1 -1
  253. package/chunks/{workspace-registry-XMDDRCP3.js → workspace-registry-7B7T5SC3.js} +39 -38
  254. package/chunks/{workspace-service-XUAHBWUX.js → workspace-service-VGGIWADS.js} +46 -45
  255. package/chunks/{workspace-skills-status-GGH6TYSU.js → workspace-skills-status-MZZLEGL5.js} +38 -38
  256. package/chunks/{workspace-trust-reconciler-AKKLKLJQ.js → workspace-trust-reconciler-3PA5PLHX.js} +45 -44
  257. package/chunks/{write-file-7MSTD3VC.js → write-file-5GNKRL2B.js} +31 -31
  258. package/chunks/{zh-2MA5UKNJ.js → zh-H3YDK5QW.js} +4 -1
  259. package/chunks/{zh-TW-JO4Z7CVC.js → zh-TW-JYCP7XUA.js} +4 -1
  260. package/chunks/zoom-image-JIRPKLNA.js +351 -0
  261. package/cli.js +13 -13
  262. package/locales/ca.js +2 -2
  263. package/locales/de.js +2 -2
  264. package/locales/en.js +5 -2
  265. package/locales/fr.js +2 -2
  266. package/locales/ja.js +2 -2
  267. package/locales/pt.js +2 -2
  268. package/locales/ru.js +2 -2
  269. package/locales/zh-TW.js +5 -2
  270. package/locales/zh.js +5 -2
  271. package/package.json +5 -4
  272. package/web-shell/assets/{arc-DYNfZ967.js → arc-75-Wdeo3.js} +1 -1
  273. package/web-shell/assets/{architectureDiagram-3BPJPVTR-CkKsIF39.js → architectureDiagram-3BPJPVTR-FKeXQbyP.js} +1 -1
  274. package/web-shell/assets/{blockDiagram-GPEHLZMM-FfDv_qOy.js → blockDiagram-GPEHLZMM-CY0vc-A3.js} +1 -1
  275. package/web-shell/assets/{c4Diagram-AAUBKEIU-pA5r7guO.js → c4Diagram-AAUBKEIU-CNP-A-8u.js} +1 -1
  276. package/web-shell/assets/channel-DPYMT76A.js +1 -0
  277. package/web-shell/assets/{chunk-2J33WTMH-Bfnf2k-q.js → chunk-2J33WTMH-GybS4Gii.js} +1 -1
  278. package/web-shell/assets/{chunk-4BX2VUAB-BCpgiyb4.js → chunk-4BX2VUAB-02H91V8v.js} +1 -1
  279. package/web-shell/assets/{chunk-55IACEB6-BrwrazA2.js → chunk-55IACEB6-D3M-2VT6.js} +1 -1
  280. package/web-shell/assets/{chunk-727SXJPM-DDCxd_BK.js → chunk-727SXJPM-CCu29u4H.js} +1 -1
  281. package/web-shell/assets/{chunk-AQP2D5EJ-Ce-B1Qi5.js → chunk-AQP2D5EJ-CaFKWgrn.js} +1 -1
  282. package/web-shell/assets/{chunk-FMBD7UC4-Dl2u6_p7.js → chunk-FMBD7UC4-ZZpPqIwQ.js} +1 -1
  283. package/web-shell/assets/{chunk-ND2GUHAM-32W_JFKh.js → chunk-ND2GUHAM-D22DqGs8.js} +1 -1
  284. package/web-shell/assets/{chunk-QZHKN3VN-BmtCt0RT.js → chunk-QZHKN3VN-Bu85S0fw.js} +1 -1
  285. package/web-shell/assets/classDiagram-4FO5ZUOK--JstsIgL.js +1 -0
  286. package/web-shell/assets/classDiagram-v2-Q7XG4LA2--JstsIgL.js +1 -0
  287. package/web-shell/assets/{cose-bilkent-S5V4N54A-D_DXerbn.js → cose-bilkent-S5V4N54A-f1CK1Gwe.js} +1 -1
  288. package/web-shell/assets/{dagre-BM42HDAG-C3fMtjq2.js → dagre-BM42HDAG-D0Ow8F_n.js} +1 -1
  289. package/web-shell/assets/{diagram-2AECGRRQ-CBiuEoIi.js → diagram-2AECGRRQ-BPrmTWp8.js} +1 -1
  290. package/web-shell/assets/{diagram-5GNKFQAL-J8DRS3up.js → diagram-5GNKFQAL-HccuFAzy.js} +1 -1
  291. package/web-shell/assets/{diagram-KO2AKTUF-DEVjvvjZ.js → diagram-KO2AKTUF-BrS76mbA.js} +1 -1
  292. package/web-shell/assets/{diagram-LMA3HP47-Bh9hEXeR.js → diagram-LMA3HP47-V7T9lU-5.js} +1 -1
  293. package/web-shell/assets/{diagram-OG6HWLK6-CgV4R96R.js → diagram-OG6HWLK6-DKidyJMR.js} +1 -1
  294. package/web-shell/assets/{erDiagram-TEJ5UH35-BGCFyfGU.js → erDiagram-TEJ5UH35-DBadZIkp.js} +1 -1
  295. package/web-shell/assets/{flowDiagram-I6XJVG4X-BCaQuiMb.js → flowDiagram-I6XJVG4X-BymfqdNJ.js} +1 -1
  296. package/web-shell/assets/{ganttDiagram-6RSMTGT7-B9J27vXf.js → ganttDiagram-6RSMTGT7-DOw340jf.js} +1 -1
  297. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-C2u3FvFn.js → gitGraphDiagram-PVQCEYII-_8EiD8sl.js} +1 -1
  298. package/web-shell/assets/{index-BF2Ug_o6.js → index-CKIadvET.js} +1 -1
  299. package/web-shell/assets/index-D1eXNRHe.js +1389 -0
  300. package/web-shell/assets/index-DVLD4CQq.css +5 -0
  301. package/web-shell/assets/{infoDiagram-5YYISTIA-VGjh3Icm.js → infoDiagram-5YYISTIA-D61KYQBu.js} +1 -1
  302. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-8AZWigme.js → ishikawaDiagram-YF4QCWOH-CsiXSpNx.js} +1 -1
  303. package/web-shell/assets/{journeyDiagram-JHISSGLW-CnAVNJU5.js → journeyDiagram-JHISSGLW-Sdfionyh.js} +1 -1
  304. package/web-shell/assets/{kanban-definition-UN3LZRKU-DAh7CFUA.js → kanban-definition-UN3LZRKU-C3WI3Cnl.js} +1 -1
  305. package/web-shell/assets/{linear-BMHEIvy4.js → linear-Dpigcc62.js} +1 -1
  306. package/web-shell/assets/{mermaid.core-CpHDMzGU.js → mermaid.core-Ct97pqgW.js} +5 -5
  307. package/web-shell/assets/{mindmap-definition-RKZ34NQL-Cf3CMPHf.js → mindmap-definition-RKZ34NQL-BzeaN0rB.js} +1 -1
  308. package/web-shell/assets/{pieDiagram-4H26LBE5-BpRfWcVA.js → pieDiagram-4H26LBE5-CvjgcbVD.js} +1 -1
  309. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-kqzUnUwh.js → quadrantDiagram-W4KKPZXB-BUzgTNdH.js} +1 -1
  310. package/web-shell/assets/{requirementDiagram-4Y6WPE33-D2FenOqg.js → requirementDiagram-4Y6WPE33-B7zKlgUQ.js} +1 -1
  311. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-dWDMUdUe.js → sankeyDiagram-5OEKKPKP-Bb9CQgrT.js} +1 -1
  312. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CYcL0MEP.js → sequenceDiagram-3UESZ5HK-DJ6V7itG.js} +1 -1
  313. package/web-shell/assets/{stateDiagram-AJRCARHV-DkpIKZM6.js → stateDiagram-AJRCARHV-IImflERY.js} +1 -1
  314. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CYI_YoNR.js +1 -0
  315. package/web-shell/assets/{timeline-definition-PNZ67QCA-B50fgyFY.js → timeline-definition-PNZ67QCA-6Q_uWHKh.js} +1 -1
  316. package/web-shell/assets/{vennDiagram-CIIHVFJN-DMlYXh0E.js → vennDiagram-CIIHVFJN-TmyKyjwv.js} +1 -1
  317. package/web-shell/assets/{wardley-L42UT6IY-B2iJy8jY.js → wardley-L42UT6IY-CRh9uiPv.js} +1 -1
  318. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-B-PG81LW.js → wardleyDiagram-YWT4CUSO-59TKAW8w.js} +1 -1
  319. package/web-shell/assets/{xychartDiagram-2RQKCTM6-D1N8kSF9.js → xychartDiagram-2RQKCTM6-GCSUIK2L.js} +1 -1
  320. package/web-shell/index.html +2 -2
  321. package/chunks/nonInteractiveCli-74XMYNLX.js +0 -143
  322. package/web-shell/assets/channel-C-gQ4Nim.js +0 -1
  323. package/web-shell/assets/classDiagram-4FO5ZUOK-DKEurkx0.js +0 -1
  324. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DKEurkx0.js +0 -1
  325. package/web-shell/assets/index-Du08qEb3.js +0 -1249
  326. package/web-shell/assets/index-tq1xUECo.css +0 -5
  327. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-QSG1JRm2.js +0 -1
  328. package/chunks/{chunk-IAU6HCJZ.js → chunk-D3UEZIQH.js} +6 -6
  329. /package/chunks/{chunk-LXXMOYPL.js → chunk-VXZBKKQR.js} +0 -0
@@ -557,6 +557,7 @@ LSP server configuration is done through `.lsp.json` files in your project root
557
557
  | -------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- |
558
558
  | `experimental.cron` | boolean | Enable in-session cron/loop tools (`cron_create`, `cron_list`, `cron_delete`) so the model can create recurring prompts. Can be disabled via the `QWEN_CODE_DISABLE_CRON=1` environment variable. Requires restart. | `true` |
559
559
  | `experimental.todoStopGuard` | boolean | Allow daemon and ACP sessions to continue after a natural model stop when the current work chain successfully wrote an unfinished top-level Todo list. Adds at most two consecutive primary-model calls without new user input; mid-turn user input starts a fresh two-attempt stage. It is not restored after process restart and is forced off in safe, bare, and Approval `plan` modes. Requires restart. | `false` |
560
+ | `experimental.sessionWriterLease` | boolean | Enable cross-process write fencing for persisted ACP and daemon sessions. The value is frozen when the ACP or daemon process starts. All concurrent ACP writers must enable the setting; mixed versions or configurations remain unsafe. Interactive and headless recorders are unaffected. Requires process restart. | `false` |
560
561
  | `experimental.cronRecurringMaxAgeDays` | number | Days a recurring cron/loop job lives before auto-expiring (it fires one final time, then is deleted). Set to `0` to disable expiry so jobs run until deleted — useful for long-running daemon deployments. Can be overridden via the `QWEN_CODE_CRON_MAX_AGE_DAYS` environment variable. Requires restart. | `7` |
561
562
  | `experimental.agentTeam` | boolean | Enable agent-team collaboration tools (`team_create`, `task_create`, `task_update`, `send_message`, etc.) for multi-agent coordination. Can also be enabled via `QWEN_CODE_ENABLE_AGENT_TEAM=1`. Requires restart. | `false` |
562
563
  | `experimental.artifact` | boolean | Enable artifact tools. Enabled by default. In interactive, non-SDK sessions, the model can publish a self-contained HTML page as an interactive Artifact and open it in the browser. Non-SDK daemon sessions can use metadata-only `record_artifact`. Set this to `false` or use `QWEN_CODE_DISABLE_ARTIFACT=1` to disable both. Requires restart. | `true` |
@@ -592,6 +593,7 @@ Configures logging and metrics collection for Qwen Code. For more information, s
592
593
  | `telemetry.otlpEndpoint` | string | The endpoint for the OTLP Exporter. | |
593
594
  | `telemetry.otlpProtocol` | string | The protocol for the OTLP Exporter (`grpc` or `http`). | |
594
595
  | `telemetry.logPrompts` | boolean | Whether or not to include the content of user prompts in the logs. | |
596
+ | `telemetry.userId` | string | Stable end-user identifier written to GenAI spans as the ARMS extension `gen_ai.user.id`. Prefer a pseudonymous value. Do not set a process-wide value for a shared multi-user daemon or channel instance. | |
595
597
  | `telemetry.includeSensitiveSpanAttributes` | boolean | When enabled, attaches verbatim user prompts, system prompts, tool inputs/outputs, and model responses to native OTel span attributes (in addition to log-to-span bridge spans). ⚠️ Streams sensitive data — file contents, shell commands, conversation history — to your OTLP backend. | `false` |
596
598
  | `telemetry.sensitiveSpanAttributeMaxLength` | number | Maximum JavaScript string length for each sensitive native OTel span attribute content payload. Must be between `1` and `104857600` (100 MiB). Set lower if your collector or backend rejects large attributes. | `1048576` |
597
599
  | `telemetry.outfile` | string | Path to write telemetry to a file. When set, overrides OTLP export. | |
@@ -638,6 +640,7 @@ Here is an example of a `settings.json` file with the nested structure, new as o
638
640
  "target": "local",
639
641
  "otlpEndpoint": "http://localhost:4317",
640
642
  "logPrompts": true,
643
+ "userId": "user-079458",
641
644
  "includeSensitiveSpanAttributes": false,
642
645
  "sensitiveSpanAttributeMaxLength": 1048576
643
646
  },
@@ -695,6 +698,7 @@ For authentication-related variables (like `OPENAI_*`) and the recommended `.qwe
695
698
  | `QWEN_TELEMETRY_OTLP_ENDPOINT` | Sets the OTLP endpoint for telemetry. | Overrides the `telemetry.otlpEndpoint` setting. |
696
699
  | `QWEN_TELEMETRY_OTLP_PROTOCOL` | Sets the OTLP protocol (`grpc` or `http`). | Overrides the `telemetry.otlpProtocol` setting. |
697
700
  | `QWEN_TELEMETRY_LOG_PROMPTS` | Set to `true` or `1` to enable or disable logging of user prompts. Any other value is treated as disabling it. | Overrides the `telemetry.logPrompts` setting. |
701
+ | `QWEN_TELEMETRY_USER_ID` | Sets a stable end-user identifier on interaction, LLM, Tool, and Agent spans as `gen_ai.user.id`. Prefer a pseudonymous value. | Overrides `telemetry.userId` after trimming. A blank value falls back to settings. This is process-wide and must not be used as per-request identity in a shared multi-user process. |
698
702
  | `QWEN_TELEMETRY_INCLUDE_SENSITIVE_SPAN_ATTRIBUTES` | Set to `true` or `1` to attach verbatim user prompts, system prompts, tool I/O, and model responses to native OTel span attributes (and keep `prompt` / `function_args` / `response_text` on log-to-span bridge spans). Any other value disables it. | Overrides the `telemetry.includeSensitiveSpanAttributes` setting. ⚠️ Streams sensitive data to your OTLP backend. |
699
703
  | `QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH` | Sets the maximum JavaScript string length for each sensitive native OTel span attribute content payload. Must be a positive integer no greater than `104857600` (100 MiB). | Overrides the `telemetry.sensitiveSpanAttributeMaxLength` setting. Default is `1048576` (1 MiB); lower it if your collector or backend rejects large span attributes. |
700
704
  | `QWEN_TELEMETRY_OUTFILE` | Sets the file path to write telemetry to. When set, overrides OTLP export. | Overrides the `telemetry.outfile` setting. |
@@ -1,6 +1,6 @@
1
1
  # GitHub
2
2
 
3
- This guide covers setting up a Qwen Code channel that monitors GitHub notifications and responds to mentions on issues and pull requests.
3
+ This guide covers setting up a Qwen Code channel that monitors GitHub notifications and responds to mentions, review requests, assignments, and followed-thread activity.
4
4
 
5
5
  ## Prerequisites
6
6
 
@@ -57,18 +57,18 @@ For GitHub Enterprise Server, set `baseUrl`:
57
57
 
58
58
  ## Configuration Options
59
59
 
60
- | Option | Default | Description |
61
- | ------------------------- | ------------------------ | ---------------------------------------------------- |
62
- | `token` | (required) | Classic PAT with `notifications` scope |
63
- | `pollInterval` | `60000` | Poll interval in ms |
64
- | `baseUrl` | `https://api.github.com` | API base URL (for GHE) |
65
- | `groupPolicy` | `"disabled"` | Must be `"open"` for notifications to flow |
66
- | `senderPolicy` | `"allowlist"` | Who can trigger the bot |
67
- | `groups.*.requireMention` | `true` | Only respond when @mentioned (nested under `groups`) |
60
+ | Option | Default | Description |
61
+ | ------------------------- | ------------------------ | -------------------------------------------------------------------------------- |
62
+ | `token` | (required) | Classic PAT with `notifications` scope |
63
+ | `pollInterval` | `60000` | Poll interval in ms |
64
+ | `baseUrl` | `https://api.github.com` | API base URL (for GHE) |
65
+ | `groupPolicy` | `"disabled"` | Must be `"open"` for notifications to flow |
66
+ | `senderPolicy` | `"allowlist"` | Who can trigger the bot |
67
+ | `groups.*.requireMention` | `true` | Require @mentions for ordinary comments; directed notification reasons still run |
68
68
 
69
69
  ## ⚠️ Security
70
70
 
71
- On a **public repository**, setting `senderPolicy: "open"` allows **any GitHub user** who @mentions the bot to submit prompts that drive the agent in your `cwd`. This includes reading code, spending tokens, posting comments, and (subject to permission policy) running tools.
71
+ On a **public repository**, setting `senderPolicy: "open"` allows **any GitHub user** who triggers a supported notification reason to submit prompts that drive the agent in your `cwd`. This includes reading code, spending tokens, posting comments, and (subject to permission policy) running tools.
72
72
 
73
73
  Always use `senderPolicy: "allowlist"` with explicit `allowedUsers` on public repos.
74
74
 
@@ -76,7 +76,7 @@ Allowlist and pairing entries follow the **username**, not the immutable account
76
76
 
77
77
  ## Mention Detection
78
78
 
79
- The adapter detects mentions by scanning the **comment body** for `@bot-username` using a case-insensitive regex. It does NOT rely on GitHub's notification `reason` field, which is a sticky thread-level value that doesn't reflect per-comment mentions.
79
+ The adapter detects mentions by scanning comment text and first-contact issue or PR bodies for `@bot-username` using a case-insensitive regex. It does not trust `reason: "mention"` alone because that value is sticky at the thread level. Other reasons select review, triage, followed-thread, or fallback prompts.
80
80
 
81
81
  ## How It Works
82
82
 
@@ -85,8 +85,8 @@ The adapter uses GitHub's Notifications API as a wake-up signal:
85
85
  1. **Poll** `GET /notifications` for unread threads
86
86
  2. **Mark read** via `markNotificationsAsRead` (best-effort cleanup, before processing)
87
87
  3. **Enumerate** comments via `listComments` within a cursor-based time window
88
- 4. **Process** each new comment (mention detection, envelope building)
89
- 5. **First-contact**: if no mention was dispatched and the thread is brand-new (no `last_read_at`), the issue/PR body is fetched and processed if it contains @bot
88
+ 4. **Dispatch** by notification reason: strict mention matching, pull request review, issue triage, followed-thread comment aggregation, or per-comment fallback
89
+ 5. **First-contact fallback**: a brand-new unread issue/PR body can be processed when no comment was dispatched; mention notifications still require an actual body mention
90
90
 
91
91
  The comment window is `(previousCursor, currentMaxUpdatedAt]` — comments already eligible in a previous poll cycle are excluded by the cursor, preventing duplicate replies even when the async mark-read has not taken effect. If the process crashes mid-processing, the user can re-mention the bot to retry.
92
92
 
@@ -96,7 +96,7 @@ Non-comment activity (push, label changes) bumps the notification's `updated_at`
96
96
 
97
97
  - **First start skips existing unread notifications.** The cursor initializes to "now" on first launch. Notifications created before the bot starts are not processed unless the thread receives new activity afterwards.
98
98
  - If a user marks a notification as read on github.com before the bot's poll cycle, the bot will not process it.
99
- - The bot does not read prior conversation history only the triggering comment is processed.
99
+ - The bot does not read comments before the current polling window; `author` and `comment` notifications may aggregate up to 20 comments from that window.
100
100
  - Inline PR review comments and review summary bodies are not enumerated; only issue/PR comments are processed.
101
101
  - Requires a classic PAT with `notifications` scope. Fine-grained PATs do not support the notifications API.
102
102
 
@@ -139,6 +139,8 @@ Function hooks directly call registered JavaScript/TypeScript functions. They ar
139
139
 
140
140
  Prompt hooks use an LLM to evaluate hook input and return a decision. This is useful for making intelligent decisions based on context, such as determining whether to allow or block an operation.
141
141
 
142
+ > **Data handling:** A prompt hook sends its event input to the configured model provider. When file-backed debug logging is enabled, the fully expanded prompt-hook request is also written to the session debug log. Treat hook input and debug logs as potentially sensitive.
143
+
142
144
  **How it works:**
143
145
 
144
146
  1. The hook input JSON is injected into your prompt using the `$ARGUMENTS` placeholder
@@ -184,7 +186,7 @@ Prompt hooks can be used with most hook events, including:
184
186
  - `PostToolUse` - Evaluate tool results and potentially inject context
185
187
  - `Stop` - Determine whether to continue or stop
186
188
  - `SubagentStop` - Evaluate subagent results
187
- - `UserPromptSubmit` - Evaluate or enrich user prompts
189
+ - `UserPromptSubmit` - Evaluate or enrich eligible model-bound prompts
188
190
 
189
191
  **Example: Stop Hook**
190
192
 
@@ -240,7 +242,7 @@ Hooks fire at specific points during a Qwen Code session. Different events suppo
240
242
  | `PreToolUse` | Before tool execution | Tool id (`write_file`, `read_file`, `run_shell_command`, etc.) |
241
243
  | `PostToolUse` | After successful tool execution | Tool id |
242
244
  | `PostToolUseFailure` | After tool execution fails | Tool id |
243
- | `UserPromptSubmit` | After user submits prompt | None (always fires) |
245
+ | `UserPromptSubmit` | Before supported model invocations | None |
244
246
  | `SessionStart` | When session starts or resumes | Source (`startup`, `resume`, `clear`, `compact`) |
245
247
  | `SessionEnd` | When session ends | Reason (`clear`, `logout`, `prompt_input_exit`, etc.) |
246
248
  | `MessageDisplay` | Repeatedly, as the reply streams | None (always fires) |
@@ -327,7 +329,18 @@ Hooks fire at specific points during a Qwen Code session. Different events suppo
327
329
 
328
330
  ### Hook Input Structure
329
331
 
330
- All hooks receive standardized input in JSON format through stdin (command) or POST body (http).
332
+ All hook executors receive the standardized event input. The delivery boundary depends on the executor:
333
+
334
+ | Hook type | Input recipient |
335
+ | :--------- | :-------------------------------------------------------------- |
336
+ | `command` | Child process through JSON on `stdin` |
337
+ | `http` | Configured endpoint through a JSON `POST` body |
338
+ | `function` | Trusted in-process callback |
339
+ | `prompt` | Configured model provider after the input replaces `$ARGUMENTS` |
340
+
341
+ Function hooks are trusted code running in the Qwen process. They receive an in-process object, so fields must not be treated as immutable against a function hook.
342
+
343
+ Qwen does not control whether a hook process, endpoint, callback, or model provider retains or forwards its input. Review each configured executor's data-handling policy.
331
344
 
332
345
  **Common Fields:**
333
346
 
@@ -343,6 +356,8 @@ All hooks receive standardized input in JSON format through stdin (command) or P
343
356
 
344
357
  Event-specific fields are added based on the hook type. When running in a subagent, `agent_id` and `agent_type` are additionally included.
345
358
 
359
+ Hook input is a forward-extensible JSON contract: new optional fields can be added to existing events. Consumers should ignore unknown fields. A strict decoder that rejects unknown properties must be updated to explicitly allow each new optional field before upgrading Qwen Code. For security-sensitive hooks, a decoder failure can change fail-open or fail-closed behavior, so administrators must validate the upgraded payload against the deployed hook before rollout.
360
+
346
361
  ### Hook Output Structure
347
362
 
348
363
  Hook output is returned via `stdout` (command) or HTTP response body (http) as JSON.
@@ -491,16 +506,33 @@ The `permissionDecision` value controls whether the tool runs:
491
506
 
492
507
  #### UserPromptSubmit
493
508
 
494
- **Purpose**: Executed when the user submits a prompt to modify, validate, or enrich the input.
509
+ **Purpose**: Executed before supported model invocations to validate, block, or enrich the current model-bound prompt. The event currently covers `UserQuery`, `ToolResult`, and `Hook` sends, while `Retry`, `Steer`, `Cron`, `Notification`, and `Teammate` sends are skipped. It can therefore occur on continuation paths, and `prompt` must not be assumed to be raw user input.
495
510
 
496
511
  **Event-specific fields**:
497
512
 
498
513
  ```json
499
514
  {
500
- "prompt": "the user's submitted prompt text"
515
+ "prompt": "current model-bound prompt for this hook invocation",
516
+ "submitted_prompt": "optional user text captured at a supported interactive TUI submission boundary"
501
517
  }
502
518
  ```
503
519
 
520
+ `submitted_prompt` is optional. It is present only when Qwen can carry provenance from a supported interactive TUI submission to a fresh `UserQuery`. It is omitted for unsupported producers and machine-driven paths such as same-turn steering, tool-result continuations, retries, cron, notifications, and teammate traffic. ACP, headless, `serve`, SDK, and remote-input paths do not produce it in this version.
521
+
522
+ Deferred input can retain the field when its provenance remains complete. A combined batch retains provenance only when every constituent item has it; edited, partially known, or otherwise ambiguous input omits the field. Prompt, command, and shell-history navigation or selected search matches, cross-restart stash restores, and conversation rewind restores also omit it because those paths can surface model-bound text without its original provenance. Consumers that require user-submitted text should treat absence as unavailable rather than falling back to `prompt`.
523
+
524
+ After restored or provenance-unavailable model-bound input is cleared or submitted, the composer also clears its undo and redo history. This prevents undo from restoring expanded text after its marker or sidecar has been consumed.
525
+
526
+ Large-paste placeholders remain compact in `submitted_prompt`; the expanded pasted content appears only in `prompt`. Consumers should treat the field as a TUI text projection rather than a byte-for-byte record of clipboard input.
527
+
528
+ Any non-empty input present while Vim mode is enabled omits `submitted_prompt`, including after Vim is disabled, because Vim registers do not carry provenance in this version. This conservative rule also covers drafts entered before enabling Vim. Clearing the composer starts a new eligible input.
529
+
530
+ This field is provenance, not authentication, tenant identity, authorization, or DLP. It is caller-supplied data. Every executor configured for this event receives it; in particular, HTTP hooks send it to their endpoint and prompt hooks send it to their model provider.
531
+
532
+ When both fields are present, prompt-hook payloads contain overlapping text and can consume additional model input tokens. There is no per-hook field suppression in this version.
533
+
534
+ Sequential UserPromptSubmit hooks can append `additionalContext` to `prompt`; `submitted_prompt` continues to represent the captured submission. Function hooks are trusted same-process code and are not constrained by an immutability guarantee.
535
+
504
536
  **Output Options**:
505
537
 
506
538
  - `decision`: "allow", "deny", "block", or "ask"
@@ -1289,9 +1321,11 @@ A PostToolUse HTTP hook that sends all tool execution records to a remote audit
1289
1321
  }
1290
1322
  ```
1291
1323
 
1292
- ### Example 3: User Prompt Validation Hook
1324
+ ### Example 3: Interactive TUI Submitted Prompt Validation Hook
1325
+
1326
+ To inspect the current model-bound content instead, read `prompt`. That field can include generated or expanded content, is not the original user input, and does not imply that `UserPromptSubmit` covers every model send. Do not silently fall back from `submitted_prompt` to `prompt` when source provenance is required.
1293
1327
 
1294
- A UserPromptSubmit hook that validates user prompts for sensitive information and provides context for long prompts:
1328
+ A UserPromptSubmit hook that validates supported interactive TUI submissions for sensitive information and provides context for long prompts. It skips invocations where source provenance is unavailable. The keyword check is illustrative and is not a complete DLP policy:
1295
1329
 
1296
1330
  **prompt_validator.py**
1297
1331
 
@@ -1305,9 +1339,12 @@ try:
1305
1339
  input_data = json.load(sys.stdin)
1306
1340
  except json.JSONDecodeError as e:
1307
1341
  print(f"Error: Invalid JSON input: {e}", file=sys.stderr)
1308
- exit(1)
1342
+ sys.exit(1)
1309
1343
 
1310
- user_prompt = input_data.get("prompt", "")
1344
+ user_prompt = input_data.get("submitted_prompt")
1345
+ if user_prompt is None:
1346
+ # Do not mistake model-bound or machine-generated content for raw input.
1347
+ sys.exit(0)
1311
1348
 
1312
1349
  # Sensitive words list
1313
1350
  sensitive_words = ["password", "secret", "token", "api_key"]
@@ -1324,7 +1361,7 @@ for word in sensitive_words:
1324
1361
  }
1325
1362
  }
1326
1363
  print(json.dumps(output))
1327
- exit(0)
1364
+ sys.exit(0)
1328
1365
 
1329
1366
  # Check prompt length and add warning context if too long
1330
1367
  if len(user_prompt) > 1000:
@@ -1335,10 +1372,10 @@ if len(user_prompt) > 1000:
1335
1372
  }
1336
1373
  }
1337
1374
  print(json.dumps(output))
1338
- exit(0)
1375
+ sys.exit(0)
1339
1376
 
1340
1377
  # No processing needed for normal cases
1341
- exit(0)
1378
+ sys.exit(0)
1342
1379
  ```
1343
1380
 
1344
1381
  ## Troubleshooting
@@ -1347,5 +1384,5 @@ exit(0)
1347
1384
  - Verify hook script permissions and executability
1348
1385
  - Ensure proper JSON formatting in hook outputs
1349
1386
  - Use specific matcher patterns to avoid unintended hook execution
1350
- - Use `--debug` mode to see detailed hook matching and execution information
1387
+ - Use `--debug` mode to see detailed hook matching and execution information. Prompt-hook inputs can be written to the session debug log, so apply appropriate access and retention controls.
1351
1388
  - Temporarily disable all hooks: add `"disableAllHooks": true` in settings
@@ -69,7 +69,7 @@ This document lists the available keyboard shortcuts in Qwen Code.
69
69
 
70
70
  ## History scrollback
71
71
 
72
- Active only when `ui.useTerminalBuffer` is enabled (Settings → UI → Virtualized History). 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.
72
+ 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
73
 
74
74
  | Shortcut | Description |
75
75
  | --------------- | ---------------------------------------------------- |
@@ -87,7 +87,7 @@ When `ui.useTerminalBuffer` is on, the terminal forwards mouse events to qwen-co
87
87
 
88
88
  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
89
 
90
- If trackpad scrolling changes the prompt history in tmux, enable `ui.useTerminalBuffer`; 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.
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.
91
91
 
92
92
  ## IDE Integration
93
93
 
@@ -59,6 +59,7 @@ This guide provides solutions to common issues and debugging tips, including top
59
59
  - A: Start Qwen Code with the `--safe-mode` flag to disable all customizations — context files, hooks, extensions, skills, MCP servers, custom subagents (only built-in subagents load), permission rules, settings-sourced approval mode overrides, memory features, and sandbox settings — for the session. Note: the CLI flags `--yolo` and `--approval-mode` still take effect in safe mode. If the problem disappears in safe mode, re-enable your customizations one at a time to find the culprit.
60
60
  - Example: `qwen --safe-mode`
61
61
  - Alternative: set the environment variable `QWEN_CODE_SAFE_MODE=true` if the CLI cannot accept flags.
62
+ - Note: "MCP servers" here means servers configured in `settings.json` / project `.mcp.json` — local, ambient state that safe mode is meant to isolate against. MCP servers you explicitly supply for the current invocation (an embedding ACP client's `session/new` `mcpServers`, or `--mcp-config`) are not local/ambient state and are still honored under safe mode.
62
63
 
63
64
  ## Common error messages and solutions
64
65
 
@@ -99,7 +100,7 @@ This guide provides solutions to common issues and debugging tips, including top
99
100
  - **Trackpad scrolling in tmux changes prompt history instead of scrolling the conversation**
100
101
  - **Issue:** In a tmux session, trackpad or wheel scrolling may cycle through previous prompts, similar to pressing `Up Arrow` or `Down Arrow`.
101
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.
102
- - **Solution:** Enable `ui.useTerminalBuffer`; 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. If you prefer host scrollback, adjust your tmux mouse bindings for wheel events.
103
104
 
104
105
  ## IDE Companion not connecting
105
106
 
@@ -646,6 +646,21 @@ A `C=0` outcome — Approve, or a Comment with no Critical — is a claim that n
646
646
 
647
647
  Two failure modes this closes, both observed in this repo's own dogfood: reporting a Critical that cites code **not present** at the reviewed commit (a fabricated blocker), and submitting `C=0` while a **live, already-filed** Critical still stands (a dropped blocker). The event must follow from reading the code, never from the finding count or the thread flags.
648
648
 
649
+ ### The executable-script lint (deterministic — you run it, not an agent)
650
+
651
+ **Before composing the verdict, lint the executable scripts the diff changed** — for every review that has a tree to lint: a same-repo **PR** review (the fetch worktree) and a **local** review (the project root you are already in). Only a cross-repo **lightweight** review is exempt (it has no tree). A diff's shell — a `.sh`/`.bash` file, a `.github/workflows/*` `run:` block, a Dockerfile — is code whose bugs (an unquoted `$x` that word-splits, a `${PIPESTATUS[1]}` read after the array was reset) hide from a read of a long YAML and are caught by _running_ the checker. Measured, twice: a model told in prose to run the step scripts read them and did not run them (0/4), and even the strongest model's attacker persona walked into a double-execute bug and declared it correct. So this is **not** an agent's job and **not** a lens to remember — it is a command you run:
652
+
653
+ ```bash
654
+ # --worktree: the PR's `worktreePath` (PR review), or `.` — the project root — (local review).
655
+ # --out: next to the plan; `qwen-review-pr-<n>-script-lint.json` for a PR, `qwen-review-script-lint.json` for a local review.
656
+ "${QWEN_CODE_CLI:-qwen}" review script-lint \
657
+ --plan <the plan report from Step 1> \
658
+ --worktree <worktreePath for a PR review, or . for a local review> \
659
+ --out <the plan report's directory>/<the derived report name>
660
+ ```
661
+
662
+ **You do not read its output or decide anything from it — `compose-review` does.** It derives the report's path from the plan (the pr-numbered name above, next to the plan; `qwen-review-script-lint.json` for a local review), reads it as the sole authority, and turns it into the verdict itself: a finding on a **changed line** above cosmetic `style` becomes a **pre-confirmed `[lint]` Critical** that needs no verifier (the tool already ran); an **uninstalled or crashed** checker becomes **unreviewed scope** that caps a would-be Approve; a **deferred** checker — a workflow's embedded `run:` shell, which `actionlint` would lint but whose output this env cannot trust — is **disclosed in the body on every verdict (including Approve) but does not cap**, because it is a tool limitation, not a gap the author can close; and — the proof it ran — a diff that carries an executable script but produced **no readable report** is itself unreviewed (fail closed). That is the whole reason it runs here rather than inside an agent: neither the blocker nor its severity depends on a model, and skipping the command cannot slip an Approve past the fail-closed gate. It is harmless when the diff has no scripts (it reports "nothing to lint"), and it must write to the derived path or `compose-review` will not find it.
663
+
649
664
  ### Verdict
650
665
 
651
666
  **You do not decide the verdict, and you do not write it. Ask for it:**
@@ -4,71 +4,71 @@ import {
4
4
  MINIMUM_MAX_HEIGHT,
5
5
  MaxSizedBox,
6
6
  setMaxSizedBoxDebugging
7
- } from "./chunk-R2F2DRBY.js";
8
- import "./chunk-VV6QF662.js";
7
+ } from "./chunk-U3E3UQAA.js";
8
+ import "./chunk-GKX7E4CO.js";
9
9
  import "./chunk-SV5PQVQE.js";
10
- import "./chunk-TXI4LPWT.js";
10
+ import "./chunk-GATT5TKW.js";
11
+ import "./chunk-UWMLWVCA.js";
11
12
  import "./chunk-5QWWOFGG.js";
12
- import "./chunk-7GC5YKSS.js";
13
- import "./chunk-IPUUTYMV.js";
13
+ import "./chunk-YDLJGZHL.js";
14
14
  import "./chunk-2MIN6GRR.js";
15
15
  import "./chunk-QHTIBUWB.js";
16
16
  import "./chunk-RKUWKYED.js";
17
- import "./chunk-G3RJEBAA.js";
17
+ import "./chunk-HUK2P4RS.js";
18
18
  import "./chunk-TWPJO254.js";
19
19
  import "./chunk-H6XPXXMH.js";
20
20
  import "./chunk-5M6IDOMF.js";
21
- import "./chunk-2WVVMSPB.js";
22
- import "./chunk-IUNB6SUW.js";
23
- import "./chunk-ECBKZ7SV.js";
21
+ import "./chunk-UPUG4GXM.js";
22
+ import "./chunk-64LQLPL7.js";
23
+ import "./chunk-2LQTH543.js";
24
24
  import "./chunk-KRXPRVGL.js";
25
- import "./chunk-3FNJBOF7.js";
25
+ import "./chunk-DJGYJDYR.js";
26
+ import "./chunk-CVHIL5IG.js";
26
27
  import "./chunk-IRH27ZC2.js";
27
28
  import "./chunk-QHWCP53L.js";
28
- import "./chunk-6LOSXNKO.js";
29
+ import "./chunk-PONHVBRT.js";
29
30
  import "./chunk-T26EAKDL.js";
30
31
  import "./chunk-6PVPNMXU.js";
31
- import "./chunk-3YAW4B2W.js";
32
32
  import "./chunk-CPBF7KYF.js";
33
- import "./chunk-7R4YENCL.js";
34
- import "./chunk-IJDXG4RL.js";
35
- import "./chunk-IM6PC55H.js";
36
- import "./chunk-YF7TVSQK.js";
37
- import "./chunk-DMEKUQ5Z.js";
33
+ import "./chunk-6QIGFD5W.js";
34
+ import "./chunk-XWWKIXVD.js";
35
+ import "./chunk-75GFAX4R.js";
36
+ import "./chunk-OKF7JF3R.js";
37
+ import "./chunk-JSD33JG6.js";
38
38
  import "./chunk-S6LOFUVP.js";
39
39
  import "./chunk-JCW2R7WC.js";
40
- import "./chunk-2PHWA4IO.js";
40
+ import "./chunk-2DN4J57Y.js";
41
41
  import "./chunk-ZPJWUGCS.js";
42
- import "./chunk-HHYPUCUF.js";
42
+ import "./chunk-2LKVPASC.js";
43
43
  import "./chunk-NAVJD2PQ.js";
44
- import "./chunk-2LFSPVBC.js";
45
- import "./chunk-67ZRSECV.js";
44
+ import "./chunk-LW3RFMG7.js";
45
+ import "./chunk-W4MIWP6M.js";
46
46
  import "./chunk-DGEIYUC3.js";
47
47
  import "./chunk-MPHPFVKK.js";
48
48
  import "./chunk-GLNBDYUX.js";
49
49
  import "./chunk-DJ2GSRLV.js";
50
- import "./chunk-EWYICJNY.js";
51
- import "./chunk-IXNNGTUI.js";
50
+ import "./chunk-P2YNZWXZ.js";
51
+ import "./chunk-75MIQ3LV.js";
52
52
  import "./chunk-2J3OJGTL.js";
53
53
  import "./chunk-P3QQPMQA.js";
54
- import "./chunk-ACPMPDKQ.js";
54
+ import "./chunk-RPLGZJV2.js";
55
55
  import "./chunk-GLCZKT5V.js";
56
- import "./chunk-4CCAX23S.js";
57
- import "./chunk-6PQHZ4YW.js";
56
+ import "./chunk-DZLYR4U3.js";
57
+ import "./chunk-BWKCTLEJ.js";
58
58
  import "./chunk-VGC4I5JJ.js";
59
- import "./chunk-MFBM3CQZ.js";
60
- import "./chunk-ZWL7SSVL.js";
61
- import "./chunk-MB3M2BFP.js";
62
- import "./chunk-2WUAKFCQ.js";
59
+ import "./chunk-SGFT55XI.js";
60
+ import "./chunk-Y4IHBGBP.js";
61
+ import "./chunk-Y6AXW2OG.js";
62
+ import "./chunk-LNHZ3A4I.js";
63
63
  import "./chunk-46UV252V.js";
64
- import "./chunk-WDMODYUC.js";
65
- import "./chunk-XM5V2A2E.js";
66
- import "./chunk-ZYD3KZPB.js";
67
- import "./chunk-BOWYL27T.js";
68
- import "./chunk-FUFNINKB.js";
64
+ import "./chunk-ZBVS26BY.js";
65
+ import "./chunk-WZRWHXFE.js";
66
+ import "./chunk-A3NDJ5SB.js";
67
+ import "./chunk-7XATOOE7.js";
68
+ import "./chunk-BGTQCTQW.js";
69
69
  import "./chunk-W4RQUHY3.js";
70
70
  import "./chunk-S7W2GKIO.js";
71
- import "./chunk-ATIV6G7N.js";
71
+ import "./chunk-UHUSJ6X7.js";
72
72
  import "./chunk-VOQXFAY5.js";
73
73
  import "./chunk-75DOP5OR.js";
74
74
  import "./chunk-DMTGGOSA.js";
@@ -4,47 +4,47 @@ import {
4
4
  ConfigContext,
5
5
  SessionPicker,
6
6
  SettingsContext
7
- } from "./chunk-CO3BKKFP.js";
7
+ } from "./chunk-ML5M5XOY.js";
8
+ import "./chunk-KY3NRFJ5.js";
8
9
  import {
9
10
  KeypressProvider
10
- } from "./chunk-IIJCNWAY.js";
11
- import "./chunk-SJOQ5GW7.js";
12
- import "./chunk-RGZ34F4F.js";
13
- import "./chunk-SEWRIH7H.js";
11
+ } from "./chunk-AL62VKMS.js";
12
+ import "./chunk-KADQPLPX.js";
13
+ import "./chunk-TUQ36KWK.js";
14
+ import "./chunk-M7OONWYU.js";
14
15
  import "./chunk-4WGODMVR.js";
15
16
  import "./chunk-KW7NOTN6.js";
16
- import "./chunk-R2F2DRBY.js";
17
- import "./chunk-ZGVQLKMP.js";
18
- import "./chunk-VV6QF662.js";
17
+ import "./chunk-U3E3UQAA.js";
18
+ import "./chunk-GKX7E4CO.js";
19
19
  import {
20
20
  require_jsx_runtime
21
21
  } from "./chunk-SV5PQVQE.js";
22
+ import "./chunk-GATT5TKW.js";
22
23
  import {
23
24
  Box_default,
24
25
  render_default,
25
26
  use_app_default
26
- } from "./chunk-TXI4LPWT.js";
27
+ } from "./chunk-UWMLWVCA.js";
27
28
  import {
28
29
  require_react
29
30
  } from "./chunk-5QWWOFGG.js";
30
- import "./chunk-2KLJYA37.js";
31
- import "./chunk-7GC5YKSS.js";
32
- import "./chunk-IPUUTYMV.js";
33
- import "./chunk-6K2CPEAB.js";
31
+ import "./chunk-FW4M4GA7.js";
32
+ import "./chunk-HKFEPLKW.js";
33
+ import "./chunk-YDLJGZHL.js";
34
34
  import "./chunk-2MIN6GRR.js";
35
35
  import "./chunk-QHTIBUWB.js";
36
36
  import "./chunk-QTERJVPZ.js";
37
+ import "./chunk-ZSQ5LDBH.js";
37
38
  import "./chunk-E5Z2AVNV.js";
38
39
  import "./chunk-57OAHC2Y.js";
39
- import "./chunk-4CKLWQQR.js";
40
- import "./chunk-VCBKBEU7.js";
40
+ import "./chunk-7A4ZDITM.js";
41
41
  import "./chunk-RKUWKYED.js";
42
- import "./chunk-C6U6ZR65.js";
43
- import "./chunk-ZAJIOSFI.js";
42
+ import "./chunk-ATZOB5Y2.js";
43
+ import "./chunk-NNERMV7T.js";
44
44
  import "./chunk-GOXKNSDZ.js";
45
- import "./chunk-6PEXNQTX.js";
46
45
  import "./chunk-IDS7MSUP.js";
47
- import "./chunk-IUYFCE34.js";
46
+ import "./chunk-6PEXNQTX.js";
47
+ import "./chunk-4WSL256B.js";
48
48
  import "./chunk-ALGGS7UH.js";
49
49
  import "./chunk-MR3PXB6E.js";
50
50
  import {
@@ -53,63 +53,63 @@ import {
53
53
  import {
54
54
  SessionService,
55
55
  getGitBranch
56
- } from "./chunk-G3RJEBAA.js";
56
+ } from "./chunk-HUK2P4RS.js";
57
57
  import "./chunk-TWPJO254.js";
58
58
  import "./chunk-H6XPXXMH.js";
59
59
  import "./chunk-5M6IDOMF.js";
60
- import "./chunk-2WVVMSPB.js";
61
- import "./chunk-IUNB6SUW.js";
62
- import "./chunk-ECBKZ7SV.js";
60
+ import "./chunk-UPUG4GXM.js";
61
+ import "./chunk-64LQLPL7.js";
62
+ import "./chunk-2LQTH543.js";
63
63
  import "./chunk-KRXPRVGL.js";
64
- import "./chunk-3FNJBOF7.js";
64
+ import "./chunk-DJGYJDYR.js";
65
+ import "./chunk-CVHIL5IG.js";
65
66
  import "./chunk-IRH27ZC2.js";
66
67
  import "./chunk-QHWCP53L.js";
67
- import "./chunk-6LOSXNKO.js";
68
+ import "./chunk-PONHVBRT.js";
68
69
  import "./chunk-T26EAKDL.js";
69
70
  import "./chunk-6PVPNMXU.js";
70
- import "./chunk-3YAW4B2W.js";
71
71
  import "./chunk-CPBF7KYF.js";
72
- import "./chunk-7R4YENCL.js";
73
- import "./chunk-IJDXG4RL.js";
74
- import "./chunk-IM6PC55H.js";
75
- import "./chunk-YF7TVSQK.js";
76
- import "./chunk-DMEKUQ5Z.js";
72
+ import "./chunk-6QIGFD5W.js";
73
+ import "./chunk-XWWKIXVD.js";
74
+ import "./chunk-75GFAX4R.js";
75
+ import "./chunk-OKF7JF3R.js";
76
+ import "./chunk-JSD33JG6.js";
77
77
  import "./chunk-S6LOFUVP.js";
78
78
  import "./chunk-JCW2R7WC.js";
79
- import "./chunk-2PHWA4IO.js";
79
+ import "./chunk-2DN4J57Y.js";
80
80
  import "./chunk-ZPJWUGCS.js";
81
- import "./chunk-HHYPUCUF.js";
81
+ import "./chunk-2LKVPASC.js";
82
82
  import "./chunk-NAVJD2PQ.js";
83
- import "./chunk-2LFSPVBC.js";
84
- import "./chunk-67ZRSECV.js";
83
+ import "./chunk-LW3RFMG7.js";
84
+ import "./chunk-W4MIWP6M.js";
85
85
  import "./chunk-DGEIYUC3.js";
86
86
  import "./chunk-MPHPFVKK.js";
87
87
  import "./chunk-GLNBDYUX.js";
88
88
  import "./chunk-DJ2GSRLV.js";
89
- import "./chunk-EWYICJNY.js";
90
- import "./chunk-IXNNGTUI.js";
89
+ import "./chunk-P2YNZWXZ.js";
90
+ import "./chunk-75MIQ3LV.js";
91
91
  import "./chunk-2J3OJGTL.js";
92
92
  import "./chunk-P3QQPMQA.js";
93
- import "./chunk-ACPMPDKQ.js";
93
+ import "./chunk-RPLGZJV2.js";
94
94
  import "./chunk-GLCZKT5V.js";
95
- import "./chunk-4CCAX23S.js";
96
- import "./chunk-6PQHZ4YW.js";
95
+ import "./chunk-DZLYR4U3.js";
96
+ import "./chunk-BWKCTLEJ.js";
97
97
  import "./chunk-VGC4I5JJ.js";
98
- import "./chunk-MFBM3CQZ.js";
99
- import "./chunk-ZWL7SSVL.js";
100
- import "./chunk-MB3M2BFP.js";
101
- import "./chunk-2WUAKFCQ.js";
98
+ import "./chunk-SGFT55XI.js";
99
+ import "./chunk-Y4IHBGBP.js";
100
+ import "./chunk-Y6AXW2OG.js";
101
+ import "./chunk-LNHZ3A4I.js";
102
102
  import "./chunk-46UV252V.js";
103
- import "./chunk-WDMODYUC.js";
104
- import "./chunk-XM5V2A2E.js";
105
- import "./chunk-ZYD3KZPB.js";
106
- import "./chunk-BOWYL27T.js";
107
- import "./chunk-FUFNINKB.js";
103
+ import "./chunk-ZBVS26BY.js";
104
+ import "./chunk-WZRWHXFE.js";
105
+ import "./chunk-A3NDJ5SB.js";
106
+ import "./chunk-7XATOOE7.js";
107
+ import "./chunk-BGTQCTQW.js";
108
108
  import "./chunk-W4RQUHY3.js";
109
109
  import "./chunk-S7W2GKIO.js";
110
- import "./chunk-ATIV6G7N.js";
110
+ import "./chunk-UHUSJ6X7.js";
111
111
  import "./chunk-VOQXFAY5.js";
112
- import "./chunk-XL7TLW5I.js";
112
+ import "./chunk-XBZQT63P.js";
113
113
  import "./chunk-75DOP5OR.js";
114
114
  import "./chunk-DMTGGOSA.js";
115
115
  import "./chunk-YQ3U5MUC.js";
@@ -9,8 +9,8 @@ import {
9
9
  markAcpStartup,
10
10
  recordAcpConfigStartupEvent,
11
11
  resetAcpStartupProfilerForTesting
12
- } from "./chunk-HIJQF5B5.js";
13
- import "./chunk-3SJ43L4W.js";
12
+ } from "./chunk-3L2SPEBH.js";
13
+ import "./chunk-XZC5VLBZ.js";
14
14
  import "./chunk-5O2XNYP6.js";
15
15
  import "./chunk-J2S4EL5Y.js";
16
16
  export {