@dylanpiercey/work 0.0.86 → 0.0.87

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 (244) hide show
  1. package/dist/{_BDBtGsdY.js → _CGQWSq7x.js} +289 -255
  2. package/dist/{_D5j6bTJl.js → _DA4jJP-k.js} +77 -70
  3. package/dist/index.mjs +571 -403
  4. package/dist/public/assets/{_DlKqfl3x.js → _3pnM3GnR.js} +1 -1
  5. package/dist/public/assets/_3pnM3GnR.js.br +0 -0
  6. package/dist/public/assets/{_TNYXBRTD.js → _4-GSVnAN.js} +6 -6
  7. package/dist/public/assets/_4-GSVnAN.js.br +0 -0
  8. package/dist/public/assets/{_BneLpkUj.js → _B00t6Lqk.js} +1 -1
  9. package/dist/public/assets/_B00t6Lqk.js.br +0 -0
  10. package/dist/public/assets/{_CQ8XIG32.js → _B1bIs2_k.js} +1 -1
  11. package/dist/public/assets/_B1bIs2_k.js.br +0 -0
  12. package/dist/public/assets/{_DymTiS2l2.js → _B1lW0JwB2.js} +1 -1
  13. package/dist/public/assets/_B1lW0JwB2.js.br +0 -0
  14. package/dist/public/assets/{_ELEfU1ZJ2.js → _B85aTaqZ2.js} +1 -1
  15. package/dist/public/assets/_B85aTaqZ2.js.br +0 -0
  16. package/dist/public/assets/{_DLV-pFpn.js → _BAvf1cap.js} +1 -1
  17. package/dist/public/assets/_BAvf1cap.js.br +0 -0
  18. package/dist/public/assets/{_LIg4gQDB2.js → _BI2Swe_u2.js} +1 -1
  19. package/dist/public/assets/_BI2Swe_u2.js.br +0 -0
  20. package/dist/public/assets/{_CiyoX76R.js → _BJG4qcrP.js} +1 -1
  21. package/dist/public/assets/_BJG4qcrP.js.br +0 -0
  22. package/dist/public/assets/{_CekDvoOm2.js → _BQYp-OlQ2.js} +1 -1
  23. package/dist/public/assets/_BQYp-OlQ2.js.br +0 -0
  24. package/dist/public/assets/{_B_hYt6WL.js → _BRMTGLhC.js} +1 -1
  25. package/dist/public/assets/_BRMTGLhC.js.br +0 -0
  26. package/dist/public/assets/{_CXQb7FHW.js → _BT-gmkkS.js} +1 -1
  27. package/dist/public/assets/_BT-gmkkS.js.br +0 -0
  28. package/dist/public/assets/{_B38vzMde2.js → _BWyRK-vd2.js} +1 -1
  29. package/dist/public/assets/_BWyRK-vd2.js.br +0 -0
  30. package/dist/public/assets/{_RRBED5IT.js → _BYYz0lx8.js} +1 -1
  31. package/dist/public/assets/_BYYz0lx8.js.br +0 -0
  32. package/dist/public/assets/{_DxQEc7cj2.js → _B_Mbp4rL2.js} +1 -1
  33. package/dist/public/assets/{_CVI5Z1ap.js → _BbIL-U7Q.js} +1 -1
  34. package/dist/public/assets/_BbIL-U7Q.js.br +0 -0
  35. package/dist/public/assets/{_DtvBiqKq.js → _BblIDBxk.js} +1 -1
  36. package/dist/public/assets/_BblIDBxk.js.br +2 -0
  37. package/dist/public/assets/{_ZPETJBJo2.js → _Bc2XBH7E2.js} +1 -1
  38. package/dist/public/assets/_Bc2XBH7E2.js.br +0 -0
  39. package/dist/public/assets/{_BcLoolnz2.js → _Bf3K2pdL2.js} +1 -1
  40. package/dist/public/assets/_Bf3K2pdL2.js.br +0 -0
  41. package/dist/public/assets/{_oLZchIMS.js → _BfymrLUh.js} +1 -1
  42. package/dist/public/assets/_BfymrLUh.js.br +0 -0
  43. package/dist/public/assets/{_C_GySFna.js → _BiIzmSt-.js} +1 -1
  44. package/dist/public/assets/_BiIzmSt-.js.br +0 -0
  45. package/dist/public/assets/{_DIFhW7d2.js → _BmuJ1O9P.js} +1 -1
  46. package/dist/public/assets/_BmuJ1O9P.js.br +0 -0
  47. package/dist/public/assets/{_DHjOV863.js → _Bn5bz8Fw.js} +1 -1
  48. package/dist/public/assets/_Bn5bz8Fw.js.br +0 -0
  49. package/dist/public/assets/{_DbJsbj5D.js → _Bn8crSCH.js} +1 -1
  50. package/dist/public/assets/_Bn8crSCH.js.br +0 -0
  51. package/dist/public/assets/{_C669lqE1.js → _Bs60UQQp.js} +1 -1
  52. package/dist/public/assets/_Bs60UQQp.js.br +0 -0
  53. package/dist/public/assets/{_B7tW52ox2.js → _Bu0d16Gz2.js} +1 -1
  54. package/dist/public/assets/_Bu0d16Gz2.js.br +0 -0
  55. package/dist/public/assets/{_Bl32WbGR.js → _BuFvVDBW.js} +1 -1
  56. package/dist/public/assets/_BuFvVDBW.js.br +0 -0
  57. package/dist/public/assets/{_BE6VqQVA.js → _BuPlYdZf.js} +1 -1
  58. package/dist/public/assets/_BuPlYdZf.js.br +0 -0
  59. package/dist/public/assets/{_DfayPfGn.js → _BuxBV9KZ.js} +1 -1
  60. package/dist/public/assets/_BuxBV9KZ.js.br +1 -0
  61. package/dist/public/assets/{_D31bJ4DY.js → _BvYVSdj3.js} +1 -1
  62. package/dist/public/assets/_BvYVSdj3.js.br +0 -0
  63. package/dist/public/assets/{_CN4RWjdg.js → _BwubERfJ.js} +1 -1
  64. package/dist/public/assets/_BwubERfJ.js.br +0 -0
  65. package/dist/public/assets/{_BrHg1vmp2.js → _Bx-akz-g2.js} +1 -1
  66. package/dist/public/assets/_Bx-akz-g2.js.br +0 -0
  67. package/dist/public/assets/{_CXbfNROI.js → _C-6C490f.js} +1 -1
  68. package/dist/public/assets/_C-6C490f.js.br +0 -0
  69. package/dist/public/assets/{_BuVTK0nK.js → _C1jhh4rH.js} +1 -1
  70. package/dist/public/assets/_C1jhh4rH.js.br +0 -0
  71. package/dist/public/assets/{_IuMur5Ym.js → _C6ldYeFm.js} +1 -1
  72. package/dist/public/assets/_C6ldYeFm.js.br +0 -0
  73. package/dist/public/assets/{_BRgDp6dq2.js → _CCBfIvK-2.js} +1 -1
  74. package/dist/public/assets/_CCBfIvK-2.js.br +0 -0
  75. package/dist/public/assets/{_BpQROnKB.js → _CE47SDMW.js} +1 -1
  76. package/dist/public/assets/_CE47SDMW.js.br +0 -0
  77. package/dist/public/assets/{_DHQRi0uw2.js → _CKjR1BXt2.js} +1 -1
  78. package/dist/public/assets/_CKjR1BXt2.js.br +0 -0
  79. package/dist/public/assets/{_CR_N8Jxw2.js → _CYia-nz02.js} +1 -1
  80. package/dist/public/assets/_CYia-nz02.js.br +0 -0
  81. package/dist/public/assets/{_BqEupx9T.js → _CcrxW0kr.js} +1 -1
  82. package/dist/public/assets/_CcrxW0kr.js.br +0 -0
  83. package/dist/public/assets/{_CR7jZl_o.js → _Cf9cdsh0.js} +1 -1
  84. package/dist/public/assets/_Cf9cdsh0.js.br +0 -0
  85. package/dist/public/assets/{_4c6ZP_DE2.js → _Ciq2ywTg2.js} +1 -1
  86. package/dist/public/assets/_Ciq2ywTg2.js.br +0 -0
  87. package/dist/public/assets/{_Byj_kDek2.js → _Co8Ezvh22.js} +1 -1
  88. package/dist/public/assets/_Co8Ezvh22.js.br +0 -0
  89. package/dist/public/assets/{_BxhMnvoI2.js → _Cqjh6FxH2.js} +1 -1
  90. package/dist/public/assets/_Cqjh6FxH2.js.br +0 -0
  91. package/dist/public/assets/{_D8NtarGl2.js → _Csb4KIv-2.js} +1 -1
  92. package/dist/public/assets/_Csb4KIv-2.js.br +0 -0
  93. package/dist/public/assets/{_t1bRY80J.js → _CuyaYiRW.js} +1 -1
  94. package/dist/public/assets/_CuyaYiRW.js.br +0 -0
  95. package/dist/public/assets/{_BVR2bnH7.js → _CyefKW6N.js} +1 -1
  96. package/dist/public/assets/_CyefKW6N.js.br +0 -0
  97. package/dist/public/assets/{_HJ4l6yxN.js → _CyrJ6uCP.js} +1 -1
  98. package/dist/public/assets/_CyrJ6uCP.js.br +0 -0
  99. package/dist/public/assets/{_BdWFr75M2.js → _CzF3na4k2.js} +1 -1
  100. package/dist/public/assets/_CzF3na4k2.js.br +0 -0
  101. package/dist/public/assets/{_CUy49fiW.js → _D0GH7ugf.js} +1 -1
  102. package/dist/public/assets/_D0GH7ugf.js.br +0 -0
  103. package/dist/public/assets/{_Q62npO-T.js → _D273_csH.js} +1 -1
  104. package/dist/public/assets/_D273_csH.js.br +0 -0
  105. package/dist/public/assets/{_BjHYQyTW2.js → _D6nGNdbM2.js} +1 -1
  106. package/dist/public/assets/_D6nGNdbM2.js.br +0 -0
  107. package/dist/public/assets/{_B_iQ_vXs.js → _D8yBV-3W.js} +1 -1
  108. package/dist/public/assets/_D8yBV-3W.js.br +0 -0
  109. package/dist/public/assets/{_D7MBKQAt.js → _D9FyVasE.js} +1 -1
  110. package/dist/public/assets/_D9FyVasE.js.br +0 -0
  111. package/dist/public/assets/{_8DabaQc42.js → _DBN-ARTK2.js} +1 -1
  112. package/dist/public/assets/_DBN-ARTK2.js.br +0 -0
  113. package/dist/public/assets/{_B6HRx3mv.js → _DF7p8NtB.js} +1 -1
  114. package/dist/public/assets/_DF7p8NtB.js.br +0 -0
  115. package/dist/public/assets/{_Cb4BQ87V2.js → _DGiIMv8G2.js} +1 -1
  116. package/dist/public/assets/_DGiIMv8G2.js.br +0 -0
  117. package/dist/public/assets/{_olWgegfx.js → _DOyko_7k.js} +1 -1
  118. package/dist/public/assets/{_DOiBi4I0.js → _DRF3Di45.js} +1 -1
  119. package/dist/public/assets/_DRF3Di45.js.br +0 -0
  120. package/dist/public/assets/{_DK0ZyRpN.js → _DX3XTwvW.js} +1 -1
  121. package/dist/public/assets/_DX3XTwvW.js.br +0 -0
  122. package/dist/public/assets/{_YkjHoUJ2.js → _DYkG4loD.js} +1 -1
  123. package/dist/public/assets/_DYkG4loD.js.br +0 -0
  124. package/dist/public/assets/{_3_osenBu.js → _DbEL5xWz.js} +1 -1
  125. package/dist/public/assets/_DbEL5xWz.js.br +0 -0
  126. package/dist/public/assets/{_BpaSM2Ut.js → _Dhm70a8Q.js} +1 -1
  127. package/dist/public/assets/_Dhm70a8Q.js.br +0 -0
  128. package/dist/public/assets/{_BDKexg9K.js → _DjPgs5rw.js} +1 -1
  129. package/dist/public/assets/_DjPgs5rw.js.br +0 -0
  130. package/dist/public/assets/{_BfKlqNx9.js → _Dnva3Iwh.js} +1 -1
  131. package/dist/public/assets/_Dnva3Iwh.js.br +0 -0
  132. package/dist/public/assets/{_Drl9WI2Q.js → _Dt4Da0qD.js} +1 -1
  133. package/dist/public/assets/_Dt4Da0qD.js.br +0 -0
  134. package/dist/public/assets/{_En2Jcy8J.js → _IvxXQmT0.js} +1 -1
  135. package/dist/public/assets/_IvxXQmT0.js.br +0 -0
  136. package/dist/public/assets/{_gzI_71qk.js → _JLngONpn.js} +1 -1
  137. package/dist/public/assets/_JLngONpn.js.br +0 -0
  138. package/dist/public/assets/{_DboFmLJ5.js → _K7Edgfgc.js} +1 -1
  139. package/dist/public/assets/_K7Edgfgc.js.br +0 -0
  140. package/dist/public/assets/{_DRSO79wd.js → _MlgXnVcu.js} +1 -1
  141. package/dist/public/assets/_MlgXnVcu.js.br +0 -0
  142. package/dist/public/assets/{_c1k15BL72.js → _PKde0FEU2.js} +1 -1
  143. package/dist/public/assets/_PKde0FEU2.js.br +0 -0
  144. package/dist/public/assets/{_1MO3zLi0.js → _RjK3rf_Y.js} +1 -1
  145. package/dist/public/assets/_RjK3rf_Y.js.br +0 -0
  146. package/dist/public/assets/{_BW-Z7z3K.js → _S4Deki6-.js} +20 -20
  147. package/dist/public/assets/_S4Deki6-.js.br +0 -0
  148. package/dist/public/assets/{_BXoOogd_.js → __CmiW5mo.js} +1 -1
  149. package/dist/public/assets/__CmiW5mo.js.br +0 -0
  150. package/dist/public/assets/{_sRlPXrhp2.js → _o1mi4aXB2.js} +1 -1
  151. package/dist/public/assets/_o1mi4aXB2.js.br +0 -0
  152. package/dist/public/assets/{_BmRxh0Eh2.js → _pehMb-MO2.js} +1 -1
  153. package/dist/public/assets/app-page-DgDTDOHI.css +1 -0
  154. package/dist/public/assets/app-page-DgDTDOHI.css.br +0 -0
  155. package/dist/public/assets/diff-view-BXhpA0AC.css +1 -0
  156. package/dist/public/assets/diff-view-BXhpA0AC.css.br +0 -0
  157. package/dist/public/assets/new-BH-hZ4d8.js +1 -0
  158. package/dist/public/assets/settings-BH-hZ4d8.js +1 -0
  159. package/dist/public/assets/w-BH-hZ4d8.js +1 -0
  160. package/dist/public/assets/w._-BH-hZ4d8.js +1 -0
  161. package/dist/public/assets/w._-DxgRF7k8.js +1 -0
  162. package/package.json +1 -1
  163. package/dist/public/assets/_1MO3zLi0.js.br +0 -0
  164. package/dist/public/assets/_3_osenBu.js.br +0 -0
  165. package/dist/public/assets/_4c6ZP_DE2.js.br +0 -0
  166. package/dist/public/assets/_8DabaQc42.js.br +0 -0
  167. package/dist/public/assets/_B38vzMde2.js.br +0 -0
  168. package/dist/public/assets/_B6HRx3mv.js.br +0 -0
  169. package/dist/public/assets/_B7tW52ox2.js.br +0 -0
  170. package/dist/public/assets/_BDKexg9K.js.br +0 -0
  171. package/dist/public/assets/_BE6VqQVA.js.br +0 -0
  172. package/dist/public/assets/_BRgDp6dq2.js.br +0 -0
  173. package/dist/public/assets/_BVR2bnH7.js.br +0 -0
  174. package/dist/public/assets/_BW-Z7z3K.js.br +0 -0
  175. package/dist/public/assets/_BXoOogd_.js.br +0 -0
  176. package/dist/public/assets/_B_hYt6WL.js.br +0 -0
  177. package/dist/public/assets/_B_iQ_vXs.js.br +0 -0
  178. package/dist/public/assets/_BcLoolnz2.js.br +0 -0
  179. package/dist/public/assets/_BdWFr75M2.js.br +0 -0
  180. package/dist/public/assets/_BfKlqNx9.js.br +0 -0
  181. package/dist/public/assets/_BjHYQyTW2.js.br +0 -0
  182. package/dist/public/assets/_Bl32WbGR.js.br +0 -0
  183. package/dist/public/assets/_BneLpkUj.js.br +0 -0
  184. package/dist/public/assets/_BpQROnKB.js.br +0 -0
  185. package/dist/public/assets/_BpaSM2Ut.js.br +0 -0
  186. package/dist/public/assets/_BqEupx9T.js.br +0 -0
  187. package/dist/public/assets/_BrHg1vmp2.js.br +0 -0
  188. package/dist/public/assets/_BuVTK0nK.js.br +0 -0
  189. package/dist/public/assets/_BxhMnvoI2.js.br +0 -0
  190. package/dist/public/assets/_Byj_kDek2.js.br +0 -0
  191. package/dist/public/assets/_C669lqE1.js.br +0 -0
  192. package/dist/public/assets/_CN4RWjdg.js.br +0 -0
  193. package/dist/public/assets/_CQ8XIG32.js.br +0 -0
  194. package/dist/public/assets/_CR7jZl_o.js.br +0 -0
  195. package/dist/public/assets/_CR_N8Jxw2.js.br +0 -0
  196. package/dist/public/assets/_CUy49fiW.js.br +0 -0
  197. package/dist/public/assets/_CVI5Z1ap.js.br +0 -0
  198. package/dist/public/assets/_CXQb7FHW.js.br +0 -0
  199. package/dist/public/assets/_CXbfNROI.js.br +0 -0
  200. package/dist/public/assets/_C_GySFna.js.br +0 -0
  201. package/dist/public/assets/_Cb4BQ87V2.js.br +0 -0
  202. package/dist/public/assets/_CekDvoOm2.js.br +0 -0
  203. package/dist/public/assets/_CiyoX76R.js.br +0 -0
  204. package/dist/public/assets/_D31bJ4DY.js.br +0 -0
  205. package/dist/public/assets/_D7MBKQAt.js.br +0 -0
  206. package/dist/public/assets/_D8NtarGl2.js.br +0 -0
  207. package/dist/public/assets/_DHQRi0uw2.js.br +0 -0
  208. package/dist/public/assets/_DHjOV863.js.br +0 -0
  209. package/dist/public/assets/_DIFhW7d2.js.br +0 -0
  210. package/dist/public/assets/_DK0ZyRpN.js.br +0 -0
  211. package/dist/public/assets/_DLV-pFpn.js.br +0 -0
  212. package/dist/public/assets/_DOiBi4I0.js.br +0 -0
  213. package/dist/public/assets/_DRSO79wd.js.br +0 -0
  214. package/dist/public/assets/_DbJsbj5D.js.br +0 -0
  215. package/dist/public/assets/_DboFmLJ5.js.br +0 -0
  216. package/dist/public/assets/_DfayPfGn.js.br +0 -0
  217. package/dist/public/assets/_DlKqfl3x.js.br +0 -0
  218. package/dist/public/assets/_Drl9WI2Q.js.br +0 -0
  219. package/dist/public/assets/_DtvBiqKq.js.br +0 -0
  220. package/dist/public/assets/_DymTiS2l2.js.br +0 -0
  221. package/dist/public/assets/_ELEfU1ZJ2.js.br +0 -0
  222. package/dist/public/assets/_En2Jcy8J.js.br +0 -0
  223. package/dist/public/assets/_HJ4l6yxN.js.br +0 -0
  224. package/dist/public/assets/_IuMur5Ym.js.br +0 -0
  225. package/dist/public/assets/_LIg4gQDB2.js.br +0 -0
  226. package/dist/public/assets/_Q62npO-T.js.br +0 -0
  227. package/dist/public/assets/_RRBED5IT.js.br +0 -0
  228. package/dist/public/assets/_TNYXBRTD.js.br +0 -0
  229. package/dist/public/assets/_YkjHoUJ2.js.br +0 -0
  230. package/dist/public/assets/_ZPETJBJo2.js.br +0 -0
  231. package/dist/public/assets/_c1k15BL72.js.br +0 -0
  232. package/dist/public/assets/_gzI_71qk.js.br +0 -0
  233. package/dist/public/assets/_oLZchIMS.js.br +0 -0
  234. package/dist/public/assets/_sRlPXrhp2.js.br +0 -0
  235. package/dist/public/assets/_t1bRY80J.js.br +0 -0
  236. package/dist/public/assets/app-page-D2MGNs24.css +0 -1
  237. package/dist/public/assets/app-page-D2MGNs24.css.br +0 -0
  238. package/dist/public/assets/diff-view-UG7NdbBG.css +0 -1
  239. package/dist/public/assets/diff-view-UG7NdbBG.css.br +0 -0
  240. package/dist/public/assets/new-BAusPvMv.js +0 -1
  241. package/dist/public/assets/settings-BAusPvMv.js +0 -1
  242. package/dist/public/assets/w-BAusPvMv.js +0 -1
  243. package/dist/public/assets/w._-BAusPvMv.js +0 -1
  244. package/dist/public/assets/w._-CuEUWcak.js +0 -1
