@dylanpiercey/work 0.0.21 → 0.0.23

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 (155) hide show
  1. package/dist/index.mjs +770 -611
  2. package/dist/public/assets/{_BFnmKuGb.js → _0vMHm-vn.js} +2 -2
  3. package/dist/public/assets/{_BFnmKuGb.js.map → _0vMHm-vn.js.map} +1 -1
  4. package/dist/public/assets/{_D_8pG7bS2.js → _3kCHjcbq2.js} +2 -2
  5. package/dist/public/assets/{_D_8pG7bS2.js.map → _3kCHjcbq2.js.map} +1 -1
  6. package/dist/public/assets/{_ByaF5Ym8.js → _8A9cS7sg.js} +2 -2
  7. package/dist/public/assets/{_ByaF5Ym8.js.map → _8A9cS7sg.js.map} +1 -1
  8. package/dist/public/assets/{_H-G61tx0.js → _B9Irhi-K.js} +2 -2
  9. package/dist/public/assets/{_H-G61tx0.js.map → _B9Irhi-K.js.map} +1 -1
  10. package/dist/public/assets/{_BG21uqHk2.js → _BBMJRHpW2.js} +2 -2
  11. package/dist/public/assets/{_BG21uqHk2.js.map → _BBMJRHpW2.js.map} +1 -1
  12. package/dist/public/assets/{_-3M9WuU4.js → _BDH5DRhl.js} +2 -2
  13. package/dist/public/assets/{_-3M9WuU4.js.map → _BDH5DRhl.js.map} +1 -1
  14. package/dist/public/assets/{_BpB-O0HN.js → _BETbcidE.js} +2 -2
  15. package/dist/public/assets/{_BpB-O0HN.js.map → _BETbcidE.js.map} +1 -1
  16. package/dist/public/assets/{_q9TSOuKE.js → _BFlxNucX.js} +2 -2
  17. package/dist/public/assets/{_q9TSOuKE.js.map → _BFlxNucX.js.map} +1 -1
  18. package/dist/public/assets/{_BooCIZFD.js → _BIa4GhFA.js} +2 -2
  19. package/dist/public/assets/{_BooCIZFD.js.map → _BIa4GhFA.js.map} +1 -1
  20. package/dist/public/assets/{_E5dbeZEm2.js → _BKl_tugb2.js} +2 -2
  21. package/dist/public/assets/{_E5dbeZEm2.js.map → _BKl_tugb2.js.map} +1 -1
  22. package/dist/public/assets/{_DpLjBHyL.js → _BNAm8vGo.js} +2 -2
  23. package/dist/public/assets/{_DpLjBHyL.js.map → _BNAm8vGo.js.map} +1 -1
  24. package/dist/public/assets/{_DLg1-IRM.js → _BOk-H2vI.js} +2 -2
  25. package/dist/public/assets/{_DLg1-IRM.js.map → _BOk-H2vI.js.map} +1 -1
  26. package/dist/public/assets/{_C3OrD7LT.js → _BUJEC41U.js} +2 -2
  27. package/dist/public/assets/{_C3OrD7LT.js.map → _BUJEC41U.js.map} +1 -1
  28. package/dist/public/assets/{_CjNZdOEs.js → _BVd4uTiE.js} +2 -2
  29. package/dist/public/assets/{_CjNZdOEs.js.map → _BVd4uTiE.js.map} +1 -1
  30. package/dist/public/assets/{_B49wgrKW.js → _BZXlp_i6.js} +2 -2
  31. package/dist/public/assets/{_B49wgrKW.js.map → _BZXlp_i6.js.map} +1 -1
  32. package/dist/public/assets/{_Do3Q5gXZ2.js → _BZi1ECCN2.js} +2 -2
  33. package/dist/public/assets/{_Do3Q5gXZ2.js.map → _BZi1ECCN2.js.map} +1 -1
  34. package/dist/public/assets/{_BpxV-2f3.js → _BdquJqIK.js} +2 -2
  35. package/dist/public/assets/{_BpxV-2f3.js.map → _BdquJqIK.js.map} +1 -1
  36. package/dist/public/assets/{_O3QIPxoe.js → _BuDEoDsw.js} +2 -2
  37. package/dist/public/assets/{_O3QIPxoe.js.map → _BuDEoDsw.js.map} +1 -1
  38. package/dist/public/assets/{_DT71qSJE2.js → _BwcmCe3s2.js} +2 -2
  39. package/dist/public/assets/{_DT71qSJE2.js.map → _BwcmCe3s2.js.map} +1 -1
  40. package/dist/public/assets/{_ZSGrflxk.js → _BxtE0n7j.js} +2 -2
  41. package/dist/public/assets/{_ZSGrflxk.js.map → _BxtE0n7j.js.map} +1 -1
  42. package/dist/public/assets/{_B7ZTox7L.js → _C0Mb2VcL.js} +2 -2
  43. package/dist/public/assets/{_B7ZTox7L.js.map → _C0Mb2VcL.js.map} +1 -1
  44. package/dist/public/assets/{_D0-uwMfH2.js → _CEIEA3ep2.js} +2 -2
  45. package/dist/public/assets/{_D0-uwMfH2.js.map → _CEIEA3ep2.js.map} +1 -1
  46. package/dist/public/assets/{_BwnkAzDN2.js → _COfQsLkO2.js} +2 -2
  47. package/dist/public/assets/{_BwnkAzDN2.js.map → _COfQsLkO2.js.map} +1 -1
  48. package/dist/public/assets/{_B1Ress7e.js → _CQAlIUsH.js} +2 -2
  49. package/dist/public/assets/{_B1Ress7e.js.map → _CQAlIUsH.js.map} +1 -1
  50. package/dist/public/assets/{_Cbg9-SI_2.js → _CYYkpc6O2.js} +2 -2
  51. package/dist/public/assets/{_Cbg9-SI_2.js.map → _CYYkpc6O2.js.map} +1 -1
  52. package/dist/public/assets/{_BWIzVLMa2.js → _Ca-yxP452.js} +2 -2
  53. package/dist/public/assets/{_BWIzVLMa2.js.map → _Ca-yxP452.js.map} +1 -1
  54. package/dist/public/assets/{_BchSFDSU.js → _Ck3cW4fo.js} +2 -2
  55. package/dist/public/assets/{_BchSFDSU.js.map → _Ck3cW4fo.js.map} +1 -1
  56. package/dist/public/assets/{_DkpMMWAt2.js → _Cl4Juxka2.js} +2 -2
  57. package/dist/public/assets/{_DkpMMWAt2.js.map → _Cl4Juxka2.js.map} +1 -1
  58. package/dist/public/assets/{_BGO4yXnZ.js → _CpKSyXc-.js} +2 -2
  59. package/dist/public/assets/{_BGO4yXnZ.js.map → _CpKSyXc-.js.map} +1 -1
  60. package/dist/public/assets/{_m1KNq0Gx.js → _CryOUQWa.js} +2 -2
  61. package/dist/public/assets/{_m1KNq0Gx.js.map → _CryOUQWa.js.map} +1 -1
  62. package/dist/public/assets/{_DGZCHdAh.js → _CvFGNDic.js} +2 -2
  63. package/dist/public/assets/{_DGZCHdAh.js.map → _CvFGNDic.js.map} +1 -1
  64. package/dist/public/assets/{_Cww6wLe3.js → _D68sBB9M.js} +2 -2
  65. package/dist/public/assets/{_Cww6wLe3.js.map → _D68sBB9M.js.map} +1 -1
  66. package/dist/public/assets/{_DInIL5iq2.js → _D7G7VxOT2.js} +2 -2
  67. package/dist/public/assets/{_DInIL5iq2.js.map → _D7G7VxOT2.js.map} +1 -1
  68. package/dist/public/assets/{_BBCthCRB.js → _DDkTpbnp.js} +2 -2
  69. package/dist/public/assets/{_BBCthCRB.js.map → _DDkTpbnp.js.map} +1 -1
  70. package/dist/public/assets/{_COiINYul2.js → _DFGsDSnY2.js} +2 -2
  71. package/dist/public/assets/{_COiINYul2.js.map → _DFGsDSnY2.js.map} +1 -1
  72. package/dist/public/assets/{_Bo2t_uNU.js → _DIRjHwSF.js} +2 -2
  73. package/dist/public/assets/{_Bo2t_uNU.js.map → _DIRjHwSF.js.map} +1 -1
  74. package/dist/public/assets/{_g7Q1ADd0.js → _DM9HoTb6.js} +2 -2
  75. package/dist/public/assets/{_g7Q1ADd0.js.map → _DM9HoTb6.js.map} +1 -1
  76. package/dist/public/assets/{_D32jCBoK.js → _DMsB9L9v.js} +2 -2
  77. package/dist/public/assets/{_D32jCBoK.js.map → _DMsB9L9v.js.map} +1 -1
  78. package/dist/public/assets/{_anllqmOe.js → _DPCPAr2n.js} +2 -2
  79. package/dist/public/assets/{_anllqmOe.js.map → _DPCPAr2n.js.map} +1 -1
  80. package/dist/public/assets/{_CG65evuJ2.js → _DPzN_k3h2.js} +2 -2
  81. package/dist/public/assets/{_CG65evuJ2.js.map → _DPzN_k3h2.js.map} +1 -1
  82. package/dist/public/assets/{_D8RqMrGW2.js → _DSVLtY7p2.js} +2 -2
  83. package/dist/public/assets/{_D8RqMrGW2.js.map → _DSVLtY7p2.js.map} +1 -1
  84. package/dist/public/assets/{_CXLqhKMK2.js → _DXaWF80G2.js} +2 -2
  85. package/dist/public/assets/{_CXLqhKMK2.js.map → _DXaWF80G2.js.map} +1 -1
  86. package/dist/public/assets/{_CjAjLYnS.js → _DZDs2rZG.js} +2 -2
  87. package/dist/public/assets/{_CjAjLYnS.js.map → _DZDs2rZG.js.map} +1 -1
  88. package/dist/public/assets/{_753RhcUs.js → _DbjjwNMJ.js} +2 -2
  89. package/dist/public/assets/{_753RhcUs.js.map → _DbjjwNMJ.js.map} +1 -1
  90. package/dist/public/assets/{_BVimx11r.js → _Dg6disZS.js} +2 -2
  91. package/dist/public/assets/{_BVimx11r.js.map → _Dg6disZS.js.map} +1 -1
  92. package/dist/public/assets/{_DVIw_RgW2.js → _Di-YLGzT2.js} +2 -2
  93. package/dist/public/assets/{_DVIw_RgW2.js.map → _Di-YLGzT2.js.map} +1 -1
  94. package/dist/public/assets/{_CFwjuNga.js → _DvHrD9Fu.js} +2 -2
  95. package/dist/public/assets/{_CFwjuNga.js.map → _DvHrD9Fu.js.map} +1 -1
  96. package/dist/public/assets/{_BfCF5T_K.js → _EbANNtLE.js} +2 -2
  97. package/dist/public/assets/{_BfCF5T_K.js.map → _EbANNtLE.js.map} +1 -1
  98. package/dist/public/assets/{_BRfYhRDN.js → _EcnhZ-Zb.js} +2 -2
  99. package/dist/public/assets/{_BRfYhRDN.js.map → _EcnhZ-Zb.js.map} +1 -1
  100. package/dist/public/assets/{_DtmS6252.js → _EvlrXhbk.js} +2 -2
  101. package/dist/public/assets/{_DtmS6252.js.map → _EvlrXhbk.js.map} +1 -1
  102. package/dist/public/assets/{_RgPZr-u4.js → _Fj4bovY5.js} +2 -2
  103. package/dist/public/assets/{_RgPZr-u4.js.map → _Fj4bovY5.js.map} +1 -1
  104. package/dist/public/assets/{_CRMMWY-q.js → _H3THB0QM.js} +2 -2
  105. package/dist/public/assets/{_CRMMWY-q.js.map → _H3THB0QM.js.map} +1 -1
  106. package/dist/public/assets/{_C480-4NE.js → _N0sGQTbG.js} +2 -2
  107. package/dist/public/assets/{_C480-4NE.js.map → _N0sGQTbG.js.map} +1 -1
  108. package/dist/public/assets/{_DDpdWlxA.js → _R8c16EMU.js} +2 -2
  109. package/dist/public/assets/{_DDpdWlxA.js.map → _R8c16EMU.js.map} +1 -1
  110. package/dist/public/assets/{_3ZKZeEN32.js → _RnK9hNYz2.js} +2 -2
  111. package/dist/public/assets/{_3ZKZeEN32.js.map → _RnK9hNYz2.js.map} +1 -1
  112. package/dist/public/assets/{_aXYWp2ZC.js → _TU1mBzaU.js} +2 -2
  113. package/dist/public/assets/{_aXYWp2ZC.js.map → _TU1mBzaU.js.map} +1 -1
  114. package/dist/public/assets/{_xuVEda462.js → _UPKxbAis2.js} +2 -2
  115. package/dist/public/assets/{_xuVEda462.js.map → _UPKxbAis2.js.map} +1 -1
  116. package/dist/public/assets/{_DK5es8xg.js → _W6bV3Bg-.js} +2 -2
  117. package/dist/public/assets/{_DK5es8xg.js.map → _W6bV3Bg-.js.map} +1 -1
  118. package/dist/public/assets/{_CgX5-PN8.js → _X-KO8p5S.js} +2 -2
  119. package/dist/public/assets/{_CgX5-PN8.js.map → _X-KO8p5S.js.map} +1 -1
  120. package/dist/public/assets/{_BeCpXzaO2.js → _ZKXMh2Tt2.js} +2 -2
  121. package/dist/public/assets/{_BeCpXzaO2.js.map → _ZKXMh2Tt2.js.map} +1 -1
  122. package/dist/public/assets/{_JmyDHQ3S2.js → __Jb3rACh2.js} +2 -2
  123. package/dist/public/assets/{_JmyDHQ3S2.js.map → __Jb3rACh2.js.map} +1 -1
  124. package/dist/public/assets/{_C4JQ0avI.js → _bsvRRwZw.js} +2 -2
  125. package/dist/public/assets/{_C4JQ0avI.js.map → _bsvRRwZw.js.map} +1 -1
  126. package/dist/public/assets/{_DncMx76o2.js → _f7tCreYA2.js} +2 -2
  127. package/dist/public/assets/{_DncMx76o2.js.map → _f7tCreYA2.js.map} +1 -1
  128. package/dist/public/assets/{_BpIotmis.js → _gmz8tY8_.js} +2 -2
  129. package/dist/public/assets/{_BpIotmis.js.map → _gmz8tY8_.js.map} +1 -1
  130. package/dist/public/assets/{_CkT411UL.js → _hISQM_VO.js} +2 -2
  131. package/dist/public/assets/{_CkT411UL.js.map → _hISQM_VO.js.map} +1 -1
  132. package/dist/public/assets/{_Cm-mKxlV2.js → _iBei63n02.js} +2 -2
  133. package/dist/public/assets/{_Cm-mKxlV2.js.map → _iBei63n02.js.map} +1 -1
  134. package/dist/public/assets/{_ChXwBYfg.js → _iGURufnd.js} +2 -2
  135. package/dist/public/assets/{_ChXwBYfg.js.map → _iGURufnd.js.map} +1 -1
  136. package/dist/public/assets/{_C5tw5jaH2.js → _l3il9fbj2.js} +2 -2
  137. package/dist/public/assets/{_C5tw5jaH2.js.map → _l3il9fbj2.js.map} +1 -1
  138. package/dist/public/assets/{_cZMSm0LN.js → _neTzmpuG.js} +2 -2
  139. package/dist/public/assets/{_cZMSm0LN.js.map → _neTzmpuG.js.map} +1 -1
  140. package/dist/public/assets/{_dkeDDehz2.js → _nqYjkgOI2.js} +2 -2
  141. package/dist/public/assets/{_dkeDDehz2.js.map → _nqYjkgOI2.js.map} +1 -1
  142. package/dist/public/assets/{_Bv61tUGo.js → _pLH8IrZs.js} +2 -2
  143. package/dist/public/assets/{_Bv61tUGo.js.map → _pLH8IrZs.js.map} +1 -1
  144. package/dist/public/assets/{_CeybDOH3.js → _tpLKr6cN.js} +2 -2
  145. package/dist/public/assets/{_CeybDOH3.js.map → _tpLKr6cN.js.map} +1 -1
  146. package/dist/public/assets/{_CZtA_-Ie.js → _uw9JGYrH.js} +2 -2
  147. package/dist/public/assets/{_CZtA_-Ie.js.map → _uw9JGYrH.js.map} +1 -1
  148. package/dist/public/assets/{_DqqLoHco.js → _zSpkIZIf.js} +2 -2
  149. package/dist/public/assets/{_DqqLoHco.js.map → _zSpkIZIf.js.map} +1 -1
  150. package/dist/public/assets/index-D2S6Vhpc.css +1 -0
  151. package/dist/public/assets/{index-DJu3fA99.js → index-KetIC6bX.js} +63 -63
  152. package/dist/public/assets/index-KetIC6bX.js.map +1 -0
  153. package/package.json +1 -1
  154. package/dist/public/assets/index-BxVK_c-q.css +0 -1
  155. package/dist/public/assets/index-DJu3fA99.js.map +0 -1
package/dist/index.mjs CHANGED
@@ -3359,7 +3359,7 @@ function coalesce(fn) {
3359
3359
  }
3360
3360
  //#endregion
3361
3361
  //#region src/tags/toast.marko
