@qwen-code/qwen-code 0.22.2 → 0.22.3

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 (324) hide show
  1. package/bundled/computer-use/SKILL.md +3 -3
  2. package/bundled/qc-helper/docs/configuration/settings.md +37 -36
  3. package/bundled/qc-helper/docs/features/channels/dws.md +2 -0
  4. package/bundled/qc-helper/docs/features/channels/overview.md +34 -3
  5. package/bundled/qc-helper/docs/features/code-review.md +3 -3
  6. package/bundled/qc-helper/docs/features/computer-use.md +2 -2
  7. package/bundled/qc-helper/docs/features/tool-use-summaries.md +1 -1
  8. package/bundled/qc-helper/docs/qwen-serve.md +1 -1
  9. package/bundled/review/SKILL.md +81 -31
  10. package/bundled/review/references/persistence.md +7 -3
  11. package/bundled/review/references/posting.md +10 -4
  12. package/chunks/{MaxSizedBox-X5FZSNAJ.js → MaxSizedBox-X42SXBJH.js} +33 -35
  13. package/chunks/{StandaloneSessionPicker-AVLI6VJP.js → StandaloneSessionPicker-2FJAOLGG.js} +51 -53
  14. package/chunks/{acpAgent-MXEAN54C.js → acpAgent-2ZMIJAFV.js} +268 -186
  15. package/chunks/{agent-PJIPDWHB.js → agent-X5WX3L2I.js} +24 -26
  16. package/chunks/{agent-headless-B4JVD7UK.js → agent-headless-IZM25LJA.js} +24 -26
  17. package/chunks/{anthropicContentGenerator-HGMBACVE.js → anthropicContentGenerator-YVTB6QX7.js} +43 -47
  18. package/chunks/{artifact-tool-5YT4QF7Y.js → artifact-tool-XSMPHZBT.js} +9 -1
  19. package/chunks/{bridge-FKZTVIS3.js → bridge-ME6QXZNA.js} +37 -39
  20. package/chunks/{channel-management-service-X4AZ6IXX.js → channel-management-service-HQ6KDS7C.js} +6 -6
  21. package/chunks/{channel-settings-store-4UFCLBBG.js → channel-settings-store-PEOI7XCG.js} +47 -44
  22. package/chunks/{channel-worker-group-27HMGD5S.js → channel-worker-group-6NA6BBZV.js} +5 -5
  23. package/chunks/{channel-worker-manager-QEGX646Z.js → channel-worker-manager-NEZ2J6RK.js} +5 -5
  24. package/chunks/{channel-worker-supervisor-UEW2WWCC.js → channel-worker-supervisor-FKU7DIHJ.js} +4 -4
  25. package/chunks/{chunk-P5GGM4KS.js → chunk-2HYKTO7V.js} +3 -3
  26. package/chunks/{chunk-XDFHY4R3.js → chunk-2LNNVAUV.js} +2 -2
  27. package/chunks/{chunk-ZFKOCECU.js → chunk-2OBKDPZZ.js} +2 -2
  28. package/chunks/{chunk-3DXFGHAJ.js → chunk-2OUD5T67.js} +1 -1
  29. package/chunks/{chunk-EOGELB3H.js → chunk-2SXSLSQE.js} +1 -1
  30. package/chunks/{chunk-4JWNNLPT.js → chunk-2YOHKHYR.js} +2 -2
  31. package/chunks/{chunk-JU4EEXC7.js → chunk-36GSQ3MM.js} +2 -2
  32. package/chunks/chunk-36LGBEM6.js +130 -0
  33. package/chunks/{chunk-H2WDGQ6D.js → chunk-3JXM2CVW.js} +1 -1
  34. package/chunks/{chunk-G34IR3D6.js → chunk-3SZC4VP4.js} +26 -109
  35. package/chunks/{chunk-HVEYF6VT.js → chunk-3WK3QDNV.js} +1 -1
  36. package/chunks/{chunk-5XBFCMWD.js → chunk-3XKLXHGK.js} +17 -9
  37. package/chunks/{chunk-SFPGAQUL.js → chunk-42IDLQWS.js} +24 -18
  38. package/chunks/{chunk-43GGFFLY.js → chunk-4K7KNVWH.js} +1 -1
  39. package/chunks/{chunk-F6FV3C5K.js → chunk-4NDLQAY2.js} +24 -272
  40. package/chunks/{chunk-VVW4ZNFY.js → chunk-4QHPPXK2.js} +15 -7
  41. package/chunks/{chunk-IJKTMLBE.js → chunk-4TT3IVGA.js} +1 -1
  42. package/chunks/{chunk-C6K43ZDE.js → chunk-4VPCTGH6.js} +5 -5
  43. package/chunks/chunk-4VQBQLIZ.js +293 -0
  44. package/chunks/{chunk-OIVXBW3W.js → chunk-62GQFYID.js} +1 -1
  45. package/chunks/{chunk-BRVWYMKV.js → chunk-6MBXY6WM.js} +1 -1
  46. package/chunks/{chunk-AGR5UROZ.js → chunk-6X7EU5TI.js} +17 -29
  47. package/chunks/{chunk-PFCQ62V4.js → chunk-6ZPDLGHN.js} +6 -6
  48. package/chunks/{chunk-RIEFGNTP.js → chunk-734C6JGI.js} +207 -43
  49. package/chunks/{chunk-FBSSIAAQ.js → chunk-73RM4POK.js} +7 -7
  50. package/chunks/{chunk-KGJGEEVR.js → chunk-7FA2II6K.js} +10 -1
  51. package/chunks/chunk-7J6OTNGO.js +424 -0
  52. package/chunks/{chunk-O2UN57NX.js → chunk-7LOELM2I.js} +19 -2
  53. package/chunks/{chunk-DIMEPKCW.js → chunk-7S226YTK.js} +1 -1
  54. package/chunks/{chunk-CPGJJJLU.js → chunk-7T52W4SW.js} +1 -1
  55. package/chunks/{chunk-5O72BNDD.js → chunk-7VMIMAVB.js} +7 -7
  56. package/chunks/{chunk-XRSOI3DL.js → chunk-A3LWD5MK.js} +1 -1
  57. package/chunks/{chunk-F7TNAPZ4.js → chunk-AIAOIFY4.js} +5 -5
  58. package/chunks/{chunk-4CDSK5AZ.js → chunk-AYFA7MZV.js} +2 -2
  59. package/chunks/{chunk-3JGZSIDA.js → chunk-B466ZSHZ.js} +1 -1
  60. package/chunks/{chunk-L6BZRIUL.js → chunk-B5PHIJGI.js} +182 -4
  61. package/chunks/{chunk-3I6UTTDX.js → chunk-BKWNKLZB.js} +19 -19
  62. package/chunks/{chunk-3FDFA4MZ.js → chunk-BOWFGCEU.js} +1 -1
  63. package/chunks/{chunk-3AFMQUTI.js → chunk-C2X7KY45.js} +1 -1
  64. package/chunks/{chunk-FY76G3G5.js → chunk-C3PEFRKD.js} +4 -4
  65. package/chunks/{chunk-FDY5RMGH.js → chunk-CFJY4DGX.js} +1 -1
  66. package/chunks/{chunk-CCBZDVUA.js → chunk-CIZCL2MW.js} +33 -20
  67. package/chunks/{chunk-LDP5OD6N.js → chunk-CLWO3B77.js} +2 -2
  68. package/chunks/chunk-DJBQCO2E.js +842 -0
  69. package/chunks/{chunk-4J657AJR.js → chunk-DJECZIJX.js} +40 -40
  70. package/chunks/{chunk-F5SZP77N.js → chunk-DJEZ55D4.js} +71 -65
  71. package/chunks/{chunk-BAJKAAOY.js → chunk-DJPASAUV.js} +3840 -1055
  72. package/chunks/{chunk-RUGNCYNO.js → chunk-DMLVSW7L.js} +532 -22
  73. package/chunks/{chunk-4FTKQNWJ.js → chunk-DYXFD5RO.js} +181 -2
  74. package/chunks/{chunk-PDMJ3KGS.js → chunk-EB6QRGHM.js} +1 -1
  75. package/chunks/{chunk-DZWPESIF.js → chunk-EFWRMA2I.js} +3 -3
  76. package/chunks/{chunk-4MQEPP3Y.js → chunk-EQSBPBZ3.js} +5 -119
  77. package/chunks/{chunk-Z7TGYN5F.js → chunk-FROAFEFB.js} +2 -2
  78. package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
  79. package/chunks/{chunk-Z7VOMGDC.js → chunk-FTJMWDND.js} +0 -24
  80. package/chunks/{chunk-43UYNAWX.js → chunk-G6FECKTJ.js} +2 -2
  81. package/chunks/{chunk-SJ3ZUWFK.js → chunk-GBJBJ4HX.js} +4 -4
  82. package/chunks/{chunk-IOPCFOTF.js → chunk-GPGU4S2N.js} +2 -2
  83. package/chunks/{chunk-6LFJEACX.js → chunk-GVIVASYK.js} +7 -7
  84. package/chunks/{chunk-Z4X5MTRT.js → chunk-HCOBAG2L.js} +2 -4
  85. package/chunks/{chunk-A7YP63XN.js → chunk-HP5LR5HL.js} +5 -5
  86. package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
  87. package/chunks/{chunk-TRZTNIQ6.js → chunk-I6LYRJPB.js} +2 -2
  88. package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
  89. package/chunks/{chunk-4HV6HH33.js → chunk-ISKH4QX3.js} +9 -9
  90. package/chunks/{chunk-WKK5BQNP.js → chunk-JHYH6PYQ.js} +43 -420
  91. package/chunks/{chunk-6IUNAPLR.js → chunk-K5KXUXWC.js} +1 -1
  92. package/chunks/{chunk-JHS74YAB.js → chunk-KID24ZFN.js} +1 -1
  93. package/chunks/{chunk-EFUM7RVY.js → chunk-KJO2LBUK.js} +942 -16
  94. package/chunks/{chunk-B7CDU2SL.js → chunk-KYWTPLBJ.js} +17 -20
  95. package/chunks/{chunk-JSHHYW6T.js → chunk-LHBUKJG2.js} +3 -3
  96. package/chunks/{chunk-P2SU6ZTI.js → chunk-LUEHOUHM.js} +1 -1
  97. package/chunks/{chunk-66KDY3LV.js → chunk-M3QRM3DE.js} +1 -1
  98. package/chunks/{chunk-V4QXXQJ2.js → chunk-MF7HCQWZ.js} +2 -2
  99. package/chunks/{chunk-W5MJJ2V7.js → chunk-MK2GIB46.js} +1 -1
  100. package/chunks/{chunk-Y6LSMB6J.js → chunk-MO3FC2WT.js} +1 -1
  101. package/chunks/{chunk-L6YT5H34.js → chunk-MPNBVAEU.js} +4 -4
  102. package/chunks/{chunk-CSMI4FP5.js → chunk-MSBO7X2W.js} +1 -1
  103. package/chunks/{chunk-5PA6UEYA.js → chunk-MZCJWS5Y.js} +1 -1
  104. package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
  105. package/chunks/{chunk-6LFTG244.js → chunk-NMOD2FXQ.js} +15 -5
  106. package/chunks/{chunk-KUX5D6DK.js → chunk-NV55WWD6.js} +11330 -10971
  107. package/chunks/{chunk-Q26AYA62.js → chunk-OU5APVWO.js} +2 -2
  108. package/chunks/{chunk-2K6ORIHJ.js → chunk-P2G476QN.js} +11 -11
  109. package/chunks/{chunk-OIP7C4FE.js → chunk-PADPMMYM.js} +4 -4
  110. package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
  111. package/chunks/{chunk-TGWAQ5RB.js → chunk-PZ66FRIC.js} +2071 -2124
  112. package/chunks/{chunk-7UYV53BC.js → chunk-Q2MSPKIJ.js} +1 -1
  113. package/chunks/{chunk-L2M46FP5.js → chunk-QYMAKPY5.js} +5 -5
  114. package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
  115. package/chunks/chunk-SEONHUS3.js +275 -0
  116. package/chunks/{chunk-ZGXYO7DY.js → chunk-SS4MRMKE.js} +122 -13
  117. package/chunks/{chunk-T32W2JHI.js → chunk-SS5SDCD3.js} +2 -2
  118. package/chunks/{chunk-3SGB2UHX.js → chunk-ST5MDGH3.js} +23 -11
  119. package/chunks/{chunk-MIIVI25Q.js → chunk-ST5V3ZOC.js} +2 -2
  120. package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
  121. package/chunks/{chunk-TWSKM647.js → chunk-T7KMERIX.js} +1 -1
  122. package/chunks/{chunk-77RG5SFQ.js → chunk-TEBDFQBZ.js} +1 -1
  123. package/chunks/{chunk-6CGL7E7G.js → chunk-TVC6HQ2U.js} +2 -2
  124. package/chunks/{chunk-BBWV7ONL.js → chunk-TZBSGJ6C.js} +6 -6
  125. package/chunks/{chunk-T3WXYEZ4.js → chunk-U54AYGEC.js} +38 -5
  126. package/chunks/{chunk-JCQD3INC.js → chunk-URE3QBBB.js} +1 -1
  127. package/chunks/{chunk-Y3QL45LS.js → chunk-V4264FEG.js} +8 -8
  128. package/chunks/{chunk-KEKZFOL6.js → chunk-V7EESTJV.js} +1 -1
  129. package/chunks/{chunk-R4PMVSR5.js → chunk-VBCPNIQD.js} +18 -20
  130. package/chunks/{chunk-RJC5EIKY.js → chunk-VGIFXISB.js} +3 -3
  131. package/chunks/{chunk-Z7FLBQPR.js → chunk-W3JH33JE.js} +7 -7
  132. package/chunks/{chunk-K2NQPH5D.js → chunk-WGY3AVGM.js} +3 -3
  133. package/chunks/{chunk-PKAYJDB3.js → chunk-WNPDGUJO.js} +21 -2
  134. package/chunks/{chunk-IZIVM7LZ.js → chunk-WXEA74YB.js} +1 -1
  135. package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
  136. package/chunks/{chunk-IK5BW3CS.js → chunk-XHF7WQ6B.js} +2 -2
  137. package/chunks/{chunk-2NYCN6F2.js → chunk-XSG6G3G6.js} +43 -26
  138. package/chunks/{chunk-HVQ3B7FF.js → chunk-Y5S7LBOZ.js} +43 -6
  139. package/chunks/{chunk-LXIBMVRN.js → chunk-YLSQLSH7.js} +13 -7
  140. package/chunks/{chunk-JSC3H3TD.js → chunk-ZEYFMJQA.js} +14 -6
  141. package/chunks/chunk-ZWJDJ6RU.js +2597 -0
  142. package/chunks/{chunk-QP4C6WCE.js → chunk-ZYMLPEZQ.js} +2 -2
  143. package/chunks/{chunk-BNMF3K5X.js → chunk-ZZMSC3RG.js} +52 -36
  144. package/chunks/{chunk-XDLEZ5HX.js → chunk-ZZUKP7HV.js} +1 -1
  145. package/chunks/{config-utils-BBOCOGZW.js → config-utils-R6M3TA34.js} +39 -39
  146. package/chunks/{contextCommand-EET67MQ2.js → contextCommand-ZCAP23J6.js} +36 -38
  147. package/chunks/{core-runtime-677KFX6Q.js → core-runtime-AXB6SK5D.js} +41 -43
  148. package/chunks/{create-sub-session-JKZAYZX7.js → create-sub-session-4QNE64MR.js} +34 -36
  149. package/chunks/{daemon-MJQUO7RA.js → daemon-3GNHB3M2.js} +495 -7
  150. package/chunks/{daemon-git-worktree-guard-6MVAAZZZ.js → daemon-git-worktree-guard-IVAJJWYK.js} +33 -35
  151. package/chunks/{daemon-status-provider-RFKZOK3S.js → daemon-status-provider-K3SJ5C2U.js} +42 -44
  152. package/chunks/{daemon-trust-policy-DRZPFB4Q.js → daemon-trust-policy-DOR3YG62.js} +41 -43
  153. package/chunks/{daemon-trust-policy-monitor-B5U6TQX5.js → daemon-trust-policy-monitor-KGGROSIV.js} +41 -43
  154. package/chunks/{deferred-core-runtime-BBVIOP24.js → deferred-core-runtime-WOYLUQQ7.js} +33 -35
  155. package/chunks/{dist-DJBNNPLN.js → dist-4WXLCBDR.js} +1 -1
  156. package/chunks/{dist-TJUDJTCB.js → dist-5VXFRTWU.js} +280 -48
  157. package/chunks/{dist-QODVOVWI.js → dist-6BPYWHVD.js} +31 -30
  158. package/chunks/{dist-ZBVOXSKF.js → dist-GFN5DCBX.js} +74 -65
  159. package/chunks/{dist-SATKXKUR.js → dist-HZNT6GQS.js} +1 -1
  160. package/chunks/{dist-ILDBUWDB.js → dist-LVZCXVPF.js} +1 -1
  161. package/chunks/{dist-7CKN54NL.js → dist-N6W6E753.js} +71 -64
  162. package/chunks/{dist-4Q7NTUNB.js → dist-NSV4NBPK.js} +31 -14
  163. package/chunks/{dist-UQUFZDIY.js → dist-SWQMYP2Q.js} +18 -16
  164. package/chunks/{earlyInputCapture-2JOMMNQ4.js → earlyInputCapture-OHBEVO4K.js} +33 -35
  165. package/chunks/{edit-BSV6YRVW.js → edit-LEQLAGPZ.js} +24 -26
  166. package/chunks/{enter-worktree-MQXFFPKM.js → enter-worktree-35QCAAFP.js} +3 -3
  167. package/chunks/{enterPlanMode-PKNF35FE.js → enterPlanMode-ONQN3WHE.js} +27 -29
  168. package/chunks/{environment-MOZMPUHR.js → environment-UANTR7A4.js} +37 -39
  169. package/chunks/{errors-DMPQVYJL.js → errors-WAK6KFBC.js} +36 -38
  170. package/chunks/{exit-worktree-L344UY7K.js → exit-worktree-XQD6D543.js} +3 -3
  171. package/chunks/{exitPlanMode-UE4FGCY4.js → exitPlanMode-UEYBG6P5.js} +24 -26
  172. package/chunks/{fast-path-773PV7PU.js → fast-path-WUL7UZ6H.js} +4 -4
  173. package/chunks/{fast-path-settings-XMFBYFUH.js → fast-path-settings-XH426LUU.js} +3 -3
  174. package/chunks/{glob-CZHOWUEA.js → glob-Y54QUWDY.js} +24 -26
  175. package/chunks/{goal-tools-YZQJXTGH.js → goal-tools-PTD3MBA7.js} +2 -1
  176. package/chunks/{handleAutoUpdate-SGXKTQM6.js → handleAutoUpdate-FP3NWNSG.js} +37 -39
  177. package/chunks/{i18n-B42HKHKH.js → i18n-INIU5X7A.js} +35 -37
  178. package/chunks/{image-gen-HAYOEQ4O.js → image-gen-J6FDGUZP.js} +4 -6
  179. package/chunks/{initializer-FB66WYR3.js → initializer-TYODV6GE.js} +41 -43
  180. package/chunks/{installationInfo-Y7AULNMX.js → installationInfo-AAPKYDSZ.js} +33 -35
  181. package/chunks/{list-2HWGSVRA.js → list-TUODDN6J.js} +44 -46
  182. package/chunks/{gemini-IP4FJAP5.js → llm-NSAVK5V3.js} +84 -82
  183. package/chunks/{geminiContentGenerator-PUNEBWJW.js → llm-content-generator-AY2QKXHE.js} +25 -25
  184. package/chunks/{loadedSettingsAdapter-7Y7IEI6T.js → loadedSettingsAdapter-KJCLZ3C4.js} +41 -43
  185. package/chunks/{loggingContentGenerator-2GGZNGLG.js → loggingContentGenerator-DSFQHXIF.js} +305 -27
  186. package/chunks/{managed-npm-update-5TEV2E3J.js → managed-npm-update-TSWENTK5.js} +33 -35
  187. package/chunks/{mcp-QGG5NMJJ.js → mcp-MWSAPFOL.js} +41 -43
  188. package/chunks/{monitor-FI7PY36Z.js → monitor-RW4GWJHB.js} +24 -26
  189. package/chunks/{nonInteractiveCli-4LO2TL72.js → nonInteractiveCli-JXKL343Q.js} +77 -78
  190. package/chunks/{notebook-edit-TPGMGBST.js → notebook-edit-CQNYS5OR.js} +24 -26
  191. package/chunks/{open-with-auth-4UI3KHUR.js → open-with-auth-YN3QZHVM.js} +1 -1
  192. package/chunks/{openaiContentGenerator-SUCYANUZ.js → openaiContentGenerator-J6QIF7EX.js} +13 -15
  193. package/chunks/{pidfile-JMF2CLMY.js → pidfile-QOIQZFT2.js} +33 -35
  194. package/chunks/process-registry-OAEG6WGC.js +662 -0
  195. package/chunks/{processUtils-IQZBYWSB.js → processUtils-GPHNANKZ.js} +2 -2
  196. package/chunks/{prompt-terminal-ledger-DCZO6S7C.js → prompt-terminal-ledger-FOMFTYOM.js} +34 -36
  197. package/chunks/{qwenContentGenerator-J4TXFGJT.js → qwenContentGenerator-WWDXPYQI.js} +28 -30
  198. package/chunks/{qwenOAuth2-RF33DNZW.js → qwenOAuth2-OF5WRBQT.js} +4 -6
  199. package/chunks/{read-file-QE2B5FTX.js → read-file-FQUQHC6N.js} +5 -5
  200. package/chunks/{record-artifact-RZGZBENU.js → record-artifact-VW23GS4F.js} +2 -2
  201. package/chunks/{report-findings-Q3SYKKW5.js → report-findings-AO5VYFLR.js} +7 -3
  202. package/chunks/{resumeHistoryUtils-CZ4JRDVW.js → resumeHistoryUtils-NSGF3UCB.js} +37 -39
  203. package/chunks/{ripGrep-R6B6HWPX.js → ripGrep-4CAT6SKV.js} +7 -7
  204. package/chunks/{run-qwen-serve-TPHZMSXJ.js → run-qwen-serve-5X6IDZER.js} +271 -86
  205. package/chunks/{runtime-TTIGSBM4.js → runtime-HK27GMPF.js} +46 -48
  206. package/chunks/{scheduled-tasks-QB4ZVUQS.js → scheduled-tasks-MN2ZZ5P6.js} +39 -41
  207. package/chunks/{scheduler-YRUG22M7.js → scheduler-WD4MHMO5.js} +35 -37
  208. package/chunks/{sdk-exporters-http-KCJ4ZFG7.js → sdk-exporters-http-TTU2CHBU.js} +1 -1
  209. package/chunks/{sdk-impl-HLSEDAEP.js → sdk-impl-UUMVYMAL.js} +10 -4
  210. package/chunks/{send-message-Y5I6NYAM.js → send-message-AJ4OCUBV.js} +18 -2
  211. package/chunks/{serve-MXXCDAQN.js → serve-2XCHPPGG.js} +41 -43
  212. package/chunks/{server-DFUSSSHI.js → server-GO2N5DH7.js} +4148 -3348
  213. package/chunks/{session-3TEHNENZ.js → session-IFNHTUBT.js} +81 -82
  214. package/chunks/session-pr-refresh-I3UBWMVP.js +364 -0
  215. package/chunks/{settings-VOZYKLTT.js → settings-L6N54CU6.js} +40 -42
  216. package/chunks/{shell-6RTKZVMI.js → shell-4Y5LLW6N.js} +24 -26
  217. package/chunks/{skill-FEOKFX26.js → skill-YOWTRAKQ.js} +58 -14
  218. package/chunks/{skill-settings-VA4XVYVL.js → skill-settings-ZL4JY5UE.js} +41 -43
  219. package/chunks/{spawnChannel-F6WVP723.js → spawnChannel-ZST6XJVJ.js} +35 -37
  220. package/chunks/{standalone-update-RGILUQVK.js → standalone-update-THVU3OKY.js} +36 -38
  221. package/chunks/{startInteractiveUI-WHJPFOGH.js → startInteractiveUI-XDFSHBZD.js} +401 -334
  222. package/chunks/{stdioHelpers-7A2EE64Z.js → stdioHelpers-AY6XCDY2.js} +3 -1
  223. package/chunks/{task-create-TMSV7RD5.js → task-create-QN4LYRSE.js} +3 -3
  224. package/chunks/{task-list-W55RBFRX.js → task-list-JPLGK45U.js} +2 -2
  225. package/chunks/{task-update-N536I4GQ.js → task-update-IWEOJFV2.js} +3 -3
  226. package/chunks/{team-create-QYSWCYCL.js → team-create-OOPXCDBA.js} +24 -26
  227. package/chunks/{team-delete-FJRFX33M.js → team-delete-RZVVSGCY.js} +2 -2
  228. package/chunks/{team-plan-approval-P7DAD644.js → team-plan-approval-DSX5EWAT.js} +24 -26
  229. package/chunks/{terminal-image-renderer-SMQE46UJ.js → terminal-image-renderer-KS25G33E.js} +33 -35
  230. package/chunks/{theme-manager-RFO5WWFF.js → theme-manager-YMZNG45F.js} +33 -35
  231. package/chunks/{tool-search-F2EMIAPV.js → tool-search-J5Q6U7DN.js} +9 -9
  232. package/chunks/{total-session-admission-HTVTP4BS.js → total-session-admission-PVN64JVV.js} +37 -39
  233. package/chunks/{trustedFolders-7OCNMUQE.js → trustedFolders-FATSC4YI.js} +35 -37
  234. package/chunks/{types-WYCFCEHR.js → types-HKLPXZB3.js} +1 -3
  235. package/chunks/{update-relaunch-4GF3OXMB.js → update-relaunch-SIKHLHVR.js} +6 -6
  236. package/chunks/{updateCheck-7QBDXZRT.js → updateCheck-D3YG2WCD.js} +36 -38
  237. package/chunks/{useAutoAcceptIndicator-UI4SNL2O.js → useAutoAcceptIndicator-ILINOSAS.js} +43 -45
  238. package/chunks/{validateNonInterActiveAuth-BPPA563H.js → validateNonInterActiveAuth-JUDQP6V4.js} +74 -75
  239. package/chunks/{version-ANP4TS6O.js → version-C63GDDWN.js} +1 -1
  240. package/chunks/{web-fetch-QJADSAH3.js → web-fetch-FOQZMNSC.js} +8 -10
  241. package/chunks/{web-search-7TTQKEKM.js → web-search-PUJTBFUC.js} +5 -7
  242. package/chunks/{web-shell-static-A6QMUNNV.js → web-shell-static-HNB4FDOE.js} +2 -2
  243. package/chunks/{workflow-5XN6XSOT.js → workflow-Y5IPINVH.js} +47 -58
  244. package/chunks/{workspace-providers-status-PDFZWL5Q.js → workspace-providers-status-IJ4VHFMB.js} +45 -47
  245. package/chunks/{workspace-registration-store-XKVW2YVH.js → workspace-registration-store-SMJWI2AI.js} +1 -1
  246. package/chunks/{workspace-registry-23R7XRB5.js → workspace-registry-BTGZIMPK.js} +37 -39
  247. package/chunks/{workspace-service-MUYO2QIC.js → workspace-service-SIN67ITC.js} +46 -51
  248. package/chunks/{workspace-skills-status-IKECTOOQ.js → workspace-skills-status-F3RKCUIX.js} +44 -46
  249. package/chunks/{workspace-trust-reconciler-KLGOB53D.js → workspace-trust-reconciler-PLIDLJZX.js} +45 -47
  250. package/chunks/{write-file-GGRBB5TZ.js → write-file-PAIGB33C.js} +26 -28
  251. package/chunks/{zoom-image-6ASG6J4C.js → zoom-image-LYQD7BQA.js} +5 -5
  252. package/cli.js +14 -14
  253. package/package.json +3 -3
  254. package/web-shell/assets/{abnfDiagram-VCTEODGH-uS-vtfs3.js → abnfDiagram-VCTEODGH-TRCMSA_6.js} +1 -1
  255. package/web-shell/assets/{arc-BSTnk5pu.js → arc-D9Uls5b3.js} +1 -1
  256. package/web-shell/assets/{architectureDiagram-5GKGNRK7-DCMyiqzy.js → architectureDiagram-5GKGNRK7-Bwb8jPXg.js} +1 -1
  257. package/web-shell/assets/{blockDiagram-NRAW4CY4-C7_gt0r1.js → blockDiagram-NRAW4CY4-DHj71TSX.js} +1 -1
  258. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BeQg2L8B.js → c4Diagram-UCG6FXSJ-uKBBdbyr.js} +1 -1
  259. package/web-shell/assets/channel-CXjVLaBa.js +1 -0
  260. package/web-shell/assets/{chunk-2Q5K7J3B-DnV9bKBe.js → chunk-2Q5K7J3B-BZd0Phrl.js} +1 -1
  261. package/web-shell/assets/{chunk-5VM5RSS4-rT1GAcT7.js → chunk-5VM5RSS4-7KNeNBqN.js} +1 -1
  262. package/web-shell/assets/{chunk-F27PBJKO-BcgSxqGA.js → chunk-F27PBJKO-BeboS7Fi.js} +1 -1
  263. package/web-shell/assets/{chunk-G27WJ6UU-Bw1ZhyZq.js → chunk-G27WJ6UU-RV3JONoj.js} +1 -1
  264. package/web-shell/assets/{chunk-JWPE2WC7-D4iDw-96.js → chunk-JWPE2WC7-Yw9FCFsP.js} +1 -1
  265. package/web-shell/assets/{chunk-LCL6LL3I-D3MB3GTZ.js → chunk-LCL6LL3I-GIMnydDe.js} +1 -1
  266. package/web-shell/assets/{chunk-POPQ4Y6H-Cep2ndrS.js → chunk-POPQ4Y6H-Cfrux7bL.js} +1 -1
  267. package/web-shell/assets/{chunk-SVP7TREG-BuahMHJc.js → chunk-SVP7TREG-BlvIN0CO.js} +1 -1
  268. package/web-shell/assets/{chunk-XXDRQBXY-BdujIvJY.js → chunk-XXDRQBXY-DMs7Rr4t.js} +1 -1
  269. package/web-shell/assets/classDiagram-DTDB5LWJ-DANEijO3.js +1 -0
  270. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DANEijO3.js +1 -0
  271. package/web-shell/assets/{cose-bilkent-JH36ORCC-CGLLUbF8.js → cose-bilkent-JH36ORCC-DNGqTNwI.js} +1 -1
  272. package/web-shell/assets/{cynefin-OW5HDTMX-D6kDsRSh.js → cynefin-OW5HDTMX-CojMpaoH.js} +1 -1
  273. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-CCy78qZx.js → cynefinDiagram-5FMLGOSQ-DF07YXGo.js} +1 -1
  274. package/web-shell/assets/{dagre-3AP2YEHR-D5gJuJsf.js → dagre-3AP2YEHR-17-4WtCH.js} +1 -1
  275. package/web-shell/assets/{diagram-S7CK7UJ4-ZwEZ5W__.js → diagram-S7CK7UJ4-G3Wuyz9m.js} +1 -1
  276. package/web-shell/assets/{diagram-UQ7AKVKN-B036APjv.js → diagram-UQ7AKVKN-nyWIKZ8P.js} +1 -1
  277. package/web-shell/assets/{diagram-VSXAHHWV-BfDJ57Fq.js → diagram-VSXAHHWV-tKHhmYSC.js} +1 -1
  278. package/web-shell/assets/{diagram-VX7I27RA-Wha0p5rT.js → diagram-VX7I27RA-CpDf1hYk.js} +1 -1
  279. package/web-shell/assets/{diagram-Z3DM3KII-L20bz2K1.js → diagram-Z3DM3KII-Cah2IFXG.js} +1 -1
  280. package/web-shell/assets/{ebnfDiagram-PWID7BFC-D1ZM0Cp7.js → ebnfDiagram-PWID7BFC-DNaCkgxy.js} +1 -1
  281. package/web-shell/assets/{erDiagram-SSCWMZ5O-CMtA19v8.js → erDiagram-SSCWMZ5O-CAdRgcf1.js} +1 -1
  282. package/web-shell/assets/{flowDiagram-A5DVABFB-D96m326S.js → flowDiagram-A5DVABFB-CMUJAShL.js} +1 -1
  283. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BuHiYG2o.js → ganttDiagram-EL5Y4UJY-o-_MUNey.js} +1 -1
  284. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Ck3NmkSw.js → gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js} +1 -1
  285. package/web-shell/assets/{index-CBGz4Qjl.js → index-BK_NKxiJ.js} +1 -1
  286. package/web-shell/assets/index-Ci-z4zWY.js +1913 -0
  287. package/web-shell/assets/index-LDlXZRHA.css +36 -0
  288. package/web-shell/assets/{infoDiagram-RXCK75RN-B6DAOyXe.js → infoDiagram-RXCK75RN-qJPeZbGP.js} +1 -1
  289. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-Bpg-joFo.js → ishikawaDiagram-5VMMS53U-7Om4vNo1.js} +1 -1
  290. package/web-shell/assets/{journeyDiagram-EYS64GPL-BclrHzGa.js → journeyDiagram-EYS64GPL-BNtXqmBW.js} +1 -1
  291. package/web-shell/assets/{kanban-definition-3QL26DDD-5gJzNTYG.js → kanban-definition-3QL26DDD-COgFec8P.js} +1 -1
  292. package/web-shell/assets/{layout-CEz_1L8z.js → layout-B9n81PC9.js} +1 -1
  293. package/web-shell/assets/{linear-CBjTq9Hc.js → linear-Bb6nXZQq.js} +1 -1
  294. package/web-shell/assets/{mermaid.core-Dzhbxx_I.js → mermaid.core-Cgrm3JVT.js} +6 -6
  295. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DQdVqlBF.js → mindmap-definition-FBJOCRG2-TKwLTjnG.js} +1 -1
  296. package/web-shell/assets/{pegDiagram-XKGWAZYB-D1JZlYXL.js → pegDiagram-XKGWAZYB-BJPuvlpi.js} +1 -1
  297. package/web-shell/assets/{pieDiagram-E7YTZNPT-BmkpYL0w.js → pieDiagram-E7YTZNPT-D01VkNsW.js} +1 -1
  298. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-DRvD6co5.js → quadrantDiagram-AXDQQJYC-C4hHsiv-.js} +1 -1
  299. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CEdjDuoo.js → railroadDiagram-O6MQD6OU-CuEO4xK2.js} +1 -1
  300. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BCHG-ie8.js → requirementDiagram-EFPCY7ZU-D5J_vIo5.js} +1 -1
  301. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C9cZMnye.js → sankeyDiagram-P5KCCOFB-DQKY223V.js} +1 -1
  302. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DYHRV4zL.js → sequenceDiagram-WJ2MYXX4-D27YV_cm.js} +1 -1
  303. package/web-shell/assets/{sizeCapture-X5ZJPWSS-DlK21aye.js → sizeCapture-X5ZJPWSS-TJg8UcwV.js} +1 -1
  304. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BrmZssvk.js → stateDiagram-HBIQ2CUA-CmnPzUIx.js} +1 -1
  305. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +1 -0
  306. package/web-shell/assets/{swimlanes-XN3QIQJK-D9xfcayR.js → swimlanes-XN3QIQJK-ByeP3_Nu.js} +1 -1
  307. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ZL1HPC6w.js +8 -0
  308. package/web-shell/assets/{timeline-definition-24CTP7MA-D4gdDL_d.js → timeline-definition-24CTP7MA-BsFA5juR.js} +1 -1
  309. package/web-shell/assets/{vennDiagram-4TSXK5OY-DdhIExjI.js → vennDiagram-4TSXK5OY-DREP2ECo.js} +1 -1
  310. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9RS_Zof.js → wardleyDiagram-VM6X3IG4-iyd9lKi2.js} +1 -1
  311. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-orRgmxWk.js → xychartDiagram-S5SC5T6Z-CVr1_j9q.js} +1 -1
  312. package/web-shell/index.html +3 -3
  313. package/chunks/chunk-7DJCPZE3.js +0 -945
  314. package/chunks/chunk-J2OSJFP3.js +0 -202
  315. package/chunks/chunk-K2OJUPOE.js +0 -78
  316. package/chunks/chunk-P3QQPMQA.js +0 -19
  317. package/chunks/process-registry-PMJOA5CO.js +0 -172
  318. package/web-shell/assets/channel-CENAhErJ.js +0 -1
  319. package/web-shell/assets/classDiagram-DTDB5LWJ-CM6FArGH.js +0 -1
  320. package/web-shell/assets/classDiagram-v2-JRS7N3AN-CM6FArGH.js +0 -1
  321. package/web-shell/assets/index-8hXIpvo4.js +0 -1865
  322. package/web-shell/assets/index-DclEv91i.css +0 -5
  323. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-B2Q7XDaE.js +0 -1
  324. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DpZPOSbX.js +0 -8