@@ -1,4 +1,4 @@
1
- import { $ as _el_read_error, A as iconBtnLg, B as _attr_details_or_dialog_open, G as _attr_style, H as _attr_option_value, I as tone, Q as _el, R as _attr, S as icon_xmark_default, St as _template, T as repoLabel, V as _attr_input_value, W as _attr_select_value, X as _content_resume, _ as icon_refresh_default, _t as _sep, a as diffPos, bt as _set_serialize_reason, c as setDiffPos, dt as _resume, et as _el_resume, ft as _resume_branch, g as icon_back_default, gt as _script, h as icon_search_default, ht as _scope_with_id, i as diffFilter, it as _for_of, j as iconBtnRow, kt as writeScope, l as setDiffScope, lt as _if, mt as _scope_reason, n as findInput, nt as _existing_scope, o as diffScope, p as fuzzy, pt as _scope_id, r as icon_sidebar_default, s as diffTreeOpen, st as _html, t as findIconBtn, tt as _escape, ut as _peek_scope_id, vt as _serialize_guard, x as toast_default, xt as _subscribe, yt as _serialize_if, z as _attr_class } from "./_D5j6bTJl.js";
1
+ import { B as _attr, C as toast_default, Ct as _subscribe, D as repoLabel, H as _attr_details_or_dialog_open, K as _attr_select_value, M as iconBtnLg, N as iconBtnRow, Q as _content_resume, R as tone, St as _set_serialize_reason, U as _attr_input_value, V as _attr_class, W as _attr_option_value, _ as setDiffScope, _t as _scope_with_id, bt as _serialize_guard, c as icon_refresh_default, dt as _if, et as _el, f as diffFilter, ft as _peek_scope_id, g as setDiffPos, gt as _scope_reason, h as diffTreeOpen, ht as _scope_id, i as fuzzy, it as _existing_scope, jt as writeScope, lt as _html, m as diffScope, mt as _resume_branch, n as findInput, nt as _el_resume, o as icon_search_default, ot as _for_of, p as diffPos, pt as _resume, q as _attr_style, r as icon_sidebar_default, rt as _escape, s as icon_back_default, t as findIconBtn, tt as _el_read_error, vt as _script, w as icon_xmark_default, wt as _template, xt as _serialize_if, yt as _sep } from "./_DA4jJP-k.js";
2
2
  //#region src/client/router.ts
3
3
  function urlFor(r) {
4
4
  if (r.view === "settings") return "/settings";
@@ -242,7 +242,7 @@ function treeDirs(files) {
242
242
  };
243
243
  return build(root, "", "", -1);
244
244
  }
245
- var treeToggle = "_dy _0 _j";
245
+ var treeToggle = "_d4 _0 _j";
246
246
  //#endregion
247
247
  //#region src/tags/diff-send.marko