3362
- var toast_default = _template("p", (input) => {
3362
+ var toast_default = _template("q", (input) => {
3363
3363
  const $scope0_reason = _scope_reason(), $sg__input_title = _serialize_guard($scope0_reason, 4), $sg__input_title__OR__input_content__OR__input_action__OR__input_onDismiss = _serialize_guard($scope0_reason, 2), $sg__input_content = _serialize_guard($scope0_reason, 5), $sg__input_action = _serialize_guard($scope0_reason, 6), $sg__input_action__OR__input_onDismiss = _serialize_guard($scope0_reason, 1), $sg__input_onDismiss = _serialize_guard($scope0_reason, 7), $si__input_title = _serialize_if($scope0_reason, 4), $si__input_content = _serialize_if($scope0_reason, 5), $si__input_action__OR__input_onDismiss = _serialize_if($scope0_reason, 1), $si__input_action_content = _serialize_if($scope0_reason, 8);
3364
3364
  const $scope0_id = _scope_id();
3365
3365
  const $input_action_content__closures = /* @__PURE__ */ new Set();
@@ -3405,7 +3405,7 @@ var toast_default = _template("p", (input) => {
3405
3405
  if (input.onDismiss) {
3406
3406
  const $scope5_id = _scope_id();
3407
3407
  _html(`<button class="icon-btn toast-dismiss" title=Dismiss>×</button>${_el_resume($scope5_id, "a")}`);
3408
- _script($scope5_id, "p0");
3408
+ _script($scope5_id, "q0");
3409
3409
  writeScope($scope5_id, { _: _scope_with_id($scope3_id) });
3410
3410
  return 0;
3411
3411
  }
@@ -3416,7 +3416,7 @@ var toast_default = _template("p", (input) => {
3416
3416
  }
3417
3417
  }, $scope0_id, "d", $sg__input_action__OR__input_onDismiss, $sg__input_action__OR__input_onDismiss, $sg__input_title__OR__input_content__OR__input_action__OR__input_onDismiss, 0, 1);
3418
3418
  _html(`</div>${_el_resume($scope0_id, "a", _serialize_guard($scope0_reason, 0))}`);
3419
- _script($scope0_id, "p1");
3419
+ _script($scope0_id, "q1");
3420
3420
  writeScope($scope0_id, {
3421
3421
  i: $si__input_title && input.title,
3422
3422
  j: $si__input_content && input.content,
@@ -3431,7 +3431,7 @@ var toast_default = _template("p", (input) => {
3431
3431
  });
3432
3432
  //#endregion
3433
3433
  //#region src/tags/icons/icon-base.marko
3434
- var icon_base_default = _template("u", (input) => {
3434
+ var icon_base_default = _template("v", (input) => {
3435
3435
  const $scope0_reason = _scope_reason();
3436
3436
  const $scope0_id = _scope_id();
3437
3437
  const size = input.size ?? 15;
@@ -3440,7 +3440,7 @@ var icon_base_default = _template("u", (input) => {
3440
3440
  });
3441
3441
  //#endregion
3442
3442
  //#region src/tags/icons/icon-diff.marko
3443
- var icon_diff_default = _template("x", (input) => {
3443
+ var icon_diff_default = _template("y", (input) => {
3444
3444
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
3445
3445
  const $scope0_id = _scope_id();
3446
3446
  _set_serialize_reason({
@@ -3457,7 +3457,7 @@ var icon_diff_default = _template("x", (input) => {
3457
3457
  });
3458
3458
  //#endregion
3459
3459
  //#region src/tags/icons/icon-manage.marko
3460
- var icon_manage_default = _template("E", (input) => {
3460
+ var icon_manage_default = _template("F", (input) => {
3461
3461
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
3462
3462
  const $scope0_id = _scope_id();
3463
3463
  _set_serialize_reason({
@@ -3474,7 +3474,7 @@ var icon_manage_default = _template("E", (input) => {
3474
3474
  });
3475
3475
  //#endregion
3476
3476
  //#region src/tags/icons/icon-plus.marko
3477
- var icon_plus_default = _template("F", (input) => {
3477
+ var icon_plus_default = _template("G", (input) => {
3478
3478
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
3479
3479
  const $scope0_id = _scope_id();
3480
3480
  _set_serialize_reason({
@@ -3498,7 +3498,7 @@ var PATHS = {
3498
3498
  copilot: "M19.245 5.364c1.322 1.36 1.877 3.216 2.11 5.817.622 0 1.2.135 1.592.654l.73.964c.21.278.323.61.323.955v2.62c0 .339-.173.669-.453.868C20.239 19.602 16.157 21.5 12 21.5c-4.6 0-9.205-2.583-11.547-4.258-.28-.2-.452-.53-.453-.868v-2.62c0-.345.113-.679.321-.956l.73-.963c.392-.517.974-.654 1.593-.654l.029-.297c.25-2.446.81-4.213 2.082-5.52 2.461-2.54 5.71-2.851 7.146-2.864h.198c1.436.013 4.685.323 7.146 2.864zm-7.244 4.328c-.284 0-.613.016-.962.05-.123.447-.305.85-.57 1.108-1.05 1.023-2.316 1.18-2.994 1.18-.638 0-1.306-.13-1.851-.464-.516.165-1.012.403-1.044.996a65.882 65.882 0 00-.063 2.884l-.002.48c-.002.563-.005 1.126-.013 1.69.002.326.204.63.51.765 2.482 1.102 4.83 1.657 6.99 1.657 2.156 0 4.504-.555 6.985-1.657a.854.854 0 00.51-.766c.03-1.682.006-3.372-.076-5.053-.031-.596-.528-.83-1.046-.996-.546.333-1.212.464-1.85.464-.677 0-1.942-.157-2.993-1.18-.266-.258-.447-.661-.57-1.108-.32-.032-.64-.049-.96-.05zm-2.525 4.013c.539 0 .976.426.976.95v1.753c0 .525-.437.95-.976.95a.964.964 0 01-.976-.95v-1.752c0-.525.437-.951.976-.951zm5 0c.539 0 .976.426.976.95v1.753c0 .525-.437.95-.976.95a.964.964 0 01-.976-.95v-1.752c0-.525.437-.951.976-.951zM7.635 5.087c-1.05.102-1.935.438-2.385.906-.975 1.037-.765 3.668-.21 4.224.405.394 1.17.657 1.995.657h.09c.649-.013 1.785-.176 2.73-1.11.435-.41.705-1.433.675-2.47-.03-.834-.27-1.52-.63-1.813-.39-.336-1.275-.482-2.265-.394zm6.465.394c-.36.292-.6.98-.63 1.813-.03 1.037.24 2.06.675 2.47.968.957 2.136 1.104 2.776 1.11h.044c.825 0 1.59-.263 1.995-.657.555-.556.765-3.187-.21-4.224-.45-.468-1.335-.804-2.385-.906-.99-.088-1.875.058-2.265.394zM12 7.615c-.24 0-.525.015-.84.044.03.16.045.336.06.526l-.001.159a2.94 2.94 0 01-.014.25c.225-.022.425-.027.612-.028h.366c.187 0 .387.006.612.028-.015-.146-.015-.277-.015-.409.015-.19.03-.365.06-.526a9.29 9.29 0 00-.84-.044z",
3499
3499
  cursor: "M22.106 5.68L12.5.135a.998.998 0 00-.998 0L1.893 5.68a.84.84 0 00-.419.726v11.186c0 .3.16.577.42.727l9.607 5.547a.999.999 0 00.998 0l9.608-5.547a.84.84 0 00.42-.727V6.407a.84.84 0 00-.42-.726zm-.603 1.176L12.228 22.92c-.063.108-.228.064-.228-.061V12.34a.59.59 0 00-.295-.51l-9.11-5.26c-.107-.062-.063-.228.062-.228h18.55c.264 0 .428.286.296.514z"
3500
3500
  };
3501
- var icon_agent_default = _template("s", (input) => {
3501
+ var icon_agent_default = _template("t", (input) => {
3502
3502
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0), $si__input_size__OR__input_class = _serialize_if($scope0_reason, 0), $si__input_size__OR__input_agent__OR__input_class = _serialize_if($scope0_reason, 1), $sg__input_agent = _serialize_guard($scope0_reason, 2);
3503
3503
  const $scope0_id = _scope_id();
3504
3504
  const size = input.size ?? 15;
@@ -3546,7 +3546,7 @@ var $class$3 = [
3546
3546
  "\"row archived\"",
3547
3547
  "\"row hi archived\""
3548
3548
  ];
3549
- var palette_default = _template("j", (input) => {
3549
+ var palette_default = _template("k", (input) => {
3550
3550
  const $scope0_reason = _scope_reason(), $sg__input_inline = _serialize_guard($scope0_reason, 4), $sg__input_inline__OR__input_workspaces_length = _serialize_guard($scope0_reason, 1), $sg__input_settings_agents = _serialize_guard($scope0_reason, 6), $si__input_settings_agents = _serialize_if($scope0_reason, 6), $si__input_selectedId = _serialize_if($scope0_reason, 2), $si__input_status = _serialize_if($scope0_reason, 5);
3551
3551
  const $scope0_id = _scope_id();
3552
3552
  const $input_selectedId__closures = /* @__PURE__ */ new Set();
@@ -3557,7 +3557,7 @@ var palette_default = _template("j", (input) => {
3557
3557
  let showArchived = false;
3558
3558
  const active = input.workspaces.filter((ws) => ws.status === "active");
3559
3559
  const archived = input.workspaces.filter((ws) => ws.status === "archived");
3560
- const matches = _resume((list) => list.filter((ws) => fuzzy(query, ws.name)), "j2", $scope0_id);
3560
+ const matches = _resume((list) => list.filter((ws) => fuzzy(query, ws.name)), "k2", $scope0_id);
3561
3561
  const currentWs = input.workspaces.find((ws) => ws.id === input.selectedId);
3562
3562
  const commands = !query || !currentWs ? [] : [
3563
3563
  {
@@ -3595,12 +3595,12 @@ var palette_default = _template("j", (input) => {
3595
3595
  if (row.kind === "new") input.onNew();
3596
3596
  else if (row.kind === "cmd") row.run();
3597
3597
  else input.onSelect(row.ws);
3598
- }, "j3", $scope0_id);
3598
+ }, "k3", $scope0_id);
3599
3599
  _if(() => {
3600
3600
  if (!input.inline) {
3601
3601
  const $scope1_id = _scope_id();
3602
3602
  _html(`<div class=palette-backdrop></div>${_el_resume($scope1_id, "a")}`);
3603
- _script($scope1_id, "j4");
3603
+ _script($scope1_id, "k4");
3604
3604
  writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
3605
3605
  return 0;
3606
3606
  }
@@ -3617,7 +3617,7 @@ var palette_default = _template("j", (input) => {
3617
3617
  _html(`<input${_attr_input_value($scope0_id, "d", query, _resume(function(v) {
3618
3618
  query = v;
3619
3619
  hiRaw = 0;
3620
- }, "j0", $scope0_id))} autofocus placeholder="Jump to workspace…" aria-label="Filter workspaces">${_el_resume($scope0_id, "d")}<ul class=rows>`);
3620
+ }, "k0", $scope0_id))} autofocus placeholder="Jump to workspace…" aria-label="Filter workspaces">${_el_resume($scope0_id, "d")}<ul class=rows>`);
3621
3621
  _for_of(rows, (row, i) => {
3622
3622
  const $scope2_id = _scope_id();
3623
3623
  _html(`<li><div class=row-wrap><button class=${$class$3[(i === hi ? 1 : 0) + (row.kind === "ws" && row.archived ? 2 : 0)]}>`);
@@ -3719,20 +3719,20 @@ var palette_default = _template("j", (input) => {
3719
3719
  size: 14
3720
3720
  });
3721
3721
  _html(`${_sep($sg__input_settings_agents)}${_escape(agent)}${_el_resume($scope5_id, "c", $sg__input_settings_agents)}</button>${_el_resume($scope5_id, "a")}`);
3722
- _script($scope5_id, "j5");
3722
+ _script($scope5_id, "k5");
3723
3723
  writeScope($scope5_id, {
3724
3724
  e: agent,
3725
3725
  _: _scope_with_id($scope4_id),
3726
3726
  b: $si__input_settings_agents && _existing_scope($childScope)
3727
3727
  });
3728
3728
  }, (a) => a, $scope4_id, "g", $sg__input_settings_agents, 1, $sg__input_settings_agents, "</div>", 1);
3729
- _script($scope4_id, "j6");
3729
+ _script($scope4_id, "k6");
3730
3730
  _subscribe($si__input_settings_agents && $input_settings_agents__closures, writeScope($scope4_id, {}));
3731
3731
  return 0;
3732
3732
  }
3733
3733
  }, $scope2_id, "b");
3734
3734
  _html("</div></li>");
3735
- _script($scope2_id, "j7");
3735
+ _script($scope2_id, "k7");
3736
3736
  writeScope($scope2_id, {
3737
3737
  d: row,
3738
3738
  e: row?.kind,
@@ -3749,7 +3749,7 @@ var palette_default = _template("j", (input) => {
3749
3749
  if (archived.length && !query) {
3750
3750
  const $scope7_id = _scope_id();
3751
3751
  _html(`<button class="archived-link dim">${`archived (${_escape(`${archived.length}`)})`}${_el_resume($scope7_id, "b")}</button>${_el_resume($scope7_id, "a")}`);
3752
- _script($scope7_id, "j8");
3752
+ _script($scope7_id, "k8");
3753
3753
  writeScope($scope7_id, {});
3754
3754
  return 0;
3755
3755
  }
@@ -3769,7 +3769,7 @@ var palette_default = _template("j", (input) => {
3769
3769
  headers: { "content-type": "application/json" },
3770
3770
  body: JSON.stringify({ preferredAgent: v })
3771
3771
  }).catch(() => {});
3772
- }, "j1", $scope6_id), () => {
3772
+ }, "k1", $scope6_id), () => {
3773
3773
  _html("<select aria-label=\"Preferred agent\">");
3774
3774
  _for_of(input.settings.agents, (agent) => {
3775
3775
  const $scope17_id = _scope_id();
@@ -3778,15 +3778,15 @@ var palette_default = _template("j", (input) => {
3778
3778
  }, (a) => a, $scope6_id, "a", $sg__input_settings_agents, 1, $sg__input_settings_agents, "</select>", 1);
3779
3779
  });
3780
3780
  _html("</label>");
3781
- _script($scope6_id, "j9");
3781
+ _script($scope6_id, "k9");
3782
3782
  writeScope($scope6_id, { _: _scope_with_id($scope0_id) });
3783
3783
  return 0;
3784
3784
  }
3785
3785
  }, $scope0_id, "g", _serialize_guard($scope0_reason, 0), _serialize_guard($scope0_reason, 3), 1, 0, 1);
3786
3786
  _html(`</div></div>${_el_resume($scope0_id, "b", $sg__input_inline)}`);
3787
- _script($scope0_id, "j10");
3788
- _script($scope0_id, "j11");
3789
- _script($scope0_id, "j12");
3787
+ _script($scope0_id, "k10");
3788
+ _script($scope0_id, "k11");
3789
+ _script($scope0_id, "k12");
3790
3790
  writeScope($scope0_id, {
3791
3791
  j: $si__input_selectedId && input.workspaces,
3792
3792
  k: input.selectedId,
@@ -3823,8 +3823,18 @@ var palette_default = _template("j", (input) => {
3823
3823
  _resume_branch($scope0_id);
3824
3824
  });
3825
3825
  //#endregion
3826
+ //#region src/tags/dialog-close.marko
3827
+ var dialog_close_default = _template("c", (input) => {
3828
+ const $scope0_reason = _scope_reason();
3829
+ const $scope0_id = _scope_id();
3830
+ _html(`<button type=submit${_attr_class(input.class)}${_attr("disabled", input.disabled)}${_attr("title", input.title)}>`);
3831
+ _dynamic_tag($scope0_id, "b", input.content, {}, 0, 0, _serialize_guard($scope0_reason, 2));
3832
+ _html(`</button>${_el_resume($scope0_id, "a", _serialize_guard($scope0_reason, 0))}`);
3833
+ _serialize_if($scope0_reason, 1) && writeScope($scope0_id, {});
3834
+ });
3835
+ //#endregion
3826
3836
  //#region src/tags/icons/icon-refresh.marko
3827
- var icon_refresh_default = _template("G", (input) => {
3837
+ var icon_refresh_default = _template("H", (input) => {
3828
3838
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
3829
3839
  const $scope0_id = _scope_id();
3830
3840
  _set_serialize_reason({
@@ -3843,7 +3853,7 @@ var icon_refresh_default = _template("G", (input) => {
3843
3853
  //#region src/tags/repo-picker.marko
3844
3854
  var api$6;
3845
3855
  var rankRepos;
3846
- var repo_picker_default = _template("l", (input) => {
3856
+ var repo_picker_default = _template("m", (input) => {
3847
3857
  _scope_reason();
3848
3858
  const $scope0_id = _scope_id();
3849
3859
  const $branchFilter__closures = /* @__PURE__ */ new Set();
@@ -3862,7 +3872,7 @@ var repo_picker_default = _template("l", (input) => {
3862
3872
  input.onError?.(String(err.message || err));
3863
3873
  }
3864
3874
  if (refresh) input.refreshingChange?.(false);
3865
- }, "l3", $scope0_id);
3875
+ }, "m3", $scope0_id);
3866
3876
  const results = catalog && filter ? rankRepos(filter, catalog.repos, (name) => input.exclude.has(name)) : [];
3867
3877
  let branchesFor = null;
3868
3878
  let branches = null;
@@ -3871,7 +3881,7 @@ var repo_picker_default = _template("l", (input) => {
3871
3881
  filter = "";
3872
3882
  branchesFor = null;
3873
3883
  input.onPick(fullName, baseBranch);
3874
- }, "l4", $scope0_id);
3884
+ }, "m4", $scope0_id);
3875
3885
  const toggleBranches = _resume(async (fullName) => {
3876
3886
  if (branchesFor === fullName) {
3877
3887
  branchesFor = null;
@@ -3887,11 +3897,11 @@ var repo_picker_default = _template("l", (input) => {
3887
3897
  branchesFor = null;
3888
3898
  input.onError?.(String(err.message || err));
3889
3899
  }
3890
- }, "l5", $scope0_id);
3900
+ }, "m5", $scope0_id);
3891
3901
  _html(`<div class=add-repo><input${_attr_input_value($scope0_id, "a", filter, _resume(function(v) {
3892
3902
  filter = v;
3893
3903
  highlight = 0;
3894
- }, "l0", $scope0_id))} placeholder="Add a repo…" aria-label="Add a repo"${_attr("disabled", input.disabled)}>${_el_resume($scope0_id, "a")}`);
3904
+ }, "m0", $scope0_id))} placeholder="Add a repo…" aria-label="Add a repo"${_attr("disabled", input.disabled)}>${_el_resume($scope0_id, "a")}`);
3895
3905
  _if(() => {
3896
3906
  if (filter && !catalog) {
3897
3907
  const $scope8_id = _scope_id();
@@ -3929,8 +3939,8 @@ var repo_picker_default = _template("l", (input) => {
3929
3939
  const $scope6_id = _scope_id();
3930
3940
  _html(`<input${_attr_input_value($scope6_id, "a", branchFilter, _resume((_new_branchFilter) => {
3931
3941
  branchFilter = _new_branchFilter;
3932
- }, "l1", $scope6_id))} placeholder="Filter branches…" aria-label="Filter branches" autofocus>${_el_resume($scope6_id, "a")}`);
3933
- _script($scope6_id, "l6");
3942
+ }, "m1", $scope6_id))} placeholder="Filter branches…" aria-label="Filter branches" autofocus>${_el_resume($scope6_id, "a")}`);
3943
+ _script($scope6_id, "m6");
3934
3944
  _subscribe($branchFilter__closures, writeScope($scope6_id, { Ca7: 1 }));
3935
3945
  return 0;
3936
3946
  }
@@ -3940,7 +3950,7 @@ var repo_picker_default = _template("l", (input) => {
3940
3950
  _for_of(shown, (branch) => {
3941
3951
  const $scope7_id = _scope_id();
3942
3952
  _html(`<li><button class=result-row><span class="repo-name mono">${_escape(branch)}${_el_resume($scope7_id, "b")}</span></button>${_el_resume($scope7_id, "a")}</li>`);
3943
- _script($scope7_id, "l7");
3953
+ _script($scope7_id, "m7");
3944
3954
  writeScope($scope7_id, { d: branch });
3945
3955
  }, (b) => b, $scope5_id, "b", 1, 1, 1, 0, 1);
3946
3956
  _if(() => {
@@ -3961,7 +3971,7 @@ var repo_picker_default = _template("l", (input) => {
3961
3971
  }
3962
3972
  }, $scope3_id, "f", 1, 1, 1, 0, 1);
3963
3973
  _html("</li>");
3964
- _script($scope3_id, "l8");
3974
+ _script($scope3_id, "m8");
3965
3975
  _subscribe($branchesFor__closures, _subscribe($highlight__closures, writeScope($scope3_id, {
3966
3976
  i: repo?.nameWithOwner,
3967
3977
  k: i
@@ -3977,9 +3987,9 @@ var repo_picker_default = _template("l", (input) => {
3977
3987
  }
3978
3988
  }, $scope0_id, "c", 1, 1, 1, 0, 1);
3979
3989
  _html("</div>");
3980
- const $return = _resume(() => loadCatalog(true), "l2", $scope0_id);
3981
- _script($scope0_id, "l9");
3982
- _script($scope0_id, "l10");
3990
+ const $return = _resume(() => loadCatalog(true), "m2", $scope0_id);
3991
+ _script($scope0_id, "m9");
3992
+ _script($scope0_id, "m10");
3983
3993
  writeScope($scope0_id, {
3984
3994
  f: input.refreshingChange,
3985
3995
  g: input.onError,
@@ -4007,37 +4017,49 @@ var repo_picker_default = _template("l", (input) => {
4007
4017
  });
4008
4018
  //#endregion
4009
4019
  //#region src/tags/modal-view.marko
4010
- var modal_view_default = _template("h", (input) => {
4011
- const $scope0_reason = _scope_reason(), $sg__input_onClose__OR__input_footer = _serialize_guard($scope0_reason, 0), $si__input_onClose__OR__input_footer = _serialize_if($scope0_reason, 0);
4020
+ var modal_view_default = _template("i", (input) => {
4021
+ const $scope0_reason = _scope_reason(), $si__input_openChange__OR__input_footer = _serialize_if($scope0_reason, 1), $sg__input_openChange__OR__input_footer = _serialize_guard($scope0_reason, 1), $si__input_openChange = _serialize_if($scope0_reason, 2);
4012
4022
  const $scope0_id = _scope_id();
4013
4023
  const dismissable = input.dismissable !== false;
4014
- _html(`<div class=manage-backdrop></div>${_el_resume($scope0_id, "a")}<div${_attr_class(["manage-view", input.class])} role=dialog${_attr("aria-label", input.label)}><div class=manage>`);
4015
- _dynamic_tag($scope0_id, "c", input.content, {}, 0, 0, _serialize_guard($scope0_reason, 3));
4024
+ let open = input.open;
4025
+ _html(`<dialog${_attr_class(["manage-view", input.class])}${_attr("aria-label", input.label)} closedby=${dismissable ? "any" : "none"}><div class=manage>`);
4026
+ _dynamic_tag($scope0_id, "b", input.content, {}, 0, 0, _serialize_guard($scope0_reason, 3));
4016
4027
  _html("</div>");
4017
4028
  _if(() => {
4018
4029
  if (input.footer) {
4019
4030
  const $scope1_id = _scope_id();
4020
- _html("<div class=manage-bar>");
4031
+ _html("<form method=dialog class=manage-bar>");
4021
4032
  _dynamic_tag($scope1_id, "a", input.footer.content, {}, 0, 0, _serialize_guard($scope0_reason, 4));
4022
- _html("</div>");
4023
- $si__input_onClose__OR__input_footer && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 4) && _scope_with_id($scope0_id) });
4033
+ _html("</form>");
4034
+ $si__input_openChange__OR__input_footer && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 4) && _scope_with_id($scope0_id) });
4024
4035
  return 0;
4025
- } else if (input.onClose) {
4036
+ } else if (input.openChange) {
4026
4037
  const $scope2_id = _scope_id();
4027
- _html(`<div class=manage-bar><button class="btn primary">Done</button>${_el_resume($scope2_id, "a")}</div>`);
4028
- _script($scope2_id, "h0");
4029
- writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
4038
+ _html("<form method=dialog class=manage-bar>");
4039
+ dialog_close_default({
4040
+ class: "btn primary",
4041
+ content: _content("i0", () => {
4042
+ _scope_reason();
4043
+ _scope_id();
4044
+ _html("Done");
4045
+ })
4046
+ });
4047
+ _html("</form>");
4048
+ $si__input_openChange__OR__input_footer && writeScope($scope2_id, {});
4030
4049
  return 1;
4031
4050
  }
4032
- }, $scope0_id, "d", $sg__input_onClose__OR__input_footer, $sg__input_onClose__OR__input_footer, $sg__input_onClose__OR__input_footer, 0, 1);
4033
- _html(`</div>${_el_resume($scope0_id, "b", _serialize_guard($scope0_reason, 1))}`);
4034
- _script($scope0_id, "h1");
4035
- _script($scope0_id, "h2");
4051
+ }, $scope0_id, "c", $sg__input_openChange__OR__input_footer, $sg__input_openChange__OR__input_footer, $sg__input_openChange__OR__input_footer, 0, 1);
4052
+ _html(`</dialog>${_el_resume($scope0_id, "a")}`);
4053
+ _script($scope0_id, "i1");
4054
+ _script($scope0_id, "i2");
4036
4055
  writeScope($scope0_id, {
4037
- h: input.onClose,
4038
- l: _serialize_if($scope0_reason, 2) && input.footer,
4039
- n: $si__input_onClose__OR__input_footer && input.footer?.content,
4040
- o: dismissable
4056
+ g: $si__input_openChange && input.open,
4057
+ h: _serialize_if($scope0_reason, 0) && input.openChange,
4058
+ m: $si__input_openChange && input.footer,
4059
+ o: $si__input_openChange__OR__input_footer && input.footer?.content,
4060
+ p: dismissable,
4061
+ q: open,
4062
+ r: input.openChange || void 0
4041
4063
  });
4042
4064
  _resume_branch($scope0_id);
4043
4065
  });
@@ -4045,8 +4067,8 @@ var modal_view_default = _template("h", (input) => {
4045
4067
  //#region src/tags/manage-workspace.marko
4046
4068
  var api$5;
4047
4069
  var lastData = /* @__PURE__ */ new Map();
4048
- var manage_workspace_default = _template("g", (input) => {
4049
- const $scope0_reason = _scope_reason(), $sg__input_workspace = _serialize_guard($scope0_reason, 1), $si__input_workspace = _serialize_if($scope0_reason, 1), $sg__input_onClose = _serialize_guard($scope0_reason, 2);
4070
+ var manage_workspace_default = _template("h", (input) => {
4071
+ const $scope0_reason = _scope_reason(), $sg__input_workspace = _serialize_guard($scope0_reason, 0), $si__input_workspace = _serialize_if($scope0_reason, 0), $sg__input_openChange = _serialize_guard($scope0_reason, 1);
4050
4072
  const $scope0_id = _scope_id();
4051
4073
  const $actionStep__closures = /* @__PURE__ */ new Set();
4052
4074
  const $pendingAction__closures = /* @__PURE__ */ new Set();
@@ -4085,19 +4107,19 @@ var manage_workspace_default = _template("g", (input) => {
4085
4107
  procs = data;
4086
4108
  lastData.set(`procs:${ws.id}`, data);
4087
4109
  } catch {}
4088
- }, "g0", $scope0_id);
4110
+ }, "h0", $scope0_id);
4089
4111
  const loadPrs = _resume(async (signal, refresh) => {
4090
4112
  try {
4091
4113
  const data = await api$5(`/api/workspaces/${ws.id}/prs${refresh ? "?refresh" : ""}`, { signal });
4092
4114
  prs = data;
4093
4115
  lastData.set(`prs:${ws.id}`, data);
4094
4116
  } catch {}
4095
- }, "g1", $scope0_id);
4117
+ }, "h1", $scope0_id);
4096
4118
  const refreshPrs = _resume(async () => {
4097
4119
  prsRefreshing = true;
4098
4120
  await loadPrs(void 0, true);
4099
4121
  prsRefreshing = false;
4100
- }, "g2", $scope0_id);
4122
+ }, "h2", $scope0_id);
4101
4123
  const clearFinished = _resume(async () => {
4102
4124
  for (const repo of prs || []) for (const pr of repo.prs) {
4103
4125
  if (pr.state === "OPEN") continue;
@@ -4111,7 +4133,7 @@ var manage_workspace_default = _template("g", (input) => {
4111
4133
  }).catch(() => {});
4112
4134
  }
4113
4135
  await loadPrs(void 0, false);
4114
- }, "g3", $scope0_id);
4136
+ }, "h3", $scope0_id);
4115
4137
  const dismissPr = _resume(async (fullName, number) => {
4116
4138
  error = null;
4117
4139
  try {
@@ -4128,14 +4150,14 @@ var manage_workspace_default = _template("g", (input) => {
4128
4150
  } catch (err) {
4129
4151
  error = String(err.message || err);
4130
4152
  }
4131
- }, "g4", $scope0_id);
4153
+ }, "h4", $scope0_id);
4132
4154
  const inWorkspace = new Set(ws.repos.map((r) => r.full_name));
4133
4155
  const setBusy = _resume((name, on) => {
4134
4156
  const next = new Set(busy);
4135
4157
  if (on) next.add(name);
4136
4158
  else next.delete(name);
4137
4159
  busy = next;
4138
- }, "g5", $scope0_id);
4160
+ }, "h5", $scope0_id);
4139
4161
  const addRepo = _resume(async (name, baseBranch) => {
4140
4162
  if (!name || busy.has(name)) return;
4141
4163
  error = null;
@@ -4154,7 +4176,7 @@ var manage_workspace_default = _template("g", (input) => {
4154
4176
  error = String(err.message || err);
4155
4177
  }
4156
4178
  setBusy(name, false);
4157
- }, "g6", $scope0_id);
4179
+ }, "h6", $scope0_id);
4158
4180
  const removeRepo = _resume(async (row) => {
4159
4181
  if (busy.has(row.full_name)) return;
4160
4182
  error = null;
@@ -4169,7 +4191,7 @@ var manage_workspace_default = _template("g", (input) => {
4169
4191
  error = String(err.message || err);
4170
4192
  }
4171
4193
  setBusy(row.full_name, false);
4172
- }, "g7", $scope0_id);
4194
+ }, "h7", $scope0_id);
4173
4195
  const runAction = _resume(async (action) => {
4174
4196
  error = null;
4175
4197
  pendingAction = action;
@@ -4180,137 +4202,150 @@ var manage_workspace_default = _template("g", (input) => {
4180
4202
  headers: { "content-type": "application/json" },
4181
4203
  body: JSON.stringify({ action })
4182
4204
  });
4183
- if (action === "delete") input.onClose?.();
4205
+ if (action === "delete") input.openChange?.(false);
4184
4206
  } catch (err) {
4185
4207
  error = String(err.message || err);
4186
4208
  } finally {
4187
4209
  pendingAction = null;
4188
4210
  actionStep = null;
4189
4211
  }
4190
- }, "g8", $scope0_id);
4212
+ }, "h8", $scope0_id);
4191
4213
  const killProc = _resume(async (pid) => {
4192
4214
  await fetch(`/api/procs/${pid}`, { method: "DELETE" });
4193
4215
  setTimeout(() => loadProcs(void 0), 500);
4194
- }, "g9", $scope0_id);
4216
+ }, "h9", $scope0_id);
4195
4217
  _set_serialize_reason({
4196
- 0: $sg__input_onClose,
4197
- 1: $sg__input_workspace,
4198
- 2: $sg__input_onClose
4218
+ 0: _serialize_guard($scope0_reason, 2),
4219
+ 1: $sg__input_openChange,
4220
+ 2: $sg__input_openChange
4199
4221
  });
4200
- const $childScope2 = _peek_scope_id();
4222
+ const $childScope3 = _peek_scope_id();
4201
4223
  modal_view_default({
4202
4224
  label: `Manage ${ws.name}`,
4203
- onClose: _resume(function() {
4204
- input.onClose?.();
4205
- }, "g10", $scope0_id),
4206
- footer: attrTag({ content: _content_resume("g27", () => {
4225
+ open: input.open,
4226
+ openChange: input.openChange,
4227
+ dismissable: !pendingAction,
4228
+ footer: attrTag({ content: _content_resume("h27", () => {
4207
4229
  _scope_reason();
4208
- const $scope1_id = _scope_id();
4209
- _html(`<button class="btn primary"${_attr("disabled", !!pendingAction)}>Done</button>${_el_resume($scope1_id, "a")}`);
4230
+ const $scope8_id = _scope_id();
4231
+ _set_serialize_reason(6);
4232
+ const $childScope = _peek_scope_id();
4233
+ dialog_close_default({
4234
+ class: "btn primary",
4235
+ disabled: !!pendingAction,
4236
+ content: _content("h14", () => {
4237
+ _scope_reason();
4238
+ _scope_id();
4239
+ _html("Done");
4240
+ })
4241
+ });
4210
4242
  _if(() => {
4211
4243
  if (pendingAction && actionStep) {
4212
4244
  const $scope12_id = _scope_id();
4213
4245
  _html(`<span class="act-step dim"><span class=spin></span><!>${_escape(actionStep)}${_el_resume($scope12_id, "a")}</span>`);
4214
- _subscribe($actionStep__closures, writeScope($scope12_id, { Cas: 1 }));
4246
+ _subscribe($actionStep__closures, writeScope($scope12_id, { Cat: 1 }));
4215
4247
  return 0;
4216
4248
  }
4217
- }, $scope1_id, "b", 1, 1, 1, 0, 1);
4249
+ }, $scope8_id, "b", 1, 1, 1, 0, 1);
4218
4250
  _html("<div class=spacer></div>");
4219
4251
  _if(() => {
4220
4252
  if (ws.status === "active") {
4221
4253
  const $scope9_id = _scope_id();
4222
- _html(`<button class=btn${_attr("disabled", !!pendingAction)}>${pendingAction === "archive" ? "Archiving…" : "Archive"}${_el_resume($scope9_id, "b")}</button>${_el_resume($scope9_id, "a")}`);
4223
- _script($scope9_id, "g15");
4254
+ _html(`<button type=button class=btn${_attr("disabled", !!pendingAction)}>${pendingAction === "archive" ? "Archiving…" : "Archive"}${_el_resume($scope9_id, "b")}</button>${_el_resume($scope9_id, "a")}`);
4255
+ _script($scope9_id, "h15");
4224
4256
  _subscribe($pendingAction__closures, writeScope($scope9_id, {
4225
- _: _scope_with_id($scope1_id),
4226
- Cap: 1
4257
+ _: _scope_with_id($scope8_id),
4258
+ Caq: 1
4227
4259
  }));
4228
4260
  return 0;
4229
4261
  } else {
4230
4262
  const $scope10_id = _scope_id();
4231
- _html(`<button class=btn${_attr("disabled", !!pendingAction)}>Restore</button>${_el_resume($scope10_id, "a")}`);
4232
- _script($scope10_id, "g16");
4263
+ _html(`<button type=button class=btn${_attr("disabled", !!pendingAction)}>Restore</button>${_el_resume($scope10_id, "a")}`);
4264
+ _script($scope10_id, "h16");
4233
4265
  _subscribe($pendingAction__closures, writeScope($scope10_id, {
4234
- _: _scope_with_id($scope1_id),
4235
- Cap: 2
4266
+ _: _scope_with_id($scope8_id),
4267
+ Caq: 2
4236
4268
  }));
4237
4269
  return 1;
4238
4270
  }
4239
- }, $scope1_id, "c", $sg__input_workspace, $sg__input_workspace, 1, 0, 1);
4240
- _html(`<button class="btn danger"${_attr("disabled", !!pendingAction)}>${pendingAction === "delete" ? "Deleting…" : "Delete"}${_el_resume($scope1_id, "e")}</button>${_el_resume($scope1_id, "d")}`);
4241
- _script($scope1_id, "g17");
4242
- _subscribe($si__input_workspace && $ws_status__closures, _subscribe($actionStep__closures, _subscribe($confirmingDelete__closures, _subscribe($pendingAction__closures, writeScope($scope1_id, { _: _scope_with_id($scope0_id) })))));
4243
- _resume_branch($scope1_id);
4271
+ }, $scope8_id, "c", $sg__input_workspace, $sg__input_workspace, 1, 0, 1);
4272
+ _html(`<button type=button class="btn danger"${_attr("disabled", !!pendingAction)}>${pendingAction === "delete" ? "Deleting…" : "Delete"}${_el_resume($scope8_id, "e")}</button>${_el_resume($scope8_id, "d")}`);
4273
+ _script($scope8_id, "h17");
4274
+ _subscribe($si__input_workspace && $ws_status__closures, _subscribe($actionStep__closures, _subscribe($confirmingDelete__closures, _subscribe($pendingAction__closures, writeScope($scope8_id, {
4275
+ _: _scope_with_id($scope0_id),
4276
+ a: _existing_scope($childScope)
4277
+ })))));
4278
+ _resume_branch($scope8_id);
4244
4279
  }, $scope0_id) }),
4245
- content: _content("g28", () => {
4280
+ content: _content("h28", () => {
4246
4281
  _scope_reason();
4247
- const $scope2_id = _scope_id();
4248
- _html(`<header class=manage-head><div><h2>${_escape(ws.name)}${_el_resume($scope2_id, "a", $sg__input_workspace)}</h2><p class="dim mono">${_escape(ws.display_path || ws.path)}${_el_resume($scope2_id, "b", $sg__input_workspace)}</p></div></header>`);
4282
+ const $scope1_id = _scope_id();
4283
+ _html(`<header class=manage-head><div><h2>${_escape(ws.name)}${_el_resume($scope1_id, "a", $sg__input_workspace)}</h2><p class="dim mono">${_escape(ws.display_path || ws.path)}${_el_resume($scope1_id, "b", $sg__input_workspace)}</p></div></header>`);
4249
4284
  _if(() => {
4250
4285
  if (error) {
4251
- const $scope7_id = _scope_id();
4286
+ const $scope6_id = _scope_id();
4252
4287
  toast_default({
4253
4288
  placement: "inline",
4254
4289
  onDismiss: _resume(function() {
4255
4290
  error = null;
4256
- }, "g11", $scope7_id),
4257
- content: _content_resume("g18", () => {
4291
+ }, "h10", $scope6_id),
4292
+ content: _content_resume("h18", () => {
4258
4293
  _scope_reason();
4259
- const $scope8_id = _scope_id();
4260
- _html(`${_escape(error)}${_el_resume($scope8_id, "a")}`);
4261
- _subscribe($error__closures, writeScope($scope8_id, {
4262
- _: _scope_with_id($scope7_id),
4263
- Cao: 1
4294
+ const $scope7_id = _scope_id();
4295
+ _html(`${_escape(error)}${_el_resume($scope7_id, "a")}`);
4296
+ _subscribe($error__closures, writeScope($scope7_id, {
4297
+ _: _scope_with_id($scope6_id),
4298
+ Cap: 1
4264
4299
  }));
4265
- _resume_branch($scope8_id);
4266
- }, $scope7_id)
4300
+ _resume_branch($scope7_id);
4301
+ }, $scope6_id)
4267
4302
  });
4268
- writeScope($scope7_id, {});
4303
+ writeScope($scope6_id, {});
4269
4304
  return 0;
4270
4305
  }
4271
- }, $scope2_id, "c", 1, 1, 1, 0, 1);
4306
+ }, $scope1_id, "c", 1, 1, 1, 0, 1);
4272
4307
  _if(() => {
4273
4308
  if (prs && prs.some((r) => r.prs.length)) {
4274
- const $scope4_id = _scope_id();
4309
+ const $scope3_id = _scope_id();
4275
4310
  const finishedCount = (prs || []).reduce((n, r) => n + r.prs.filter((pr) => pr.state !== "OPEN").length, 0);
4276
4311
  _html("<section><div class=repos-head><h3>Pull requests</h3>");
4277
4312
  _if(() => {
4278
4313
  if (finishedCount) {
4279
4314
  const $scope13_id = _scope_id();
4280
4315
  _html(`<button class=btn title="Confirm every merged/closed PR is done — remove them from this list">Clear <!>${_escape(finishedCount)}${_el_resume($scope13_id, "b")} finished</button>${_el_resume($scope13_id, "a")}`);
4281
- _script($scope13_id, "g19");
4316
+ _script($scope13_id, "h19");
4282
4317
  writeScope($scope13_id, {});
4283
4318
  return 0;
4284
4319
  }
4285
- }, $scope4_id, "a", 1, 1, 1, 0, 1);
4320
+ }, $scope3_id, "a", 1, 1, 1, 0, 1);
4286
4321
  _html(`<button class=${prsRefreshing ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh PRs"${_attr("disabled", prsRefreshing)}>`);
4287
4322
  icon_refresh_default({ size: 13 });
4288
- _html(`</button>${_el_resume($scope4_id, "b")}</div>`);
4323
+ _html(`</button>${_el_resume($scope3_id, "b")}</div>`);
4289
4324
  _for_of(prs.filter((r) => r.prs.length), (repo) => {
4290
- const $scope5_id = _scope_id();
4325
+ const $scope4_id = _scope_id();
4291
4326
  _html("<div class=pr-repo>");
4292
4327
  _if(() => {
4293
4328
  if (prs.length > 1) {
4294
- const $scope17_id = _scope_id();
4295
- _html(`<div class="pr-repo-name mono dim">${_escape(repo.worktree)}${_el_resume($scope17_id, "a")}</div>`);
4296
- writeScope($scope17_id, {});
4329
+ const $scope18_id = _scope_id();
4330
+ _html(`<div class="pr-repo-name mono dim">${_escape(repo.worktree)}${_el_resume($scope18_id, "a")}</div>`);
4331
+ writeScope($scope18_id, {});
4297
4332
  return 0;
4298
4333
  }
4299
- }, $scope5_id, "a", 1, 1, 1, 0, 1);
4334
+ }, $scope4_id, "a", 1, 1, 1, 0, 1);
4300
4335
  _html("<ul class=pr-list>");
4301
4336
  _for_of(repo.prs, (pr) => {
4302
4337
  const $scope14_id = _scope_id();
4303
4338
  _html(`<li><span${_attr_class(["pr-state", pr.state.toLowerCase()])}>${pr.state === "OPEN" && pr.isDraft ? "draft" : _escape(pr.state.toLowerCase())}${_el_resume($scope14_id, "b")}</span>${_el_resume($scope14_id, "a")}`);
4304
4339
  _if(() => {
4305
4340
  if (pr.state === "OPEN" && pr.reviewDecision === "APPROVED") {
4306
- const $scope18_id = _scope_id();
4341
+ const $scope19_id = _scope_id();
4307
4342
  _html("<span class=\"pr-state open\" title=Approved>✓</span>");
4308
- writeScope($scope18_id, {});
4343
+ writeScope($scope19_id, {});
4309
4344
  return 0;
4310
4345
  } else if (pr.state === "OPEN" && pr.reviewDecision === "CHANGES_REQUESTED") {
4311
- const $scope19_id = _scope_id();
4346
+ const $scope20_id = _scope_id();
4312
4347
  _html("<span class=\"pr-state closed\" title=\"Changes requested\">✗</span>");
4313
- writeScope($scope19_id, {});
4348
+ writeScope($scope20_id, {});
4314
4349
  return 1;
4315
4350
  }
4316
4351
  }, $scope14_id, "c", 1, 1, 1, 0, 1);
@@ -4319,186 +4354,186 @@ var manage_workspace_default = _template("g", (input) => {
4319
4354
  if (pr.state !== "OPEN") {
4320
4355
  const $scope15_id = _scope_id();
4321
4356
  _html(`<button class=pr-dismiss${_attr("title", `Confirm #${pr.number} is done — remove from this list`)}>✓</button>${_el_resume($scope15_id, "a")}`);
4322
- _script($scope15_id, "g20");
4357
+ _script($scope15_id, "h20");
4323
4358
  writeScope($scope15_id, {});
4324
4359
  return 0;
4325
4360
  }
4326
4361
  }, $scope14_id, "g", 1, 1, 1, 0, 1);
4327
4362
  _html("</li>");
4328
4363
  writeScope($scope14_id, { p: pr?.number });
4329
- }, "number", $scope5_id, "b", 1, 1, 1, "</ul>", 1);
4364
+ }, "number", $scope4_id, "b", 1, 1, 1, "</ul>", 1);
4330
4365
  _html("</div>");
4331
- _subscribe($prs_length__closures, writeScope($scope5_id, {
4366
+ _subscribe($prs_length__closures, writeScope($scope4_id, {
4332
4367
  e: repo?.worktree,
4333
4368
  g: repo?.full_name
4334
4369
  }));
4335
- }, "full_name", $scope4_id, "d", 1, 1, 1, 0, 1);
4370
+ }, "full_name", $scope3_id, "d", 1, 1, 1, 0, 1);
4336
4371
  _html("</section>");
4337
- _script($scope4_id, "g21");
4338
- _subscribe($prsRefreshing__closures, _subscribe($prs__closures, writeScope($scope4_id, {
4372
+ _script($scope3_id, "h21");
4373
+ _subscribe($prsRefreshing__closures, _subscribe($prs__closures, writeScope($scope3_id, {
4339
4374
  e: finishedCount,
4340
- Caj: 1
4375
+ Cak: 1
4341
4376
  })));
4342
4377
  return 0;
4343
4378
  }
4344
- }, $scope2_id, "d", 1, 1, 1, 0, 1);
4379
+ }, $scope1_id, "d", 1, 1, 1, 0, 1);
4345
4380
  _html(`<section><div class=repos-head><h3>Repos</h3><button class=${catalogRefreshing ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
4346
4381
  icon_refresh_default({ size: 13 });
4347
- _html(`</button>${_el_resume($scope2_id, "e")}</div><ul class=cur-repos>`);
4382
+ _html(`</button>${_el_resume($scope1_id, "e")}</div><ul class=cur-repos>`);
4348
4383
  _for_of(ws.repos, (row) => {
4349
- const $scope6_id = _scope_id();
4350
- _html(`<li class=cur-repo><span class="mono cur-worktree">${_escape(row.worktree)}${_el_resume($scope6_id, "a", $sg__input_workspace)}/</span><span class="dim cur-full">${_escape(row.full_name)}${_el_resume($scope6_id, "b", $sg__input_workspace)}</span>`);
4384
+ const $scope5_id = _scope_id();
4385
+ _html(`<li class=cur-repo><span class="mono cur-worktree">${_escape(row.worktree)}${_el_resume($scope5_id, "a", $sg__input_workspace)}/</span><span class="dim cur-full">${_escape(row.full_name)}${_el_resume($scope5_id, "b", $sg__input_workspace)}</span>`);
4351
4386
  _if(() => {
4352
4387
  if (row.base_branch !== row.default_branch) {
4353
- const $scope20_id = _scope_id();
4354
- _html(`<span class="cur-base mono" title="Base branch">⎇ ${_sep($sg__input_workspace)}${_escape(row.base_branch)}${_el_resume($scope20_id, "a", $sg__input_workspace)}</span>`);
4355
- $si__input_workspace && writeScope($scope20_id, { _: _scope_with_id($scope6_id) });
4388
+ const $scope21_id = _scope_id();
4389
+ _html(`<span class="cur-base mono" title="Base branch">⎇ ${_sep($sg__input_workspace)}${_escape(row.base_branch)}${_el_resume($scope21_id, "a", $sg__input_workspace)}</span>`);
4390
+ $si__input_workspace && writeScope($scope21_id, { _: _scope_with_id($scope5_id) });
4356
4391
  return 0;
4357
4392
  }
4358
- }, $scope6_id, "c", $sg__input_workspace, $sg__input_workspace, 1, 0, 1);
4393
+ }, $scope5_id, "c", $sg__input_workspace, $sg__input_workspace, 1, 0, 1);
4359
4394
  _if(() => {
4360
4395
  if (busy.has(row.full_name)) {
4361
- const $scope21_id = _scope_id();
4396
+ const $scope22_id = _scope_id();
4362
4397
  _html("<span class=spin></span>");
4363
- writeScope($scope21_id, {});
4398
+ writeScope($scope22_id, {});
4364
4399
  return 0;
4365
4400
  } else {
4366
4401
  const $scope11_id = _scope_id();
4367
4402
  _html(`<button class=${confirmingRemove === row.full_name ? "\"cur-remove armed\"" : "cur-remove"}${confirmingRemove === row.full_name ? _attr("title", `Really remove ${row.worktree}/? Uncommitted changes are lost.`) : _attr("title", `Remove ${row.worktree}/`)}>${confirmingRemove === row.full_name ? "remove?" : "×"}${_el_resume($scope11_id, "b")}</button>${_el_resume($scope11_id, "a")}`);
4368
- _script($scope11_id, "g22");
4403
+ _script($scope11_id, "h22");
4369
4404
  _subscribe($confirmingRemove__closures, writeScope($scope11_id, {}));
4370
4405
  return 1;
4371
4406
  }
4372
- }, $scope6_id, "d", 1, 1, 1, 0, 1);
4407
+ }, $scope5_id, "d", 1, 1, 1, 0, 1);
4373
4408
  _html("</li>");
4374
- _subscribe($busy__closures, writeScope($scope6_id, {
4409
+ _subscribe($busy__closures, writeScope($scope5_id, {
4375
4410
  f: row,
4376
4411
  g: row?.worktree,
4377
4412
  h: row?.full_name,
4378
4413
  j: $si__input_workspace && row?.base_branch,
4379
- _: _scope_with_id($scope2_id),
4380
- Cam: 1
4414
+ _: _scope_with_id($scope1_id),
4415
+ Can: 1
4381
4416
  }));
4382
- }, "full_name", $scope2_id, "g", $sg__input_workspace, $sg__input_workspace, 1, 0, 1);
4417
+ }, "full_name", $scope1_id, "g", $sg__input_workspace, $sg__input_workspace, 1, 0, 1);
4383
4418
  _for_of([...busy].filter((n) => !inWorkspace.has(n)), (name) => {
4384
- const $scope22_id = _scope_id();
4385
- _html(`<li class="cur-repo pending"><span class=spin></span><span class="dim cur-full">${_escape(name)}${_el_resume($scope22_id, "a")}</span></li>`);
4386
- writeScope($scope22_id, {});
4387
- }, (n) => n, $scope2_id, "h", 1, 1, 1, 0, 1);
4419
+ const $scope23_id = _scope_id();
4420
+ _html(`<li class="cur-repo pending"><span class=spin></span><span class="dim cur-full">${_escape(name)}${_el_resume($scope23_id, "a")}</span></li>`);
4421
+ writeScope($scope23_id, {});
4422
+ }, (n) => n, $scope1_id, "h", 1, 1, 1, 0, 1);
4388
4423
  _if(() => {
4389
4424
  if (!ws.repos.length && !busy.size) {
4390
- const $scope23_id = _scope_id();
4425
+ const $scope24_id = _scope_id();
4391
4426
  _html("<li class=\"dim empty-note\">No repos yet — search below to add one.</li>");
4392
- writeScope($scope23_id, {});
4427
+ writeScope($scope24_id, {});
4393
4428
  return 0;
4394
4429
  }
4395
- }, $scope2_id, "i", 1, 1, 1, 0, 1);
4430
+ }, $scope1_id, "i", 1, 1, 1, 0, 1);
4396
4431
  _html("</ul>");
4397
- const $childScope = _peek_scope_id();
4432
+ const $childScope2 = _peek_scope_id();
4398
4433
  let refreshCatalog = repo_picker_default({
4399
4434
  exclude: inWorkspace,
4400
4435
  onPick: _resume(function(name, baseBranch) {
4401
4436
  addRepo(name, baseBranch);
4402
- }, "g12", $scope2_id),
4437
+ }, "h11", $scope1_id),
4403
4438
  onError: _resume(function(message) {
4404
4439
  error = message;
4405
- }, "g13", $scope2_id),
4440
+ }, "h12", $scope1_id),
4406
4441
  refreshingChange: _resume(function(busy) {
4407
4442
  catalogRefreshing = busy;
4408
- }, "g14", $scope2_id)
4443
+ }, "h13", $scope1_id)
4409
4444
  });
4410
- _var($scope2_id, "k", $childScope, "g23");
4445
+ _var($scope1_id, "k", $childScope2, "h23");
4411
4446
  _html("</section>");
4412
4447
  _if(() => {
4413
4448
  if (procs && procs.length) {
4414
- const $scope3_id = _scope_id();
4449
+ const $scope2_id = _scope_id();
4415
4450
  _html("<section><h3>Processes</h3><ul class=procs>");
4416
4451
  _for_of(procs, (p) => {
4417
4452
  const $scope16_id = _scope_id();
4418
4453
  _html(`<li><span class="mono proc-cmd"${_attr("title", p.args)}>${_escape(p.cmd)}${_el_resume($scope16_id, "b")}`);
4419
4454
  _for_of(p.ports, (port) => {
4420
- const $scope24_id = _scope_id();
4421
- _html(`<button class="chip port-link"${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${port}`)}>:<!>${_escape(port)}${_el_resume($scope24_id, "b")}</button>${_el_resume($scope24_id, "a")}`);
4422
- _script($scope24_id, "g24");
4423
- writeScope($scope24_id, { d: port });
4455
+ const $scope25_id = _scope_id();
4456
+ _html(`<button class="chip port-link"${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${port}`)}>:<!>${_escape(port)}${_el_resume($scope25_id, "b")}</button>${_el_resume($scope25_id, "a")}`);
4457
+ _script($scope25_id, "h24");
4458
+ writeScope($scope25_id, { d: port });
4424
4459
  }, (x) => String(x), $scope16_id, "c", 1, 1, 1, 0, 1);
4425
4460
  _html(`</span>${_el_resume($scope16_id, "a")}<button class=proc-kill${_attr("title", `Kill ${p.pid}`)}>×</button>${_el_resume($scope16_id, "d")}</li>`);
4426
- _script($scope16_id, "g25");
4461
+ _script($scope16_id, "h25");
4427
4462
  writeScope($scope16_id, { j: p?.pid });
4428
- }, "pid", $scope3_id, "a", 1, 1, 1, "</ul>", 1);
4463
+ }, "pid", $scope2_id, "a", 1, 1, 1, "</ul>", 1);
4429
4464
  _html("</section>");
4430
- _subscribe($procs__closures, writeScope($scope3_id, { Cai: 1 }));
4465
+ _subscribe($procs__closures, writeScope($scope2_id, { Caj: 1 }));
4431
4466
  return 0;
4432
4467
  }
4433
- }, $scope2_id, "l", 1, 1, 1, 0, 1);
4434
- _script($scope2_id, "g26");
4435
- _subscribe($addRepo2__closures, _subscribe($si__input_workspace && $inWorkspace__closures, _subscribe($si__input_workspace && $ws_repos_length__closures, _subscribe($si__input_workspace && $ws_path__closures, _subscribe($si__input_workspace && $ws_display_path__closures, _subscribe($si__input_workspace && $ws_name__closures, _subscribe($si__input_workspace && $ws_repos__closures, _subscribe($error__closures, _subscribe($busy_size__closures, _subscribe($busy__closures, _subscribe($prs__closures, _subscribe($procs__closures, _subscribe($catalogRefreshing__closures, writeScope($scope2_id, {
4468
+ }, $scope1_id, "l", 1, 1, 1, 0, 1);
4469
+ _script($scope1_id, "h26");
4470
+ _subscribe($addRepo2__closures, _subscribe($si__input_workspace && $inWorkspace__closures, _subscribe($si__input_workspace && $ws_repos_length__closures, _subscribe($si__input_workspace && $ws_path__closures, _subscribe($si__input_workspace && $ws_display_path__closures, _subscribe($si__input_workspace && $ws_name__closures, _subscribe($si__input_workspace && $ws_repos__closures, _subscribe($error__closures, _subscribe($busy_size__closures, _subscribe($busy__closures, _subscribe($prs__closures, _subscribe($procs__closures, _subscribe($catalogRefreshing__closures, writeScope($scope1_id, {
4436
4471
  m: refreshCatalog,
4437
4472
  _: _scope_with_id($scope0_id),
4438
- j: _existing_scope($childScope)
4473
+ j: _existing_scope($childScope2)
4439
4474
  }))))))))))))));
4440
- _resume_branch($scope2_id);
4475
+ _resume_branch($scope1_id);
4441
4476
  })
4442
4477
  });
4443
- _script($scope0_id, "g29");
4478
+ _script($scope0_id, "h29");
4444
4479
  writeScope($scope0_id, {
4445
4480
  f: input.onChange,
4446
- g: input.onClose,
4447
- i: procs,
4448
- j: prs,
4449
- k: prs?.length,
4450
- l: prsRefreshing,
4451
- m: busy,
4452
- n: busy?.size,
4453
- o: error,
4454
- p: pendingAction,
4455
- q: confirmingDelete,
4456
- r: confirmingRemove,
4457
- s: actionStep,
4458
- t: ws,
4459
- u: ws?.id,
4460
- y: ws?.status,
4461
- a1: ws?.repos?.length,
4462
- a2: loadProcs,
4463
- a3: loadPrs,
4464
- a6: refreshPrs,
4465
- a7: clearFinished,
4466
- a8: dismissPr,
4467
- a9: inWorkspace,
4468
- aa: setBusy,
4469
- ad: addRepo,
4470
- ae: removeRepo,
4471
- af: runAction,
4472
- ag: killProc,
4473
- as: $actionStep__closures,
4474
- ap: $pendingAction__closures,
4475
- aq: $confirmingDelete__closures,
4476
- av: $si__input_workspace && $ws_status__closures,
4477
- ao: $error__closures,
4478
- ak: $prs_length__closures,
4479
- aj: $prs__closures,
4480
- al: $prsRefreshing__closures,
4481
- ar: $confirmingRemove__closures,
4482
- am: $busy__closures,
4483
- ai: $procs__closures,
4484
- ah: $catalogRefreshing__closures,
4485
- an: $busy_size__closures,
4486
- at: $si__input_workspace && $ws_repos__closures,
4487
- au: $si__input_workspace && $ws_name__closures,
4488
- aw: $si__input_workspace && $ws_display_path__closures,
4489
- ax: $si__input_workspace && $ws_path__closures,
4490
- ay: $si__input_workspace && $ws_repos_length__closures,
4491
- az: $si__input_workspace && $inWorkspace__closures,
4492
- b0: $addRepo2__closures,
4493
- a: _serialize_if($scope0_reason, 0) && _existing_scope($childScope2)
4481
+ g: input.openChange,
4482
+ j: procs,
4483
+ k: prs,
4484
+ l: prs?.length,
4485
+ m: prsRefreshing,
4486
+ n: busy,
4487
+ o: busy?.size,
4488
+ p: error,
4489
+ q: pendingAction,
4490
+ r: confirmingDelete,
4491
+ s: confirmingRemove,
4492
+ t: actionStep,
4493
+ u: ws,
4494
+ v: ws?.id,
4495
+ z: ws?.status,
4496
+ a2: ws?.repos?.length,
4497
+ a3: loadProcs,
4498
+ a4: loadPrs,
4499
+ a7: refreshPrs,
4500
+ a8: clearFinished,
4501
+ a9: dismissPr,
4502
+ aa: inWorkspace,
4503
+ ab: setBusy,
4504
+ ae: addRepo,
4505
+ af: removeRepo,
4506
+ ag: runAction,
4507
+ ah: killProc,
4508
+ at: $actionStep__closures,
4509
+ aq: $pendingAction__closures,
4510
+ ar: $confirmingDelete__closures,
4511
+ aw: $si__input_workspace && $ws_status__closures,
4512
+ ap: $error__closures,
4513
+ al: $prs_length__closures,
4514
+ ak: $prs__closures,
4515
+ am: $prsRefreshing__closures,
4516
+ as: $confirmingRemove__closures,
4517
+ an: $busy__closures,
4518
+ aj: $procs__closures,
4519
+ ai: $catalogRefreshing__closures,
4520
+ ao: $busy_size__closures,
4521
+ au: $si__input_workspace && $ws_repos__closures,
4522
+ av: $si__input_workspace && $ws_name__closures,
4523
+ ax: $si__input_workspace && $ws_display_path__closures,
4524
+ ay: $si__input_workspace && $ws_path__closures,
4525
+ az: $si__input_workspace && $ws_repos_length__closures,
4526
+ b0: $si__input_workspace && $inWorkspace__closures,
4527
+ b1: $addRepo2__closures,
4528
+ a: _existing_scope($childScope3)
4494
4529
  });
4495
4530
  _resume_branch($scope0_id);
4496
4531
  });
4497
4532
  //#endregion
4498
4533
  //#region src/tags/new-workspace.marko
4499
4534
  var api$4;
4500
- var new_workspace_default = _template("i", (input) => {
4501
- const $sg__input_onCancel = _serialize_guard(_scope_reason(), 0);
4535
+ var new_workspace_default = _template("j", (input) => {
4536
+ const $scope0_reason = _scope_reason(), $sg__input_openChange = _serialize_guard($scope0_reason, 1);
4502
4537
  const $scope0_id = _scope_id();
4503
4538
  const $name__closures = /* @__PURE__ */ new Set();
4504
4539
  const $busy__closures = /* @__PURE__ */ new Set();
@@ -4526,17 +4561,17 @@ var new_workspace_default = _template("i", (input) => {
4526
4561
  if (e.seq) prog.last = e.seq;
4527
4562
  steps = steps.concat(e.message);
4528
4563
  }
4529
- }, "i1", $scope0_id);
4564
+ }, "j1", $scope0_id);
4530
4565
  const addRepo = _resume((fullName, baseBranch) => {
4531
4566
  if (!fullName || selected.some((r) => r.fullName === fullName)) return;
4532
4567
  selected = selected.concat({
4533
4568
  fullName,
4534
4569
  baseBranch
4535
4570
  });
4536
- }, "i2", $scope0_id);
4571
+ }, "j2", $scope0_id);
4537
4572
  const removeRepo = _resume((fullName) => {
4538
4573
  selected = selected.filter((r) => r.fullName !== fullName);
4539
- }, "i3", $scope0_id);
4574
+ }, "j3", $scope0_id);
4540
4575
  const create = _resume(async () => {
4541
4576
  busy = true;
4542
4577
  error = null;
@@ -4569,28 +4604,42 @@ var new_workspace_default = _template("i", (input) => {
4569
4604
  } finally {
4570
4605
  clearInterval(poll);
4571
4606
  }
4572
- }, "i4", $scope0_id);
4607
+ }, "j4", $scope0_id);
4573
4608
  _set_serialize_reason({
4574
- 0: $sg__input_onCancel,
4575
- 2: $sg__input_onCancel
4609
+ 0: _serialize_guard($scope0_reason, 0),
4610
+ 1: $sg__input_openChange,
4611
+ 2: $sg__input_openChange
4576
4612
  });
4577
- const $childScope2 = _peek_scope_id();
4613
+ const $childScope3 = _peek_scope_id();
4578
4614
  modal_view_default({
4579
4615
  label: "New workspace",
4580
4616
  class: "new-ws",
4617
+ open: input.open,
4618
+ openChange: input.openChange,
4581
4619
  dismissable: !busy,
4582
- onClose: _resume(function() {
4583
- input.onCancel?.();
4584
- }, "i5", $scope0_id),
4585
- footer: attrTag({ content: _content_resume("i15", () => {
4620
+ footer: attrTag({ content: _content_resume("j15", () => {
4586
4621
  _scope_reason();
4587
4622
  const $scope1_id = _scope_id();
4588
- _html(`<button class="btn primary"${_attr("disabled", busy || !name.trim())}>${busy ? "Creating…" : "Create workspace"}${_el_resume($scope1_id, "b")}</button>${_el_resume($scope1_id, "a")}<div class=spacer></div><button class=btn${_attr("disabled", busy)}>Cancel</button>${_el_resume($scope1_id, "c")}`);
4589
- _script($scope1_id, "i10");
4590
- _subscribe($busy__closures, _subscribe($name__closures, writeScope($scope1_id, { _: _scope_with_id($scope0_id) })));
4623
+ _html(`<button type=button class="btn primary"${_attr("disabled", busy || !name.trim())}>${busy ? "Creating…" : "Create workspace"}${_el_resume($scope1_id, "b")}</button>${_el_resume($scope1_id, "a")}<div class=spacer></div>`);
4624
+ _set_serialize_reason(6);
4625
+ const $childScope = _peek_scope_id();
4626
+ dialog_close_default({
4627
+ class: "btn",
4628
+ disabled: busy,
4629
+ content: _content("j9", () => {
4630
+ _scope_reason();
4631
+ _scope_id();
4632
+ _html("Cancel");
4633
+ })
4634
+ });
4635
+ _script($scope1_id, "j10");
4636
+ _subscribe($busy__closures, _subscribe($name__closures, writeScope($scope1_id, {
4637
+ _: _scope_with_id($scope0_id),
4638
+ c: _existing_scope($childScope)
4639
+ })));
4591
4640
  _resume_branch($scope1_id);
4592
4641
  }, $scope0_id) }),
4593
- content: _content("i16", () => {
4642
+ content: _content("j16", () => {
4594
4643
  _scope_reason();
4595
4644
  const $scope2_id = _scope_id();
4596
4645
  _html("<header class=manage-head><div><h2>New workspace</h2></div></header>");
@@ -4601,14 +4650,14 @@ var new_workspace_default = _template("i", (input) => {
4601
4650
  placement: "inline",
4602
4651
  onDismiss: _resume(function() {
4603
4652
  error = null;
4604
- }, "i6", $scope4_id),
4605
- content: _content_resume("i11", () => {
4653
+ }, "j5", $scope4_id),
4654
+ content: _content_resume("j11", () => {
4606
4655
  _scope_reason();
4607
4656
  const $scope5_id = _scope_id();
4608
4657
  _html(`${_escape(error)}${_el_resume($scope5_id, "a")}`);
4609
4658
  _subscribe($error__closures, writeScope($scope5_id, {
4610
4659
  _: _scope_with_id($scope4_id),
4611
- Ca2: 1
4660
+ Ca3: 1
4612
4661
  }));
4613
4662
  _resume_branch($scope5_id);
4614
4663
  }, $scope4_id)
@@ -4619,7 +4668,7 @@ var new_workspace_default = _template("i", (input) => {
4619
4668
  }, $scope2_id, "a", 1, 1, 1, 0, 1);
4620
4669
  _html(`<label class=field><span>Name</span><input${_attr_input_value($scope2_id, "b", name, _resume((_new_name) => {
4621
4670
  name = _new_name;
4622
- }, "i0", $scope2_id))} placeholder=my-feature${_attr("disabled", busy)} autofocus>${_el_resume($scope2_id, "b")}</label><section><div class=repos-head><h3>Repos</h3><button class=${catalogRefreshing ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
4671
+ }, "j0", $scope2_id))} placeholder=my-feature${_attr("disabled", busy)} autofocus>${_el_resume($scope2_id, "b")}</label><section><div class=repos-head><h3>Repos</h3><button class=${catalogRefreshing ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
4623
4672
  icon_refresh_default({ size: 13 });
4624
4673
  _html(`</button>${_el_resume($scope2_id, "c")}</div><ul class=cur-repos>`);
4625
4674
  _for_of(selected, (repo) => {
@@ -4627,44 +4676,44 @@ var new_workspace_default = _template("i", (input) => {
4627
4676
  _html(`<li class=cur-repo><span class=cur-full>${_escape(repo.fullName)}${_el_resume($scope3_id, "a")}</span>`);
4628
4677
  _if(() => {
4629
4678
  if (repo.baseBranch) {
4630
- const $scope8_id = _scope_id();
4631
- _html(`<span class="cur-base mono" title="Base branch">⎇ <!>${_escape(repo.baseBranch)}${_el_resume($scope8_id, "a")}</span>`);
4632
- writeScope($scope8_id, {});
4679
+ const $scope9_id = _scope_id();
4680
+ _html(`<span class="cur-base mono" title="Base branch">⎇ <!>${_escape(repo.baseBranch)}${_el_resume($scope9_id, "a")}</span>`);
4681
+ writeScope($scope9_id, {});
4633
4682
  return 0;
4634
4683
  }
4635
4684
  }, $scope3_id, "b", 1, 1, 1, 0, 1);
4636
4685
  _html(`<button class=cur-remove${_attr("title", `Remove ${repo.fullName}`)}${_attr("disabled", busy)}>×</button>${_el_resume($scope3_id, "c")}</li>`);
4637
- _script($scope3_id, "i12");
4686
+ _script($scope3_id, "j12");
4638
4687
  _subscribe($busy__closures, writeScope($scope3_id, {
4639
4688
  f: repo?.fullName,
4640
4689
  g: repo?.baseBranch,
4641
- Ca1: 2
4690
+ Ca2: 2
4642
4691
  }));
4643
4692
  }, "fullName", $scope2_id, "e", 1, 1, 1, 0, 1);
4644
4693
  _if(() => {
4645
4694
  if (!selected.length) {
4646
- const $scope9_id = _scope_id();
4695
+ const $scope10_id = _scope_id();
4647
4696
  _html("<li class=\"dim empty-note\">No repos yet — search below to add one (or create empty).</li>");
4648
- writeScope($scope9_id, {});
4697
+ writeScope($scope10_id, {});
4649
4698
  return 0;
4650
4699
  }
4651
4700
  }, $scope2_id, "f", 1, 1, 1, 0, 1);
4652
4701
  _html("</ul>");
4653
- const $childScope = _peek_scope_id();
4702
+ const $childScope2 = _peek_scope_id();
4654
4703
  let refreshCatalog = repo_picker_default({
4655
4704
  exclude: new Set(selected.map((r) => r.fullName)),
4656
4705
  disabled: busy,
4657
4706
  onPick: _resume(function(fullName, baseBranch) {
4658
4707
  addRepo(fullName, baseBranch);
4659
- }, "i7", $scope2_id),
4708
+ }, "j6", $scope2_id),
4660
4709
  onError: _resume(function(message) {
4661
4710
  error = message;
4662
- }, "i8", $scope2_id),
4711
+ }, "j7", $scope2_id),
4663
4712
  refreshingChange: _resume(function(v) {
4664
4713
  catalogRefreshing = v;
4665
- }, "i9", $scope2_id)
4714
+ }, "j8", $scope2_id)
4666
4715
  });
4667
- _var($scope2_id, "h", $childScope, "i13");
4716
+ _var($scope2_id, "h", $childScope2, "j13");
4668
4717
  _html("</section>");
4669
4718
  _if(() => {
4670
4719
  if (busy && steps.length) {
@@ -4675,61 +4724,60 @@ var new_workspace_default = _template("i", (input) => {
4675
4724
  _html(`<li${_attr_class({ active: i === steps.length - 1 })}>`);
4676
4725
  _if(() => {
4677
4726
  if (i === steps.length - 1) {
4678
- const $scope10_id = _scope_id();
4727
+ const $scope11_id = _scope_id();
4679
4728
  _html("<span class=spin></span>");
4680
- writeScope($scope10_id, {});
4729
+ writeScope($scope11_id, {});
4681
4730
  return 0;
4682
4731
  } else {
4683
- const $scope11_id = _scope_id();
4732
+ const $scope12_id = _scope_id();
4684
4733
  _html("<span class=step-done>✓</span>");
4685
- writeScope($scope11_id, {});
4734
+ writeScope($scope12_id, {});
4686
4735
  return 1;
4687
4736
  }
4688
4737
  }, $scope7_id, "b", 1, 1, 1, 0, 1);
4689
4738
  _html(`<!>${_escape(step)}${_el_resume($scope7_id, "c")}</li>${_el_resume($scope7_id, "a")}`);
4690
- _subscribe($steps_length__closures, writeScope($scope7_id, { Ca4: 1 }));
4739
+ _subscribe($steps_length__closures, writeScope($scope7_id, { Ca5: 1 }));
4691
4740
  }, 0, $scope6_id, "a", 1, 1, 1, "</ul>", 1);
4692
4741
  _subscribe($steps__closures, writeScope($scope6_id, {}));
4693
4742
  return 0;
4694
4743
  }
4695
4744
  }, $scope2_id, "i", 1, 1, 1, 0, 1);
4696
- _script($scope2_id, "i14");
4745
+ _script($scope2_id, "j14");
4697
4746
  _subscribe($addRepo2__closures, _subscribe($steps_length__closures, _subscribe($error__closures, _subscribe($busy__closures, _subscribe($selected_length__closures, _subscribe($selected__closures, _subscribe($catalogRefreshing__closures, _subscribe($name__closures, writeScope($scope2_id, {
4698
4747
  j: refreshCatalog,
4699
4748
  _: _scope_with_id($scope0_id),
4700
- g: _existing_scope($childScope),
4701
- Cx: 1,
4702
- Ca1: 1
4749
+ g: _existing_scope($childScope2),
4750
+ Cy: 1,
4751
+ Ca2: 1
4703
4752
  })))))))));
4704
4753
  _resume_branch($scope2_id);
4705
4754
  })
4706
4755
  });
4707
- _script($scope0_id, "i17");
4756
+ _script($scope0_id, "j17");
4708
4757
  writeScope($scope0_id, {
4709
4758
  d: input.onCreate,
4710
- e: input.onCancel,
4711
- f: name,
4712
- h: selected,
4713
- j: busy,
4714
- k: error,
4715
- l: steps,
4716
- m: steps?.length,
4717
- o: prog.op,
4718
- p: prog.last,
4719
- r: takeProgress,
4720
- u: addRepo,
4721
- v: removeRepo,
4722
- w: create,
4723
- x: $name__closures,
4724
- a1: $busy__closures,
4725
- a2: $error__closures,
4726
- a4: $steps_length__closures,
4727
- a3: $steps__closures,
4728
- y: $catalogRefreshing__closures,
4729
- z: $selected__closures,
4730
- a0: $selected_length__closures,
4731
- a5: $addRepo2__closures,
4732
- a: _existing_scope($childScope2)
4759
+ g: name,
4760
+ i: selected,
4761
+ k: busy,
4762
+ l: error,
4763
+ m: steps,
4764
+ n: steps?.length,
4765
+ p: prog.op,
4766
+ q: prog.last,
4767
+ s: takeProgress,
4768
+ v: addRepo,
4769
+ w: removeRepo,
4770
+ x: create,
4771
+ y: $name__closures,
4772
+ a2: $busy__closures,
4773
+ a3: $error__closures,
4774
+ a5: $steps_length__closures,
4775
+ a4: $steps__closures,
4776
+ z: $catalogRefreshing__closures,
4777
+ a0: $selected__closures,
4778
+ a1: $selected_length__closures,
4779
+ a6: $addRepo2__closures,
4780
+ a: _existing_scope($childScope3)
4733
4781
  });
4734
4782
  _resume_branch($scope0_id);
4735
4783
  });
@@ -4778,7 +4826,7 @@ function diffUncommitted() {
4778
4826
  }
4779
4827
  //#endregion
4780
4828
  //#region src/tags/icons/icon-edit.marko
4781
- var icon_edit_default = _template("z", (input) => {
4829
+ var icon_edit_default = _template("A", (input) => {
4782
4830
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
4783
4831
  const $scope0_id = _scope_id();
4784
4832
  _set_serialize_reason({
@@ -4803,7 +4851,7 @@ var $class$2 = [
4803
4851
  "\"chip pr rejected\"",
4804
4852
  "\"chip pr draft rejected\""
4805
4853
  ];
4806
- var side_nav_item_default = _template("m", (input) => {
4854
+ var side_nav_item_default = _template("n", (input) => {
4807
4855
  const $scope0_reason = _scope_reason(), $sg__input_workspaceId__OR__input_status = _serialize_guard($scope0_reason, 1), $sg__input_onReview = _serialize_guard($scope0_reason, 14), $sg__input_agents = _serialize_guard($scope0_reason, 16), $si__input_agents = _serialize_if($scope0_reason, 16), $sg__input_workspaceId__OR__input_status__OR__input_onReview__OR__input_onNewSession = _serialize_guard($scope0_reason, 9), $sg__input_onNewSession = _serialize_guard($scope0_reason, 15), $sg__input_sessions = _serialize_guard($scope0_reason, 17), $si__input_workspaceId__OR__input_status = _serialize_if($scope0_reason, 1), $si__input_current = _serialize_if($scope0_reason, 12), $si__input_sessions = _serialize_if($scope0_reason, 17), $si__input_workspaces__OR__input_workspaceId = _serialize_if($scope0_reason, 0), $sg__input_rail = _serialize_guard($scope0_reason, 11), $si__input_workspaceId__OR__input_status__OR__input_rail = _serialize_if($scope0_reason, 5), $sg__input_workspaces__OR__input_workspaceId = _serialize_guard($scope0_reason, 0), $si__input_workspaces__OR__input_workspaceId__OR__input_rail = _serialize_if($scope0_reason, 4), $si__input_index = _serialize_if($scope0_reason, 13), $si__input_currentTab = _serialize_if($scope0_reason, 18), $si__input_onReview = _serialize_if($scope0_reason, 14), $si__input_onNewSession = _serialize_if($scope0_reason, 15);
4808
4856
  const $scope0_id = _scope_id();
4809
4857
  const $input_current__closures = /* @__PURE__ */ new Set();
@@ -4826,7 +4874,7 @@ var side_nav_item_default = _template("m", (input) => {
4826
4874
  armedKill = null;
4827
4875
  armedPid = null;
4828
4876
  }, 3500);
4829
- }, "m0", $scope0_id);
4877
+ }, "n0", $scope0_id);
4830
4878
  const ws = input.workspaces.find((w) => w.id === input.workspaceId);
4831
4879
  _if(() => {
4832
4880
  if (ws) {
@@ -4839,7 +4887,7 @@ var side_nav_item_default = _template("m", (input) => {
4839
4887
  if (input.rail) {
4840
4888
  const $scope2_id = _scope_id();
4841
4889
  _html(`<button class=${input.current ? "\"icon-btn rail-btn current\"" : "\"icon-btn rail-btn\""}${_attr("title", ws.name)}>${_escape((input.index ?? 0) + 1)}${_el_resume($scope2_id, "b", _serialize_guard($scope0_reason, 13))}<span${_attr_class(["dot", dot])}></span>${_el_resume($scope2_id, "c", $sg__input_workspaceId__OR__input_status)}</button>${_el_resume($scope2_id, "a")}`);
4842
- _script($scope2_id, "m2");
4890
+ _script($scope2_id, "n2");
4843
4891
  _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_name__closures, _subscribe($si__input_index && $input_index__closures, _subscribe($si__input_current && $input_current__closures, writeScope($scope2_id, { _: _scope_with_id($scope1_id) }))));
4844
4892
  return 0;
4845
4893
  } else {
@@ -4851,7 +4899,7 @@ var side_nav_item_default = _template("m", (input) => {
4851
4899
  _html("<button class=\"row-icon new-sess\" title=\"Review changes\">");
4852
4900
  icon_diff_default({ size: 12 });
4853
4901
  _html(`</button>${_el_resume($scope4_id, "a")}`);
4854
- _script($scope4_id, "m3");
4902
+ _script($scope4_id, "n3");
4855
4903
  writeScope($scope4_id, { _: _scope_with_id($scope3_id) });
4856
4904
  return 0;
4857
4905
  }
@@ -4882,14 +4930,14 @@ var side_nav_item_default = _template("m", (input) => {
4882
4930
  size: 14
4883
4931
  });
4884
4932
  _html(`${_sep($sg__input_agents)}${_escape(agent)}${_el_resume($scope6_id, "c", $sg__input_agents)}</button>${_el_resume($scope6_id, "a")}`);
4885
- _script($scope6_id, "m4");
4933
+ _script($scope6_id, "n4");
4886
4934
  writeScope($scope6_id, {
4887
4935
  e: agent,
4888
4936
  _: _scope_with_id($scope5_id),
4889
4937
  b: $si__input_agents && _existing_scope($childScope)
4890
4938
  });
4891
4939
  }, (a) => a, $scope5_id, "c", $sg__input_agents, 1, $sg__input_agents, "</div>", 1);
4892
- _script($scope5_id, "m5");
4940
+ _script($scope5_id, "n5");
4893
4941
  _subscribe($si__input_agents && $input_agents__closures, writeScope($scope5_id, { _: _scope_with_id($scope3_id) }));
4894
4942
  return 0;
4895
4943
  }
@@ -4912,7 +4960,7 @@ var side_nav_item_default = _template("m", (input) => {
4912
4960
  _html(`${_sep($sg__input_sessions)}${_escape(s.title || s.agent)}${_el_resume($scope7_id, "e", $sg__input_sessions)}</button>${_el_resume($scope7_id, "b")}<button class=row-icon title="Rename session">`);
4913
4961
  icon_edit_default({ size: 12 });
4914
4962
  _html(`</button>${_el_resume($scope7_id, "f")}<button class=${armedKill === s.id ? "\"close armed\"" : "close"} title=${armedKill === s.id ? "\"Really kill this session?\"" : "\"Kill session\""}>×</button>${_el_resume($scope7_id, "h")}</div>${_el_resume($scope7_id, "a", _serialize_guard($scope0_reason, 2))}`);
4915
- _script($scope7_id, "m6");
4963
+ _script($scope7_id, "n6");
4916
4964
  _subscribe($armedKill__closures, _subscribe($si__input_currentTab && $input_currentTab__closures, writeScope($scope7_id, {
4917
4965
  j: s,
4918
4966
  k: s?.id,
@@ -4929,14 +4977,14 @@ var side_nav_item_default = _template("m", (input) => {
4929
4977
  if (repos.length < 2) return "";
4930
4978
  const name = repo.full_name.split("/")[1];
4931
4979
  return repos.some((r) => r.full_name !== repo.full_name && r.full_name.split("/")[1] === name) ? repo.full_name : name;
4932
- }, "m1", $scope8_id);
4980
+ }, "n1", $scope8_id);
4933
4981
  _html("<div class=side-chips>");
4934
4982
  _for_of(st?.repos || [], (repo) => {
4935
4983
  const $scope9_id = _scope_id();
4936
4984
  _for_of(repo.prs || [], (pr) => {
4937
4985
  const $scope10_id = _scope_id();
4938
4986
  _html(`<button class=${$class$2[(pr.isDraft ? 1 : 0) + (pr.reviewDecision === "CHANGES_REQUESTED" ? 2 : 0)]}${_attr("title", `${repo.worktree} — ${pr.title}${pr.reviewDecision === "APPROVED" ? " (approved)" : pr.reviewDecision === "CHANGES_REQUESTED" ? " (changes requested)" : ""}`)}>${_escape(repoLabel(repo))}${_el_resume($scope10_id, "b", $sg__input_workspaceId__OR__input_status)}#${_sep($sg__input_workspaceId__OR__input_status)}${_escape(pr.number)}${_el_resume($scope10_id, "c", $sg__input_workspaceId__OR__input_status)}${_sep($sg__input_workspaceId__OR__input_status)}${pr.reviewDecision === "APPROVED" ? " ✓" : pr.reviewDecision === "CHANGES_REQUESTED" ? " ✗" : ""}${_el_resume($scope10_id, "d", $sg__input_workspaceId__OR__input_status)}</button>${_el_resume($scope10_id, "a")}`);
4939
- _script($scope10_id, "m7");
4987
+ _script($scope10_id, "n7");
4940
4988
  _subscribe($si__input_workspaceId__OR__input_status && $if_content5__repoLabel__closures, writeScope($scope10_id, {
4941
4989
  l: pr?.number,
4942
4990
  _: _scope_with_id($scope9_id)
@@ -4951,7 +4999,7 @@ var side_nav_item_default = _template("m", (input) => {
4951
4999
  _for_of(st?.ports || [], (p) => {
4952
5000
  const $scope11_id = _scope_id();
4953
5001
  _html(`<span class="chip port-chip"${_attr("title", p.cmd)}><button class=port-open${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${p.port}`)}>:${_sep($sg__input_workspaceId__OR__input_status)}${_escape(p.port)}${_el_resume($scope11_id, "c", $sg__input_workspaceId__OR__input_status)}</button>${_el_resume($scope11_id, "b")}<button class=${armedPid === p.pid ? "\"port-kill armed\"" : "port-kill"}${armedPid === p.pid ? _attr("title", `Really kill ${p.cmd}?`) : _attr("title", `Kill ${p.cmd} (pid ${p.pid})`)}>×</button>${_el_resume($scope11_id, "d")}</span>${_el_resume($scope11_id, "a", $sg__input_workspaceId__OR__input_status)}`);
4954
- _script($scope11_id, "m8");
5002
+ _script($scope11_id, "n8");
4955
5003
  _subscribe($armedPid__closures, writeScope($scope11_id, {
4956
5004
  g: p?.cmd,
4957
5005
  h: p?.port,
@@ -4969,7 +5017,7 @@ var side_nav_item_default = _template("m", (input) => {
4969
5017
  }
4970
5018
  }, $scope3_id, "j", $sg__input_workspaceId__OR__input_status, $sg__input_workspaceId__OR__input_status, $sg__input_workspaceId__OR__input_status__OR__input_onReview__OR__input_onNewSession, 0, 1);
4971
5019
  _html(`</div></section>${_el_resume($scope3_id, "a", _serialize_guard($scope0_reason, 12))}`);
4972
- _script($scope3_id, "m9");
5020
+ _script($scope3_id, "n9");
4973
5021
  _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_name__closures, _subscribe($si__input_sessions && $input_sessions__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, _subscribe($si__input_onReview && $input_onReview__closures, _subscribe($si__input_current && $input_current__closures, writeScope($scope3_id, {
4974
5022
  _: _scope_with_id($scope1_id),
4975
5023
  Ca5: $si__input_current && 1,
@@ -5027,7 +5075,7 @@ var side_nav_item_default = _template("m", (input) => {
5027
5075
  });
5028
5076
  //#endregion
5029
5077
  //#region src/tags/icons/icon-sidebar-collapse.marko
5030
- var icon_sidebar_collapse_default = _template("I", (input) => {
5078
+ var icon_sidebar_collapse_default = _template("J", (input) => {
5031
5079
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5032
5080
  const $scope0_id = _scope_id();
5033
5081
  _set_serialize_reason({
@@ -5044,7 +5092,7 @@ var icon_sidebar_collapse_default = _template("I", (input) => {
5044
5092
  });
5045
5093
  //#endregion
5046
5094
  //#region src/tags/icons/icon-sidebar.marko
5047
- var icon_sidebar_default = _template("J", (input) => {
5095
+ var icon_sidebar_default = _template("K", (input) => {
5048
5096
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5049
5097
  const $scope0_id = _scope_id();
5050
5098
  _set_serialize_reason({
@@ -5061,7 +5109,7 @@ var icon_sidebar_default = _template("J", (input) => {
5061
5109
  });
5062
5110
  //#endregion
5063
5111
  //#region src/tags/icons/icon-bell.marko
5064
- var icon_bell_default = _template("v", (input) => {
5112
+ var icon_bell_default = _template("w", (input) => {
5065
5113
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5066
5114
  const $scope0_id = _scope_id();
5067
5115
  _set_serialize_reason({
@@ -5078,7 +5126,7 @@ var icon_bell_default = _template("v", (input) => {
5078
5126
  });
5079
5127
  //#endregion
5080
5128
  //#region src/tags/icons/icon-gauge.marko
5081
- var icon_gauge_default = _template("B", (input) => {
5129
+ var icon_gauge_default = _template("C", (input) => {
5082
5130
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5083
5131
  const $scope0_id = _scope_id();
5084
5132
  _set_serialize_reason({
@@ -5095,7 +5143,7 @@ var icon_gauge_default = _template("B", (input) => {
5095
5143
  });
5096
5144
  //#endregion
5097
5145
  //#region src/tags/icons/icon-folder-plus.marko
5098
- var icon_folder_plus_default = _template("A", (input) => {
5146
+ var icon_folder_plus_default = _template("B", (input) => {
5099
5147
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5100
5148
  const $scope0_id = _scope_id();
5101
5149
  _set_serialize_reason({
@@ -5122,7 +5170,7 @@ var $class$1 = [
5122
5170
  "\"side-nav open\"",
5123
5171
  "\"side-nav closed open\""
5124
5172
  ];
5125
- var side_nav_default = _template("n", (input) => {
5173
+ var side_nav_default = _template("o", (input) => {
5126
5174
  const $scope0_reason = _scope_reason(), $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus = _serialize_guard($scope0_reason, 1), $sg__input_workspace__OR__input_allWorkspaces = _serialize_guard($scope0_reason, 0), $sg__input_workspace__OR__input_allWorkspaces__OR__input_onNewSession = _serialize_guard($scope0_reason, 2), $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus__OR__input_sessions = _serialize_guard($scope0_reason, 3), $sg__input_agents = _serialize_guard($scope0_reason, 14), $si__input_workspace = _serialize_if($scope0_reason, 4), $si__input_workspace__OR__input_allWorkspaces = _serialize_if($scope0_reason, 0), $si__input_allStatus = _serialize_if($scope0_reason, 12), $si__input_onSelectWorkspace = _serialize_if($scope0_reason, 13), $si__input_agents = _serialize_if($scope0_reason, 14), $si__input_onNewSession = _serialize_if($scope0_reason, 15), $si__input_onReviewOpened = _serialize_if($scope0_reason, 16), $si__input_sessions = _serialize_if($scope0_reason, 17), $si__input_onRenameSession = _serialize_if($scope0_reason, 18), $si__input_onCloseSession = _serialize_if($scope0_reason, 19);
5127
5175
  const $scope0_id = _scope_id();
5128
5176
  const $ws_id__closures = /* @__PURE__ */ new Set();
@@ -5156,7 +5204,7 @@ var side_nav_default = _template("n", (input) => {
5156
5204
  notifyOn = false;
5157
5205
  input.onError?.(`Notifications failed: ${String(err.message || err)}`);
5158
5206
  }
5159
- }, "n0", $scope0_id);
5207
+ }, "o0", $scope0_id);
5160
5208
  const itemIds = input.allWorkspaces?.length ? input.allWorkspaces.filter((w) => w.status === "active").map((w) => w.id) : [ws.id];
5161
5209
  const workspaces = input.allWorkspaces || [ws];
5162
5210
  const allStatus = input.allStatus || {};
@@ -5165,7 +5213,7 @@ var side_nav_default = _template("n", (input) => {
5165
5213
  if (drawerOpen) {
5166
5214
  const $scope5_id = _scope_id();
5167
5215
  _html(`<div class=drawer-backdrop></div>${_el_resume($scope5_id, "a")}`);
5168
- _script($scope5_id, "n16");
5216
+ _script($scope5_id, "o16");
5169
5217
  writeScope($scope5_id, {});
5170
5218
  return 0;
5171
5219
  }
@@ -5203,16 +5251,16 @@ var side_nav_default = _template("n", (input) => {
5203
5251
  drawerOpen = false;
5204
5252
  input.onSelectWorkspace?.(wsId);
5205
5253
  }
5206
- }, "n1", $scope1_id),
5254
+ }, "o1", $scope1_id),
5207
5255
  onManage: _resume(function() {
5208
5256
  drawerOpen = false;
5209
5257
  input.onManage?.(wsId);
5210
- }, "n2", $scope1_id),
5258
+ }, "o2", $scope1_id),
5211
5259
  agents: input.agents,
5212
5260
  onNewSession: _resume(function(agent) {
5213
5261
  drawerOpen = false;
5214
5262
  input.onNewSession(wsId, agent);
5215
- }, "n3", $scope1_id),
5263
+ }, "o3", $scope1_id),
5216
5264
  onReview: _resume(function() {
5217
5265
  drawerOpen = false;
5218
5266
  if (wsId === ws.id) {
@@ -5222,7 +5270,7 @@ var side_nav_default = _template("n", (input) => {
5222
5270
  navIntent$1.requestDiff(wsId);
5223
5271
  input.onSelectWorkspace?.(wsId);
5224
5272
  }
5225
- }, "n4", $scope1_id),
5273
+ }, "o4", $scope1_id),
5226
5274
  onReviewPr: _resume(function(worktree, number) {
5227
5275
  drawerOpen = false;
5228
5276
  const pr = `${worktree}/${number}`;
@@ -5233,7 +5281,7 @@ var side_nav_default = _template("n", (input) => {
5233
5281
  navIntent$1.requestDiff(wsId, pr);
5234
5282
  input.onSelectWorkspace?.(wsId);
5235
5283
  }
5236
- }, "n5", $scope1_id),
5284
+ }, "o5", $scope1_id),
5237
5285
  sessions: wsId === ws.id && input.sessions ? input.sessions : allStatus[wsId]?.sessions || [],
5238
5286
  currentTab: wsId === ws.id && view === "term" ? tab : null,
5239
5287
  onOpenTab: _resume(function(sessionId) {
@@ -5242,7 +5290,7 @@ var side_nav_default = _template("n", (input) => {
5242
5290
  tab = sessionId;
5243
5291
  view = "term";
5244
5292
  } else input.onOpenSession?.(wsId, sessionId);
5245
- }, "n6", $scope1_id),
5293
+ }, "o6", $scope1_id),
5246
5294
  onRenameSession: input.onRenameSession,
5247
5295
  onCloseSession: input.onCloseSession
5248
5296
  });
@@ -5257,13 +5305,13 @@ var side_nav_default = _template("n", (input) => {
5257
5305
  const $scope2_id = _scope_id();
5258
5306
  let railHover = null;
5259
5307
  const railHoverBox = { timer: 0 };
5260
- const railKeep = _resume(() => clearTimeout(railHoverBox.timer), "n7", $scope2_id);
5308
+ const railKeep = _resume(() => clearTimeout(railHoverBox.timer), "o7", $scope2_id);
5261
5309
  const railHide = _resume(() => {
5262
5310
  clearTimeout(railHoverBox.timer);
5263
5311
  railHoverBox.timer = setTimeout(() => {
5264
5312
  railHover = null;
5265
5313
  }, 150);
5266
- }, "n8", $scope2_id);
5314
+ }, "o8", $scope2_id);
5267
5315
  _html("<div class=side-rail>");
5268
5316
  _for_of(itemIds, (wsId, i) => {
5269
5317
  const $scope3_id = _scope_id();
@@ -5292,10 +5340,10 @@ var side_nav_default = _template("n", (input) => {
5292
5340
  current: wsId === ws.id,
5293
5341
  onSelect: _resume(function() {
5294
5342
  if (wsId !== ws.id) input.onSelectWorkspace?.(wsId);
5295
- }, "n9", $scope3_id)
5343
+ }, "o9", $scope3_id)
5296
5344
  });
5297
5345
  _html(`</span>${_el_resume($scope3_id, "a")}`);
5298
- _script($scope3_id, "n17");
5346
+ _script($scope3_id, "o17");
5299
5347
  _subscribe($si__input_allStatus && $allStatus__closures, _subscribe($si__input_workspace__OR__input_allWorkspaces && $workspaces__closures, _subscribe($si__input_workspace && $ws_id__closures, writeScope($scope3_id, {
5300
5348
  d: wsId,
5301
5349
  _: _scope_with_id($scope2_id),
@@ -5335,16 +5383,16 @@ var side_nav_default = _template("n", (input) => {
5335
5383
  onSelect: _resume(function() {
5336
5384
  railHover = null;
5337
5385
  if (hoverId !== ws.id) input.onSelectWorkspace?.(hoverId);
5338
- }, "n10", $scope4_id),
5386
+ }, "o10", $scope4_id),
5339
5387
  onManage: _resume(function() {
5340
5388
  railHover = null;
5341
5389
  input.onManage?.(hoverId);
5342
- }, "n11", $scope4_id),
5390
+ }, "o11", $scope4_id),
5343
5391
  agents: input.agents,
5344
5392
  onNewSession: _resume(function(agent) {
5345
5393
  railHover = null;
5346
5394
  input.onNewSession(hoverId, agent);
5347
- }, "n12", $scope4_id),
5395
+ }, "o12", $scope4_id),
5348
5396
  onReview: _resume(function() {
5349
5397
  railHover = null;
5350
5398
  if (hoverId === ws.id) {
@@ -5354,7 +5402,7 @@ var side_nav_default = _template("n", (input) => {
5354
5402
  navIntent$1.requestDiff(hoverId);
5355
5403
  input.onSelectWorkspace?.(hoverId);
5356
5404
  }
5357
- }, "n13", $scope4_id),
5405
+ }, "o13", $scope4_id),
5358
5406
  onReviewPr: _resume(function(worktree, number) {
5359
5407
  railHover = null;
5360
5408
  const pr = `${worktree}/${number}`;
@@ -5365,7 +5413,7 @@ var side_nav_default = _template("n", (input) => {
5365
5413
  navIntent$1.requestDiff(hoverId, pr);
5366
5414
  input.onSelectWorkspace?.(hoverId);
5367
5415
  }
5368
- }, "n14", $scope4_id),
5416
+ }, "o14", $scope4_id),
5369
5417
  sessions: hoverId === ws.id && input.sessions ? input.sessions : allStatus[hoverId]?.sessions || [],
5370
5418
  currentTab: hoverId === ws.id && view === "term" ? tab : null,
5371
5419
  onOpenTab: _resume(function(sessionId) {
@@ -5374,12 +5422,12 @@ var side_nav_default = _template("n", (input) => {
5374
5422
  tab = sessionId;
5375
5423
  view = "term";
5376
5424
  } else input.onOpenSession?.(hoverId, sessionId);
5377
- }, "n15", $scope4_id),
5425
+ }, "o15", $scope4_id),
5378
5426
  onRenameSession: input.onRenameSession,
5379
5427
  onCloseSession: input.onCloseSession
5380
5428
  });
5381
5429
  _html(`</div>${_el_resume($scope4_id, "a")}`);
5382
- _script($scope4_id, "n18");
5430
+ _script($scope4_id, "o18");
5383
5431
  _subscribe($si__input_allStatus && $allStatus__closures, _subscribe($si__input_workspace__OR__input_allWorkspaces && $workspaces__closures, _subscribe($view__closures, _subscribe($tab__closures, _subscribe($si__input_workspace && $ws_id__closures, _subscribe($si__input_onCloseSession && $input_onCloseSession__closures, _subscribe($si__input_onRenameSession && $input_onRenameSession__closures, _subscribe($si__input_sessions && $input_sessions__closures, _subscribe($si__input_onReviewOpened && $input_onReviewOpened__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, _subscribe($si__input_agents && $input_agents__closures, _subscribe($si__input_onSelectWorkspace && $input_onSelectWorkspace__closures, writeScope($scope4_id, {
5384
5432
  c: hoverId,
5385
5433
  b: _existing_scope($childScope3),
@@ -5422,7 +5470,7 @@ var side_nav_default = _template("n", (input) => {
5422
5470
  _html(`<button class=${notifyOn ? "\"icon-btn notify-btn on\"" : "\"icon-btn notify-btn\""} title=${notifyOn ? "\"Disable agent-waiting notifications\"" : "\"Notify when an agent is waiting\""}>`);
5423
5471
  icon_bell_default({ size: 15 });
5424
5472
  _html(`</button>${_el_resume($scope6_id, "a")}`);
5425
- _script($scope6_id, "n19");
5473
+ _script($scope6_id, "o19");
5426
5474
  writeScope($scope6_id, { _: _scope_with_id($scope0_id) });
5427
5475
  return 0;
5428
5476
  }
@@ -5432,8 +5480,8 @@ var side_nav_default = _template("n", (input) => {
5432
5480
  _html(`</button>${_el_resume($scope0_id, "g")}<button class=icon-btn title="New workspace">`);
5433
5481
  icon_folder_plus_default({ size: 16 });
5434
5482
  _html(`</button>${_el_resume($scope0_id, "i")}</div></aside>${_el_resume($scope0_id, "b")}`);
5435
- _script($scope0_id, "n20");
5436
- _script($scope0_id, "n21");
5483
+ _script($scope0_id, "o20");
5484
+ _script($scope0_id, "o21");
5437
5485
  writeScope($scope0_id, {
5438
5486
  n: _serialize_if($scope0_reason, 6) && input.tab,
5439
5487
  o: _serialize_if($scope0_reason, 5) && input.tabChange,
@@ -5613,7 +5661,7 @@ function treeRows(files) {
5613
5661
  }
5614
5662
  //#endregion
5615
5663
  //#region src/tags/icons/icon-back.marko
5616
- var icon_back_default = _template("t", (input) => {
5664
+ var icon_back_default = _template("u", (input) => {
5617
5665
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5618
5666
  const $scope0_id = _scope_id();
5619
5667
  _set_serialize_reason({
@@ -5630,7 +5678,7 @@ var icon_back_default = _template("t", (input) => {
5630
5678
  });
5631
5679
  //#endregion
5632
5680
  //#region src/tags/icons/icon-search.marko
5633
- var icon_search_default = _template("H", (input) => {
5681
+ var icon_search_default = _template("I", (input) => {
5634
5682
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5635
5683
  const $scope0_id = _scope_id();
5636
5684
  _set_serialize_reason({
@@ -5647,39 +5695,47 @@ var icon_search_default = _template("H", (input) => {
5647
5695
  });
5648
5696
  //#endregion
5649
5697
  //#region src/tags/file-filter.marko
5650
- var file_filter_default = _template("f", (input) => {
5651
- _scope_reason();
5698
+ var file_filter_default = _template("g", (input) => {
5699
+ const $scope0_reason = _scope_reason();
5652
5700
  const $scope0_id = _scope_id();
5653
- let draft = input.value || "";
5701
+ let value = input.value;
5702
+ let pending = null;
5703
+ const draft = (pending ?? value) || "";
5654
5704
  const box = { timer: 0 };
5655
5705
  const flush = _resume(() => {
5656
5706
  if (box.timer) {
5657
5707
  clearTimeout(box.timer);
5658
5708
  box.timer = 0;
5659
5709
  }
5660
- input.onChange(draft);
5661
- }, "f1", $scope0_id);
5710
+ const next = pending !== null ? pending : value || "";
5711
+ pending = null;
5712
+ value = next;
5713
+ }, "g1", $scope0_id);
5662
5714
  const type = _resume((v) => {
5663
- draft = v;
5664
5715
  if (box.timer) clearTimeout(box.timer);
5665
5716
  if (!v) {
5666
5717
  box.timer = 0;
5667
- input.onChange("");
5718
+ pending = null;
5719
+ value = "";
5668
5720
  return;
5669
5721
  }
5722
+ pending = v;
5670
5723
  box.timer = setTimeout(flush, 150);
5671
- }, "f2", $scope0_id);
5724
+ }, "g2", $scope0_id);
5672
5725
  _html(`<div class=wrap><input${_attr_input_value($scope0_id, "a", draft, _resume(function(v) {
5673
5726
  type(v);
5674
- }, "f0", $scope0_id))} class=file-filter type=search placeholder="Filter files… (globs, !excludes)" aria-label="Filter files">${_el_resume($scope0_id, "a")}</div>`);
5675
- _script($scope0_id, "f3");
5676
- _script($scope0_id, "f4");
5727
+ }, "g0", $scope0_id))} class=file-filter type=search placeholder="Filter files… (globs, !excludes)" aria-label="Filter files">${_el_resume($scope0_id, "a")}</div>`);
5728
+ _script($scope0_id, "g3");
5677
5729
  writeScope($scope0_id, {
5678
- e: input.onChange,
5679
- f: draft,
5680
- h: box.timer,
5681
- j: flush,
5682
- l: type
5730
+ d: _serialize_if($scope0_reason, 1) && input.value,
5731
+ e: _serialize_if($scope0_reason, 0) && input.valueChange,
5732
+ g: value,
5733
+ i: pending,
5734
+ k: draft,
5735
+ m: box.timer,
5736
+ o: flush,
5737
+ q: type,
5738
+ h: input.valueChange || void 0
5683
5739
  });
5684
5740
  _resume_branch($scope0_id);
5685
5741
  });
@@ -5687,7 +5743,7 @@ var file_filter_default = _template("f", (input) => {
5687
5743
  //#region src/tags/diff-find.marko
5688
5744
  var searchDiffFiles;
5689
5745
  var setSearchPaint;
5690
- var diff_find_default = _template("d", (input) => {
5746
+ var diff_find_default = _template("e", (input) => {
5691
5747
  _scope_reason();
5692
5748
  const $scope0_id = _scope_id();
5693
5749
  let query = "";
@@ -5719,7 +5775,7 @@ var diff_find_default = _template("d", (input) => {
5719
5775
  hit,
5720
5776
  keys
5721
5777
  });
5722
- }, "d1", $scope0_id);
5778
+ }, "e1", $scope0_id);
5723
5779
  const type = _resume((v) => {
5724
5780
  query = v;
5725
5781
  hi = 0;
@@ -5729,19 +5785,19 @@ var diff_find_default = _template("d", (input) => {
5729
5785
  box.timer = 0;
5730
5786
  emit(v, 0);
5731
5787
  }, 80);
5732
- }, "d2", $scope0_id);
5788
+ }, "e2", $scope0_id);
5733
5789
  const next = _resume((dir) => {
5734
5790
  if (box.timer) {
5735
5791
  clearTimeout(box.timer);
5736
5792
  box.timer = 0;
5737
5793
  }
5738
5794
  emit(query, (at < 0 ? 0 : at) + dir);
5739
- }, "d3", $scope0_id);
5795
+ }, "e3", $scope0_id);
5740
5796
  _html(`<div class=find-bar><input${_attr_input_value($scope0_id, "a", query, _resume(function(v) {
5741
5797
  type(v);
5742
- }, "d0", $scope0_id))} class=find-input type=search placeholder="Find in diffs" aria-label="Find in diffs">${_el_resume($scope0_id, "a")}<span class=count>${query.trim() ? hits.length ? `${_escape(`${at + 1}`)}/${_escape(`${hits.length}`)}` : "0/0" : ""}${_el_resume($scope0_id, "b")}</span><button class=icon-btn title="Previous match"${_attr("disabled", !hits.length)}>↑</button>${_el_resume($scope0_id, "c")}<button class=icon-btn title="Next match"${_attr("disabled", !hits.length)}>↓</button>${_el_resume($scope0_id, "d")}<button class=icon-btn title="Close find">×</button>${_el_resume($scope0_id, "e")}</div>`);
5743
- _script($scope0_id, "d4");
5744
- _script($scope0_id, "d5");
5798
+ }, "e0", $scope0_id))} class=find-input type=search placeholder="Find in diffs" aria-label="Find in diffs">${_el_resume($scope0_id, "a")}<span class=count>${query.trim() ? hits.length ? `${_escape(`${at + 1}`)}/${_escape(`${hits.length}`)}` : "0/0" : ""}${_el_resume($scope0_id, "b")}</span><button class=icon-btn title="Previous match"${_attr("disabled", !hits.length)}>↑</button>${_el_resume($scope0_id, "c")}<button class=icon-btn title="Next match"${_attr("disabled", !hits.length)}>↓</button>${_el_resume($scope0_id, "d")}<button class=icon-btn title="Close find">×</button>${_el_resume($scope0_id, "e")}</div>`);
5799
+ _script($scope0_id, "e4");
5800
+ _script($scope0_id, "e5");
5745
5801
  writeScope($scope0_id, {
5746
5802
  h: input.files,
5747
5803
  i: input.onState,
@@ -5759,12 +5815,12 @@ var diff_find_default = _template("d", (input) => {
5759
5815
  });
5760
5816
  _resume_branch($scope0_id);
5761
5817
  });
5762
- _template("c", (input) => {
5818
+ _template("d", (input) => {
5763
5819
  _scope_reason();
5764
5820
  const $scope0_id = _scope_id();
5765
- _el($scope0_id, "c0");
5821
+ _el($scope0_id, "d0");
5766
5822
  _html(`<div class=diff-file></div>${_el_resume($scope0_id, "a")}`);
5767
- _script($scope0_id, "c1");
5823
+ _script($scope0_id, "d1");
5768
5824
  writeScope($scope0_id, {
5769
5825
  d: input.file,
5770
5826
  e: input.comments,
@@ -5781,9 +5837,10 @@ _template("c", (input) => {
5781
5837
  //#region src/tags/diff-view.marko
5782
5838
  var api$3;
5783
5839
  var copyText;
5840
+ var prHeadSigFromDiff;
5784
5841
  var getTermDims;
5785
5842
  var makeFileFilter;
5786
- var diff_view_default = _template("e", (input) => {
5843
+ var diff_view_default = _template("f", (input) => {
5787
5844
  const $scope0_reason = _scope_reason(), $sg__input_onExit = _serialize_guard($scope0_reason, 1), $sg__input_sessions = _serialize_guard($scope0_reason, 0), $si__input_sessions = _serialize_if($scope0_reason, 0), $si__input_sessions_0_title = _serialize_if($scope0_reason, 2), $si__input_sessions_0_agent = _serialize_if($scope0_reason, 3);
5788
5845
  const $scope0_id = _scope_id();
5789
5846
  const $collapsedDirs__closures = /* @__PURE__ */ new Set();
@@ -5833,7 +5890,7 @@ var diff_view_default = _template("e", (input) => {
5833
5890
  const next = new Set(collapsedRepos);
5834
5891
  if (!next.delete(worktree)) next.add(worktree);
5835
5892
  collapsedRepos = next;
5836
- }, "e2", $scope0_id);
5893
+ }, "f2", $scope0_id);
5837
5894
  const nearBox = {
5838
5895
  io: null,
5839
5896
  cbs: null
@@ -5848,7 +5905,7 @@ var diff_view_default = _template("e", (input) => {
5848
5905
  }, { rootMargin: "600px 0px" });
5849
5906
  nearBox.cbs.set(el, cb);
5850
5907
  nearBox.io.observe(el);
5851
- }, "e3", $scope0_id);
5908
+ }, "f3", $scope0_id);
5852
5909
  const focusPrSection = _resume((pr) => {
5853
5910
  if (!pr) return;
5854
5911
  const list = repos || [];
@@ -5868,7 +5925,11 @@ var diff_view_default = _template("e", (input) => {
5868
5925
  root.scrollTo({ top: Math.max(0, top - 8) });
5869
5926
  };
5870
5927
  requestAnimationFrame(tryScroll);
5871
- }, "e4", $scope0_id);
5928
+ }, "f4", $scope0_id);
5929
+ const headBox = {
5930
+ sig: "",
5931
+ timer: 0
5932
+ };
5872
5933
  const load = _resume(async (dirty = uncommitted, refresh = false) => {
5873
5934
  loading = true;
5874
5935
  error = null;
@@ -5881,19 +5942,31 @@ var diff_view_default = _template("e", (input) => {
5881
5942
  repos = diffData;
5882
5943
  comments = reviewData.comments || [];
5883
5944
  viewed = new Set(reviewData.viewed || []);
5945
+ headBox.sig = prHeadSigFromDiff(diffData);
5884
5946
  if (input.focusPr) focusPrSection(input.focusPr);
5885
5947
  } catch (err) {
5886
5948
  error = String(err.message || err);
5887
5949
  }
5888
5950
  loading = false;
5889
- }, "e5", $scope0_id);
5951
+ }, "f5", $scope0_id);
5890
5952
  const loadReview = _resume(async () => {
5891
5953
  try {
5892
5954
  const reviewData = await api$3(`/api/workspaces/${input.workspaceId}/review`);
5893
5955
  comments = reviewData.comments || [];
5894
5956
  viewed = new Set(reviewData.viewed || []);
5895
5957
  } catch {}
5896
- }, "e6", $scope0_id);
5958
+ }, "f6", $scope0_id);
5959
+ const reload = _resume(() => {
5960
+ dismissedDrift = /* @__PURE__ */ new Set();
5961
+ return load(uncommitted, true);
5962
+ }, "f7", $scope0_id);
5963
+ const reloadSoon = _resume(() => {
5964
+ if (headBox.timer) clearTimeout(headBox.timer);
5965
+ headBox.timer = setTimeout(() => {
5966
+ headBox.timer = 0;
5967
+ reload();
5968
+ }, 250);
5969
+ }, "f8", $scope0_id);
5897
5970
  const repoList = repos || [];
5898
5971
  const allFiles = repoList.flatMap((r) => r.files.map((f) => ({
5899
5972
  ...f,
@@ -5916,15 +5989,11 @@ var diff_view_default = _template("e", (input) => {
5916
5989
  return map;
5917
5990
  })();
5918
5991
  const sendPick = (input.sessions || []).some((s) => s.id === sendTarget) ? sendTarget : input.sessions?.[0]?.id ?? null;
5919
- const localDiffers = _resume((repo) => !!repo.pr && !!repo.localHead && (repo.localHead !== repo.head || repo.branch !== repo.pr.headRefName), "e7");
5992
+ const localDiffers = _resume((repo) => !!repo.pr && !!repo.localHead && (repo.localHead !== repo.head || repo.branch !== repo.pr.headRefName), "f9");
5920
5993
  const driftRepos = repoList.filter((r) => r.githubDrift && !dismissedDrift.has(r.id));
5921
5994
  const dismissDrift = _resume(() => {
5922
5995
  dismissedDrift = /* @__PURE__ */ new Set([...dismissedDrift, ...driftRepos.map((r) => r.id)]);
5923
- }, "e8", $scope0_id);
5924
- const reload = _resume(() => {
5925
- dismissedDrift = /* @__PURE__ */ new Set();
5926
- return load(uncommitted, true);
5927
- }, "e9", $scope0_id);
5996
+ }, "f10", $scope0_id);
5928
5997
  const toggleViewed = _resume((key) => {
5929
5998
  const next = new Set(viewed);
5930
5999
  const isViewed = !next.has(key);
@@ -5942,7 +6011,7 @@ var diff_view_default = _template("e", (input) => {
5942
6011
  }).catch(() => {
5943
6012
  error = "Saving viewed state failed — it may reset on reload.";
5944
6013
  });
5945
- }, "e10", $scope0_id);
6014
+ }, "f11", $scope0_id);
5946
6015
  const saveComment = _resume(async (file, text) => {
5947
6016
  const range = draft;
5948
6017
  draft = null;
@@ -5964,11 +6033,11 @@ var diff_view_default = _template("e", (input) => {
5964
6033
  } catch (err) {
5965
6034
  error = String(err.message || err);
5966
6035
  }
5967
- }, "e11", $scope0_id);
6036
+ }, "f12", $scope0_id);
5968
6037
  const removeComment = _resume(async (id) => {
5969
6038
  comments = comments.filter((c) => c.id !== id);
5970
6039
  await fetch(`/api/review-comments/${id}`, { method: "DELETE" });
5971
- }, "e12", $scope0_id);
6040
+ }, "f13", $scope0_id);
5972
6041
  const clearComments = _resume(async () => {
5973
6042
  comments = [];
5974
6043
  draft = null;
@@ -5977,7 +6046,7 @@ var diff_view_default = _template("e", (input) => {
5977
6046
  headers: { "content-type": "application/json" },
5978
6047
  body: JSON.stringify({ action: "clear" })
5979
6048
  });
5980
- }, "e13", $scope0_id);
6049
+ }, "f14", $scope0_id);
5981
6050
  const copyMarkdown = _resume(async () => {
5982
6051
  if (!await copyText(commentMarkdown(comments, repos))) {
5983
6052
  error = "Copy failed — clipboard needs HTTPS on this browser.";
@@ -5988,7 +6057,7 @@ var diff_view_default = _template("e", (input) => {
5988
6057
  copied = false;
5989
6058
  }, 1500);
5990
6059
  await clearComments();
5991
- }, "e14", $scope0_id);
6060
+ }, "f15", $scope0_id);
5992
6061
  const sendTo = _resume(async (sessionId) => {
5993
6062
  if (!sessionId) return;
5994
6063
  sending = true;
@@ -6008,22 +6077,22 @@ var diff_view_default = _template("e", (input) => {
6008
6077
  error = String(err.message || err);
6009
6078
  sending = false;
6010
6079
  }
6011
- }, "e15", $scope0_id);
6080
+ }, "f16", $scope0_id);
6012
6081
  const jumpTo = _resume((key) => {
6013
6082
  const el = ((scrollEl) => scrollEl())(_el_read_error).querySelector(`details[data-key="${CSS.escape(key)}"]`);
6014
6083
  if (el) {
6015
6084
  el.open = true;
6016
6085
  el.scrollIntoView({ block: "start" });
6017
6086
  }
6018
- }, "e16", $scope0_id);
6087
+ }, "f17", $scope0_id);
6019
6088
  const openFind = _resume(() => {
6020
6089
  findOpen = true;
6021
6090
  findTick++;
6022
- }, "e17", $scope0_id);
6091
+ }, "f18", $scope0_id);
6023
6092
  const onFindState = _resume((next) => {
6024
6093
  findState = next;
6025
6094
  if (next.hit) setTimeout(() => jumpTo(next.hit.key), 0);
6026
- }, "e18", $scope0_id);
6095
+ }, "f19", $scope0_id);
6027
6096
  _html(`<div class=diff-view><aside class=${!treeOpen ? "\"tree closed\"" : "tree"}>`);
6028
6097
  _for_of(repoList.filter((r) => shownByRepo.get(r.id)?.length), (repo) => {
6029
6098
  const $scope5_id = _scope_id();
@@ -6033,8 +6102,8 @@ var diff_view_default = _template("e", (input) => {
6033
6102
  const $scope6_id = _scope_id();
6034
6103
  const $if_content4__dirKey__closures = /* @__PURE__ */ new Set();
6035
6104
  const repoRows = treeRows(shownByRepo.get(repo.id) || []);
6036
- const dirKey = _resume((path) => `${repo.id}/${path}`, "e19", $scope6_id);
6037
- const rowDir = _resume((row) => row.kind === "dir" ? row.path : row.file.path.includes("/") ? row.file.path.slice(0, row.file.path.lastIndexOf("/")) : "", "e20");
6105
+ const dirKey = _resume((path) => `${repo.id}/${path}`, "f20", $scope6_id);
6106
+ const rowDir = _resume((row) => row.kind === "dir" ? row.path : row.file.path.includes("/") ? row.file.path.slice(0, row.file.path.lastIndexOf("/")) : "", "f21");
6038
6107
  const hiddenByCollapse = _resume((row) => {
6039
6108
  const dir = rowDir(row);
6040
6109
  for (const collapsed of collapsedDirs) {
@@ -6044,15 +6113,15 @@ var diff_view_default = _template("e", (input) => {
6044
6113
  if (dir === path || dir.startsWith(`${path}/`)) return true;
6045
6114
  }
6046
6115
  return false;
6047
- }, "e21", $scope6_id);
6116
+ }, "f22", $scope6_id);
6048
6117
  _for_of(repoRows, (row) => {
6049
6118
  const $scope7_id = _scope_id();
6050
6119
  _if(() => {
6051
6120
  if (!hiddenByCollapse(row) && row.kind === "dir") {
6052
6121
  const $scope29_id = _scope_id();
6053
6122
  _html(`<button class=${collapsedDirs.has(dirKey(row.path)) ? "\"tree-dir dim mono closed\"" : "\"tree-dir dim mono\""}${_attr("title", row.path)}${_attr_style(`padding-left:${.35 + row.depth * .75}rem`)}><span class=tree-chev>${collapsedDirs.has(dirKey(row.path)) ? "▸" : "▾"}${_el_resume($scope29_id, "b")}</span>${_escape(row.label)}${_el_resume($scope29_id, "c")}/</button>${_el_resume($scope29_id, "a")}`);
6054
- _script($scope29_id, "e32");
6055
- _subscribe($if_content4__dirKey__closures, _subscribe($collapsedDirs__closures, writeScope($scope29_id, { Cd0: 1 })));
6123
+ _script($scope29_id, "f33");
6124
+ _subscribe($if_content4__dirKey__closures, _subscribe($collapsedDirs__closures, writeScope($scope29_id, { Cd5: 1 })));
6056
6125
  return 0;
6057
6126
  } else if (!hiddenByCollapse(row) && row.kind !== "dir") {
6058
6127
  const $scope8_id = _scope_id();
@@ -6066,7 +6135,7 @@ var diff_view_default = _template("e", (input) => {
6066
6135
  }
6067
6136
  }, $scope8_id, "e", 1, 1, 1, 0, 1);
6068
6137
  _html(`</button>${_el_resume($scope8_id, "a")}`);
6069
- _script($scope8_id, "e33");
6138
+ _script($scope8_id, "f34");
6070
6139
  _subscribe($commentsByFile__closures, _subscribe($viewed__closures, writeScope($scope8_id, {})));
6071
6140
  return 1;
6072
6141
  }
@@ -6092,7 +6161,7 @@ var diff_view_default = _template("e", (input) => {
6092
6161
  }
6093
6162
  }, $scope5_id, "d");
6094
6163
  _html("</div>");
6095
- _script($scope5_id, "e34");
6164
+ _script($scope5_id, "f35");
6096
6165
  writeScope($scope5_id, { g: repo?.id });
6097
6166
  }, "id", $scope0_id, "a", 1, 1, 1, "</aside>", 1);
6098
6167
  _html("<div class=diff-col><div class=diff-head>");
@@ -6102,7 +6171,7 @@ var diff_view_default = _template("e", (input) => {
6102
6171
  _html("<button class=icon-btn title=\"Back to terminal\">");
6103
6172
  icon_back_default({ size: 14 });
6104
6173
  _html(`</button>${_el_resume($scope1_id, "a")}`);
6105
- _script($scope1_id, "e35");
6174
+ _script($scope1_id, "f36");
6106
6175
  writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
6107
6176
  return 0;
6108
6177
  }
@@ -6116,7 +6185,7 @@ var diff_view_default = _template("e", (input) => {
6116
6185
  if ((input.sessions || []).length === 1) {
6117
6186
  const $scope3_id = _scope_id();
6118
6187
  _html(`<button class="btn primary"${_attr("disabled", sending)}>${sending ? "Sending…" : `Send to ${_escape(`${input.sessions[0].title || input.sessions[0].agent}`)}`}${_el_resume($scope3_id, "b")}</button>${_el_resume($scope3_id, "a")}`);
6119
- _script($scope3_id, "e36");
6188
+ _script($scope3_id, "f37");
6120
6189
  _subscribe($sending__closures, _subscribe($si__input_sessions_0_agent && $input_sessions_0_agent__closures, _subscribe($si__input_sessions_0_title && $input_sessions_0_title__closures, writeScope($scope3_id, { _: _scope_with_id($scope2_id) }))));
6121
6190
  return 0;
6122
6191
  } else if ((input.sessions || []).length) {
@@ -6124,7 +6193,7 @@ var diff_view_default = _template("e", (input) => {
6124
6193
  _html(`<span class="split-btn primary"><button${_attr("disabled", sending)}>${sending ? "Sending…" : "Send to"}${_el_resume($scope4_id, "b")}</button>${_el_resume($scope4_id, "a")}`);
6125
6194
  _attr_select_value($scope4_id, "c", sendTarget, _resume((_new_sendTarget) => {
6126
6195
  sendTarget = _new_sendTarget;
6127
- }, "e0", $scope4_id), () => {
6196
+ }, "f0", $scope4_id), () => {
6128
6197
  _html(`<select aria-label="Send comments to session"${_attr("disabled", sending)}>`);
6129
6198
  _for_of(input.sessions, (s) => {
6130
6199
  const $scope36_id = _scope_id();
@@ -6133,15 +6202,15 @@ var diff_view_default = _template("e", (input) => {
6133
6202
  }, "id", $scope4_id, "c", $sg__input_sessions, 1, $sg__input_sessions, "</select>", 1);
6134
6203
  });
6135
6204
  _html("</span>");
6136
- _script($scope4_id, "e37");
6205
+ _script($scope4_id, "f38");
6137
6206
  _subscribe($sendTarget__closures, _subscribe($sending__closures, _subscribe($si__input_sessions && $input_sessions__closures, writeScope($scope4_id, {
6138
6207
  _: _scope_with_id($scope2_id),
6139
- Cct: 1
6208
+ Ccy: 1
6140
6209
  }))));
6141
6210
  return 1;
6142
6211
  }
6143
6212
  }, $scope2_id, "c", $sg__input_sessions, $sg__input_sessions, $sg__input_sessions, 0, 1);
6144
- _script($scope2_id, "e38");
6213
+ _script($scope2_id, "f39");
6145
6214
  writeScope($scope2_id, {});
6146
6215
  return 0;
6147
6216
  }
@@ -6153,12 +6222,13 @@ var diff_view_default = _template("e", (input) => {
6153
6222
  _html(`</button>${_el_resume($scope0_id, "j")}<button class="btn files-btn" title="Jump to file">Files (<!>${_escape(shownFiles.length)}${_el_resume($scope0_id, "m")})</button>${_el_resume($scope0_id, "l")}<button class=${findOpen ? "\"btn find-btn on\"" : "\"btn find-btn\""} title="Find in the review (⌘/Ctrl+F)">`);
6154
6223
  icon_search_default({ size: 14 });
6155
6224
  _html(`<span class=find-label>Find</span></button>${_el_resume($scope0_id, "n")}<label class=two-dot title="Include uncommitted and untracked files in the review. Off by default — the review is commit-to-commit."><input${_attr_input_checked($scope0_id, "p", uncommitted)} type=checkbox>${_el_resume($scope0_id, "p")} include uncommitted</label>`);
6225
+ _set_serialize_reason(2);
6156
6226
  const $childScope = _peek_scope_id();
6157
6227
  file_filter_default({
6158
6228
  value: fileFilter,
6159
- onChange: _resume(function(q) {
6160
- fileFilter = q;
6161
- }, "e22", $scope0_id)
6229
+ valueChange: _resume((_new_fileFilter) => {
6230
+ fileFilter = _new_fileFilter;
6231
+ }, "f23", $scope0_id)
6162
6232
  });
6163
6233
  _html("</div>");
6164
6234
  _if(() => {
@@ -6170,7 +6240,7 @@ var diff_view_default = _template("e", (input) => {
6170
6240
  tick: findTick,
6171
6241
  onState: _resume(function(s) {
6172
6242
  onFindState(s);
6173
- }, "e23", $scope28_id),
6243
+ }, "f24", $scope28_id),
6174
6244
  onClose: _resume(function() {
6175
6245
  findOpen = false;
6176
6246
  findState = {
@@ -6178,7 +6248,7 @@ var diff_view_default = _template("e", (input) => {
6178
6248
  hit: null,
6179
6249
  keys: []
6180
6250
  };
6181
- }, "e24", $scope28_id)
6251
+ }, "f25", $scope28_id)
6182
6252
  });
6183
6253
  writeScope($scope28_id, { a: _existing_scope($childScope2) });
6184
6254
  return 0;
@@ -6191,8 +6261,8 @@ var diff_view_default = _template("e", (input) => {
6191
6261
  toast_default({
6192
6262
  onDismiss: _resume(function() {
6193
6263
  error = null;
6194
- }, "e25", $scope17_id),
6195
- content: _content_resume("e39", () => {
6264
+ }, "f26", $scope17_id),
6265
+ content: _content_resume("f40", () => {
6196
6266
  _scope_reason();
6197
6267
  const $scope18_id = _scope_id();
6198
6268
  _html(`${_escape(error)}${_el_resume($scope18_id, "a")}`);
@@ -6213,7 +6283,7 @@ var diff_view_default = _template("e", (input) => {
6213
6283
  kind: "warn",
6214
6284
  placement: "inline",
6215
6285
  title: `${repo.worktree}: base not found`,
6216
- content: _content_resume("e40", () => {
6286
+ content: _content_resume("f41", () => {
6217
6287
  _scope_reason();
6218
6288
  const $scope23_id = _scope_id();
6219
6289
  _html(`${_escape(repo.base)}${_el_resume($scope23_id, "a")}<!>${uncommitted ? " — showing uncommitted changes only" : ""}${_el_resume($scope23_id, "b")}.`);
@@ -6236,13 +6306,13 @@ var diff_view_default = _template("e", (input) => {
6236
6306
  kind: "info",
6237
6307
  placement: "inline",
6238
6308
  title: repo.pr ? `${repo.worktree} #${repo.pr.number}` : repo.worktree,
6239
- content: _content_resume("e41", () => {
6309
+ content: _content_resume("f42", () => {
6240
6310
  _scope_reason();
6241
6311
  const $scope25_id = _scope_id();
6242
6312
  _html(`already in <!>${_escape(repo.base)}${_el_resume($scope25_id, "a")}<!>${uncommitted ? " — showing uncommitted changes only" : ""}${_el_resume($scope25_id, "b")}.`);
6243
6313
  _subscribe($for_content7__repo_base__closures, _subscribe($uncommitted__closures, writeScope($scope25_id, {
6244
6314
  _: _scope_with_id($scope24_id),
6245
- Ccw: 1
6315
+ Cd1: 1
6246
6316
  })));
6247
6317
  _resume_branch($scope25_id);
6248
6318
  }, $scope24_id)
@@ -6264,16 +6334,16 @@ var diff_view_default = _template("e", (input) => {
6264
6334
  title: "GitHub is behind",
6265
6335
  onDismiss: _resume(function() {
6266
6336
  dismissDrift();
6267
- }, "e26", $scope19_id),
6268
- action: attrTag({ content: _content_resume("e43", () => {
6337
+ }, "f27", $scope19_id),
6338
+ action: attrTag({ content: _content_resume("f44", () => {
6269
6339
  _scope_reason();
6270
6340
  const $scope20_id = _scope_id();
6271
6341
  _html(`<button class=btn${_attr("disabled", loading)}>${loading ? "Reloading…" : "Reload"}${_el_resume($scope20_id, "b")}</button>${_el_resume($scope20_id, "a")}`);
6272
- _script($scope20_id, "e42");
6342
+ _script($scope20_id, "f43");
6273
6343
  _subscribe($loading__closures, writeScope($scope20_id, { _: _scope_with_id($scope19_id) }));
6274
6344
  _resume_branch($scope20_id);
6275
6345
  }, $scope19_id) }),
6276
- content: _content_resume("e44", () => {
6346
+ content: _content_resume("f45", () => {
6277
6347
  _scope_reason();
6278
6348
  const $scope34_id = _scope_id();
6279
6349
  _html("<span class=dim>");
@@ -6308,13 +6378,13 @@ var diff_view_default = _template("e", (input) => {
6308
6378
  kind: "info",
6309
6379
  placement: "inline",
6310
6380
  title: `${repo.worktree} #${repo.pr.number}`,
6311
- content: _content_resume("e45", () => {
6381
+ content: _content_resume("f46", () => {
6312
6382
  _scope_reason();
6313
6383
  const $scope27_id = _scope_id();
6314
6384
  _html(`this view is <!>${_escape(shortSha(repo.head))}${_el_resume($scope27_id, "a")} (<!>${_escape(repo.pr.headRefName)}${_el_resume($scope27_id, "b")}). Local is <!>${_escape(shortSha(repo.localHead))}${_el_resume($scope27_id, "c")} (<!>${_escape(repo.branch)}${_el_resume($scope27_id, "d")}<!>${uncommitted ? ", plus uncommitted" : ""}${_el_resume($scope27_id, "e")}).`);
6315
6385
  _subscribe($for_content8__repo_branch__closures, _subscribe($for_content8__repo_localHead__closures, _subscribe($for_content8__repo_pr_headRefName__closures, _subscribe($for_content8__repo_head__closures, _subscribe($uncommitted__closures, writeScope($scope27_id, {
6316
6386
  _: _scope_with_id($scope26_id),
6317
- Ccw: 2
6387
+ Cd1: 2
6318
6388
  }))))));
6319
6389
  _resume_branch($scope27_id);
6320
6390
  }, $scope26_id)
@@ -6375,7 +6445,7 @@ var diff_view_default = _template("e", (input) => {
6375
6445
  if (repo.pr) {
6376
6446
  const $scope39_id = _scope_id();
6377
6447
  _html(`<a class="chip pr"${_attr("href", `${repo.pr.url}/files`)} target=_blank rel=noopener${_attr("title", `${repo.pr.title} — ${repo.pr.headRefName} ${repo.head} vs ${repo.base} ${repo.baseSha}`)}>#<!>${_escape(repo.pr.number)}${_el_resume($scope39_id, "b")}</a>${_el_resume($scope39_id, "a")}<span class=dim>${_escape(repo.pr.title)}${_el_resume($scope39_id, "c")}</span>`);
6378
- _script($scope39_id, "e46");
6448
+ _script($scope39_id, "f47");
6379
6449
  _subscribe($for_content3__repo_baseSha__closures, _subscribe($for_content3__repo_base__closures, _subscribe($for_content3__repo_head__closures, _subscribe($for_content3__repo_pr_headRefName__closures, _subscribe($for_content3__repo_pr_title__closures, _subscribe($for_content3__repo_pr_url__closures, _subscribe($for_content3__repo_pr_number__closures, writeScope($scope39_id, {
6380
6450
  Ca5: 2,
6381
6451
  Ca6: 2,
@@ -6399,8 +6469,8 @@ var diff_view_default = _template("e", (input) => {
6399
6469
  }
6400
6470
  }, $scope30_id, "i", 1, 1, 1, 0, 1);
6401
6471
  _html(`</button>${_el_resume($scope30_id, "a")}`);
6402
- _script($scope30_id, "e47");
6403
- _subscribe($for_content3__repo_branch__closures, _subscribe($for_content3__repo_baseSha__closures, _subscribe($for_content3__repo_base__closures, _subscribe($for_content3__repo_head__closures, _subscribe($for_content3__repo_worktree__closures, _subscribe($for_content3__repo_pr__closures, _subscribe($for_content3__repo_id__closures, _subscribe($for_content3__repo__closures, _subscribe($collapsedRepos__closures, writeScope($scope30_id, { Cd1: 1 }))))))))));
6472
+ _script($scope30_id, "f48");
6473
+ _subscribe($for_content3__repo_branch__closures, _subscribe($for_content3__repo_baseSha__closures, _subscribe($for_content3__repo_base__closures, _subscribe($for_content3__repo_head__closures, _subscribe($for_content3__repo_worktree__closures, _subscribe($for_content3__repo_pr__closures, _subscribe($for_content3__repo_id__closures, _subscribe($for_content3__repo__closures, _subscribe($collapsedRepos__closures, writeScope($scope30_id, { Cd6: 1 }))))))))));
6404
6474
  return 0;
6405
6475
  } else {
6406
6476
  const $scope33_id = _scope_id();
@@ -6467,7 +6537,7 @@ var diff_view_default = _template("e", (input) => {
6467
6537
  }, $scope12_id, "f", 1, 1, 1, 0, 1);
6468
6538
  _html(`<label class=viewed><input${_attr_input_checked($scope12_id, "h", viewed.has(file.key), _resume(function() {
6469
6539
  toggleViewed(file.key);
6470
- }, "e1", $scope12_id))} type=checkbox>${_el_resume($scope12_id, "h")}<span class=dim>viewed</span></label>${_el_resume($scope12_id, "g")}</summary>`);
6540
+ }, "f1", $scope12_id))} type=checkbox>${_el_resume($scope12_id, "h")}<span class=dim>viewed</span></label>${_el_resume($scope12_id, "g")}</summary>`);
6471
6541
  _if(() => {
6472
6542
  if (file.binary) {
6473
6543
  const $scope45_id = _scope_id();
@@ -6490,7 +6560,7 @@ var diff_view_default = _template("e", (input) => {
6490
6560
  {
6491
6561
  const $scope31_id = _scope_id();
6492
6562
  _html(`<div class=diff-wait></div>${_el_resume($scope31_id, "a")}`);
6493
- _script($scope31_id, "e48");
6563
+ _script($scope31_id, "f49");
6494
6564
  writeScope($scope31_id, {});
6495
6565
  return 0;
6496
6566
  }
@@ -6500,7 +6570,7 @@ var diff_view_default = _template("e", (input) => {
6500
6570
  }
6501
6571
  }, $scope12_id, "i");
6502
6572
  _html(`</details>${_el_resume($scope12_id, "a")}`);
6503
- _script($scope12_id, "e49");
6573
+ _script($scope12_id, "f50");
6504
6574
  _subscribe($toggleViewed2__closures, _subscribe($commentsByFile__closures, _subscribe($shownKeySet__closures, _subscribe($viewed__closures, writeScope($scope12_id, {
6505
6575
  k: file,
6506
6576
  l: file?.key,
@@ -6514,8 +6584,8 @@ var diff_view_default = _template("e", (input) => {
6514
6584
  a0: $for_content4__file__closures,
6515
6585
  a1: $for_content4__file_key__closures,
6516
6586
  a2: $for_content4__fileComments__closures,
6517
- Ccn: 1,
6518
- Cdb: 1
6587
+ Ccs: 1,
6588
+ Cdg: 1
6519
6589
  })))));
6520
6590
  }, "key", $scope11_id, "a", 1, 1, 1, "</div>", 1);
6521
6591
  _subscribe($for_content3__repoFiles__closures, writeScope($scope11_id, {}));
@@ -6564,8 +6634,8 @@ var diff_view_default = _template("e", (input) => {
6564
6634
  _html(`</div>${_el_resume($scope0_id, "s")}</div>`);
6565
6635
  _if(() => {}, $scope0_id, "a0");
6566
6636
  _html("</div>");
6567
- _script($scope0_id, "e52");
6568
- _script($scope0_id, "e53");
6637
+ _script($scope0_id, "f53");
6638
+ _script($scope0_id, "f54");
6569
6639
  writeScope($scope0_id, {
6570
6640
  a3: input.workspaceId,
6571
6641
  a4: input.focusPr,
@@ -6602,60 +6672,63 @@ var diff_view_default = _template("e", (input) => {
6602
6672
  b9: nearBox.io,
6603
6673
  bb: observeNear,
6604
6674
  bc: focusPrSection,
6605
- be: load,
6606
- bg: loadReview,
6607
- bi: repoList,
6608
- bk: repoList.length,
6609
- bl: allFiles,
6610
- bm: allFiles?.length,
6611
- bn: fileMatch,
6612
- bp: fileFiltered,
6613
- bq: findKeys,
6614
- bs: shownFiles,
6615
- bw: shownKeySet,
6616
- bx: filesByRepo,
6617
- by: shownByRepo,
6618
- c0: commentsByFile,
6619
- c1: sendPick,
6620
- c2: localDiffers,
6621
- c4: driftRepos,
6622
- c7: dismissDrift,
6623
- c8: reload,
6624
- c9: toggleViewed,
6625
- ca: saveComment,
6626
- cb: removeComment,
6627
- cc: clearComments,
6628
- cf: copyMarkdown,
6629
- cg: sendTo,
6630
- ch: jumpTo,
6631
- ci: openFind,
6632
- cj: onFindState,
6633
- d0: $collapsedDirs__closures,
6634
- cn: $viewed__closures,
6635
- db: $commentsByFile__closures,
6636
- da: $shownByRepo__closures,
6637
- cl: $si__input_sessions_0_title && $input_sessions_0_title__closures,
6638
- cm: $si__input_sessions_0_agent && $input_sessions_0_agent__closures,
6639
- ct: $sending__closures,
6640
- ck: $si__input_sessions && $input_sessions__closures,
6641
- cu: $sendTarget__closures,
6675
+ be: headBox.sig,
6676
+ bg: headBox.timer,
6677
+ bh: load,
6678
+ bj: loadReview,
6679
+ bk: reload,
6680
+ bm: reloadSoon,
6681
+ bo: repoList,
6682
+ bq: repoList.length,
6683
+ br: allFiles,
6684
+ bs: allFiles?.length,
6685
+ bt: fileMatch,
6686
+ bv: fileFiltered,
6687
+ bw: findKeys,
6688
+ by: shownFiles,
6689
+ c2: shownKeySet,
6690
+ c3: filesByRepo,
6691
+ c4: shownByRepo,
6692
+ c6: commentsByFile,
6693
+ c7: sendPick,
6694
+ c8: localDiffers,
6695
+ ca: driftRepos,
6696
+ cd: dismissDrift,
6697
+ ce: toggleViewed,
6698
+ cf: saveComment,
6699
+ cg: removeComment,
6700
+ ch: clearComments,
6701
+ ck: copyMarkdown,
6702
+ cl: sendTo,
6703
+ cm: jumpTo,
6704
+ cn: openFind,
6705
+ co: onFindState,
6706
+ d5: $collapsedDirs__closures,
6707
+ cs: $viewed__closures,
6708
+ dg: $commentsByFile__closures,
6709
+ df: $shownByRepo__closures,
6710
+ cq: $si__input_sessions_0_title && $input_sessions_0_title__closures,
6711
+ cr: $si__input_sessions_0_agent && $input_sessions_0_agent__closures,
6712
+ cy: $sending__closures,
6713
+ cp: $si__input_sessions && $input_sessions__closures,
6714
+ cz: $sendTarget__closures,
6642
6715
  q: _existing_scope($childScope),
6643
- cq: $error__closures,
6644
- cw: $uncommitted__closures,
6645
- cr: $loading__closures,
6646
- dd: $driftRepos__closures,
6647
- d1: $collapsedRepos__closures,
6648
- cp: $draft__closures,
6649
- dg: $saveComment2__closures,
6650
- dh: $removeComment2__closures,
6651
- d8: $shownKeySet__closures,
6652
- df: $toggleViewed2__closures,
6653
- cz: $findState_hit_repo__closures,
6654
- d4: $repoList_length__closures
6716
+ cv: $error__closures,
6717
+ d1: $uncommitted__closures,
6718
+ cw: $loading__closures,
6719
+ di: $driftRepos__closures,
6720
+ d6: $collapsedRepos__closures,
6721
+ cu: $draft__closures,
6722
+ dl: $saveComment2__closures,
6723
+ dm: $removeComment2__closures,
6724
+ dd: $shownKeySet__closures,
6725
+ dk: $toggleViewed2__closures,
6726
+ d4: $findState_hit_repo__closures,
6727
+ d9: $repoList_length__closures
6655
6728
  });
6656
6729
  _resume_branch($scope0_id);
6657
6730
  });
6658
- _template("y", (input) => {
6731
+ _template("z", (input) => {
6659
6732
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6660
6733
  const $scope0_id = _scope_id();
6661
6734
  _set_serialize_reason({
@@ -6670,7 +6743,7 @@ _template("y", (input) => {
6670
6743
  });
6671
6744
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6672
6745
  });
6673
- _template("D", (input) => {
6746
+ _template("E", (input) => {
6674
6747
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6675
6748
  const $scope0_id = _scope_id();
6676
6749
  _set_serialize_reason({
@@ -6685,7 +6758,7 @@ _template("D", (input) => {
6685
6758
  });
6686
6759
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6687
6760
  });
6688
- _template("w", (input) => {
6761
+ _template("x", (input) => {
6689
6762
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6690
6763
  const $scope0_id = _scope_id();
6691
6764
  _set_serialize_reason({
@@ -6700,7 +6773,7 @@ _template("w", (input) => {
6700
6773
  });
6701
6774
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6702
6775
  });
6703
- _template("C", (input) => {
6776
+ _template("D", (input) => {
6704
6777
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6705
6778
  const $scope0_id = _scope_id();
6706
6779
  _set_serialize_reason({
@@ -6719,7 +6792,7 @@ _template("C", (input) => {
6719
6792
  //#region src/tags/term.marko
6720
6793
  var REPEAT_DELAY = 400;
6721
6794
  var REPEAT_EVERY = 55;
6722
- var term_default = _template("o", (input) => {
6795
+ var term_default = _template("p", (input) => {
6723
6796
  const $scope0_reason = _scope_reason();
6724
6797
  _serialize_guard($scope0_reason, 6);
6725
6798
  _serialize_guard($scope0_reason, 7);
@@ -6736,7 +6809,7 @@ var term_default = _template("o", (input) => {
6736
6809
  _serialize_guard($scope0_reason, 14);
6737
6810
  const $si__input_sessionId = _serialize_if($scope0_reason, 10), $si__input_onRenameSession = _serialize_if($scope0_reason, 11), $si__input_onCloseSession = _serialize_if($scope0_reason, 12), $si__input_workspaceName = _serialize_if($scope0_reason, 14);
6738
6811
  const $scope0_id = _scope_id();
6739
- _hoist($scope0_id, "o6");
6812
+ _hoist($scope0_id, "p6");
6740
6813
  const $input_sessionId__closures = /* @__PURE__ */ new Set();
6741
6814
  const $input_onRenameSession__closures = /* @__PURE__ */ new Set();
6742
6815
  const $input_onCloseSession__closures = /* @__PURE__ */ new Set();
@@ -6759,7 +6832,7 @@ var term_default = _template("o", (input) => {
6759
6832
  copyFlashBox.timer = setTimeout(() => {
6760
6833
  copiedFlash = false;
6761
6834
  }, 1200);
6762
- }, "o0", $scope0_id);
6835
+ }, "p0", $scope0_id);
6763
6836
  const holdBox = { current: null };
6764
6837
  const startHold = _resume((seq) => {
6765
6838
  ((stopHold) => stopHold())(_hoist_read_error);
@@ -6769,7 +6842,7 @@ var term_default = _template("o", (input) => {
6769
6842
  state.repeat = setInterval(() => ioBox.current?.send(seq), REPEAT_EVERY);
6770
6843
  }, REPEAT_DELAY);
6771
6844
  holdBox.current = state;
6772
- }, "o1", $scope0_id);
6845
+ }, "p1", $scope0_id);
6773
6846
  const stopHold = _resume(() => {
6774
6847
  const hold = holdBox.current;
6775
6848
  if (hold) {
@@ -6777,7 +6850,7 @@ var term_default = _template("o", (input) => {
6777
6850
  clearInterval(hold.repeat);
6778
6851
  holdBox.current = null;
6779
6852
  }
6780
- }, "o2", $scope0_id);
6853
+ }, "p2", $scope0_id);
6781
6854
  const uploadAsset = _resume(async (file) => {
6782
6855
  if (!file) return;
6783
6856
  uploading = true;
@@ -6790,7 +6863,7 @@ var term_default = _template("o", (input) => {
6790
6863
  } finally {
6791
6864
  uploading = false;
6792
6865
  }
6793
- }, "o3", $scope0_id);
6866
+ }, "p3", $scope0_id);
6794
6867
  const handlePasted = _resume(async (clipboardData) => {
6795
6868
  const files = [...clipboardData?.files || []];
6796
6869
  for (const file of files) await uploadAsset(file);
@@ -6799,7 +6872,7 @@ var term_default = _template("o", (input) => {
6799
6872
  if (text) ioBox.current?.send(text);
6800
6873
  }
6801
6874
  trapOpen = false;
6802
- }, "o4", $scope0_id);
6875
+ }, "p4", $scope0_id);
6803
6876
  const pasteClipboard = _resume(async () => {
6804
6877
  if (!navigator.clipboard?.read) {
6805
6878
  trapOpen = true;
@@ -6819,7 +6892,7 @@ var term_default = _template("o", (input) => {
6819
6892
  } catch {
6820
6893
  trapOpen = true;
6821
6894
  }
6822
- }, "o5", $scope0_id);
6895
+ }, "p5", $scope0_id);
6823
6896
  _html(`<div${_attr("hidden", input.mode === "diff")} class=term-wrap><div class=term></div>${_el_resume($scope0_id, "b")}`);
6824
6897
  _if(() => {
6825
6898
  if (uploading) {
@@ -6842,16 +6915,16 @@ var term_default = _template("o", (input) => {
6842
6915
  if (trapOpen) {
6843
6916
  const $scope12_id = _scope_id();
6844
6917
  _html(`<div class=trap-backdrop><div class=paste-trap><p class=dim>Long-press below and choose Paste</p><input placeholder="Paste here…">${_el_resume($scope12_id, "c")}<button class=btn>Cancel</button>${_el_resume($scope12_id, "d")}</div>${_el_resume($scope12_id, "b")}</div>${_el_resume($scope12_id, "a")}`);
6845
- _script($scope12_id, "o8");
6846
- _script($scope12_id, "o9");
6918
+ _script($scope12_id, "p8");
6919
+ _script($scope12_id, "p9");
6847
6920
  writeScope($scope12_id, {});
6848
6921
  return 0;
6849
6922
  }
6850
6923
  }, $scope0_id, "f", 1, 1, 1, 0, 1);
6851
6924
  _html(`</div>${_el_resume($scope0_id, "a")}`);
6852
6925
  _if(() => {}, $scope0_id, "g", 1, 1, 1, 0, 1);
6853
- _script($scope0_id, "o24");
6854
- _script($scope0_id, "o25");
6926
+ _script($scope0_id, "p24");
6927
+ _script($scope0_id, "p25");
6855
6928
  writeScope($scope0_id, {
6856
6929
  j: input.workspaceId,
6857
6930
  k: input.mode,
@@ -6916,8 +6989,8 @@ var $class = [
6916
6989
  "\"meter-fill warm\"",
6917
6990
  "\"meter-fill hot warm\""
6918
6991
  ];
6919
- var usage_stats_default = _template("q", (input) => {
6920
- const $scope0_reason = _scope_reason(), $sg__input_onClose = _serialize_guard($scope0_reason, 0);
6992
+ var usage_stats_default = _template("r", (input) => {
6993
+ const $scope0_reason = _scope_reason(), $sg__input_openChange = _serialize_guard($scope0_reason, 2);
6921
6994
  const $scope0_id = _scope_id();
6922
6995
  const $usage_error__closures = /* @__PURE__ */ new Set();
6923
6996
  const $usage_agents__closures = /* @__PURE__ */ new Set();
@@ -6931,24 +7004,24 @@ var usage_stats_default = _template("q", (input) => {
6931
7004
  } catch (err) {
6932
7005
  usage = { error: String(err.message || err) };
6933
7006
  }
6934
- }, "q0", $scope0_id);
7007
+ }, "r0", $scope0_id);
6935
7008
  const refresh = _resume(async () => {
6936
7009
  refreshing = true;
6937
7010
  await load(true);
6938
7011
  refreshing = false;
6939
- }, "q1", $scope0_id);
7012
+ }, "r1", $scope0_id);
6940
7013
  _set_serialize_reason({
6941
- 0: $sg__input_onClose,
6942
- 2: $sg__input_onClose
7014
+ 0: _serialize_guard($scope0_reason, 1),
7015
+ 1: $sg__input_openChange,
7016
+ 2: $sg__input_openChange
6943
7017
  });
6944
7018
  const $childScope = _peek_scope_id();
6945
7019
  modal_view_default({
6946
7020
  label: "Usage",
6947
7021
  class: "usage-modal",
6948
- onClose: _resume(function() {
6949
- input.onClose();
6950
- }, "q2", $scope0_id),
6951
- content: _content("q4", () => {
7022
+ open: input.open,
7023
+ openChange: input.openChange,
7024
+ content: _content("r3", () => {
6952
7025
  _scope_reason();
6953
7026
  const $scope1_id = _scope_id();
6954
7027
  _html(`<header class=manage-head><div><h2>Usage</h2></div><button class=${refreshing ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh usage"${_attr("disabled", refreshing)}>`);
@@ -7005,30 +7078,29 @@ var usage_stats_default = _template("q", (input) => {
7005
7078
  return 2;
7006
7079
  }
7007
7080
  }, $scope1_id, "c", 1, 1, 1, 0, 1);
7008
- _script($scope1_id, "q3");
7081
+ _script($scope1_id, "r2");
7009
7082
  _subscribe($refreshing__closures, _subscribe($usage__closures, writeScope($scope1_id, { _: _scope_with_id($scope0_id) })));
7010
7083
  _resume_branch($scope1_id);
7011
7084
  })
7012
7085
  });
7013
- _script($scope0_id, "q5");
7086
+ _script($scope0_id, "r4");
7014
7087
  writeScope($scope0_id, {
7015
- d: input.onClose,
7016
- f: usage?.error,
7017
- g: usage?.agents,
7018
- i: load,
7019
- j: refresh,
7020
- l: $usage_error__closures,
7021
- m: $usage_agents__closures,
7022
- k: $usage__closures,
7023
- n: $refreshing__closures,
7088
+ g: usage?.error,
7089
+ h: usage?.agents,
7090
+ j: load,
7091
+ k: refresh,
7092
+ m: $usage_error__closures,
7093
+ n: $usage_agents__closures,
7094
+ l: $usage__closures,
7095
+ o: $refreshing__closures,
7024
7096
  a: _serialize_if($scope0_reason, 0) && _existing_scope($childScope)
7025
7097
  });
7026
7098
  _resume_branch($scope0_id);
7027
7099
  });
7028
7100
  //#endregion
7029
7101
  //#region src/tags/prompt-dialog.marko
7030
- var prompt_dialog_default = _template("k", (input) => {
7031
- const $scope0_reason = _scope_reason(), $sg__input_label = _serialize_guard($scope0_reason, 1), $sg__input_onCancel = _serialize_guard($scope0_reason, 2), $si__input_submitLabel = _serialize_if($scope0_reason, 3), $si__input_label = _serialize_if($scope0_reason, 1), $si__input_placeholder = _serialize_if($scope0_reason, 4);
7102
+ var prompt_dialog_default = _template("l", (input) => {
7103
+ const $scope0_reason = _scope_reason(), $sg__input_openChange = _serialize_guard($scope0_reason, 3), $si__input_submitLabel = _serialize_if($scope0_reason, 4), $si__input_label = _serialize_if($scope0_reason, 1), $si__input_placeholder = _serialize_if($scope0_reason, 5);
7032
7104
  const $scope0_id = _scope_id();
7033
7105
  const $modalview_content__subscribers = /* @__PURE__ */ new Set();
7034
7106
  const $input_submitLabel__closures = /* @__PURE__ */ new Set();
@@ -7039,53 +7111,60 @@ var prompt_dialog_default = _template("k", (input) => {
7039
7111
  const submit = _resume(() => {
7040
7112
  const v = value.trim();
7041
7113
  if (v) input.onSubmit(v);
7042
- }, "k1", $scope0_id);
7114
+ }, "l1", $scope0_id);
7043
7115
  _set_serialize_reason({
7044
- 0: $sg__input_onCancel,
7045
- 1: $sg__input_label,
7046
- 2: $sg__input_onCancel
7116
+ 0: _serialize_guard($scope0_reason, 2),
7117
+ 1: $sg__input_openChange,
7118
+ 2: $sg__input_openChange
7047
7119
  });
7048
7120
  const $childScope = _peek_scope_id();
7049
7121
  modal_view_default({
7050
7122
  label: input.label,
7051
7123
  class: "prompt-dlg",
7052
- onClose: _resume(function() {
7053
- input.onCancel();
7054
- }, "k2", $scope0_id),
7055
- footer: attrTag({ content: _content_resume("k5", () => {
7124
+ open: input.open,
7125
+ openChange: input.openChange,
7126
+ footer: attrTag({ content: _content_resume("l5", () => {
7056
7127
  _scope_reason();
7057
7128
  const $scope1_id = _scope_id();
7058
- _html(`<button class="btn primary"${_attr("disabled", !value.trim())}>${_escape(input.submitLabel || "OK")}${_el_resume($scope1_id, "b", _serialize_guard($scope0_reason, 3))}</button>${_el_resume($scope1_id, "a")}<div class=spacer></div><button class=btn>Cancel</button>${_el_resume($scope1_id, "c")}`);
7059
- _script($scope1_id, "k3");
7129
+ _html(`<button type=button class="btn primary"${_attr("disabled", !value.trim())}>${_escape(input.submitLabel || "OK")}${_el_resume($scope1_id, "b", _serialize_guard($scope0_reason, 4))}</button>${_el_resume($scope1_id, "a")}<div class=spacer></div>`);
7130
+ dialog_close_default({
7131
+ class: "btn",
7132
+ content: _content("l2", () => {
7133
+ _scope_reason();
7134
+ _scope_id();
7135
+ _html("Cancel");
7136
+ })
7137
+ });
7138
+ _script($scope1_id, "l3");
7060
7139
  _subscribe($value__closures, _subscribe($si__input_submitLabel && $input_submitLabel__closures, writeScope($scope1_id, { _: _scope_with_id($scope0_id) })));
7061
7140
  _resume_branch($scope1_id);
7062
7141
  }, $scope0_id) }),
7063
- content: _content("k6", () => {
7142
+ content: _content("l6", () => {
7064
7143
  _scope_reason();
7065
7144
  const $scope2_id = _scope_id();
7066
- _html(`<h2 class=prompt-title>${_escape(input.label)}${_el_resume($scope2_id, "a", $sg__input_label)}</h2><input${_attr_input_value($scope2_id, "b", value, _resume((_new_value) => {
7145
+ _html(`<h2 class=prompt-title>${_escape(input.label)}${_el_resume($scope2_id, "a", _serialize_guard($scope0_reason, 1))}</h2><input${_attr_input_value($scope2_id, "b", value, _resume((_new_value) => {
7067
7146
  value = _new_value;
7068
- }, "k0", $scope2_id))}${_attr("placeholder", input.placeholder)}>${_el_resume($scope2_id, "b")}`);
7069
- _script($scope2_id, "k4");
7147
+ }, "l0", $scope2_id))}${_attr("placeholder", input.placeholder)}>${_el_resume($scope2_id, "b")}`);
7148
+ _script($scope2_id, "l4");
7070
7149
  _subscribe($value__closures, _subscribe($si__input_placeholder && $input_placeholder__closures, _subscribe($si__input_label && $input_label__closures, _subscribe($modalview_content__subscribers, writeScope($scope2_id, {
7071
7150
  _: _scope_with_id($scope0_id),
7072
- Cp: 1
7151
+ Cq: 1
7073
7152
  })))));
7074
7153
  _resume_branch($scope2_id);
7075
7154
  })
7076
7155
  });
7077
- _script($scope0_id, "k7");
7156
+ _script($scope0_id, "l7");
7078
7157
  writeScope($scope0_id, {
7079
7158
  e: input.onSubmit,
7080
- g: input.onCancel,
7081
- h: input.submitLabel,
7082
- j: value,
7083
- l: submit,
7159
+ h: input.openChange,
7160
+ i: input.submitLabel,
7161
+ k: value,
7162
+ m: submit,
7084
7163
  B2: $modalview_content__subscribers,
7085
- n: $si__input_submitLabel && $input_submitLabel__closures,
7086
- p: $value__closures,
7087
- m: $si__input_label && $input_label__closures,
7088
- o: $si__input_placeholder && $input_placeholder__closures,
7164
+ o: $si__input_submitLabel && $input_submitLabel__closures,
7165
+ q: $value__closures,
7166
+ n: $si__input_label && $input_label__closures,
7167
+ p: $si__input_placeholder && $input_placeholder__closures,
7089
7168
  a: _serialize_if($scope0_reason, 0) && _existing_scope($childScope)
7090
7169
  });
7091
7170
  _resume_branch($scope0_id);
@@ -7093,7 +7172,8 @@ var prompt_dialog_default = _template("k", (input) => {
7093
7172
  //#endregion
7094
7173
  //#region src/tags/work-view.marko
7095
7174
  var api$1;
7096
- var work_view_default = _template("r", (input) => {
7175
+ var isTransientApiError$1;
7176
+ var work_view_default = _template("s", (input) => {
7097
7177
  const $scope0_reason = _scope_reason(), $sg__input_agents = _serialize_guard($scope0_reason, 8), $sg__input_workspace = _serialize_guard($scope0_reason, 2), $si__input_workspace = _serialize_if($scope0_reason, 2), $si__input_active = _serialize_if($scope0_reason, 4), $si__input_agents = _serialize_if($scope0_reason, 8), $si__input_preferred = _serialize_if($scope0_reason, 5);
7098
7178
  const $scope0_id = _scope_id();
7099
7179
  const $error__closures = /* @__PURE__ */ new Set();
@@ -7123,7 +7203,7 @@ var work_view_default = _template("r", (input) => {
7123
7203
  focusPr = pr || "";
7124
7204
  if (pr) focusNonce++;
7125
7205
  view = "diff";
7126
- }, "r0", $scope0_id);
7206
+ }, "s0", $scope0_id);
7127
7207
  const shownSessions = sessions ?? input.allStatus?.[ws.id]?.sessions ?? null;
7128
7208
  const curTab = (() => {
7129
7209
  if (tab && shownSessions?.some((s) => s.id === tab)) return tab;
@@ -7150,7 +7230,7 @@ var work_view_default = _template("r", (input) => {
7150
7230
  } finally {
7151
7231
  spawning = false;
7152
7232
  }
7153
- }, "r1", $scope0_id);
7233
+ }, "s1", $scope0_id);
7154
7234
  const loadMem = {
7155
7235
  wanted: false,
7156
7236
  run: void 0
@@ -7170,13 +7250,14 @@ var work_view_default = _template("r", (input) => {
7170
7250
  if (!sessions.some((s) => s.id === tab)) tab = sessions[0]?.id || null;
7171
7251
  } catch (err) {
7172
7252
  sessions = sessions || [];
7173
- error = String(err);
7253
+ if (isTransientApiError$1(err)) return;
7254
+ error = String(err.message || err);
7174
7255
  }
7175
- }, "r2", $scope0_id);
7256
+ }, "s2", $scope0_id);
7176
7257
  const loadSessions = _resume((autoCreate) => {
7177
7258
  if (autoCreate) loadMem.wanted = true;
7178
7259
  return (loadMem.run ??= coalesce(loadBody))();
7179
- }, "r3", $scope0_id);
7260
+ }, "s3", $scope0_id);
7180
7261
  const closeSession = _resume(async (id) => {
7181
7262
  try {
7182
7263
  await api$1(`/api/sessions/${id}`, { method: "DELETE" });
@@ -7185,7 +7266,7 @@ var work_view_default = _template("r", (input) => {
7185
7266
  } catch (err) {
7186
7267
  error = `Kill session failed: ${String(err.message || err)}`;
7187
7268
  }
7188
- }, "r4", $scope0_id);
7269
+ }, "s4", $scope0_id);
7189
7270
  const renameSession = _resume(async (id, title) => {
7190
7271
  title = title.trim();
7191
7272
  if (!title) return;
@@ -7198,7 +7279,7 @@ var work_view_default = _template("r", (input) => {
7198
7279
  headers: { "content-type": "application/json" },
7199
7280
  body: JSON.stringify({ title })
7200
7281
  });
7201
- }, "r5", $scope0_id);
7282
+ }, "s5", $scope0_id);
7202
7283
  const newSession = _resume(async (wsId, agent) => {
7203
7284
  if (wsId === ws.id) {
7204
7285
  const session = await createSession(agent, true);
@@ -7215,10 +7296,10 @@ var work_view_default = _template("r", (input) => {
7215
7296
  } catch (err) {
7216
7297
  error = String(err.message || err);
7217
7298
  }
7218
- }, "r6", $scope0_id);
7299
+ }, "s6", $scope0_id);
7219
7300
  const promptRename = _resume((s) => {
7220
7301
  renaming = s;
7221
- }, "r7", $scope0_id);
7302
+ }, "s7", $scope0_id);
7222
7303
  _html("<div class=work-view>");
7223
7304
  _set_serialize_reason({
7224
7305
  0: _serialize_guard($scope0_reason, 0),
@@ -7245,40 +7326,40 @@ var work_view_default = _template("r", (input) => {
7245
7326
  tab: curTab,
7246
7327
  tabChange: _resume(function(id) {
7247
7328
  tab = id;
7248
- }, "r8", $scope0_id),
7329
+ }, "s8", $scope0_id),
7249
7330
  view,
7250
7331
  viewChange: _resume((_new_view) => {
7251
7332
  view = _new_view;
7252
- }, "r9", $scope0_id),
7333
+ }, "s9", $scope0_id),
7253
7334
  drawerOpen,
7254
7335
  drawerOpenChange: _resume((_new_drawerOpen) => {
7255
7336
  drawerOpen = _new_drawerOpen;
7256
- }, "r10", $scope0_id),
7337
+ }, "s10", $scope0_id),
7257
7338
  allWorkspaces: input.allWorkspaces,
7258
7339
  allStatus: input.allStatus,
7259
7340
  agents: input.agents,
7260
7341
  onError: _resume(function(message) {
7261
7342
  error = message;
7262
- }, "r11", $scope0_id),
7343
+ }, "s11", $scope0_id),
7263
7344
  onSelectWorkspace: input.onSelectWorkspace,
7264
7345
  onOpenSession: input.onOpenSession,
7265
7346
  onManage: input.onManage,
7266
7347
  onNew: input.onNew,
7267
7348
  onUsage: _resume(function() {
7268
7349
  usageOpen = true;
7269
- }, "r12", $scope0_id),
7350
+ }, "s12", $scope0_id),
7270
7351
  onNewSession: _resume(function(wsId, agent) {
7271
7352
  newSession(wsId, agent);
7272
- }, "r13", $scope0_id),
7353
+ }, "s13", $scope0_id),
7273
7354
  onCloseSession: _resume(function(id) {
7274
7355
  closeSession(id);
7275
- }, "r14", $scope0_id),
7356
+ }, "s14", $scope0_id),
7276
7357
  onRenameSession: _resume(function(s) {
7277
7358
  promptRename(s);
7278
- }, "r15", $scope0_id),
7359
+ }, "s15", $scope0_id),
7279
7360
  onReviewOpened: _resume(function(pr) {
7280
7361
  openDiff(pr);
7281
- }, "r16", $scope0_id)
7362
+ }, "s16", $scope0_id)
7282
7363
  });
7283
7364
  _html("<div class=main-col>");
7284
7365
  _if(() => {
@@ -7287,8 +7368,8 @@ var work_view_default = _template("r", (input) => {
7287
7368
  toast_default({
7288
7369
  onDismiss: _resume(function() {
7289
7370
  error = null;
7290
- }, "r17", $scope5_id),
7291
- content: _content_resume("r31", () => {
7371
+ }, "s17", $scope5_id),
7372
+ content: _content_resume("s31", () => {
7292
7373
  _scope_reason();
7293
7374
  const $scope6_id = _scope_id();
7294
7375
  _html(`${_escape(error)}${_el_resume($scope6_id, "a")}`);
@@ -7313,10 +7394,10 @@ var work_view_default = _template("r", (input) => {
7313
7394
  onSent: _resume(function(sessionId) {
7314
7395
  tab = sessionId;
7315
7396
  view = "term";
7316
- }, "r18", $scope0_id),
7397
+ }, "s18", $scope0_id),
7317
7398
  onExit: _resume(function() {
7318
7399
  view = "term";
7319
- }, "r19", $scope0_id)
7400
+ }, "s19", $scope0_id)
7320
7401
  });
7321
7402
  _show_end($scope0_id, "f", $show);
7322
7403
  _html(`<div class=${view === "diff" ? "\"term-area as-bar\"" : "term-area"}>`);
@@ -7355,31 +7436,31 @@ var work_view_default = _template("r", (input) => {
7355
7436
  sessions: shownSessions,
7356
7437
  onNewSession: _resume(function(agent) {
7357
7438
  newSession(ws.id, agent);
7358
- }, "r20", $scope2_id),
7439
+ }, "s20", $scope2_id),
7359
7440
  onOpenTab: _resume(function(id) {
7360
7441
  tab = id;
7361
- }, "r21", $scope2_id),
7442
+ }, "s21", $scope2_id),
7362
7443
  onCloseSession: _resume(function(id) {
7363
7444
  closeSession(id);
7364
- }, "r22", $scope2_id),
7445
+ }, "s22", $scope2_id),
7365
7446
  onRenameSession: _resume(function(id) {
7366
7447
  const target = (shownSessions || []).find((x) => x.id === id);
7367
7448
  if (target) renaming = target;
7368
- }, "r23", $scope2_id),
7449
+ }, "s23", $scope2_id),
7369
7450
  active: input.active && view === "term" && s.id === curTab,
7370
7451
  mode: view,
7371
7452
  onToggleDiff: _resume(function() {
7372
7453
  openDiff();
7373
- }, "r24", $scope2_id),
7454
+ }, "s24", $scope2_id),
7374
7455
  onExitReview: _resume(function() {
7375
7456
  view = "term";
7376
- }, "r25", $scope2_id),
7457
+ }, "s25", $scope2_id),
7377
7458
  onOpenNav: _resume(function() {
7378
7459
  drawerOpen = true;
7379
- }, "r26", $scope2_id),
7460
+ }, "s26", $scope2_id),
7380
7461
  onManage: _resume(function() {
7381
7462
  input.onManage?.(ws.id);
7382
- }, "r27", $scope2_id)
7463
+ }, "s27", $scope2_id)
7383
7464
  });
7384
7465
  _show_end($scope2_id, "d", $show2);
7385
7466
  _subscribe($newSession2__closures, _subscribe($closeSession2__closures, _subscribe($curTab__closures, _subscribe($shownSessions__closures, _subscribe($si__input_workspace && $ws_name__closures, _subscribe($si__input_workspace && $ws_id__closures, _subscribe($view__closures, _subscribe($si__input_agents && $input_agents__closures, _subscribe($si__input_active && $input_active__closures, writeScope($scope2_id, {
@@ -7391,7 +7472,7 @@ var work_view_default = _template("r", (input) => {
7391
7472
  if (!shownSessions.length) {
7392
7473
  const $scope3_id = _scope_id();
7393
7474
  _html(`<div class=empty-sess><p class=dim>No sessions in this workspace.</p><button class="btn primary"${_attr("disabled", spawning)}>${spawning ? "Starting…" : `Start ${_escape(`${input.preferred || "claude"}`)}`}${_el_resume($scope3_id, "b")}</button>${_el_resume($scope3_id, "a")}</div>`);
7394
- _script($scope3_id, "r32");
7475
+ _script($scope3_id, "s32");
7395
7476
  _subscribe($spawning__closures, _subscribe($si__input_preferred && $input_preferred__closures, writeScope($scope3_id, {})));
7396
7477
  return 0;
7397
7478
  }
@@ -7409,39 +7490,46 @@ var work_view_default = _template("r", (input) => {
7409
7490
  _if(() => {
7410
7491
  if (usageOpen) {
7411
7492
  const $scope4_id = _scope_id();
7412
- usage_stats_default({ onClose: _resume(function() {
7413
- usageOpen = false;
7414
- }, "r28", $scope4_id) });
7415
- writeScope($scope4_id, {});
7493
+ _set_serialize_reason(6);
7494
+ const $childScope4 = _peek_scope_id();
7495
+ usage_stats_default({
7496
+ open: usageOpen,
7497
+ openChange: _resume((_new_usageOpen) => {
7498
+ usageOpen = _new_usageOpen;
7499
+ }, "s28", $scope4_id)
7500
+ });
7501
+ writeScope($scope4_id, { a: _existing_scope($childScope4) });
7416
7502
  return 0;
7417
7503
  }
7418
- }, $scope0_id, "h");
7504
+ }, $scope0_id, "h", 1, 1, 1, 0, 1);
7419
7505
  _if(() => {
7420
7506
  if (renaming) {
7421
7507
  const $scope7_id = _scope_id();
7422
- const $childScope4 = _peek_scope_id();
7508
+ _set_serialize_reason(10);
7509
+ const $childScope5 = _peek_scope_id();
7423
7510
  prompt_dialog_default({
7424
7511
  label: "Rename session",
7425
7512
  value: renaming.title || renaming.agent,
7426
7513
  submitLabel: "Rename",
7514
+ open: !!renaming,
7515
+ openChange: _resume(function(v) {
7516
+ if (!v) renaming = null;
7517
+ }, "s29", $scope7_id),
7427
7518
  onSubmit: _resume(function(title) {
7428
7519
  renameSession(renaming.id, title);
7429
7520
  renaming = null;
7430
- }, "r29", $scope7_id),
7431
- onCancel: _resume(function() {
7432
- renaming = null;
7433
- }, "r30", $scope7_id)
7521
+ }, "s30", $scope7_id)
7434
7522
  });
7435
- writeScope($scope7_id, { a: _existing_scope($childScope4) });
7523
+ writeScope($scope7_id, { a: _existing_scope($childScope5) });
7436
7524
  return 0;
7437
7525
  }
7438
- }, $scope0_id, "i");
7526
+ }, $scope0_id, "i", 1, 1, 1, 0, 1);
7439
7527
  _html("</div>");
7440
- _script($scope0_id, "r33");
7441
- _script($scope0_id, "r34");
7442
- _script($scope0_id, "r35");
7443
- _script($scope0_id, "r36");
7444
- _script($scope0_id, "r37");
7528
+ _script($scope0_id, "s33");
7529
+ _script($scope0_id, "s34");
7530
+ _script($scope0_id, "s35");
7531
+ _script($scope0_id, "s36");
7532
+ _script($scope0_id, "s37");
7445
7533
  writeScope($scope0_id, {
7446
7534
  m: input.allStatus,
7447
7535
  n: input.active,
@@ -7454,8 +7542,10 @@ var work_view_default = _template("r", (input) => {
7454
7542
  y: view,
7455
7543
  a1: focusNonce,
7456
7544
  a2: drawerOpen,
7545
+ a3: usageOpen,
7457
7546
  a4: error,
7458
7547
  a5: spawning,
7548
+ a6: renaming,
7459
7549
  a7: renaming?.title,
7460
7550
  a8: renaming?.agent,
7461
7551
  a9: renaming?.id,
@@ -7476,25 +7566,26 @@ var work_view_default = _template("r", (input) => {
7476
7566
  b0: newSession,
7477
7567
  b1: promptRename,
7478
7568
  a: _existing_scope($childScope),
7479
- b6: $error__closures,
7569
+ b7: $error__closures,
7480
7570
  d: _existing_scope($childScope2),
7481
7571
  b2: $si__input_active && $input_active__closures,
7482
7572
  b4: $si__input_agents && $input_agents__closures,
7483
7573
  b5: $view__closures,
7484
- bb: $si__input_workspace && $ws_id__closures,
7485
- bc: $si__input_workspace && $ws_name__closures,
7486
- bd: $shownSessions__closures,
7487
- bf: $curTab__closures,
7488
- bg: $closeSession2__closures,
7489
- bi: $newSession2__closures,
7574
+ bd: $si__input_workspace && $ws_id__closures,
7575
+ be: $si__input_workspace && $ws_name__closures,
7576
+ bf: $shownSessions__closures,
7577
+ bh: $curTab__closures,
7578
+ bi: $closeSession2__closures,
7579
+ bk: $newSession2__closures,
7490
7580
  b3: $si__input_preferred && $input_preferred__closures,
7491
- b7: $spawning__closures
7581
+ b8: $spawning__closures
7492
7582
  });
7493
7583
  _resume_branch($scope0_id);
7494
7584
  });
7495
7585
  //#endregion
7496
7586
  //#region src/routes/+page.marko
7497
7587
  var api;
7588
+ var isTransientApiError;
7498
7589
  var navIntent;
7499
7590
  var prefs;
7500
7591
  var _page_default = _template("b", (input) => {
@@ -7538,6 +7629,7 @@ var _page_default = _template("b", (input) => {
7538
7629
  }
7539
7630
  loaded = true;
7540
7631
  } catch (err) {
7632
+ if (loaded && isTransientApiError(err)) return;
7541
7633
  error = `Loading workspaces failed: ${err.message || String(err)}`;
7542
7634
  }
7543
7635
  }, "b0", $scope0_id);
@@ -7550,7 +7642,11 @@ var _page_default = _template("b", (input) => {
7550
7642
  return (statusMem.run ??= coalesce(async () => {
7551
7643
  const wantFresh = statusMem.fresh;
7552
7644
  statusMem.fresh = false;
7553
- status = await api(`/api/status${wantFresh ? "?fresh" : ""}`);
7645
+ try {
7646
+ status = await api(`/api/status${wantFresh ? "?fresh" : ""}`);
7647
+ } catch (err) {
7648
+ if (!isTransientApiError(err)) throw err;
7649
+ }
7554
7650
  }))();
7555
7651
  }, "b1", $scope0_id);
7556
7652
  const openWorkspace = _resume(async (id) => {
@@ -7604,7 +7700,7 @@ var _page_default = _template("b", (input) => {
7604
7700
  const $scope9_id = _scope_id();
7605
7701
  _html(`<p>${_escape(error)}${_el_resume($scope9_id, "a")}</p><button class=btn>Retry</button>${_el_resume($scope9_id, "b")}`);
7606
7702
  _script($scope9_id, "b20");
7607
- _subscribe($error__closures, writeScope($scope9_id, { Cae: 1 }));
7703
+ _subscribe($error__closures, writeScope($scope9_id, { Caf: 1 }));
7608
7704
  return 0;
7609
7705
  } else {
7610
7706
  const $scope10_id = _scope_id();
@@ -7671,12 +7767,13 @@ var _page_default = _template("b", (input) => {
7671
7767
  _if(() => {
7672
7768
  if (managing) {
7673
7769
  const $scope2_id = _scope_id();
7674
- _set_serialize_reason(6);
7770
+ _set_serialize_reason(10);
7675
7771
  const $childScope2 = _peek_scope_id();
7676
7772
  manage_workspace_default({
7677
7773
  workspace: managing,
7678
- onClose: _resume(function() {
7679
- managingId = null;
7774
+ open: !!managingId,
7775
+ openChange: _resume(function(v) {
7776
+ if (!v) managingId = null;
7680
7777
  }, "b11", $scope2_id),
7681
7778
  onChange: _resume(function(ws) {
7682
7779
  workspaces = workspaces.map((w) => w.id === ws.id ? ws : w);
@@ -7685,14 +7782,16 @@ var _page_default = _template("b", (input) => {
7685
7782
  writeScope($scope2_id, { a: _existing_scope($childScope2) });
7686
7783
  return 0;
7687
7784
  }
7688
- }, $scope0_id, "d");
7785
+ }, $scope0_id, "d", 1, 1, 1, 0, 1);
7689
7786
  _if(() => {
7690
7787
  if (creating) {
7691
7788
  const $scope3_id = _scope_id();
7789
+ _set_serialize_reason(2);
7692
7790
  const $childScope3 = _peek_scope_id();
7693
7791
  new_workspace_default({
7694
- onCancel: _resume(function() {
7695
- creating = false;
7792
+ open: creating,
7793
+ openChange: _resume((_new_creating) => {
7794
+ creating = _new_creating;
7696
7795
  }, "b13", $scope3_id),
7697
7796
  onCreate: _resume(function(ws) {
7698
7797
  if (!workspaces.some((w) => w.id === ws.id)) workspaces = [ws, ...workspaces];
@@ -7703,7 +7802,7 @@ var _page_default = _template("b", (input) => {
7703
7802
  writeScope($scope3_id, { a: _existing_scope($childScope3) });
7704
7803
  return 0;
7705
7804
  }
7706
- }, $scope0_id, "e");
7805
+ }, $scope0_id, "e", 1, 1, 1, 0, 1);
7707
7806
  _for_of(openIds, (id) => {
7708
7807
  const $scope4_id = _scope_id();
7709
7808
  const ws = workspaces.find((w) => w.id === id);
@@ -7768,14 +7867,14 @@ var _page_default = _template("b", (input) => {
7768
7867
  a3: selected,
7769
7868
  a5: managing,
7770
7869
  a6: showInlinePalette,
7771
- ae: $error__closures,
7870
+ af: $error__closures,
7772
7871
  a8: $workspaces__closures,
7773
7872
  a9: $status__closures,
7774
7873
  aa: $settings__closures,
7775
7874
  ab: $selectedId__closures,
7776
7875
  ac: $creating__closures,
7777
- af: $openWorkspace2__closures,
7778
- ag: $managing__closures
7876
+ ag: $openWorkspace2__closures,
7877
+ ah: $managing__closures
7779
7878
  });
7780
7879
  _resume_branch($scope0_id);
7781
7880
  });
@@ -14405,15 +14504,7 @@ async function createWorkspace(name, repos) {
14405
14504
  const bare = await ensureBare(repo.fullName);
14406
14505
  const defaultBranch = await bareDefaultBranch(bare);
14407
14506
  const base = repo.baseBranch || defaultBranch;
14408
- progress(`Adding worktree ${worktree}/ (${base})…`);
14409
- await git([
14410
- "worktree",
14411
- "add",
14412
- "-b",
14413
- branch,
14414
- path.join(dir, worktree),
14415
- `origin/${base}`
14416
- ], bare);
14507
+ await addWorkspaceWorktree(bare, path.join(dir, worktree), branch, base);
14417
14508
  return {
14418
14509
  full_name: repo.fullName,
14419
14510
  worktree,
@@ -14451,15 +14542,7 @@ async function addRepo(workspaceId, fullName, baseBranch) {
14451
14542
  const bare = await ensureBare(fullName);
14452
14543
  const defaultBranch = await bareDefaultBranch(bare);
14453
14544
  const base = baseBranch || defaultBranch;
14454
- progress(`Adding worktree ${worktree}/ (${base})…`);
14455
- await git([
14456
- "worktree",
14457
- "add",
14458
- "-b",
14459
- ws.branch,
14460
- path.join(ws.path, worktree),
14461
- `origin/${base}`
14462
- ], bare);
14545
+ await addWorkspaceWorktree(bare, path.join(ws.path, worktree), ws.branch, base);
14463
14546
  return {
14464
14547
  base,
14465
14548
  defaultBranch
@@ -14637,6 +14720,82 @@ async function ensureBare(fullName) {
14637
14720
  async function bareDefaultBranch(bare) {
14638
14721
  return (await git(["symbolic-ref", "HEAD"], bare)).replace("refs/heads/", "");
14639
14722
  }
14723
+ /** `git rev-parse --verify` → oid, or null if the ref is missing. */
14724
+ async function revParse(cwd, ref) {
14725
+ try {
14726
+ return await git([
14727
+ "rev-parse",
14728
+ "--verify",
14729
+ ref
14730
+ ], cwd);
14731
+ } catch {
14732
+ return null;
14733
+ }
14734
+ }
14735
+ /**
14736
+ * Create a worktree on the workspace branch tip that matches latest
14737
+ * `origin/<base>`.
14738
+ *
14739
+ * Fresh branch → cut from `origin/<base>` after fetch (ensureBare).
14740
+ * Existing `origin/<ws-branch>` (re-add, open PR, prior push) → restore
14741
+ * that branch then rebase onto `origin/<base>` so the checkout is not
14742
+ * stuck on an old main tip. Leftover local branches with no worktree are
14743
+ * deleted so `worktree add -b` can recreate them.
14744
+ */
14745
+ async function addWorkspaceWorktree(bare, dest, branch, base) {
14746
+ const baseRef = `origin/${base}`;
14747
+ if (!await revParse(bare, baseRef)) throw new Error(`missing ${baseRef} after fetch`);
14748
+ await git(["worktree", "prune"], bare).catch(() => {});
14749
+ if (await revParse(bare, `refs/heads/${branch}`)) {
14750
+ if ((await git([
14751
+ "worktree",
14752
+ "list",
14753
+ "--porcelain"
14754
+ ], bare)).includes(`branch refs/heads/${branch}`)) throw new Error(`${branch} is already checked out in another worktree`);
14755
+ await git([
14756
+ "branch",
14757
+ "-D",
14758
+ branch
14759
+ ], bare);
14760
+ }
14761
+ const remoteWs = await revParse(bare, `refs/remotes/origin/${branch}`);
14762
+ const label = path.basename(dest);
14763
+ if (remoteWs) {
14764
+ progress(`Restoring ${label}/ from origin/${branch}…`);
14765
+ await git([
14766
+ "worktree",
14767
+ "add",
14768
+ "-b",
14769
+ branch,
14770
+ dest,
14771
+ `origin/${branch}`
14772
+ ], bare);
14773
+ if (await git([
14774
+ "merge-base",
14775
+ branch,
14776
+ baseRef
14777
+ ], dest) !== await git(["rev-parse", baseRef], dest)) {
14778
+ progress(`Rebasing ${label}/ onto ${base}…`);
14779
+ try {
14780
+ await git(["rebase", baseRef], dest);
14781
+ } catch (err) {
14782
+ await git(["rebase", "--abort"], dest).catch(() => {});
14783
+ const why = err instanceof Error ? err.message : String(err);
14784
+ throw new Error(`Could not rebase ${branch} onto ${baseRef} for ${label}/. ${why}`);
14785
+ }
14786
+ }
14787
+ } else {
14788
+ progress(`Adding worktree ${label}/ (${base})…`);
14789
+ await git([
14790
+ "worktree",
14791
+ "add",
14792
+ "-b",
14793
+ branch,
14794
+ dest,
14795
+ baseRef
14796
+ ], bare);
14797
+ }
14798
+ }
14640
14799
  /** `ref` is this workspace branch or a `-topic` lane of it. Another
14641
14800
  * workspace's branch can extend this prefix, so callers must also
14642
14801
  * subtract `otherWorkspaceBranches`. */
@@ -21949,4 +22108,4 @@ server.listen(port, () => {
21949
22108
  //#endregion
21950
22109
  export {};
21951
22110
 
21952
- ;var __MARKO_MANIFEST__={"esfPH6H":{"block":[2,"stylesheet#/assets/index-BxVK_c-q.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/index-BxVK_c-q.css\"",">"],"defer":[2,"/assets/index-DJu3fA99.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/index-DJu3fA99.js\"","></script>"]}};
22111
+ ;var __MARKO_MANIFEST__={"esfPH6H":{"block":[2,"stylesheet#/assets/index-D2S6Vhpc.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/index-D2S6Vhpc.css\"",">"],"defer":[2,"/assets/index-KetIC6bX.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/index-KetIC6bX.js\"","></script>"]}};