@@ -3,12 +3,12 @@
3
3
  import {
4
4
  computeCpuPercent
5
5
  } from "./chunk-LBOVL47Y.js";
6
- import {
7
- RUNTIME_STARTUP_CANCELLED_MESSAGE
8
- } from "./chunk-QUPXZXLV.js";
9
6
  import {
10
7
  resolveServeToken
11
8
  } from "./chunk-ZELCTN6Y.js";
9
+ import {
10
+ RUNTIME_STARTUP_CANCELLED_MESSAGE
11
+ } from "./chunk-QUPXZXLV.js";
12
12
  import {
13
13
  ACCESS_LOG_CONTROLLER_LOCAL,
14
14
  CAPABILITIES_SCHEMA_VERSION,
@@ -38,25 +38,31 @@ import {
38
38
  positiveFiniteOrNull,
39
39
  prepareManagedScratchRoot,
40
40
  resolveAcpHttpEnabled,
41
- setDeferredRuntimeRequestTiming,
42
41
  toDaemonStatusMemoryLimits
43
- } from "./chunk-F6FV3C5K.js";
42
+ } from "./chunk-4NDLQAY2.js";
44
43
  import {
45
44
  ConversationDirectoryIdentityError,
46
45
  assertExactConversationRootIdentity,
47
46
  createConversationRootIdentity,
47
+ getConversationDirectoryName,
48
+ getConversationStagedDirectoryName,
48
49
  inspectConversationDirectoryIdentity,
50
+ inspectConversationStagedDirectoryIdentity,
51
+ isSameConversationDirectoryObject,
49
52
  materializeConversationDirectoryIdentity,
50
53
  revalidateConversationRootIdentity
51
- } from "./chunk-T3WXYEZ4.js";
54
+ } from "./chunk-U54AYGEC.js";
55
+ import {
56
+ isLoopbackBind
57
+ } from "./chunk-RXFQM6FQ.js";
52
58
  import {
53
59
  formatMemoryBudgetStderr,
54
60
  resolveDaemonMemoryBudget,
55
61
  serveJournalGrowthPoolMb
56
62
  } from "./chunk-UXEO7E3V.js";