248
248
  var diff_send_default = _template("i", (input) => {
@@ -252,7 +252,7 @@ var diff_send_default = _template("i", (input) => {
252
252
  let sendTarget = null;
253
253
  const sessions = input.sessions || [];
254
254
  const sendPick = sessions.some((s) => s.id === sendTarget) ? sendTarget : sessions[0]?.id ?? null;
255
- _html(`<span${_attr_class("_e1")}><button type=button${_attr_class("_o")} title="Copy comments as markdown">Copy${_el_resume($scope0_id, "c")}</button>${_el_resume($scope0_id, "b")}`);
255
+ _html(`<span${_attr_class("_fa")}><button type=button${_attr_class("_o")} title="Copy comments as markdown">Copy${_el_resume($scope0_id, "c")}</button>${_el_resume($scope0_id, "b")}`);
256
256
  _if(() => {
257
257
  if (sessions.length === 1) {
258
258
  const $scope1_id = _scope_id();
@@ -262,11 +262,11 @@ var diff_send_default = _template("i", (input) => {
262
262
  return 0;
263
263
  } else if (sessions.length) {
264
264
  const $scope2_id = _scope_id();
265
- _html(`<span${_attr_class("_e2")}><button type=button${_attr_class(["_p", "_e3"])}${_attr("disabled", sending)}>Send to${_el_resume($scope2_id, "c")}</button>${_el_resume($scope2_id, "b")}`);
265
+ _html(`<span${_attr_class("_fb")}><button type=button${_attr_class(["_p", "_fc"])}${_attr("disabled", sending)}>Send to${_el_resume($scope2_id, "c")}</button>${_el_resume($scope2_id, "b")}`);
266
266
  _attr_select_value($scope2_id, "d", sendTarget, _resume((_new_sendTarget) => {
267
267
  sendTarget = _new_sendTarget;
268
268
  }, "i0", $scope2_id), () => {
269
- _html(`<select${_attr_class("_e4")} aria-label="Send comments to session"${_attr("disabled", sending)}>`);
269
+ _html(`<select${_attr_class("_fd")} aria-label="Send comments to session"${_attr("disabled", sending)}>`);
270
270
  _for_of(sessions, (s) => {
271
271
  const $scope3_id = _scope_id();
272
272
  _html(`<option${_attr_option_value(s.id)}>${_escape(s.title || s.agent)}${_el_resume($scope3_id, "b", $sg__input_sessions)}</option>${_el_resume($scope3_id, "a", $sg__input_sessions)}`);
@@ -1832,9 +1832,9 @@ var diff_find_default = _template("h", (input) => {
1832
1832
  el.select();
1833
1833
  }, 0);
1834
1834
  }, "h5", $scope0_id);
1835
- _html(`<div${_attr_class(["_ft", !open && "_fs"])} aria-hidden=${open ? "false" : "true"}><input${_attr_input_value($scope0_id, "b", query || "", _resume(function(v) {
1835
+ _html(`<div${_attr_class(["_fl", !open && "_fk"])} aria-hidden=${open ? "false" : "true"}><input${_attr_input_value($scope0_id, "b", query || "", _resume(function(v) {
1836
1836
  type(v);
1837
- }, "h0", $scope0_id))}${_attr_class(findInput)} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in review" aria-label="Find in review">${_el_resume($scope0_id, "b")}<span${_attr_class("_fw")}>${open && (query || "").trim() ? hits.length ? `${_escape(`${at + 1}`)}/${_escape(`${hits.length}`)}` : "0/0" : ""}${_el_resume($scope0_id, "d")}</span><button type=button${_attr_class(findIconBtn)} title="Previous match"${_attr("disabled", !hits.length || !open)} tabindex=${open ? "0" : "-1"}>↑</button>${_el_resume($scope0_id, "e")}<button type=button${_attr_class(findIconBtn)} title="Next match"${_attr("disabled", !hits.length || !open)} tabindex=${open ? "0" : "-1"}>↓</button>${_el_resume($scope0_id, "f")}<button type=button${_attr_class(findIconBtn)} title="Close find" tabindex=${open ? "0" : "-1"}>`);
1837
+ }, "h0", $scope0_id))}${_attr_class(findInput)} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in review" aria-label="Find in review">${_el_resume($scope0_id, "b")}<span${_attr_class("_fo")}>${open && (query || "").trim() ? hits.length ? `${_escape(`${at + 1}`)}/${_escape(`${hits.length}`)}` : "0/0" : ""}${_el_resume($scope0_id, "d")}</span><button type=button${_attr_class(findIconBtn)} title="Previous match"${_attr("disabled", !hits.length || !open)} tabindex=${open ? "0" : "-1"}>↑</button>${_el_resume($scope0_id, "e")}<button type=button${_attr_class(findIconBtn)} title="Next match"${_attr("disabled", !hits.length || !open)} tabindex=${open ? "0" : "-1"}>↓</button>${_el_resume($scope0_id, "f")}<button type=button${_attr_class(findIconBtn)} title="Close find" tabindex=${open ? "0" : "-1"}>`);
1838
1838
  icon_xmark_default({ size: 14 });
1839
1839
  _html(`</button>${_el_resume($scope0_id, "g")}</div>${_el_resume($scope0_id, "a")}`);
1840
1840
  _script($scope0_id, "h6");
@@ -1931,14 +1931,14 @@ function shortBranch(name, wsBranch = "", wsName = "") {
1931
1931
  }
1932
1932
  return shortHeadFallback(head);
1933
1933
  }
1934
- var repoWorktree = "_gw _x";
1935
- var repoTitle = "_gC _w";
1934
+ var repoWorktree = "_gd _x";
1935
+ var repoTitle = "_gj _w";
1936
1936
  tone.warn;
1937
1937
  var diff_file_default = _template("g", (input) => {
1938
1938
  _scope_reason();
1939
1939
  const $scope0_id = _scope_id();
1940
1940
  _el($scope0_id, "g0");
1941
- _html(`<div${_attr_class(["_g0", input.class])}></div>${_el_resume($scope0_id, "a")}`);
1941
+ _html(`<div${_attr_class(["_g7", input.class])}></div>${_el_resume($scope0_id, "a")}`);
1942
1942
  _script($scope0_id, "g1");
1943
1943
  writeScope($scope0_id, {
1944
1944
  e: input.file,
@@ -1946,19 +1946,20 @@ var diff_file_default = _template("g", (input) => {
1946
1946
  g: input.draft,
1947
1947
  h: input.sessions,
1948
1948
  i: input.onDeleteComment,
1949
- j: input.onSendComment,
1950
- k: input.onSendDraft,
1951
- l: input.onSaveComment,
1952
- m: input.onCancelDraft,
1953
- n: input.onSelect,
1954
- o: input.onError
1949
+ j: input.onEditComment,
1950
+ k: input.onSendComment,
1951
+ l: input.onSendDraft,
1952
+ m: input.onSaveComment,
1953
+ n: input.onCancelDraft,
1954
+ o: input.onSelect,
1955
+ p: input.onError
1955
1956
  });
1956
1957
  _resume_branch($scope0_id);
1957
1958
  });
1958
1959
  //#endregion
1959
1960
  //#region src/tags/review-section.marko
1960
1961
  var review_section_default = _template("t", (input) => {
1961
- const $scope0_reason = _scope_reason(), $sg__input_repo = _serialize_guard($scope0_reason, 34), $si__input_repo = _serialize_if($scope0_reason, 34), $sg__input_repo__OR__input_files__OR__input_shownKeys__OR__input_workspaceBranch__OR__input_workspaceName__OR__input_collapsible__OR__input_collapsed__OR__input_localDiffers__OR__input_onlyNew__OR__input_opened = _serialize_guard($scope0_reason, 31), $sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName = _serialize_guard($scope0_reason, 13), $sg__input_repo__OR__input_files_length = _serialize_guard($scope0_reason, 0), $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName = _serialize_if($scope0_reason, 13), $sg__input_files__OR__input_shownKeys = _serialize_guard($scope0_reason, 3), $sg__input_files__OR__input_onlyNew = _serialize_guard($scope0_reason, 4), $sg__input_files = _serialize_guard($scope0_reason, 35), $sg__input_files__OR__input_commentsByFile = _serialize_guard($scope0_reason, 5), $sg__input_files__OR__input_commentsByFile__OR__input_collapsedFiles = _serialize_guard($scope0_reason, 18), $si__input_files__OR__input_collapsedFiles = _serialize_if($scope0_reason, 6), $si__input_files = _serialize_if($scope0_reason, 35), $si__input_files__OR__input_commentsByFile = _serialize_if($scope0_reason, 5), $si__input_findHit_key = _serialize_if($scope0_reason, 43), $sg__input_files__OR__input_collapsedFiles = _serialize_guard($scope0_reason, 6), $si__input_onFileToggle = _serialize_if($scope0_reason, 44), $si__input_repo__OR__input_files__OR__input_shownKeys = _serialize_if($scope0_reason, 11), $si__input_collapsible__OR__input_collapsed = _serialize_if($scope0_reason, 9), $si__input_files__OR__input_collapsible__OR__input_collapsed__OR__input_opened = _serialize_if($scope0_reason, 24), $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName__OR__input_localDiffers = _serialize_if($scope0_reason, 23), $si__input_files__OR__input_shownKeys = _serialize_if($scope0_reason, 3), $si__input_files__OR__input_onlyNew = _serialize_if($scope0_reason, 4), $si__input = _serialize_if($scope0_reason, 33), $si__input_draft = _serialize_if($scope0_reason, 46), $si__input_sessions = _serialize_if($scope0_reason, 47), $si__input_onSelect = _serialize_if($scope0_reason, 48), $si__input_onSaveComment = _serialize_if($scope0_reason, 49), $si__input_onSendDraft = _serialize_if($scope0_reason, 50), $si__input_onCancelDraft = _serialize_if($scope0_reason, 51), $si__input_onDeleteComment = _serialize_if($scope0_reason, 52), $si__input_onSendComment = _serialize_if($scope0_reason, 53), $si__input_onError = _serialize_if($scope0_reason, 54), $si__input_shownKeys = _serialize_if($scope0_reason, 36), $si__input_commentsByFile = _serialize_if($scope0_reason, 41), $si__input_collapsedFiles = _serialize_if($scope0_reason, 42), $si__input_findHit_line = _serialize_if($scope0_reason, 45);
1962
+ const $scope0_reason = _scope_reason(), $sg__input_repo = _serialize_guard($scope0_reason, 34), $si__input_repo = _serialize_if($scope0_reason, 34), $sg__input_repo__OR__input_files__OR__input_shownKeys__OR__input_workspaceBranch__OR__input_workspaceName__OR__input_collapsible__OR__input_collapsed__OR__input_localDiffers__OR__input_onlyNew__OR__input_opened = _serialize_guard($scope0_reason, 31), $sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName = _serialize_guard($scope0_reason, 13), $sg__input_repo__OR__input_files_length = _serialize_guard($scope0_reason, 0), $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName = _serialize_if($scope0_reason, 13), $sg__input_files__OR__input_shownKeys = _serialize_guard($scope0_reason, 3), $sg__input_files__OR__input_onlyNew = _serialize_guard($scope0_reason, 4), $sg__input_files = _serialize_guard($scope0_reason, 35), $sg__input_files__OR__input_commentsByFile = _serialize_guard($scope0_reason, 5), $sg__input_files__OR__input_commentsByFile__OR__input_collapsedFiles = _serialize_guard($scope0_reason, 18), $si__input_files__OR__input_collapsedFiles = _serialize_if($scope0_reason, 6), $si__input_files = _serialize_if($scope0_reason, 35), $si__input_files__OR__input_commentsByFile = _serialize_if($scope0_reason, 5), $si__input_findHit_key = _serialize_if($scope0_reason, 43), $sg__input_files__OR__input_collapsedFiles = _serialize_guard($scope0_reason, 6), $si__input_onFileToggle = _serialize_if($scope0_reason, 44), $si__input_repo__OR__input_files__OR__input_shownKeys = _serialize_if($scope0_reason, 11), $si__input_collapsible__OR__input_collapsed = _serialize_if($scope0_reason, 9), $si__input_files__OR__input_collapsible__OR__input_collapsed__OR__input_opened = _serialize_if($scope0_reason, 24), $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName__OR__input_localDiffers = _serialize_if($scope0_reason, 23), $si__input_files__OR__input_shownKeys = _serialize_if($scope0_reason, 3), $si__input_files__OR__input_onlyNew = _serialize_if($scope0_reason, 4), $si__input = _serialize_if($scope0_reason, 33), $si__input_draft = _serialize_if($scope0_reason, 46), $si__input_sessions = _serialize_if($scope0_reason, 47), $si__input_onSelect = _serialize_if($scope0_reason, 48), $si__input_onSaveComment = _serialize_if($scope0_reason, 49), $si__input_onSendDraft = _serialize_if($scope0_reason, 50), $si__input_onCancelDraft = _serialize_if($scope0_reason, 51), $si__input_onDeleteComment = _serialize_if($scope0_reason, 52), $si__input_onEditComment = _serialize_if($scope0_reason, 53), $si__input_onSendComment = _serialize_if($scope0_reason, 54), $si__input_onError = _serialize_if($scope0_reason, 55), $si__input_shownKeys = _serialize_if($scope0_reason, 36), $si__input_commentsByFile = _serialize_if($scope0_reason, 41), $si__input_collapsedFiles = _serialize_if($scope0_reason, 42), $si__input_findHit_line = _serialize_if($scope0_reason, 45);
1962
1963
  const $scope0_id = _scope_id();
1963
1964
  const $input__closures = /* @__PURE__ */ new Set();
1964
1965
  const $input_draft__closures = /* @__PURE__ */ new Set();
@@ -1968,6 +1969,7 @@ var review_section_default = _template("t", (input) => {
1968
1969
  const $input_onSendDraft__closures = /* @__PURE__ */ new Set();
1969
1970
  const $input_onCancelDraft__closures = /* @__PURE__ */ new Set();
1970
1971
  const $input_onDeleteComment__closures = /* @__PURE__ */ new Set();
1972
+ const $input_onEditComment__closures = /* @__PURE__ */ new Set();
1971
1973
  const $input_onSendComment__closures = /* @__PURE__ */ new Set();
1972
1974
  const $input_onError__closures = /* @__PURE__ */ new Set();
1973
1975
  const $input_findHit_key__closures = /* @__PURE__ */ new Set();
@@ -1995,16 +1997,16 @@ var review_section_default = _template("t", (input) => {
1995
1997
  const newCount = input.files.filter((f) => f.changedSince).length;
1996
1998
  const compare$1 = reviewCompareLabel(repo.pr?.baseRefName || repo.base, repo.pr?.headRefName || repo.branch, input.workspaceBranch, input.workspaceName);
1997
1999
  const prTitle = repo.pr ? `${repo.pr.title}: ${repo.pr.headRefName} ${repo.head} vs ${repo.base} ${repo.baseSha}` : "";
1998
- _html(`<section${_attr_class("_gs")}${repo.pr ? _attr("data-pr", `${repo.worktree}/${repo.pr.number}`) : ""}${_attr("hidden", !shownCount && !repo.pr && input.findHit?.repo !== repo.id)}><div${_attr_class(["_gt", { ["_gu"]: input.collapsible && input.collapsed }])}>`);
2000
+ _html(`<section${_attr_class("_f_")}${repo.pr ? _attr("data-pr", `${repo.worktree}/${repo.pr.number}`) : ""}${_attr("hidden", !shownCount && !repo.pr && input.findHit?.repo !== repo.id)}><div${_attr_class(["_ga", { ["_gb"]: input.collapsible && input.collapsed }])}>`);
1999
2001
  _if(() => {
2000
2002
  if (input.collapsible) {
2001
2003
  const $scope1_id = _scope_id();
2002
- _html(`<button type=button${_attr_class("_gv")} aria-expanded=${!input.collapsed ? "true" : "false"} aria-busy=${input.expanding ? "true" : "false"}${input.collapsed ? _attr("title", `Show ${countLabel} files`) : " title=\"Hide files\""}><span${_attr_class([
2003
- "_gP",
2004
- !input.collapsed && "_gQ",
2005
- input.expanding && "_gR"
2004
+ _html(`<button type=button${_attr_class("_gc")} aria-expanded=${!input.collapsed ? "true" : "false"} aria-busy=${input.expanding ? "true" : "false"}${input.collapsed ? _attr("title", `Show ${countLabel} files`) : " title=\"Hide files\""}><span${_attr_class([
2005
+ "_gw",
2006
+ !input.collapsed && "_gx",
2007
+ input.expanding && "_gy"
2006
2008
  ])} aria-hidden=true>${input.collapsed ? "▸" : "▾"}${_el_resume($scope1_id, "c", _serialize_guard($scope0_reason, 39))}</span>${_el_resume($scope1_id, "b", _serialize_guard($scope0_reason, 10))}<span${_attr_class(repoWorktree)}>${_escape(repo.worktree)}${_el_resume($scope1_id, "e", $sg__input_repo)}</span></button>${_el_resume($scope1_id, "a")}`);
2007
- _script($scope1_id, "t8");
2009
+ _script($scope1_id, "t9");
2008
2010
  writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
2009
2011
  return 0;
2010
2012
  } else {
@@ -2027,14 +2029,14 @@ var review_section_default = _template("t", (input) => {
2027
2029
  return 1;
2028
2030
  }
2029
2031
  }, $scope0_id, "d", $sg__input_repo, $sg__input_repo, $sg__input_repo__OR__input_files__OR__input_shownKeys__OR__input_workspaceBranch__OR__input_workspaceName__OR__input_collapsible__OR__input_collapsed__OR__input_localDiffers__OR__input_onlyNew__OR__input_opened);
2030
- _html(`<span${_attr_class("_gD")}${_attr("title", `${compare$1.title} · ${repo.head.slice(0, 7)}…${repo.baseSha.slice(0, 7)}`)}><span${_attr_class(["_I", "_gE"])}>${_escape(compare$1.base)}${_el_resume($scope0_id, "g", $sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)}</span><span${_attr_class(["_K", "_gG"])} aria-hidden=true>vs</span><span${_attr_class(["_I", "_gF"])}>${_escape(compare$1.head)}${_el_resume($scope0_id, "j", $sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)}</span>`);
2032
+ _html(`<span${_attr_class("_gk")}${_attr("title", `${compare$1.title} · ${repo.head.slice(0, 7)}…${repo.baseSha.slice(0, 7)}`)}><span${_attr_class(["_I", "_gl"])}>${_escape(compare$1.base)}${_el_resume($scope0_id, "g", $sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)}</span><span${_attr_class(["_K", "_gn"])} aria-hidden=true>vs</span><span${_attr_class(["_I", "_gm"])}>${_escape(compare$1.head)}${_el_resume($scope0_id, "j", $sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)}</span>`);
2031
2033
  _if(() => {
2032
2034
  if (compare$1.topic) {
2033
2035
  const $scope15_id = _scope_id();
2034
2036
  _html(`<span${_attr_class([
2035
2037
  "_I",
2036
2038
  tone.accent,
2037
- "_gH"
2039
+ "_go"
2038
2040
  ])}>${_escape(compare$1.topic)}${_el_resume($scope15_id, "b", $sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)}</span>`);
2039
2041
  $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName && writeScope($scope15_id, { _: _scope_with_id($scope0_id) });
2040
2042
  return 0;
@@ -2047,9 +2049,9 @@ var review_section_default = _template("t", (input) => {
2047
2049
  _html(`<button type=button${_attr_class([
2048
2050
  "_I",
2049
2051
  tone.warn,
2050
- "_gI"
2052
+ "_gp"
2051
2053
  ])}${_attr("title", `origin/${repo.pr.headRefName} ${repo.head} · GitHub ${repo.pr.headRefOid}. Reload to re-ask GitHub`)}${_attr("disabled", input.loading)}>behind GitHub ${_sep($sg__input_repo)}${_escape(shortSha(repo.head, 7))}${_el_resume($scope2_id, "b", $sg__input_repo)} → ${_sep($sg__input_repo)}${_escape(shortSha(repo.pr.headRefOid, 7))}${_el_resume($scope2_id, "c", $sg__input_repo)}</button>${_el_resume($scope2_id, "a")}`);
2052
- _script($scope2_id, "t9");
2054
+ _script($scope2_id, "t10");
2053
2055
  writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
2054
2056
  return 0;
2055
2057
  }
@@ -2057,7 +2059,7 @@ var review_section_default = _template("t", (input) => {
2057
2059
  _if(() => {
2058
2060
  if (repo.contained && input.files.length) {
2059
2061
  const $scope13_id = _scope_id();
2060
- _html(`<span${_attr_class(["_I", "_gI"])}${_attr("title", `${repo.pr ? `#${repo.pr.number}` : repo.branch} is already in ${repo.base}; showing the working tree only`)}>already in ${_sep($sg__input_repo)}${_escape(repo.base)}${_el_resume($scope13_id, "b", $sg__input_repo)}</span>${_el_resume($scope13_id, "a", $sg__input_repo)}`);
2062
+ _html(`<span${_attr_class(["_I", "_gp"])}${_attr("title", `${repo.pr ? `#${repo.pr.number}` : repo.branch} is already in ${repo.base}; showing the working tree only`)}>already in ${_sep($sg__input_repo)}${_escape(repo.base)}${_el_resume($scope13_id, "b", $sg__input_repo)}</span>${_el_resume($scope13_id, "a", $sg__input_repo)}`);
2061
2063
  _serialize_if($scope0_reason, 0) && writeScope($scope13_id, { _: $si__input_repo && _scope_with_id($scope0_id) });
2062
2064
  return 0;
2063
2065
  }
@@ -2065,16 +2067,16 @@ var review_section_default = _template("t", (input) => {
2065
2067
  _if(() => {
2066
2068
  if (input.localDiffers) {
2067
2069
  const $scope3_id = _scope_id();
2068
- _html(`<span${_attr_class(["_I", "_gI"])}${_attr("title", `This view is ${shortSha(repo.head)} (${repo.pr.headRefName}); checked out is ${shortSha(repo.localHead)} (${repo.branch})`)}>local ${_sep($sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)}${_escape(shortBranch(repo.branch, input.workspaceBranch, input.workspaceName))}${_el_resume($scope3_id, "b", $sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)} ${_sep($sg__input_repo)}${_escape(shortSha(repo.localHead, 7))}${_el_resume($scope3_id, "c", $sg__input_repo)}</span>${_el_resume($scope3_id, "a", $sg__input_repo)}`);
2070
+ _html(`<span${_attr_class(["_I", "_gp"])}${_attr("title", `This view is ${shortSha(repo.head)} (${repo.pr.headRefName}); checked out is ${shortSha(repo.localHead)} (${repo.branch})`)}>local ${_sep($sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)}${_escape(shortBranch(repo.branch, input.workspaceBranch, input.workspaceName))}${_el_resume($scope3_id, "b", $sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)} ${_sep($sg__input_repo)}${_escape(shortSha(repo.localHead, 7))}${_el_resume($scope3_id, "c", $sg__input_repo)}</span>${_el_resume($scope3_id, "a", $sg__input_repo)}`);
2069
2071
  $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName__OR__input_localDiffers && writeScope($scope3_id, { _: $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName && _scope_with_id($scope0_id) });
2070
2072
  return 0;
2071
2073
  }
2072
2074
  }, $scope0_id, "n", _serialize_guard($scope0_reason, 23), _serialize_guard($scope0_reason, 40), $sg__input_repo__OR__input_files__OR__input_shownKeys__OR__input_workspaceBranch__OR__input_workspaceName__OR__input_collapsible__OR__input_collapsed__OR__input_localDiffers__OR__input_onlyNew__OR__input_opened, 0, 1);
2073
- _html(`<span${_attr_class("_gx")}><span>${_escape(countLabel)}${_el_resume($scope0_id, "p", $sg__input_files__OR__input_shownKeys)} file${_sep($sg__input_files__OR__input_shownKeys)}${countLabel === 1 ? "" : "s"}${_el_resume($scope0_id, "q", $sg__input_files__OR__input_shownKeys)}</span>`);
2075
+ _html(`<span${_attr_class("_ge")}><span>${_escape(countLabel)}${_el_resume($scope0_id, "p", $sg__input_files__OR__input_shownKeys)} file${_sep($sg__input_files__OR__input_shownKeys)}${countLabel === 1 ? "" : "s"}${_el_resume($scope0_id, "q", $sg__input_files__OR__input_shownKeys)}</span>`);
2074
2076
  _if(() => {
2075
2077
  if (stats.additions || stats.deletions) {
2076
2078
  const $scope14_id = _scope_id();
2077
- _html(`<span${_attr_class("_gy")}>+${_sep($sg__input_files__OR__input_shownKeys)}${_escape(stats.additions)}${_el_resume($scope14_id, "b", $sg__input_files__OR__input_shownKeys)}</span><span${_attr_class("_gz")}>−${_sep($sg__input_files__OR__input_shownKeys)}${_escape(stats.deletions)}${_el_resume($scope14_id, "d", $sg__input_files__OR__input_shownKeys)}</span>`);
2079
+ _html(`<span${_attr_class("_gf")}>+${_sep($sg__input_files__OR__input_shownKeys)}${_escape(stats.additions)}${_el_resume($scope14_id, "b", $sg__input_files__OR__input_shownKeys)}</span><span${_attr_class("_gg")}>−${_sep($sg__input_files__OR__input_shownKeys)}${_escape(stats.deletions)}${_el_resume($scope14_id, "d", $sg__input_files__OR__input_shownKeys)}</span>`);
2078
2080
  $si__input_files__OR__input_shownKeys && writeScope($scope14_id, { _: _scope_with_id($scope0_id) });
2079
2081
  return 0;
2080
2082
  }
@@ -2082,8 +2084,8 @@ var review_section_default = _template("t", (input) => {
2082
2084
  _if(() => {
2083
2085
  if (newCount || input.onlyNew) {
2084
2086
  const $scope4_id = _scope_id();
2085
- _html(`<button type=button${_attr_class(["_gB", { ["_gA"]: input.onlyNew }])} aria-pressed=${input.onlyNew ? "true" : "false"} title=${input.onlyNew ? "\"Show every file\"" : "\"Show only files changed since your last visit\""}>${_escape(newCount)}${_el_resume($scope4_id, "b", $sg__input_files)} new</button>${_el_resume($scope4_id, "a")}`);
2086
- _script($scope4_id, "t10");
2087
+ _html(`<button type=button${_attr_class(["_gi", { ["_gh"]: input.onlyNew }])} aria-pressed=${input.onlyNew ? "true" : "false"} title=${input.onlyNew ? "\"Show every file\"" : "\"Show only files changed since your last visit\""}>${_escape(newCount)}${_el_resume($scope4_id, "b", $sg__input_files)} new</button>${_el_resume($scope4_id, "a")}`);
2088
+ _script($scope4_id, "t11");
2087
2089
  writeScope($scope4_id, { _: _scope_with_id($scope0_id) });
2088
2090
  return 0;
2089
2091
  }
@@ -2092,7 +2094,7 @@ var review_section_default = _template("t", (input) => {
2092
2094
  _if(() => {
2093
2095
  if (!input.collapsible || !input.collapsed || input.opened) {
2094
2096
  const $scope5_id = _scope_id();
2095
- _html(`<div${_attr_class("_gK")}${_attr("hidden", input.collapsible && input.collapsed)}>`);
2097
+ _html(`<div${_attr_class("_gr")}${_attr("hidden", input.collapsible && input.collapsed)}>`);
2096
2098
  _for_of(input.files, (file$1) => {
2097
2099
  const $scope6_id = _scope_id();
2098
2100
  const $for_content__file__closures = /* @__PURE__ */ new Set();
@@ -2102,11 +2104,11 @@ var review_section_default = _template("t", (input) => {
2102
2104
  const expanded = !input.collapsedFiles.has(file$1.key);
2103
2105
  _html(`<details${_attr_details_or_dialog_open($scope6_id, "a", expanded, _resume(function(open) {
2104
2106
  input.onFileToggle(file$1.key, open);
2105
- }, "t0", $scope6_id))}${_attr_class(["_gL", input.findHit?.key === file$1.key && "_gq"])}${_attr("data-key", file$1.key)}${_attr("hidden", !input.shownKeys.has(file$1.key))}><summary${_attr_class("_gN")}><span${_attr_class("_gS")}${_attr("data-status", file$1.status)}>${_escape(file$1.status)}${_el_resume($scope6_id, "d", $sg__input_files)}</span>${_el_resume($scope6_id, "c", $sg__input_files)}<span${_attr_class(["_gT", input.findHit?.key === file$1.key && input.findHit.line < 1 && "_gr"])}${_attr("title", file$1.path)}><bdi>${_escape(file$1.path)}${_el_resume($scope6_id, "f", $sg__input_files)}</bdi></span>${_el_resume($scope6_id, "e", _serialize_guard($scope0_reason, 19))}`);
2107
+ }, "t0", $scope6_id))}${_attr_class(["_gs", input.findHit?.key === file$1.key && "_f8"])}${_attr("data-key", file$1.key)}${_attr("hidden", !input.shownKeys.has(file$1.key))}><summary${_attr_class("_gu")}><span${_attr_class("_gz")}${_attr("data-status", file$1.status)}>${_escape(file$1.status)}${_el_resume($scope6_id, "d", $sg__input_files)}</span>${_el_resume($scope6_id, "c", $sg__input_files)}<span${_attr_class(["_gA", input.findHit?.key === file$1.key && input.findHit.line < 1 && "_f9"])}${_attr("title", file$1.path)}><bdi>${_escape(file$1.path)}${_el_resume($scope6_id, "f", $sg__input_files)}</bdi></span>${_el_resume($scope6_id, "e", _serialize_guard($scope0_reason, 19))}`);
2106
2108
  _if(() => {
2107
2109
  if (file$1.changedSince) {
2108
2110
  const $scope17_id = _scope_id();
2109
- _html(`<span${_attr_class(["_z", "_gJ"])} title="Changed since your last visit"></span>`);
2111
+ _html(`<span${_attr_class(["_z", "_gq"])} title="Changed since your last visit"></span>`);
2110
2112
  $si__input_files && writeScope($scope17_id, {});
2111
2113
  return 0;
2112
2114
  }
@@ -2123,17 +2125,17 @@ var review_section_default = _template("t", (input) => {
2123
2125
  _if(() => {
2124
2126
  if (file$1.binary) {
2125
2127
  const $scope18_id = _scope_id();
2126
- _html(`<p${_attr_class(["_gU", "_gM"])}>binary file</p>`);
2128
+ _html(`<p${_attr_class(["_gB", "_gt"])}>binary file</p>`);
2127
2129
  $si__input_files__OR__input_collapsedFiles && writeScope($scope18_id, {});
2128
2130
  return 0;
2129
2131
  } else if (file$1.tooLarge) {
2130
2132
  const $scope19_id = _scope_id();
2131
- _html(`<p${_attr_class(["_gU", "_gM"])}>file too large to display</p>`);
2133
+ _html(`<p${_attr_class(["_gB", "_gt"])}>file too large to display</p>`);
2132
2134
  $si__input_files__OR__input_collapsedFiles && writeScope($scope19_id, {});
2133
2135
  return 1;
2134
2136
  } else if (file$1.old == null && file$1.new == null) {
2135
2137
  const $scope20_id = _scope_id();
2136
- _html(`<p${_attr_class(["_gU", "_gM"])}>file could not be read</p>`);
2138
+ _html(`<p${_attr_class(["_gB", "_gt"])}>file could not be read</p>`);
2137
2139
  $si__input_files__OR__input_collapsedFiles && writeScope($scope20_id, {});
2138
2140
  return 2;
2139
2141
  } else if (expanded) {
@@ -2143,15 +2145,15 @@ var review_section_default = _template("t", (input) => {
2143
2145
  _if(() => {
2144
2146
  if (!forceNear) {
2145
2147
  const $scope8_id = _scope_id();
2146
- _html(`<div${_attr_class(["_gO", "_gM"])}></div>${_el_resume($scope8_id, "a")}`);
2147
- _script($scope8_id, "t11");
2148
+ _html(`<div${_attr_class(["_gv", "_gt"])}></div>${_el_resume($scope8_id, "a")}`);
2149
+ _script($scope8_id, "t12");
2148
2150
  _subscribe($si__input && $input__closures, writeScope($scope8_id, {}));
2149
2151
  return 0;
2150
2152
  } else {
2151
2153
  const $scope9_id = _scope_id();
2152
2154
  const $childScope = _peek_scope_id();
2153
2155
  diff_file_default({
2154
- class: "_gM",
2156
+ class: "_gt",
2155
2157
  file: file$1,
2156
2158
  comments: fileComments,
2157
2159
  draft: input.draft && input.draft.key === file$1.key ? input.draft : null,
@@ -2171,14 +2173,17 @@ var review_section_default = _template("t", (input) => {
2171
2173
  onDeleteComment: _resume(function(id) {
2172
2174
  input.onDeleteComment(id);
2173
2175
  }, "t5", $scope9_id),
2176
+ onEditComment: _resume(function(id, text) {
2177
+ input.onEditComment(id, text);
2178
+ }, "t6", $scope9_id),
2174
2179
  onSendComment: _resume(function(id, sessionId) {
2175
2180
  input.onSendComment(id, sessionId);
2176
- }, "t6", $scope9_id),
2181
+ }, "t7", $scope9_id),
2177
2182
  onError: _resume(function(message) {
2178
2183
  input.onError(message);
2179
- }, "t7", $scope9_id)
2184
+ }, "t8", $scope9_id)
2180
2185
  });
2181
- _subscribe($si__input_files__OR__input_commentsByFile && $for_content__fileComments__closures, _subscribe($si__input_files && $for_content__file_key__closures, _subscribe($si__input_files && $for_content__file__closures, _subscribe($si__input_onError && $input_onError__closures, _subscribe($si__input_onSendComment && $input_onSendComment__closures, _subscribe($si__input_onDeleteComment && $input_onDeleteComment__closures, _subscribe($si__input_onCancelDraft && $input_onCancelDraft__closures, _subscribe($si__input_onSendDraft && $input_onSendDraft__closures, _subscribe($si__input_onSaveComment && $input_onSaveComment__closures, _subscribe($si__input_onSelect && $input_onSelect__closures, _subscribe($si__input_sessions && $input_sessions__closures, _subscribe($si__input_draft && $input_draft__closures, writeScope($scope9_id, { a: _serialize_if($scope0_reason, 32) && _existing_scope($childScope) })))))))))))));
2186
+ _subscribe($si__input_files__OR__input_commentsByFile && $for_content__fileComments__closures, _subscribe($si__input_files && $for_content__file_key__closures, _subscribe($si__input_files && $for_content__file__closures, _subscribe($si__input_onError && $input_onError__closures, _subscribe($si__input_onSendComment && $input_onSendComment__closures, _subscribe($si__input_onEditComment && $input_onEditComment__closures, _subscribe($si__input_onDeleteComment && $input_onDeleteComment__closures, _subscribe($si__input_onCancelDraft && $input_onCancelDraft__closures, _subscribe($si__input_onSendDraft && $input_onSendDraft__closures, _subscribe($si__input_onSaveComment && $input_onSaveComment__closures, _subscribe($si__input_onSelect && $input_onSelect__closures, _subscribe($si__input_sessions && $input_sessions__closures, _subscribe($si__input_draft && $input_draft__closures, writeScope($scope9_id, { a: _serialize_if($scope0_reason, 32) && _existing_scope($childScope) }))))))))))))));
2182
2187
  return 1;
2183
2188
  }
2184
2189
  }, $scope7_id, "a", 1, 1, 1, 0, 1);
@@ -2186,13 +2191,13 @@ var review_section_default = _template("t", (input) => {
2186
2191
  c: _serialize_if($scope0_reason, 7) && near,
2187
2192
  d: forceNear,
2188
2193
  _: _scope_with_id($scope6_id),
2189
- Cca: $si__input_findHit_key && 1
2194
+ Ccb: $si__input_findHit_key && 1
2190
2195
  }));
2191
2196
  return 3;
2192
2197
  }
2193
2198
  }, $scope6_id, "i", $sg__input_files__OR__input_collapsedFiles, $sg__input_files__OR__input_collapsedFiles, $sg__input_files__OR__input_commentsByFile__OR__input_collapsedFiles);
2194
2199
  _html(`</details>${_el_resume($scope6_id, "a")}`);
2195
- _script($scope6_id, "t12");
2200
+ _script($scope6_id, "t13");
2196
2201
  _subscribe($si__input_findHit_line && $input_findHit_line__closures, _subscribe($si__input_onFileToggle && $input_onFileToggle__closures, _subscribe($si__input_findHit_key && $input_findHit_key__closures, _subscribe($si__input_collapsedFiles && $input_collapsedFiles__closures, _subscribe($si__input_commentsByFile && $input_commentsByFile__closures, _subscribe($si__input_shownKeys && $input_shownKeys__closures, writeScope($scope6_id, {
2197
2202
  k: file$1,
2198
2203
  l: file$1?.key,
@@ -2243,50 +2248,52 @@ var review_section_default = _template("t", (input) => {
2243
2248
  aq: input.onSendDraft,
2244
2249
  ar: input.onCancelDraft,
2245
2250
  as: input.onDeleteComment,
2246
- at: input.onSendComment,
2247
- au: input.onError,
2248
- aw: _serialize_if($scope0_reason, 21) && repo?.pr,
2249
- ax: _serialize_if($scope0_reason, 8) && repo?.pr?.baseRefName,
2250
- ay: _serialize_if($scope0_reason, 22) && repo?.base,
2251
- az: $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName__OR__input_localDiffers && repo?.pr?.headRefName,
2252
- b0: _serialize_if($scope0_reason, 26) && repo?.branch,
2253
- b2: $si__input_repo && repo?.pr?.title,
2254
- b3: $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName__OR__input_localDiffers && repo?.head,
2255
- b4: $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName && repo?.baseSha,
2256
- b5: _serialize_if($scope0_reason, 38) && repo?.worktree,
2257
- b6: $si__input_repo && repo?.pr?.number,
2258
- b7: _serialize_if($scope0_reason, 16) && repo?.id,
2259
- b8: $si__input_repo && repo?.pr?.url,
2260
- b9: $si__input_repo && repo?.full_name,
2261
- bb: $si__input_repo && repo?.pr?.headRefOid,
2262
- bc: _serialize_if($scope0_reason, 37) && repo?.contained,
2263
- be: _serialize_if($scope0_reason, 40) && repo?.localHead,
2264
- bh: _serialize_if($scope0_reason, 12) && shownCount,
2265
- bk: $si__input_collapsible__OR__input_collapsed && countLabel,
2266
- bm: $si__input_files__OR__input_shownKeys && stats?.additions,
2267
- bn: $si__input_files__OR__input_shownKeys && stats?.deletions,
2268
- bp: $si__input_files__OR__input_onlyNew && newCount,
2269
- bw: $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName && compare$1?.topic,
2270
- bx: $si__input_repo && prTitle,
2271
- by: $si__input && $input__closures,
2272
- cd: $si__input_draft && $input_draft__closures,
2273
- ce: $si__input_sessions && $input_sessions__closures,
2274
- cf: $si__input_onSelect && $input_onSelect__closures,
2275
- cg: $si__input_onSaveComment && $input_onSaveComment__closures,
2276
- ch: $si__input_onSendDraft && $input_onSendDraft__closures,
2277
- ci: $si__input_onCancelDraft && $input_onCancelDraft__closures,
2278
- cj: $si__input_onDeleteComment && $input_onDeleteComment__closures,
2279
- ck: $si__input_onSendComment && $input_onSendComment__closures,
2280
- cl: $si__input_onError && $input_onError__closures,
2281
- ca: $si__input_findHit_key && $input_findHit_key__closures,
2282
- c0: $si__input_shownKeys && $input_shownKeys__closures,
2283
- c8: $si__input_commentsByFile && $input_commentsByFile__closures,
2284
- c9: $si__input_collapsedFiles && $input_collapsedFiles__closures,
2285
- cb: $si__input_onFileToggle && $input_onFileToggle__closures,
2286
- cc: $si__input_findHit_line && $input_findHit_line__closures
2251
+ at: input.onEditComment,
2252
+ au: input.onSendComment,
2253
+ av: input.onError,
2254
+ ax: _serialize_if($scope0_reason, 21) && repo?.pr,
2255
+ ay: _serialize_if($scope0_reason, 8) && repo?.pr?.baseRefName,
2256
+ az: _serialize_if($scope0_reason, 22) && repo?.base,
2257
+ b0: $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName__OR__input_localDiffers && repo?.pr?.headRefName,
2258
+ b1: _serialize_if($scope0_reason, 26) && repo?.branch,
2259
+ b3: $si__input_repo && repo?.pr?.title,
2260
+ b4: $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName__OR__input_localDiffers && repo?.head,
2261
+ b5: $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName && repo?.baseSha,
2262
+ b6: _serialize_if($scope0_reason, 38) && repo?.worktree,
2263
+ b7: $si__input_repo && repo?.pr?.number,
2264
+ b8: _serialize_if($scope0_reason, 16) && repo?.id,
2265
+ b9: $si__input_repo && repo?.pr?.url,
2266
+ ba: $si__input_repo && repo?.full_name,
2267
+ bc: $si__input_repo && repo?.pr?.headRefOid,
2268
+ bd: _serialize_if($scope0_reason, 37) && repo?.contained,
2269
+ bf: _serialize_if($scope0_reason, 40) && repo?.localHead,
2270
+ bi: _serialize_if($scope0_reason, 12) && shownCount,
2271
+ bl: $si__input_collapsible__OR__input_collapsed && countLabel,
2272
+ bn: $si__input_files__OR__input_shownKeys && stats?.additions,
2273
+ bo: $si__input_files__OR__input_shownKeys && stats?.deletions,
2274
+ bq: $si__input_files__OR__input_onlyNew && newCount,
2275
+ bx: $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName && compare$1?.topic,
2276
+ by: $si__input_repo && prTitle,
2277
+ bz: $si__input && $input__closures,
2278
+ ce: $si__input_draft && $input_draft__closures,
2279
+ cf: $si__input_sessions && $input_sessions__closures,
2280
+ cg: $si__input_onSelect && $input_onSelect__closures,
2281
+ ch: $si__input_onSaveComment && $input_onSaveComment__closures,
2282
+ ci: $si__input_onSendDraft && $input_onSendDraft__closures,
2283
+ cj: $si__input_onCancelDraft && $input_onCancelDraft__closures,
2284
+ ck: $si__input_onDeleteComment && $input_onDeleteComment__closures,
2285
+ cl: $si__input_onEditComment && $input_onEditComment__closures,
2286
+ cm: $si__input_onSendComment && $input_onSendComment__closures,
2287
+ cn: $si__input_onError && $input_onError__closures,
2288
+ cb: $si__input_findHit_key && $input_findHit_key__closures,
2289
+ c1: $si__input_shownKeys && $input_shownKeys__closures,
2290
+ c9: $si__input_commentsByFile && $input_commentsByFile__closures,
2291
+ ca: $si__input_collapsedFiles && $input_collapsedFiles__closures,
2292
+ cc: $si__input_onFileToggle && $input_onFileToggle__closures,
2293
+ cd: $si__input_findHit_line && $input_findHit_line__closures
2287
2294
  });
2288
2295
  });
2289
- var fileFilter = "_gW _l";
2296
+ var fileFilter = "_g6 _l";
2290
2297
  //#endregion
2291
2298
  //#region src/tags/file-filter.marko
2292
2299
  var file_filter_default = _template("m", (input) => {
@@ -2316,7 +2323,7 @@ var file_filter_default = _template("m", (input) => {
2316
2323
  pending = v;
2317
2324
  box.timer = setTimeout(flush, 150);
2318
2325
  }, "m2", $scope0_id);
2319
- _html(`<div${_attr_class("_gV")}><input${_attr_input_value($scope0_id, "b", draft, _resume(function(v) {
2326
+ _html(`<div${_attr_class("_g5")}><input${_attr_input_value($scope0_id, "b", draft, _resume(function(v) {
2320
2327
  type(v);
2321
2328
  }, "m0", $scope0_id))}${_attr_class(fileFilter)} type=search placeholder="Filter files…" aria-label="Filter files">${_el_resume($scope0_id, "b")}</div>`);
2322
2329
  _script($scope0_id, "m3");
@@ -2349,7 +2356,7 @@ var $content = (input) => {
2349
2356
  _for_of(dir.dirs, (child) => {
2350
2357
  const $scope1_id = _scope_id();
2351
2358
  const shut = input.collapsed.has(input.collapsedKey(child.path));
2352
- _html(`<div${_attr_class("_fc")}><button type=button${_attr_class(["_fd", { ["_e5"]: shut }])}${_attr("title", child.path)}${_attr_style(`--depth:${child.depth}`)}><span${_attr_class("_fk")}>${shut ? "▸" : "▾"}${_el_resume($scope1_id, "d", $sg__input)}</span><span${_attr_class("_fe")}>${_escape(child.label)}${_el_resume($scope1_id, "f", $sg__input_dir)}/</span></button>${_el_resume($scope1_id, "b")}`);
2359
+ _html(`<div${_attr_class("_fF")}><button type=button${_attr_class(["_fG", { ["_fx"]: shut }])}${_attr("title", child.path)}${_attr_style(`--depth:${child.depth}`)}><span${_attr_class("_fN")}>${shut ? "▸" : "▾"}${_el_resume($scope1_id, "d", $sg__input)}</span><span${_attr_class("_fH")}>${_escape(child.label)}${_el_resume($scope1_id, "f", $sg__input_dir)}/</span></button>${_el_resume($scope1_id, "b")}`);
2353
2360
  _if(() => {
2354
2361
  if (!shut) {
2355
2362
  const $scope2_id = _scope_id();
@@ -2396,11 +2403,11 @@ var $content = (input) => {
2396
2403
  }, "path", $scope0_id, "a", $sg__input, $sg__input_dir, $sg__input_dir, 0, 1);
2397
2404
  _for_of(dir.files, ({ file, name }) => {
2398
2405
  const $scope3_id = _scope_id();
2399
- _html(`<a${_attr("href", input.hrefFor(file.key))}${_attr_class(["_fg", { ["_ff"]: input.collapsedFiles?.has(file.key) }])}${input.collapsedFiles?.has(file.key) ? _attr("title", `${file.path} (folded — click to open)`) : _attr("title", file.path)}${_attr_style(`--depth:${dir.depth + 1}`)}><span${_attr_class("_fl")}${_attr("data-status", file.status)}>${_escape(file.status)}${_el_resume($scope3_id, "c", $sg__input_dir)}</span>${_el_resume($scope3_id, "b", $sg__input_dir)}<span${_attr_class("_fh")}>${_escape(name)}${_el_resume($scope3_id, "e", $sg__input_dir)}</span>`);
2406
+ _html(`<a${_attr("href", input.hrefFor(file.key))}${_attr_class(["_fJ", { ["_fI"]: input.collapsedFiles?.has(file.key) }])}${input.collapsedFiles?.has(file.key) ? _attr("title", `${file.path} (folded — click to open)`) : _attr("title", file.path)}${_attr_style(`--depth:${dir.depth + 1}`)}><span${_attr_class("_fO")}${_attr("data-status", file.status)}>${_escape(file.status)}${_el_resume($scope3_id, "c", $sg__input_dir)}</span>${_el_resume($scope3_id, "b", $sg__input_dir)}<span${_attr_class("_fK")}>${_escape(name)}${_el_resume($scope3_id, "e", $sg__input_dir)}</span>`);
2400
2407
  _if(() => {
2401
2408
  if (input.newKeys.has(file.key)) {
2402
2409
  const $scope4_id = _scope_id();
2403
- _html(`<span${_attr_class(["_z", "_fi"])} title="Changed since your last visit"></span>`);
2410
+ _html(`<span${_attr_class(["_z", "_fL"])} title="Changed since your last visit"></span>`);
2404
2411
  _serialize_if($scope0_reason, 1) && writeScope($scope4_id, {});
2405
2412
  return 0;
2406
2413
  }
@@ -2408,7 +2415,7 @@ var $content = (input) => {
2408
2415
  _if(() => {
2409
2416
  if (input.commentKeys.has(file.key)) {
2410
2417
  const $scope5_id = _scope_id();
2411
- _html(`<span${_attr_class("_fj")}>💬</span>`);
2418
+ _html(`<span${_attr_class("_fM")}>💬</span>`);
2412
2419
  _serialize_if($scope0_reason, 0) && writeScope($scope5_id, {});
2413
2420
  return 0;
2414
2421
  }
@@ -2464,7 +2471,7 @@ var diff_tree_default = _template("k", (input) => {
2464
2471
  scope: input.scope ?? null,
2465
2472
  file: key
2466
2473
  }), "k0", $scope0_id);
2467
- _html(`<aside${_attr_class(["_e6", { ["_e5"]: input.open === false }])}><div${_attr_class("_e7")}>`);
2474
+ _html(`<aside${_attr_class(["_fy", { ["_fx"]: input.open === false }])}><div${_attr_class("_fz")}>`);
2468
2475
  _set_serialize_reason(2);
2469
2476
  const $childScope = _peek_scope_id();
2470
2477
  file_filter_default({
@@ -2473,23 +2480,23 @@ var diff_tree_default = _template("k", (input) => {
2473
2480
  filter = _new_filter;
2474
2481
  }, "k1", $scope0_id)
2475
2482
  });
2476
- _html(`</div><div${_attr_class("_e8")}>`);
2483
+ _html(`</div><div${_attr_class("_fA")}>`);
2477
2484
  _if(() => {
2478
2485
  if (!input.sections.length && filter) {
2479
2486
  const $scope3_id = _scope_id();
2480
- _html(`<p${_attr_class("_e9")}>No files match.</p>`);
2487
+ _html(`<p${_attr_class("_fB")}>No files match.</p>`);
2481
2488
  writeScope($scope3_id, {});
2482
2489
  return 0;
2483
2490
  }
2484
2491
  }, $scope0_id, "e", 1, 1, 1, 0, 1);
2485
2492
  _for_of(input.sections, (section) => {
2486
2493
  const $scope1_id = _scope_id();
2487
- _html(`<div${_attr_class("_e_")}><button type=button${_attr_class(["_fa", { ["_e5"]: collapsedRepos.has(section.id) }])}><span${_attr_class("_fk")}>${collapsedRepos.has(section.id) ? "▸" : "▾"}${_el_resume($scope1_id, "d")}</span><span${_attr_class("_fe")}>${_escape(section.label)}${_el_resume($scope1_id, "f", $sg__input_sections)}</span></button>${_el_resume($scope1_id, "b")}`);
2494
+ _html(`<div${_attr_class("_fC")}><button type=button${_attr_class(["_fD", { ["_fx"]: collapsedRepos.has(section.id) }])}><span${_attr_class("_fN")}>${collapsedRepos.has(section.id) ? "▸" : "▾"}${_el_resume($scope1_id, "d")}</span><span${_attr_class("_fH")}>${_escape(section.label)}${_el_resume($scope1_id, "f", $sg__input_sections)}</span></button>${_el_resume($scope1_id, "b")}`);
2488
2495
  _if(() => {
2489
2496
  if (!collapsedRepos.has(section.id) || openedRepos.has(section.id)) {
2490
2497
  const $scope2_id = _scope_id();
2491
2498
  const root = treeDirs(section.files);
2492
- _html(`<div${_attr_class("_fb")}${_attr("hidden", collapsedRepos.has(section.id))}>`);
2499
+ _html(`<div${_attr_class("_fE")}${_attr("hidden", collapsedRepos.has(section.id))}>`);
2493
2500
  _set_serialize_reason(1);
2494
2501
  const $childScope2 = _peek_scope_id();
2495
2502
  diff_tree_dir_default({
@@ -2614,9 +2621,9 @@ var diff_file_sheet_default = _template("f", (input) => {
2614
2621
  _if(() => {
2615
2622
  if (open) {
2616
2623
  const $scope1_id = _scope_id();
2617
- _html(`<div${_attr_class("_fH")}></div>${_el_resume($scope1_id, "a")}<div${_attr_class("_fI")} role=dialog aria-label="Jump to file"><div${_attr_class("_fJ")}><strong${_attr_class("_fG")}>Files</strong><span${_attr_class("_fK")}>${_escape(input.files.length)}${_el_resume($scope1_id, "f", $sg__input_files_length)}${_sep($sg__input_total__OR__input_files_length)}${input.files.length !== total ? ` / ${_escape(`${total}`)}` : ""}${_el_resume($scope1_id, "g", $sg__input_total__OR__input_files_length)}</span><button type=button${_attr_class([iconBtnLg, "_fF"])} title=Close aria-label=Close>`);
2624
+ _html(`<div${_attr_class("_fR")}></div>${_el_resume($scope1_id, "a")}<div${_attr_class("_fS")} role=dialog aria-label="Jump to file"><div${_attr_class("_fT")}><strong${_attr_class("_fQ")}>Files</strong><span${_attr_class("_fU")}>${_escape(input.files.length)}${_el_resume($scope1_id, "f", $sg__input_files_length)}${_sep($sg__input_total__OR__input_files_length)}${input.files.length !== total ? ` / ${_escape(`${total}`)}` : ""}${_el_resume($scope1_id, "g", $sg__input_total__OR__input_files_length)}</span><button type=button${_attr_class([iconBtnLg, "_fP"])} title=Close aria-label=Close>`);
2618
2625
  icon_xmark_default({ size: 16 });
2619
- _html(`</button>${_el_resume($scope1_id, "h")}</div><div${_attr_class("_fS")}>`);
2626
+ _html(`</button>${_el_resume($scope1_id, "h")}</div><div${_attr_class("_f2")}>`);
2620
2627
  _set_serialize_reason(2);
2621
2628
  const $childScope = _peek_scope_id();
2622
2629
  file_filter_default({
@@ -2625,28 +2632,28 @@ var diff_file_sheet_default = _template("f", (input) => {
2625
2632
  filter = _new_filter;
2626
2633
  }, "f1", $scope1_id)
2627
2634
  });
2628
- _html(`</div><div${_attr_class("_fL")}>`);
2635
+ _html(`</div><div${_attr_class("_fV")}>`);
2629
2636
  _for_of(groups, (group) => {
2630
2637
  const $scope2_id = _scope_id();
2631
- _html(`<div${_attr_class("_fM")}><div${_attr_class("_fN")}>${_escape(group.repo)}${_el_resume($scope2_id, "c", $sg__input_files)}</div>`);
2638
+ _html(`<div${_attr_class("_fW")}><div${_attr_class("_fX")}>${_escape(group.repo)}${_el_resume($scope2_id, "c", $sg__input_files)}</div>`);
2632
2639
  _for_of(group.dirs, ({ dir, files }) => {
2633
2640
  const $scope3_id = _scope_id();
2634
- _html(`<div${_attr_class("_fO")}>`);
2641
+ _html(`<div${_attr_class("_fY")}>`);
2635
2642
  _if(() => {
2636
2643
  if (dir) {
2637
2644
  const $scope5_id = _scope_id();
2638
- _html(`<div${_attr_class("_fQ")}${_attr("title", dir)}><bdi>${_escape(dir)}${_el_resume($scope5_id, "b", $sg__input_files)}/</bdi></div>${_el_resume($scope5_id, "a", $sg__input_files)}`);
2645
+ _html(`<div${_attr_class("_f0")}${_attr("title", dir)}><bdi>${_escape(dir)}${_el_resume($scope5_id, "b", $sg__input_files)}/</bdi></div>${_el_resume($scope5_id, "a", $sg__input_files)}`);
2639
2646
  $si__input_files && writeScope($scope5_id, { _: _scope_with_id($scope3_id) });
2640
2647
  return 0;
2641
2648
  }
2642
2649
  }, $scope3_id, "b", $sg__input_files, $sg__input_files, $sg__input_files, 0, 1);
2643
2650
  _for_of(files, ({ file, name }) => {
2644
2651
  const $scope4_id = _scope_id();
2645
- _html(`<a${_attr("href", hrefFor(file.key))}${_attr_class(["_fP", "_x"])}><span${_attr_class("_fV")}${_attr("data-status", file.status)}>${_escape(file.status)}${_el_resume($scope4_id, "c", $sg__input_files)}</span>${_el_resume($scope4_id, "b", $sg__input_files)}<span${_attr_class("_fR")}><bdi>${_escape(name)}${_el_resume($scope4_id, "e", $sg__input_files)}</bdi></span>`);
2652
+ _html(`<a${_attr("href", hrefFor(file.key))}${_attr_class(["_fZ", "_x"])}><span${_attr_class("_f5")}${_attr("data-status", file.status)}>${_escape(file.status)}${_el_resume($scope4_id, "c", $sg__input_files)}</span>${_el_resume($scope4_id, "b", $sg__input_files)}<span${_attr_class("_f1")}><bdi>${_escape(name)}${_el_resume($scope4_id, "e", $sg__input_files)}</bdi></span>`);
2646
2653
  _if(() => {
2647
2654
  if (newKeys.has(file.key)) {
2648
2655
  const $scope6_id = _scope_id();
2649
- _html(`<span${_attr_class(["_z", "_fU"])} title="Changed since your last visit"></span>`);
2656
+ _html(`<span${_attr_class(["_z", "_f4"])} title="Changed since your last visit"></span>`);
2650
2657
  _serialize_if($scope0_reason, 1) && writeScope($scope6_id, {});
2651
2658
  return 0;
2652
2659
  }
@@ -2678,7 +2685,7 @@ var diff_file_sheet_default = _template("f", (input) => {
2678
2685
  _if(() => {
2679
2686
  if (!input.files.length) {
2680
2687
  const $scope8_id = _scope_id();
2681
- _html(`<p${_attr_class("_fT")}>No files match.</p>`);
2688
+ _html(`<p${_attr_class("_f3")}>No files match.</p>`);
2682
2689
  $si__input_files_length && writeScope($scope8_id, {});
2683
2690
  return 0;
2684
2691
  }
@@ -2742,6 +2749,7 @@ var diff_view_default = _template("l", (input) => {
2742
2749
  const $localDifferIds__closures = /* @__PURE__ */ new Set();
2743
2750
  const $saveComment2__closures = /* @__PURE__ */ new Set();
2744
2751
  const $removeComment2__closures = /* @__PURE__ */ new Set();
2752
+ const $editComment2__closures = /* @__PURE__ */ new Set();
2745
2753
  const $sendOneComment2__closures = /* @__PURE__ */ new Set();
2746
2754
  const $sendDraftComment2__closures = /* @__PURE__ */ new Set();
2747
2755
  const $toggleSection2__closures = /* @__PURE__ */ new Set();
@@ -3083,6 +3091,27 @@ var diff_view_default = _template("l", (input) => {
3083
3091
  comments = comments.filter((c) => c.id !== id);
3084
3092
  await deleteRemote([id]).catch(() => {});
3085
3093
  }, "l26", $scope0_id);
3094
+ const editComment = _resume(async (id, text) => {
3095
+ const prev = comments.find((c) => c.id === id);
3096
+ if (!prev) return;
3097
+ const trimmed = text.trim();
3098
+ if (!trimmed || trimmed === prev.text) return;
3099
+ comments = comments.map((c) => c.id === id ? {
3100
+ ...c,
3101
+ text: trimmed
3102
+ } : c);
3103
+ try {
3104
+ await api(`/api/workspaces/${input.workspaceId}/review/${id}`, {
3105
+ method: "PATCH",
3106
+ headers: { "content-type": "application/json" },
3107
+ body: JSON.stringify({ text: trimmed })
3108
+ });
3109
+ } catch (err) {
3110
+ comments = comments.map((c) => c.id === id ? prev : c);
3111
+ error = String(err.message || err);
3112
+ throw err;
3113
+ }
3114
+ }, "l27", $scope0_id);
3086
3115
  const dispatch = _resume(async (list, to, consume) => {
3087
3116
  if (!list.length) return true;
3088
3117
  sendGate.busy++;
@@ -3118,13 +3147,13 @@ var diff_view_default = _template("l", (input) => {
3118
3147
  } finally {
3119
3148
  sendGate.busy--;
3120
3149
  }
3121
- }, "l27", $scope0_id);
3122
- const copyMarkdown = _resume(() => dispatch(comments, { clipboard: true }, "all"), "l28", $scope0_id);
3123
- const sendTo = _resume((sessionId) => dispatch(comments, { session: sessionId }, "all"), "l29", $scope0_id);
3150
+ }, "l28", $scope0_id);
3151
+ const copyMarkdown = _resume(() => dispatch(comments, { clipboard: true }, "all"), "l29", $scope0_id);
3152
+ const sendTo = _resume((sessionId) => dispatch(comments, { session: sessionId }, "all"), "l30", $scope0_id);
3124
3153
  const sendOneComment = _resume((id, sessionId) => {
3125
3154
  const comment = comments.find((c) => c.id === id);
3126
3155
  return comment ? dispatch([comment], { session: sessionId }, [id]) : Promise.resolve(false);
3127
- }, "l30", $scope0_id);
3156
+ }, "l31", $scope0_id);
3128
3157
  const sendDraftComment = _resume((file, text, sessionId) => {
3129
3158
  const range = draft;
3130
3159
  const trimmed = text.trim();
@@ -3142,12 +3171,12 @@ var diff_view_default = _template("l", (input) => {
3142
3171
  ...anchorFor(file, range)
3143
3172
  };
3144
3173
  return dispatch([one], { session: sessionId }, []);
3145
- }, "l31", $scope0_id);
3174
+ }, "l32", $scope0_id);
3146
3175
  const openFind = _resume(() => {
3147
3176
  findOpen = true;
3148
3177
  findTick++;
3149
3178
  findFocusRef.focus();
3150
- }, "l32", $scope0_id);
3179
+ }, "l33", $scope0_id);
3151
3180
  const onFindState = _resume((next) => {
3152
3181
  findState = next;
3153
3182
  if (!next.hit) return;
@@ -3162,7 +3191,7 @@ var diff_view_default = _template("l", (input) => {
3162
3191
  setSearchPaint(next.query, hit);
3163
3192
  revealSearchHit();
3164
3193
  }, 0);
3165
- }, "l33", $scope0_id);
3194
+ }, "l34", $scope0_id);
3166
3195
  const toggleSection = _resume((id) => {
3167
3196
  if (expandingRepos.has(id)) {
3168
3197
  const busy = new Set(expandingRepos);
@@ -3194,23 +3223,23 @@ var diff_view_default = _template("l", (input) => {
3194
3223
  openedRepos = /* @__PURE__ */ new Set([...openedRepos, id]);
3195
3224
  collapsedRepos = /* @__PURE__ */ new Set([...collapsedRepos, id]);
3196
3225
  }
3197
- }, "l34", $scope0_id);
3198
- _html(`<div${_attr_class("_dv")}><div${_attr_class("_dA")}><div${_attr_class("_dB")}><div${_attr_class(["_dL", { ["_dK"]: !comments.length }])}>`);
3226
+ }, "l35", $scope0_id);
3227
+ _html(`<div${_attr_class("_d1")}><div${_attr_class("_d6")}><div${_attr_class("_d7")}><div${_attr_class(["_eg", { ["_ef"]: !comments.length }])}>`);
3199
3228
  _if(() => {
3200
3229
  if (input.onExit) {
3201
3230
  const $scope1_id = _scope_id();
3202
- _html(`<a${_attr("href", `/w/${input.workspaceId}`)}${_attr_class([iconBtnRow, "_dC"])} title="Back to terminal (Esc)">`);
3231
+ _html(`<a${_attr("href", `/w/${input.workspaceId}`)}${_attr_class([iconBtnRow, "_d8"])} title="Back to terminal (Esc)">`);
3203
3232
  icon_back_default({ size: 14 });
3204
3233
  _html(`</a>${_el_resume($scope1_id, "a", _serialize_guard($scope0_reason, 1))}`);
3205
3234
  _serialize_if($scope0_reason, 0) && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 1) && _scope_with_id($scope0_id) });
3206
3235
  return 0;
3207
3236
  }
3208
3237
  }, $scope0_id, "e", _serialize_guard($scope0_reason, 0), _serialize_guard($scope0_reason, 4), 1, 0, 1);
3209
- _html(`<h1${_attr_class("_dF")}>Review</h1>`);
3238
+ _html(`<h1${_attr_class("_ea")}>Review</h1>`);
3210
3239
  _if(() => {
3211
3240
  if (comments.length) {
3212
3241
  const $scope5_id = _scope_id();
3213
- _html(`<span${_attr_class("_dE")}>${_escape(comments.length)}${_el_resume($scope5_id, "b")} comment<!>${comments.length === 1 ? "" : "s"}${_el_resume($scope5_id, "c")}</span>`);
3242
+ _html(`<span${_attr_class("_d_")}>${_escape(comments.length)}${_el_resume($scope5_id, "b")} comment<!>${comments.length === 1 ? "" : "s"}${_el_resume($scope5_id, "c")}</span>`);
3214
3243
  writeScope($scope5_id, {});
3215
3244
  return 0;
3216
3245
  }
@@ -3218,7 +3247,7 @@ var diff_view_default = _template("l", (input) => {
3218
3247
  _if(() => {
3219
3248
  if (comments.length) {
3220
3249
  const $scope2_id = _scope_id();
3221
- _html(`<span${_attr_class("_dD")}>`);
3250
+ _html(`<span${_attr_class("_d9")}>`);
3222
3251
  _set_serialize_reason(_serialize_guard($scope0_reason, 5));
3223
3252
  const $childScope = _peek_scope_id();
3224
3253
  diff_send_default({
@@ -3231,23 +3260,23 @@ var diff_view_default = _template("l", (input) => {
3231
3260
  return 0;
3232
3261
  }
3233
3262
  }, $scope0_id, "h", 1, 1, 1, 0, 1);
3234
- _html(`</div>${_el_resume($scope0_id, "d")}<div${_attr_class("_dz")}>`);
3263
+ _html(`</div>${_el_resume($scope0_id, "d")}<div${_attr_class("_d5")}>`);
3235
3264
  _if(() => {
3236
3265
  if (hasFiles) {
3237
3266
  const $scope12_id = _scope_id();
3238
3267
  _html(`<button${_attr_class([
3239
3268
  treeToggle,
3240
- "_dx",
3241
- { ["_dw"]: treeOpen }
3269
+ "_d3",
3270
+ { ["_d2"]: treeOpen }
3242
3271
  ])} title=${treeOpen ? "\"Hide file tree\"" : "\"Show file tree\""}>`);
3243
3272
  icon_sidebar_default({ size: 14 });
3244
3273
  _html(`</button>${_el_resume($scope12_id, "a")}`);
3245
- _script($scope12_id, "l52");
3274
+ _script($scope12_id, "l54");
3246
3275
  writeScope($scope12_id, {});
3247
3276
  return 0;
3248
3277
  }
3249
3278
  }, $scope0_id, "j", 1, 1, 1, 0, 1);
3250
- _html(`<button${_attr_class([iconBtnRow, "_dx"])} title="Refresh diff"${_attr("disabled", loading)}>`);
3279
+ _html(`<button${_attr_class([iconBtnRow, "_d3"])} title="Refresh diff"${_attr("disabled", loading)}>`);
3251
3280
  _set_serialize_reason(1);
3252
3281
  const $childScope2 = _peek_scope_id();
3253
3282
  icon_refresh_default({
@@ -3258,19 +3287,19 @@ var diff_view_default = _template("l", (input) => {
3258
3287
  _if(() => {
3259
3288
  if (hasFiles) {
3260
3289
  const $scope13_id = _scope_id();
3261
- _html(`<button${_attr_class(["_o", "_dX"])} title="Jump to file">Files (<!>${_escape(shownFiles.length)}${_el_resume($scope13_id, "b")})</button>${_el_resume($scope13_id, "a")}`);
3262
- _script($scope13_id, "l53");
3290
+ _html(`<button${_attr_class(["_o", "_es"])} title="Jump to file">Files (<!>${_escape(shownFiles.length)}${_el_resume($scope13_id, "b")})</button>${_el_resume($scope13_id, "a")}`);
3291
+ _script($scope13_id, "l55");
3263
3292
  writeScope($scope13_id, {});
3264
3293
  return 0;
3265
3294
  }
3266
3295
  }, $scope0_id, "m", 1, 1, 1, 0, 1);
3267
- _html(`<div${_attr_class("_dM")} role=group aria-label="Review scope"><button type=button${_attr_class(["_dO", { ["_dN"]: scope$1 === "committed" }])} aria-pressed=${scope$1 === "committed" ? "true" : "false"} title="Committed changes only (base…tip, no working-tree edits)"${_attr("disabled", loading)}>Committed</button>${_el_resume($scope0_id, "o")}<button type=button${_attr_class(["_dO", { ["_dN"]: scope$1 === "working" }])} aria-pressed=${scope$1 === "working" ? "true" : "false"} title="Committed changes plus uncommitted and untracked files"${_attr("disabled", loading)}>Working tree</button>${_el_resume($scope0_id, "p")}<button type=button${_attr_class(["_dO", { ["_dN"]: scope$1 === "dirty" }])} aria-pressed=${scope$1 === "dirty" ? "true" : "false"} title="Only uncommitted and untracked files, against HEAD"${_attr("disabled", loading)}>Uncommitted</button>${_el_resume($scope0_id, "q")}</div><span${_attr_class(["_m", "_dP"])}>`);
3296
+ _html(`<div${_attr_class("_eh")} role=group aria-label="Review scope"><button type=button${_attr_class(["_ej", { ["_ei"]: scope$1 === "committed" }])} aria-pressed=${scope$1 === "committed" ? "true" : "false"} title="Committed changes only (base…tip, no working-tree edits)"${_attr("disabled", loading)}>Committed</button>${_el_resume($scope0_id, "o")}<button type=button${_attr_class(["_ej", { ["_ei"]: scope$1 === "working" }])} aria-pressed=${scope$1 === "working" ? "true" : "false"} title="Committed changes plus uncommitted and untracked files"${_attr("disabled", loading)}>Working tree</button>${_el_resume($scope0_id, "p")}<button type=button${_attr_class(["_ej", { ["_ei"]: scope$1 === "dirty" }])} aria-pressed=${scope$1 === "dirty" ? "true" : "false"} title="Only uncommitted and untracked files, against HEAD"${_attr("disabled", loading)}>Uncommitted</button>${_el_resume($scope0_id, "q")}</div><span${_attr_class(["_m", "_ek"])}>`);
3268
3297
  _attr_select_value($scope0_id, "s", scope$1, _resume(function(v) {
3269
3298
  setScope(v);
3270
3299
  }, "l0", $scope0_id), () => {
3271
- _html(`<select${_attr_class(["_n", "_dQ"])} aria-label="Review scope"${_attr("disabled", loading)}><option${_attr_option_value("committed")}>Committed</option><option${_attr_option_value("working")}>Working tree</option><option${_attr_option_value("dirty")}>Uncommitted</option></select>`);
3300
+ _html(`<select${_attr_class(["_n", "_el"])} aria-label="Review scope"${_attr("disabled", loading)}><option${_attr_option_value("committed")}>Committed</option><option${_attr_option_value("working")}>Working tree</option><option${_attr_option_value("dirty")}>Uncommitted</option></select>`);
3272
3301
  });
3273
- _html(`${_el_resume($scope0_id, "s")}</span><div${_attr_class(["_dI", { ["_dH"]: !findOpen }])}>`);
3302
+ _html(`${_el_resume($scope0_id, "s")}</span><div${_attr_class(["_ed", { ["_ec"]: !findOpen }])}>`);
3274
3303
  _set_serialize_reason(2);
3275
3304
  const $childScope3 = _peek_scope_id();
3276
3305
  diff_find_default({
@@ -3279,11 +3308,11 @@ var diff_view_default = _template("l", (input) => {
3279
3308
  open: findOpen,
3280
3309
  openChange: _resume((_new_findOpen) => {
3281
3310
  findOpen = _new_findOpen;
3282
- }, "l35", $scope0_id),
3311
+ }, "l36", $scope0_id),
3283
3312
  focusRef: findFocusRef,
3284
3313
  stateChange: _resume(function(s) {
3285
3314
  onFindState(s);
3286
- }, "l36", $scope0_id)
3315
+ }, "l37", $scope0_id)
3287
3316
  });
3288
3317
  _html(`</div>${_el_resume($scope0_id, "t")}`);
3289
3318
  _if(() => {
@@ -3291,25 +3320,25 @@ var diff_view_default = _template("l", (input) => {
3291
3320
  const $scope14_id = _scope_id();
3292
3321
  _html(`<button${_attr_class([
3293
3322
  iconBtnRow,
3294
- "_dG",
3295
- "_dx"
3323
+ "_eb",
3324
+ "_d3"
3296
3325
  ])} title="Find in review (⌘/Ctrl+F)" aria-label="Find in review"${_attr("hidden", findOpen)}>`);
3297
3326
  icon_search_default({ size: 14 });
3298
3327
  _html(`</button>${_el_resume($scope14_id, "a")}`);
3299
- _script($scope14_id, "l54");
3328
+ _script($scope14_id, "l56");
3300
3329
  writeScope($scope14_id, {});
3301
3330
  return 0;
3302
3331
  }
3303
3332
  }, $scope0_id, "v", 1, 1, 1, 0, 1);
3304
- _html(`</div></div><div${_attr_class("_dJ")} data-diff-main>`);
3333
+ _html(`</div></div><div${_attr_class("_ee")} data-diff-main>`);
3305
3334
  _if(() => {
3306
3335
  if (error) {
3307
3336
  const $scope6_id = _scope_id();
3308
3337
  toast_default({
3309
3338
  onDismiss: _resume(function() {
3310
3339
  error = null;
3311
- }, "l37", $scope6_id),
3312
- content: _content_resume("l55", () => {
3340
+ }, "l38", $scope6_id),
3341
+ content: _content_resume("l57", () => {
3313
3342
  _scope_reason();
3314
3343
  const $scope7_id = _scope_id();
3315
3344
  _html(`${_escape(error)}${_el_resume($scope7_id, "a")}`);
@@ -3324,7 +3353,7 @@ var diff_view_default = _template("l", (input) => {
3324
3353
  _if(() => {
3325
3354
  if (!repos && loading) {
3326
3355
  const $scope15_id = _scope_id();
3327
- _html(`<div${_attr_class("_dS")} aria-hidden=true><div${_attr_class(["_dT", "_dU"])}></div><div${_attr_class(["_dT", "_dV"])}></div><div${_attr_class(["_dT", "_dW"])}></div><div${_attr_class(["_dT", "_dV"])}></div><div${_attr_class(["_dT", "_dW"])}></div></div>`);
3356
+ _html(`<div${_attr_class("_en")} aria-hidden=true><div${_attr_class(["_eo", "_ep"])}></div><div${_attr_class(["_eo", "_eq"])}></div><div${_attr_class(["_eo", "_er"])}></div><div${_attr_class(["_eo", "_eq"])}></div><div${_attr_class(["_eo", "_er"])}></div></div>`);
3328
3357
  writeScope($scope15_id, {});
3329
3358
  return 0;
3330
3359
  }
@@ -3338,7 +3367,7 @@ var diff_view_default = _template("l", (input) => {
3338
3367
  kind: "warn",
3339
3368
  placement: "inline",
3340
3369
  title: `${repo.worktree}: base not found`,
3341
- content: _content_resume("l56", () => {
3370
+ content: _content_resume("l58", () => {
3342
3371
  _scope_reason();
3343
3372
  const $scope10_id = _scope_id();
3344
3373
  _html(`${_escape(repo.base)}${_el_resume($scope10_id, "a")}<!>${scope$1 !== "committed" ? ", showing uncommitted changes only" : ""}${_el_resume($scope10_id, "b")}.`);
@@ -3383,14 +3412,14 @@ var diff_view_default = _template("l", (input) => {
3383
3412
  opened: openedRepos.has(repo.id),
3384
3413
  onToggle: _resume(function() {
3385
3414
  toggleSection(repo.id);
3386
- }, "l38", $scope4_id),
3415
+ }, "l39", $scope4_id),
3387
3416
  workspaceBranch: input.workspaceBranch || "",
3388
3417
  workspaceName: input.workspaceName || "",
3389
3418
  localDiffers: localDifferIds.has(repo.id),
3390
3419
  onlyNew,
3391
3420
  onToggleNew: _resume(function() {
3392
3421
  onlyNew = !onlyNew;
3393
- }, "l39", $scope4_id),
3422
+ }, "l40", $scope4_id),
3394
3423
  onReload: reload,
3395
3424
  loading,
3396
3425
  findHit: findState.hit,
@@ -3401,7 +3430,7 @@ var diff_view_default = _template("l", (input) => {
3401
3430
  collapsedFiles,
3402
3431
  onFileToggle: _resume(function(key, open) {
3403
3432
  setFilesCollapsed([key], !open);
3404
- }, "l40", $scope4_id),
3433
+ }, "l41", $scope4_id),
3405
3434
  onSelect: _resume(function(file, range) {
3406
3435
  draft = {
3407
3436
  key: file.key,
@@ -3409,27 +3438,30 @@ var diff_view_default = _template("l", (input) => {
3409
3438
  start: Math.min(range.start, range.end),
3410
3439
  end: Math.max(range.start, range.end)
3411
3440
  };
3412
- }, "l41", $scope4_id),
3441
+ }, "l42", $scope4_id),
3413
3442
  onSaveComment: _resume(function(file, text) {
3414
3443
  saveComment(file, text);
3415
- }, "l42", $scope4_id),
3444
+ }, "l43", $scope4_id),
3416
3445
  onSendDraft: _resume(function(file, text, sessionId) {
3417
3446
  sendDraftComment(file, text, sessionId);
3418
- }, "l43", $scope4_id),
3447
+ }, "l44", $scope4_id),
3419
3448
  onCancelDraft: _resume(function() {
3420
3449
  draft = null;
3421
- }, "l44", $scope4_id),
3450
+ }, "l45", $scope4_id),
3422
3451
  onDeleteComment: _resume(function(id) {
3423
3452
  removeComment(id);
3424
- }, "l45", $scope4_id),
3453
+ }, "l46", $scope4_id),
3454
+ onEditComment: _resume(function(id, text) {
3455
+ editComment(id, text);
3456
+ }, "l47", $scope4_id),
3425
3457
  onSendComment: _resume(function(id, sessionId) {
3426
3458
  sendOneComment(id, sessionId);
3427
- }, "l46", $scope4_id),
3459
+ }, "l48", $scope4_id),
3428
3460
  onError: _resume(function(message) {
3429
3461
  error = message;
3430
- }, "l47", $scope4_id)
3462
+ }, "l49", $scope4_id)
3431
3463
  });
3432
- _subscribe($toggleSection2__closures, _subscribe($sendDraftComment2__closures, _subscribe($sendOneComment2__closures, _subscribe($removeComment2__closures, _subscribe($saveComment2__closures, _subscribe($localDifferIds__closures, _subscribe($commentsByFile__closures, _subscribe($shownKeySet__closures, _subscribe($repoList_length__closures, _subscribe($reload2__closures, _subscribe($expandingRepos__closures, _subscribe($openedRepos__closures, _subscribe($setFilesCollapsed2__closures, _subscribe($collapsedFiles__closures, _subscribe($collapsedRepos__closures, _subscribe($findState_hit__closures, _subscribe($onlyNew__closures, _subscribe($loading__closures, _subscribe($draft__closures, _subscribe($si__input_workspaceName && $input_workspaceName__closures, _subscribe($si__input_workspaceBranch && $input_workspaceBranch__closures, _subscribe($si__input_sessions && $input_sessions__closures, writeScope($scope4_id, { a: _existing_scope($childScope5) })))))))))))))))))))))));
3464
+ _subscribe($toggleSection2__closures, _subscribe($sendDraftComment2__closures, _subscribe($sendOneComment2__closures, _subscribe($editComment2__closures, _subscribe($removeComment2__closures, _subscribe($saveComment2__closures, _subscribe($localDifferIds__closures, _subscribe($commentsByFile__closures, _subscribe($shownKeySet__closures, _subscribe($repoList_length__closures, _subscribe($reload2__closures, _subscribe($expandingRepos__closures, _subscribe($openedRepos__closures, _subscribe($setFilesCollapsed2__closures, _subscribe($collapsedFiles__closures, _subscribe($collapsedRepos__closures, _subscribe($findState_hit__closures, _subscribe($onlyNew__closures, _subscribe($loading__closures, _subscribe($draft__closures, _subscribe($si__input_workspaceName && $input_workspaceName__closures, _subscribe($si__input_workspaceBranch && $input_workspaceBranch__closures, _subscribe($si__input_sessions && $input_sessions__closures, writeScope($scope4_id, { a: _existing_scope($childScope5) }))))))))))))))))))))))));
3433
3465
  return 0;
3434
3466
  }
3435
3467
  }, $scope3_id, "a", 1, 1, 1, 0, 1);
@@ -3449,17 +3481,17 @@ var diff_view_default = _template("l", (input) => {
3449
3481
  collapsedRepos,
3450
3482
  collapsedReposChange: _resume((_new_collapsedRepos) => {
3451
3483
  collapsedRepos = _new_collapsedRepos;
3452
- }, "l48", $scope0_id),
3484
+ }, "l50", $scope0_id),
3453
3485
  openedRepos,
3454
3486
  openedReposChange: _resume((_new_openedRepos) => {
3455
3487
  openedRepos = _new_openedRepos;
3456
- }, "l49", $scope0_id),
3488
+ }, "l51", $scope0_id),
3457
3489
  commentKeys,
3458
3490
  newKeys,
3459
3491
  collapsedFiles,
3460
3492
  onDirToggle: _resume(function(keys, collapsed) {
3461
3493
  setFilesCollapsed(keys, collapsed);
3462
- }, "l50", $scope0_id),
3494
+ }, "l52", $scope0_id),
3463
3495
  workspaceId: input.workspaceId,
3464
3496
  scope: scope$1
3465
3497
  });
@@ -3469,7 +3501,7 @@ var diff_view_default = _template("l", (input) => {
3469
3501
  open: fileSheet,
3470
3502
  openChange: _resume((_new_fileSheet) => {
3471
3503
  fileSheet = _new_fileSheet;
3472
- }, "l51", $scope0_id),
3504
+ }, "l53", $scope0_id),
3473
3505
  files: shownFiles,
3474
3506
  filter: fileFilter,
3475
3507
  filterChange: $filterChange,
@@ -3480,11 +3512,11 @@ var diff_view_default = _template("l", (input) => {
3480
3512
  scope: scope$1
3481
3513
  });
3482
3514
  _html("</div>");
3483
- _script($scope0_id, "l57");
3484
- _script($scope0_id, "l58");
3485
3515
  _script($scope0_id, "l59");
3486
3516
  _script($scope0_id, "l60");
3487
3517
  _script($scope0_id, "l61");
3518
+ _script($scope0_id, "l62");
3519
+ _script($scope0_id, "l63");
3488
3520
  writeScope($scope0_id, {
3489
3521
  a6: input.workspaceId,
3490
3522
  a7: input.scope,
@@ -3504,105 +3536,107 @@ var diff_view_default = _template("l", (input) => {
3504
3536
  ao: input.workspaceName,
3505
3537
  ap: repos,
3506
3538
  ar: comments,
3507
- as: comments?.length,
3508
- at: draft,
3509
- au: error,
3510
- av: loading,
3511
- ax: fileFilter,
3512
- b0: onlyNew,
3513
- b1: scope$1,
3514
- b2: treeOpen,
3515
- b4: findOpen,
3516
- b6: findTick,
3517
- b8: findFocusRef,
3518
- bb: findState?.query,
3519
- bd: findState?.hit,
3520
- be: findState?.hit?.key,
3521
- bf: collapsedRepos,
3522
- bg: collapsedFiles,
3523
- bh: setFilesCollapsed,
3524
- bi: openedRepos,
3525
- bj: expandingRepos,
3526
- bm: nearBox.cbs,
3527
- bn: nearBox.io,
3528
- bo: nearBox.root,
3529
- bq: observeNear,
3530
- br: pinToTop,
3531
- bs: retryFrames,
3532
- bu: focusPrSection,
3533
- bv: findFile,
3534
- bw: openFile,
3535
- bz: jumpTo,
3536
- c1: posBox.raf,
3537
- c2: posBox.anchor,
3538
- c4: posBox.run,
3539
- c6: anchorAt,
3540
- c8: noteScroll,
3541
- c9: savePos,
3542
- ca: restorePos,
3543
- cc: headBox.sig,
3544
- cd: headBox.timer,
3545
- cf: loadBox.seq,
3546
- ch: load,
3547
- ck: setScope,
3548
- cn: sendGate.busy,
3549
- cp: loadReview,
3550
- cq: reload,
3551
- cs: reloadSoon,
3552
- ct: markSeen,
3553
- cv: repoList,
3554
- cw: repoList.length,
3555
- cx: allFiles,
3556
- cz: allFiles?.length,
3557
- d0: fileFiltered,
3558
- d1: findKeys,
3559
- d4: shownFiles?.length,
3560
- d6: shownKeySet,
3561
- d8: groupByRepo,
3562
- db: filesByRepo,
3563
- de: commentsByFile,
3564
- dh: localDifferIds,
3565
- di: hasFiles,
3566
- dj: fileWorktree,
3567
- dk: anchorFor,
3568
- dm: saveComment,
3569
- dn: deleteRemote,
3570
- dq: removeComment,
3571
- dr: dispatch,
3572
- du: copyMarkdown,
3573
- dv: sendTo,
3574
- dw: sendOneComment,
3575
- dx: sendDraftComment,
3576
- dy: openFind,
3577
- e0: onFindState,
3578
- e1: toggleSection,
3579
- b5: input.findOpenChange || void 0,
3539
+ at: comments?.length,
3540
+ au: draft,
3541
+ av: error,
3542
+ aw: loading,
3543
+ ay: fileFilter,
3544
+ b1: onlyNew,
3545
+ b2: scope$1,
3546
+ b3: treeOpen,
3547
+ b5: findOpen,
3548
+ b7: findTick,
3549
+ b9: findFocusRef,
3550
+ bc: findState?.query,
3551
+ be: findState?.hit,
3552
+ bf: findState?.hit?.key,
3553
+ bg: collapsedRepos,
3554
+ bh: collapsedFiles,
3555
+ bi: setFilesCollapsed,
3556
+ bj: openedRepos,
3557
+ bk: expandingRepos,
3558
+ bn: nearBox.cbs,
3559
+ bo: nearBox.io,
3560
+ bp: nearBox.root,
3561
+ br: observeNear,
3562
+ bs: pinToTop,
3563
+ bt: retryFrames,
3564
+ bv: focusPrSection,
3565
+ bw: findFile,
3566
+ bx: openFile,
3567
+ c0: jumpTo,
3568
+ c2: posBox.raf,
3569
+ c3: posBox.anchor,
3570
+ c5: posBox.run,
3571
+ c7: anchorAt,
3572
+ c9: noteScroll,
3573
+ ca: savePos,
3574
+ cb: restorePos,
3575
+ cd: headBox.sig,
3576
+ ce: headBox.timer,
3577
+ cg: loadBox.seq,
3578
+ ci: load,
3579
+ cl: setScope,
3580
+ co: sendGate.busy,
3581
+ cq: loadReview,
3582
+ cr: reload,
3583
+ ct: reloadSoon,
3584
+ cu: markSeen,
3585
+ cw: repoList,
3586
+ cx: repoList.length,
3587
+ cy: allFiles,
3588
+ d0: allFiles?.length,
3589
+ d1: fileFiltered,
3590
+ d2: findKeys,
3591
+ d5: shownFiles?.length,
3592
+ d7: shownKeySet,
3593
+ d9: groupByRepo,
3594
+ dc: filesByRepo,
3595
+ df: commentsByFile,
3596
+ di: localDifferIds,
3597
+ dj: hasFiles,
3598
+ dk: fileWorktree,
3599
+ dl: anchorFor,
3600
+ dn: saveComment,
3601
+ do: deleteRemote,
3602
+ dr: removeComment,
3603
+ ds: editComment,
3604
+ dt: dispatch,
3605
+ dw: copyMarkdown,
3606
+ dx: sendTo,
3607
+ dy: sendOneComment,
3608
+ dz: sendDraftComment,
3609
+ e0: openFind,
3610
+ e2: onFindState,
3611
+ e3: toggleSection,
3612
+ b6: input.findOpenChange || void 0,
3580
3613
  l: _existing_scope($childScope2),
3581
3614
  u: _existing_scope($childScope3),
3582
- e8: $error__closures,
3583
- ec: $scope__closures,
3584
- e3: $si__input_sessions && $input_sessions__closures,
3585
- e4: $si__input_workspaceBranch && $input_workspaceBranch__closures,
3586
- e5: $si__input_workspaceName && $input_workspaceName__closures,
3587
- e7: $draft__closures,
3588
- e9: $loading__closures,
3589
- eb: $onlyNew__closures,
3590
- eg: $findState_hit__closures,
3591
- eh: $collapsedRepos__closures,
3592
- ei: $collapsedFiles__closures,
3593
- ej: $setFilesCollapsed2__closures,
3594
- ek: $openedRepos__closures,
3595
- el: $expandingRepos__closures,
3596
- en: $reload2__closures,
3597
- ep: $repoList_length__closures,
3598
- er: $shownKeySet__closures,
3599
- et: $commentsByFile__closures,
3600
- eu: $localDifferIds__closures,
3601
- ew: $saveComment2__closures,
3602
- ex: $removeComment2__closures,
3603
- f0: $sendOneComment2__closures,
3604
- f1: $sendDraftComment2__closures,
3605
- f2: $toggleSection2__closures,
3615
+ ea: $error__closures,
3616
+ ee: $scope__closures,
3617
+ e5: $si__input_sessions && $input_sessions__closures,
3618
+ e6: $si__input_workspaceBranch && $input_workspaceBranch__closures,
3619
+ e7: $si__input_workspaceName && $input_workspaceName__closures,
3620
+ e9: $draft__closures,
3621
+ eb: $loading__closures,
3622
+ ed: $onlyNew__closures,
3623
+ ei: $findState_hit__closures,
3624
+ ej: $collapsedRepos__closures,
3625
+ ek: $collapsedFiles__closures,
3626
+ el: $setFilesCollapsed2__closures,
3627
+ em: $openedRepos__closures,
3628
+ en: $expandingRepos__closures,
3629
+ ep: $reload2__closures,
3630
+ er: $repoList_length__closures,
3631
+ et: $shownKeySet__closures,
3632
+ ev: $commentsByFile__closures,
3633
+ ew: $localDifferIds__closures,
3634
+ ey: $saveComment2__closures,
3635
+ ez: $removeComment2__closures,
3636
+ f0: $editComment2__closures,
3637
+ f3: $sendOneComment2__closures,
3638
+ f4: $sendDraftComment2__closures,
3639
+ f5: $toggleSection2__closures,
3606
3640
  a2: _existing_scope($childScope6),
3607
3641
  a3: _existing_scope($childScope7)
3608
3642
  });