57
63
  import {
58
- isLoopbackBind
59
- } from "./chunk-RXFQM6FQ.js";
64
+ setDeferredRuntimeRequestTiming
65
+ } from "./chunk-SEONHUS3.js";
60
66
  import {
61
67
  normalizeSessionIdForLookup
62
68
  } from "./chunk-ZEZKIS2K.js";
@@ -81,7 +87,7 @@ import {
81
87
  } from "./chunk-FBX2SDQ4.js";
82
88
  import {
83
89
  resolveChannelCwd
84
- } from "./chunk-7JPW6IYH.js";
90
+ } from "./chunk-HVC3PNVC.js";
85
91
  import {
86
92
  LIVE_HOST_PROTOCOL_VERSION
87
93
  } from "./chunk-NKLP3DCK.js";
@@ -92,13 +98,13 @@ import {
92
98
  consumeServeFastPathRejectedLoaderKeys,
93
99
  loadServeFastPathSettings,
94
100
  preResolveServeFastPathHomeEnvOverrides
95
- } from "./chunk-TWSKM647.js";
101
+ } from "./chunk-T7KMERIX.js";
96
102
  import {
97
103
  MAX_REGISTERED_WORKSPACES,
98
104
  resolveWorkspaceInputs,
99
105
  workspaceRegistrationId
100
- } from "./chunk-77RG5SFQ.js";
101
- import "./chunk-43UYNAWX.js";
106
+ } from "./chunk-TEBDFQBZ.js";
107
+ import "./chunk-G6FECKTJ.js";
102
108
  import {
103
109
  LOAD_REPLAY_META_KEY
104
110
  } from "./chunk-OZ6KS6KW.js";
@@ -110,22 +116,22 @@ import {
110
116
  import {
111
117
  ExtraCaInspectionError,
112
118
  loadableCertificates
113
- } from "./chunk-4HV6HH33.js";
119
+ } from "./chunk-ISKH4QX3.js";
114
120
  import "./chunk-FYJ7W2PI.js";
115
121
  import "./chunk-Z7B6SRPM.js";
116
122
  import {
117
123
  ChannelWebhookEnqueueError
118
124
  } from "./chunk-STUJ7IMZ.js";
125
+ import {
126
+ QWEN_SERVER_TOKEN_ENV
127
+ } from "./chunk-GYTKQYDB.js";
119
128
  import {
120
129
  normalizeWorkerDiagnostic,
121
130
  sanitizeWorkerDiagnostic
122
- } from "./chunk-JVPFTDBK.js";
131
+ } from "./chunk-RFIDDFAL.js";
123
132
  import {
124
133
  channelSelectionNames
125
134
  } from "./chunk-ALMR3E6Q.js";
126
- import {
127
- QWEN_SERVER_TOKEN_ENV
128
- } from "./chunk-GYTKQYDB.js";
129
135
  import {
130
136
  ChannelDeliveryError,
131
137
  isChannelDeliveryError
@@ -144,7 +150,7 @@ import {
144
150
  } from "./chunk-5HBA2Z7V.js";
145
151
  import {
146
152
  sanitizeLogText
147
- } from "./chunk-E55H6BZ7.js";
153
+ } from "./chunk-ICURCKIU.js";
148
154
  import "./chunk-IW6RQPQB.js";
149
155
  import "./chunk-GOXKNSDZ.js";
150
156
  import {
@@ -156,10 +162,10 @@ import {
156
162
  clearLoaderKeyRejectionReporterIfCurrent,
157
163
  scrubInheritedLoaderEnv,
158
164
  setLoaderKeyRejectionReporter
159
- } from "./chunk-5PA6UEYA.js";
165
+ } from "./chunk-MZCJWS5Y.js";
160
166
  import {
161
167
  getCliVersion
162
- } from "./chunk-7UYV53BC.js";
168
+ } from "./chunk-Q2MSPKIJ.js";
163
169
  import "./chunk-W3N5XAZ6.js";
164
170
  import "./chunk-NPQ5ZKRP.js";
165
171
  import {
@@ -182,7 +188,7 @@ import "./chunk-JVEGA3MM.js";
182
188
  import {
183
189
  writeStderrLine,
184
190
  writeStdoutLine
185
- } from "./chunk-KGJGEEVR.js";
191
+ } from "./chunk-7FA2II6K.js";
186
192
  import "./chunk-DMTGGOSA.js";
187
193
  import "./chunk-YQ3U5MUC.js";
188
194
  import {
@@ -620,11 +626,11 @@ async function ensureRealDirectory(fs2, dirPath, mutationAllowed = () => true) {
620
626
  __name(ensureRealDirectory, "ensureRealDirectory");
621
627
  async function activeFileSize(fs2, activePath) {
622
628
  try {
623
- const stat = await fs2.lstat(activePath);
624
- if (!stat.isFile() || stat.isSymbolicLink()) {
629
+ const stat2 = await fs2.lstat(activePath);
630
+ if (!stat2.isFile() || stat2.isSymbolicLink()) {
625
631
  throw new Error(`${activePath} is not a regular file`);
626
632
  }
627
- return stat.size;
633
+ return stat2.size;
628
634
  } catch (error) {
629
635
  if (isErrno(error, "ENOENT")) return 0;
630
636
  throw error;
@@ -1045,8 +1051,8 @@ __name(closeFallbackFamily, "closeFallbackFamily");
1045
1051
  async function cleanupFallbacksBestEffort(input) {
1046
1052
  const runsDir = nodePath.join(input.daemonDir, "runs");
1047
1053
  try {
1048
- const stat = await input.fs.lstat(runsDir);
1049
- if (!stat.isDirectory() || stat.isSymbolicLink()) {
1054
+ const stat2 = await input.fs.lstat(runsDir);
1055
+ if (!stat2.isDirectory() || stat2.isSymbolicLink()) {
1050
1056
  throw new Error(`${runsDir} is not a real directory`);
1051
1057
  }
1052
1058
  } catch (error) {
@@ -1768,9 +1774,10 @@ __name(initDaemonLogger, "initDaemonLogger");
1768
1774
 
1769
1775
  // packages/cli/src/serve/conversations/conversation-workspace.ts
1770
1776
  init_esbuild_shims();
1771
- import { readdir, rmdir } from "node:fs/promises";
1777
+ import { constants as fsConstants } from "node:fs";
1778
+ import { open, readdir, rename, rm, rmdir, stat } from "node:fs/promises";
1772
1779
  import { homedir } from "node:os";
1773
- import { resolve } from "node:path";
1780
+ import { join as join2, resolve } from "node:path";
1774
1781
  function liveIdentityError(error, exactRoot = false, creatingRoot = false) {
1775
1782
  if (!(error instanceof ConversationDirectoryIdentityError)) throw error;
1776
1783
  if (error.reason === "io_error" && error.cause !== void 0) {
@@ -2012,6 +2019,171 @@ var ConversationWorkspace = class {
2012
2019
  throw error;
2013
2020
  }
2014
2021
  }
2022
+ async inspectStandaloneDeletionPaths(storageSessionId, expected) {
2023
+ const root = await this.revalidateStandaloneRoot();
2024
+ try {
2025
+ const normal = await inspectConversationDirectoryIdentity(
2026
+ root,
2027
+ storageSessionId
2028
+ );
2029
+ const staged = await inspectConversationStagedDirectoryIdentity(
2030
+ root,
2031
+ storageSessionId
2032
+ );
2033
+ if (normal && staged) {
2034
+ throw new ConversationDirectoryIdentityError(
2035
+ "child",
2036
+ "unexpected_identity"
2037
+ );
2038
+ }
2039
+ const identity = normal ?? staged;
2040
+ if (identity && expected && !isSameConversationDirectoryObject(identity, expected)) {
2041
+ throw new ConversationDirectoryIdentityError(
2042
+ "child",
2043
+ "unexpected_identity"
2044
+ );
2045
+ }
2046
+ if (normal) return { status: "normal", identity: normal };
2047
+ if (staged) return { status: "staged", identity: staged };
2048
+ return { status: "absent" };
2049
+ } catch (error) {
2050
+ if (error instanceof ConversationDirectoryIdentityError && error.scope === "child") {
2051
+ return { status: "compromised", error };
2052
+ }
2053
+ throw error;
2054
+ }
2055
+ }
2056
+ async createStandaloneDeletionExpectation(storageSessionId, recorded) {
2057
+ if (recorded.inodeVerifiable !== (recorded.inode !== 0)) {
2058
+ throw new ConversationDirectoryIdentityError(
2059
+ "child",
2060
+ "unexpected_identity"
2061
+ );
2062
+ }
2063
+ const root = await this.revalidateStandaloneRoot();
2064
+ const name = getConversationDirectoryName(storageSessionId);
2065
+ return {
2066
+ root,
2067
+ storageSessionId,
2068
+ name,
2069
+ canonicalPath: join2(root.canonicalRoot, name),
2070
+ device: recorded.device,
2071
+ inode: recorded.inode
2072
+ };
2073
+ }
2074
+ async stageStandaloneDirectory(storageSessionId, expected) {
2075
+ const inspected = await this.inspectStandaloneDeletionPaths(
2076
+ storageSessionId,
2077
+ expected
2078
+ );
2079
+ if (inspected.status === "compromised") throw inspected.error;
2080
+ if (inspected.status !== "normal") {
2081
+ throw new ConversationDirectoryIdentityError("child", "identity_changed");
2082
+ }
2083
+ const root = await this.revalidateStandaloneRoot();
2084
+ await rename(
2085
+ inspected.identity.canonicalPath,
2086
+ join2(
2087
+ root.canonicalRoot,
2088
+ getConversationStagedDirectoryName(storageSessionId)
2089
+ )
2090
+ );
2091
+ await revalidateConversationRootIdentity(root);
2092
+ const staged = await inspectConversationStagedDirectoryIdentity(
2093
+ root,
2094
+ storageSessionId
2095
+ );
2096
+ if (!staged || !isSameConversationDirectoryObject(staged, inspected.identity)) {
2097
+ throw new ConversationDirectoryIdentityError("child", "identity_changed");
2098
+ }
2099
+ await this.syncStandaloneRoot(root);
2100
+ return staged;
2101
+ }
2102
+ async restoreStagedStandaloneDirectory(storageSessionId, expected) {
2103
+ const inspected = await this.inspectStandaloneDeletionPaths(
2104
+ storageSessionId,
2105
+ expected
2106
+ );
2107
+ if (inspected.status === "compromised") throw inspected.error;
2108
+ if (inspected.status !== "staged") {
2109
+ throw new ConversationDirectoryIdentityError("child", "identity_changed");
2110
+ }
2111
+ const root = await this.revalidateStandaloneRoot();
2112
+ await rename(
2113
+ inspected.identity.canonicalPath,
2114
+ join2(root.canonicalRoot, getConversationDirectoryName(storageSessionId))
2115
+ );
2116
+ await revalidateConversationRootIdentity(root);
2117
+ const restored = await inspectConversationDirectoryIdentity(
2118
+ root,
2119
+ storageSessionId
2120
+ );
2121
+ if (!restored || !isSameConversationDirectoryObject(restored, inspected.identity)) {
2122
+ throw new ConversationDirectoryIdentityError("child", "identity_changed");
2123
+ }
2124
+ await this.syncStandaloneRoot(root);
2125
+ return restored;
2126
+ }
2127
+ async removeStagedStandaloneDirectory(storageSessionId, expected) {
2128
+ const inspected = await this.inspectStandaloneDeletionPaths(
2129
+ storageSessionId,
2130
+ expected
2131
+ );
2132
+ if (inspected.status === "compromised") throw inspected.error;
2133
+ if (inspected.status !== "staged") {
2134
+ throw new ConversationDirectoryIdentityError("child", "identity_changed");
2135
+ }
2136
+ const confirmed = await inspectConversationStagedDirectoryIdentity(
2137
+ inspected.identity.root,
2138
+ storageSessionId
2139
+ );
2140
+ if (!confirmed || !isSameConversationDirectoryObject(confirmed, inspected.identity)) {
2141
+ throw new ConversationDirectoryIdentityError("child", "identity_changed");
2142
+ }
2143
+ await rm(confirmed.canonicalPath, { recursive: true });
2144
+ await this.syncStandaloneRoot(confirmed.root);
2145
+ }
2146
+ async confirmStandaloneRootDurability(root) {
2147
+ await this.syncStandaloneRoot(root);
2148
+ }
2149
+ async syncStandaloneRoot(root) {
2150
+ await revalidateConversationRootIdentity(root);
2151
+ let handle;
2152
+ try {
2153
+ handle = await open(
2154
+ root.canonicalRoot,
2155
+ fsConstants.O_RDONLY | (process.platform === "win32" ? 0 : fsConstants.O_NOFOLLOW ?? 0)
2156
+ );
2157
+ const stats = await handle.stat();
2158
+ const inodeVerifiable = Number.isSafeInteger(stats.ino) && stats.ino > 0;
2159
+ if (!stats.isDirectory() || stats.dev !== root.device || inodeVerifiable !== root.inodeVerifiable || root.inodeVerifiable && stats.ino !== root.inode) {
2160
+ throw new ConversationDirectoryIdentityError(
2161
+ "root",
2162
+ "identity_changed"
2163
+ );
2164
+ }
2165
+ try {
2166
+ await handle.sync();
2167
+ } catch (error) {
2168
+ if (process.platform !== "win32" || !["EACCES", "EINVAL", "EPERM"].includes(
2169
+ error.code ?? ""
2170
+ )) {
2171
+ throw error;
2172
+ }
2173
+ }
2174
+ const current = await stat(root.canonicalRoot);
2175
+ const currentInodeVerifiable = Number.isSafeInteger(current.ino) && current.ino > 0;
2176
+ if (!current.isDirectory() || current.dev !== root.device || currentInodeVerifiable !== root.inodeVerifiable || root.inodeVerifiable && current.ino !== root.inode) {
2177
+ throw new ConversationDirectoryIdentityError(
2178
+ "root",
2179
+ "identity_changed"
2180
+ );
2181
+ }
2182
+ } finally {
2183
+ await handle?.close().catch(() => void 0);
2184
+ }
2185
+ await revalidateConversationRootIdentity(root);
2186
+ }
2015
2187
  };
2016
2188
 
2017
2189
  // packages/cli/src/serve/daemon-metrics-ring.ts
@@ -3566,12 +3738,12 @@ __name(hasRetryableChannelWorkerShutdownError, "hasRetryableChannelWorkerShutdow
3566
3738
  var channelWorkerRuntimePromise;
3567
3739
  async function loadChannelWorkerRuntime() {
3568
3740
  channelWorkerRuntimePromise ??= Promise.all([
3569
- import("./channel-worker-supervisor-UEW2WWCC.js"),
3570
- import("./pidfile-JMF2CLMY.js"),
3571
- import("./runtime-TTIGSBM4.js"),
3741
+ import("./channel-worker-supervisor-FKU7DIHJ.js"),
3742
+ import("./pidfile-QOIQZFT2.js"),
3743
+ import("./runtime-HK27GMPF.js"),
3572
3744
  import("./cli-entry-path-4VJ3Y6T2.js"),
3573
- import("./channel-worker-group-27HMGD5S.js"),
3574
- import("./channel-worker-manager-QEGX646Z.js")
3745
+ import("./channel-worker-group-6NA6BBZV.js"),
3746
+ import("./channel-worker-manager-NEZ2J6RK.js")
3575
3747
  ]).then(
3576
3748
  ([
3577
3749
  supervisor,
@@ -3677,7 +3849,7 @@ function shouldPreheatBridge(deps) {
3677
3849
  __name(shouldPreheatBridge, "shouldPreheatBridge");
3678
3850
  var coreRuntimePromise;
3679
3851
  function loadCoreRuntime() {
3680
- coreRuntimePromise ??= import("./core-runtime-677KFX6Q.js");
3852
+ coreRuntimePromise ??= import("./core-runtime-AXB6SK5D.js");
3681
3853
  return coreRuntimePromise;
3682
3854
  }
3683
3855
  __name(loadCoreRuntime, "loadCoreRuntime");
@@ -3713,10 +3885,10 @@ __name(resolveDaemonLogBaseDirForRun, "resolveDaemonLogBaseDirForRun");
3713
3885
  var settingsRuntimePromise;
3714
3886
  function loadSettingsRuntimeModules() {
3715
3887
  settingsRuntimePromise ??= Promise.all([
3716
- import("./settings-VOZYKLTT.js"),
3717
- import("./environment-MOZMPUHR.js"),
3718
- import("./loadedSettingsAdapter-7Y7IEI6T.js"),
3719
- import("./trustedFolders-7OCNMUQE.js")
3888
+ import("./settings-L6N54CU6.js"),
3889
+ import("./environment-UANTR7A4.js"),
3890
+ import("./loadedSettingsAdapter-KJCLZ3C4.js"),
3891
+ import("./trustedFolders-FATSC4YI.js")
3720
3892
  ]).then(([settings, environment, loadedSettingsAdapter, trustedFolders]) => ({
3721
3893
  settings,
3722
3894
  environment,
@@ -3729,8 +3901,8 @@ __name(loadSettingsRuntimeModules, "loadSettingsRuntimeModules");
3729
3901
  var channelWebhookConfigRuntimePromise;
3730
3902
  function loadChannelWebhookConfigRuntime() {
3731
3903
  channelWebhookConfigRuntimePromise ??= Promise.all([
3732
- import("./runtime-TTIGSBM4.js"),
3733
- import("./config-utils-BBOCOGZW.js")
3904
+ import("./runtime-HK27GMPF.js"),
3905
+ import("./config-utils-R6M3TA34.js")
3734
3906
  ]).then(([channelRuntime, configUtils]) => ({
3735
3907
  loadChannelsConfig: channelRuntime.loadChannelsConfig,
3736
3908
  parseChannelWebhookConfig: configUtils.parseChannelWebhookConfig
@@ -3756,18 +3928,18 @@ async function loadServeRuntimeModules() {
3756
3928
  workspaceRegistryModule,
3757
3929
  promptLedgerModule
3758
3930
  ] = await Promise.all([
3759
- import("./server-DFUSSSHI.js"),
3760
- import("./bridge-FKZTVIS3.js"),
3761
- import("./spawnChannel-F6WVP723.js"),
3762
- import("./process-registry-PMJOA5CO.js"),
3763
- import("./workspace-service-MUYO2QIC.js"),
3764
- import("./types-WYCFCEHR.js"),
3765
- import("./daemon-status-provider-RFKZOK3S.js"),
3766
- import("./workspace-providers-status-PDFZWL5Q.js"),
3767
- import("./workspace-skills-status-IKECTOOQ.js"),
3768
- import("./total-session-admission-HTVTP4BS.js"),
3769
- import("./workspace-registry-23R7XRB5.js"),
3770
- import("./prompt-terminal-ledger-DCZO6S7C.js")
3931
+ import("./server-GO2N5DH7.js"),
3932
+ import("./bridge-ME6QXZNA.js"),
3933
+ import("./spawnChannel-ZST6XJVJ.js"),
3934
+ import("./process-registry-OAEG6WGC.js"),
3935
+ import("./workspace-service-SIN67ITC.js"),
3936
+ import("./types-HKLPXZB3.js"),
3937
+ import("./daemon-status-provider-K3SJ5C2U.js"),
3938
+ import("./workspace-providers-status-IJ4VHFMB.js"),
3939
+ import("./workspace-skills-status-F3RKCUIX.js"),
3940
+ import("./total-session-admission-PVN64JVV.js"),
3941
+ import("./workspace-registry-BTGZIMPK.js"),
3942
+ import("./prompt-terminal-ledger-FOMFTYOM.js")
3771
3943
  ]);
3772
3944
  return {
3773
3945
  createServeApp: serverModule.createServeApp,
@@ -3780,7 +3952,6 @@ async function loadServeRuntimeModules() {
3780
3952
  ProcessRegistry: processRegistryModule.ProcessRegistry,
3781
3953
  createDaemonWorkspaceService: workspaceModule.createDaemonWorkspaceService,
3782
3954
  WorkspaceSettingsPartialPersistError: workspaceTypesModule.WorkspaceSettingsPartialPersistError,
3783
- WorkspaceSkillNotToggleableError: workspaceTypesModule.WorkspaceSkillNotToggleableError,
3784
3955
  createDaemonStatusProvider: daemonStatusProviderModule.createDaemonStatusProvider,
3785
3956
  createWorkspaceProvidersStatusProvider: workspaceProvidersStatusModule.createWorkspaceProvidersStatusProvider,
3786
3957
  createWorkspaceSkillsStatusProvider: workspaceSkillsStatusModule.createWorkspaceSkillsStatusProvider,
@@ -4813,7 +4984,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4813
4984
  }
4814
4985
  let workspaceRegistrationStore = deps.workspaceRegistrationStore;
4815
4986
  if (workspaceRegistrationStore === void 0 && process.env["QWEN_SERVE_NO_PERSISTENT_REGISTRATION"] !== "1") {
4816
- const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-XKVW2YVH.js");
4987
+ const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-SMJWI2AI.js");
4817
4988
  workspaceRegistrationStore = new WorkspaceRegistrationStore(boundWorkspace);
4818
4989
  }
4819
4990
  if (workspaceRegistrationStore) {
@@ -5097,7 +5268,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5097
5268
  "qwen serve: required external tool guard handshake succeeded."
5098
5269
  );
5099
5270
  }
5100
- const { createDaemonToolGuard } = await import("./daemon-git-worktree-guard-6MVAAZZZ.js");
5271
+ const { createDaemonToolGuard } = await import("./daemon-git-worktree-guard-IVAJJWYK.js");
5101
5272
  const daemonToolGuardHandler = createDaemonToolGuard(
5102
5273
  externalToolGuardHandler
5103
5274
  );
@@ -5166,6 +5337,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5166
5337
  const internalRuntimeBridgesForCleanup = [];
5167
5338
  let daemonEventLoopMonitor;
5168
5339
  let daemonMetricsSampler;
5340
+ let sessionPrRefreshTimer;
5341
+ let sessionPrRefreshGeneration = 0;
5169
5342
  let runtimeStartupError;
5170
5343
  let runtimeStarting;
5171
5344
  let markRuntimeReady;
@@ -5185,6 +5358,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5185
5358
  daemonEventLoopMonitor = void 0;
5186
5359
  const metricsSampler = daemonMetricsSampler;
5187
5360
  daemonMetricsSampler = void 0;
5361
+ const prRefreshTimer = sessionPrRefreshTimer;
5362
+ sessionPrRefreshTimer = void 0;
5363
+ sessionPrRefreshGeneration += 1;
5364
+ prRefreshTimer?.dispose();
5188
5365
  try {
5189
5366
  eventLoopMonitor?.dispose();
5190
5367
  } catch (err) {
@@ -5369,6 +5546,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5369
5546
  stopSafely("scheduled-task keepalive", locals.stopScheduledTaskKeepalive);
5370
5547
  stopSafely("workspace git state", locals.stopWorkspaceGitState);
5371
5548
  stopSafely("Live Host coordinator", locals.stopLiveCoordinator);
5549
+ stopSafely("web terminal registry", locals.stopWebTerminalRegistry);
5372
5550
  stopTrustPolicyMonitor(app2);
5373
5551
  for (const stop of locals.subSessionStoppers ?? []) {
5374
5552
  stopSafely("sub-session launcher", stop);
@@ -5436,7 +5614,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5436
5614
  loadCoreRuntime(),
5437
5615
  loadSettingsRuntimeModules(),
5438
5616
  cliVersionPromise,
5439
- import("./daemon-trust-policy-DRZPFB4Q.js")
5617
+ import("./daemon-trust-policy-DOR3YG62.js")
5440
5618
  ]);
5441
5619
  cliVersion = resolvedCliVersion;
5442
5620
  settingsRuntime.environment.preResolveHomeEnvOverrides();
@@ -5812,18 +5990,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5812
5990
  resolveSkillSettings,
5813
5991
  skillSettingStrings,
5814
5992
  updateWorkspaceSkillSettingLists
5815
- } = await import("./skill-settings-VA4XVYVL.js");
5993
+ } = await import("./skill-settings-ZL4JY5UE.js");
5816
5994
  const fresh = loadSettingsForPersistence(workspace);
5817
5995
  const normalizedName = skillName.trim().toLowerCase();
5818
5996
  const resolved = resolveSkillSettings(fresh);
5819
- const disablement = resolved.disablements.get(normalizedName);
5820
- if (disablement?.reason === "hard" && disablement.lockedScope) {
5821
- throw new runtime.WorkspaceSkillNotToggleableError(
5822
- skillName,
5823
- "locked",
5824
- disablement.lockedScope
5825
- );
5826
- }
5827
5997
  const workspaceDisabled = skillSettingStrings(
5828
5998
  fresh,
5829
5999
  WORKSPACE_SETTING_SCOPE,
@@ -5877,7 +6047,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5877
6047
  resolveSkillSettings,
5878
6048
  skillSettingStrings,
5879
6049
  updateWorkspaceSkillSettingLists
5880
- } = await import("./skill-settings-VA4XVYVL.js");
6050
+ } = await import("./skill-settings-ZL4JY5UE.js");
5881
6051
  const fresh = loadSettingsForPersistence(workspace);
5882
6052
  const resolved = resolveSkillSettings(fresh);
5883
6053
  const initialDisabled = skillSettingStrings(
@@ -5894,18 +6064,6 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5894
6064
  const outcomes = [];
5895
6065
  for (const skillName of skillNames) {
5896
6066
  const normalizedName = skillName.trim().toLowerCase();
5897
- const disablement = resolved.disablements.get(normalizedName);
5898
- if (disablement?.reason === "hard" && disablement.lockedScope) {
5899
- outcomes.push({
5900
- skillName,
5901
- error: new runtime.WorkspaceSkillNotToggleableError(
5902
- skillName,
5903
- "locked",
5904
- disablement.lockedScope
5905
- )
5906
- });
5907
- continue;
5908
- }
5909
6067
  const updated = updateWorkspaceSkillSettingLists(
5910
6068
  next,
5911
6069
  skillName,
@@ -5983,8 +6141,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5983
6141
  }
5984
6142
  }), "persistSettingsFn");
5985
6143
  const [{ createSubSessionLauncher }, scheduledTaskRoutes] = await Promise.all([
5986
- import("./create-sub-session-JKZAYZX7.js"),
5987
- import("./scheduled-tasks-QB4ZVUQS.js")
6144
+ import("./create-sub-session-4QNE64MR.js"),
6145
+ import("./scheduled-tasks-MN2ZZ5P6.js")
5988
6146
  ]);
5989
6147
  const createCurrentSessionScheduledTaskHandler = /* @__PURE__ */ __name((workspaceCwd, runtimeBaseDir, getBridge, assertGenerationOpen) => async ({
5990
6148
  callerSessionId,
@@ -6680,6 +6838,22 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6680
6838
  metricsLoopDelay.disable();
6681
6839
  }
6682
6840
  };
6841
+ sessionPrRefreshTimer?.dispose();
6842
+ const refreshGeneration = ++sessionPrRefreshGeneration;
6843
+ void import("./session-pr-refresh-I3UBWMVP.js").then((mod) => {
6844
+ if (refreshGeneration !== sessionPrRefreshGeneration) return;
6845
+ sessionPrRefreshTimer = mod.startSessionPrRefreshTimer({
6846
+ workspaceRegistry,
6847
+ // The coordinator lives on the serve app (createServeApp below),
6848
+ // which is built after this timer starts; read it per tick like
6849
+ // the metrics sampler reads `acpHandle`.
6850
+ getArchiveCoordinator: /* @__PURE__ */ __name(() => app2.locals.sessionArchiveCoordinator, "getArchiveCoordinator")
6851
+ });
6852
+ }).catch((error) => {
6853
+ daemonLog.warn(
6854
+ `session-pr-refresh load failed: ${error instanceof Error ? error.message : String(error)}`
6855
+ );
6856
+ });
6683
6857
  const createDynamicWorkspaceRuntime = /* @__PURE__ */ __name(async (cwd, buildOptions) => {
6684
6858
  const provenance = buildOptions?.provenance ?? "existing";
6685
6859
  if (provenance === "managed-scratch" && (!managedScratchRoot || !isManagedScratchChild(cwd, managedScratchRoot.canonicalRoot))) {
@@ -7177,6 +7351,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7177
7351
  const app3 = serveAppForRuntimeLifecycle.current ?? runtimeApp ?? runtimeAppForCleanup;
7178
7352
  const stopWorkspaceGitStateForWorkspace = app3?.locals?.["stopWorkspaceGitStateForWorkspace"];
7179
7353
  const stopScheduledTaskKeepaliveForWorkspace = app3?.locals?.["stopScheduledTaskKeepaliveForWorkspace"];
7354
+ const releaseWebTerminalsForWorkspace = app3?.locals?.["releaseWebTerminalsForWorkspace"];
7180
7355
  try {
7181
7356
  stopWorkspaceGitStateForWorkspace?.(runtimeToDrain.workspaceCwd);
7182
7357
  } catch (err) {
@@ -7195,6 +7370,14 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7195
7370
  err instanceof Error ? err : null
7196
7371
  );
7197
7372
  }
7373
+ try {
7374
+ releaseWebTerminalsForWorkspace?.(runtimeToDrain.workspaceCwd);
7375
+ } catch (err) {
7376
+ daemonLog.error(
7377
+ "workspace web-terminal cleanup error",
7378
+ err instanceof Error ? err : null
7379
+ );
7380
+ }
7198
7381
  }
7199
7382
  let bridgeStopped = false;
7200
7383
  try {
@@ -7266,8 +7449,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7266
7449
  { createChannelManagementService },
7267
7450
  { WorkspaceChannelSettingsStore }
7268
7451
  ] = await Promise.all([
7269
- import("./channel-management-service-X4AZ6IXX.js"),
7270
- import("./channel-settings-store-4UFCLBBG.js")
7452
+ import("./channel-management-service-HQ6KDS7C.js"),
7453
+ import("./channel-settings-store-PEOI7XCG.js")
7271
7454
  ]);
7272
7455
  return createChannelManagementService({
7273
7456
  workspaceCwd: targetRuntime.workspaceCwd,
@@ -7472,8 +7655,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7472
7655
  { createWorkspaceTrustReconciler },
7473
7656
  { createDaemonTrustPolicyMonitor }
7474
7657
  ] = await Promise.all([
7475
- import("./workspace-trust-reconciler-KLGOB53D.js"),
7476
- import("./daemon-trust-policy-monitor-B5U6TQX5.js")
7658
+ import("./workspace-trust-reconciler-PLIDLJZX.js"),
7659
+ import("./daemon-trust-policy-monitor-KGGROSIV.js")
7477
7660
  ]);
7478
7661
  const materializationFor = /* @__PURE__ */ __name((entry, snapshot, decision) => {
7479
7662
  const boundWorkspaces2 = entry.primary && decision.targetTrusted ? runtime.resolveBoundWorkspacesFromIdeEnv(
@@ -7669,7 +7852,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7669
7852
  // through (and start the runtime) exactly like the warm app would.
7670
7853
  // Dynamic import keeps web-shell-static out of the serve fast-path
7671
7854
  // static closure (see the import-boundary guards in fast-path.test.ts).
7672
- isPreAuthRequest: webShellMounted ? (req) => import("./web-shell-static-A6QMUNNV.js").then(
7855
+ isPreAuthRequest: webShellMounted ? (req) => import("./web-shell-static-HNB4FDOE.js").then(
7673
7856
  (webShellStatic) => webShellStatic.isPreAuthWebShellRequest(req)
7674
7857
  ) : void 0
7675
7858
  });
@@ -7689,7 +7872,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7689
7872
  );
7690
7873
  }
7691
7874
  const channelValidationSettingsRuntime = opts.channelSelection ? await loadSettingsRuntimeModules() : void 0;
7692
- const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-DRZPFB4Q.js") : void 0;
7875
+ const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-DOR3YG62.js") : void 0;
7693
7876
  const channelValidationTrustSnapshot = channelValidationTrustPolicy ? await channelValidationTrustPolicy.readDaemonTrustPolicySnapshot() : void 0;
7694
7877
  const resolveChannelWorkspaceGroupsAtListen = /* @__PURE__ */ __name(() => {
7695
7878
  if (!opts.channelSelection || !channelValidationSettingsRuntime || !channelRuntime) {
@@ -8577,6 +8760,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8577
8760
  if (!preserveSignalHandlers) {
8578
8761
  process.removeListener("SIGINT", onSignal);
8579
8762
  process.removeListener("SIGTERM", onSignal);
8763
+ process.removeListener("SIGHUP", onSignal);
8580
8764
  }
8581
8765
  process.removeListener(
8582
8766
  "uncaughtExceptionMonitor",
@@ -8796,6 +8980,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8796
8980
  }
8797
8981
  process.on("SIGINT", onSignal);
8798
8982
  process.on("SIGTERM", onSignal);
8983
+ process.on("SIGHUP", onSignal);
8799
8984
  process.on("uncaughtExceptionMonitor", onUncaughtExceptionMonitor);
8800
8985
  server.on("error", (err) => {
8801
8986
  daemonLog.error("server error", err instanceof Error ? err : null);