@dylanpiercey/work 0.0.7 → 0.0.9

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 +650 -443
  2. package/dist/public/assets/{_CDtlFxZX.js → _-55Xel81.js} +2 -2
  3. package/dist/public/assets/{_CDtlFxZX.js.map → _-55Xel81.js.map} +1 -1
  4. package/dist/public/assets/{_Dz57V0my.js → _-73K0jRE.js} +2 -2
  5. package/dist/public/assets/{_Dz57V0my.js.map → _-73K0jRE.js.map} +1 -1
  6. package/dist/public/assets/{_C8Lw1Tmb.js → _0_OX1kW7.js} +2 -2
  7. package/dist/public/assets/{_C8Lw1Tmb.js.map → _0_OX1kW7.js.map} +1 -1
  8. package/dist/public/assets/{_C2TX6Jrr2.js → _2phIuyIo2.js} +2 -2
  9. package/dist/public/assets/{_C2TX6Jrr2.js.map → _2phIuyIo2.js.map} +1 -1
  10. package/dist/public/assets/{_BEY9qyEj.js → _3lpetwqV.js} +2 -2
  11. package/dist/public/assets/{_BEY9qyEj.js.map → _3lpetwqV.js.map} +1 -1
  12. package/dist/public/assets/{_B1F2GQHq2.js → _5WPTFj7l2.js} +2 -2
  13. package/dist/public/assets/{_B1F2GQHq2.js.map → _5WPTFj7l2.js.map} +1 -1
  14. package/dist/public/assets/{_Cpqbvj5d.js → _7wDPFeG9.js} +2 -2
  15. package/dist/public/assets/{_Cpqbvj5d.js.map → _7wDPFeG9.js.map} +1 -1
  16. package/dist/public/assets/{_BfxQEfor.js → _88LLH6RY.js} +2 -2
  17. package/dist/public/assets/{_BfxQEfor.js.map → _88LLH6RY.js.map} +1 -1
  18. package/dist/public/assets/{_Tbp9N0Pq.js → _B57HhNZL.js} +2 -2
  19. package/dist/public/assets/{_Tbp9N0Pq.js.map → _B57HhNZL.js.map} +1 -1
  20. package/dist/public/assets/{_DwmbSeOR2.js → _B8tT5VjG2.js} +2 -2
  21. package/dist/public/assets/{_DwmbSeOR2.js.map → _B8tT5VjG2.js.map} +1 -1
  22. package/dist/public/assets/{_okHqOb61.js → _BCV86zXw.js} +2 -2
  23. package/dist/public/assets/{_okHqOb61.js.map → _BCV86zXw.js.map} +1 -1
  24. package/dist/public/assets/{_T3Aahgg12.js → _BH4uiVT52.js} +2 -2
  25. package/dist/public/assets/{_T3Aahgg12.js.map → _BH4uiVT52.js.map} +1 -1
  26. package/dist/public/assets/{_D0Dk2eMz.js → _BKFS53A_.js} +2 -2
  27. package/dist/public/assets/{_D0Dk2eMz.js.map → _BKFS53A_.js.map} +1 -1
  28. package/dist/public/assets/{_BQqn5S5j.js → _BQPkk7gE.js} +2 -2
  29. package/dist/public/assets/{_BQqn5S5j.js.map → _BQPkk7gE.js.map} +1 -1
  30. package/dist/public/assets/{_BTJ_-CIz.js → _BS8MY6NA.js} +2 -2
  31. package/dist/public/assets/{_BTJ_-CIz.js.map → _BS8MY6NA.js.map} +1 -1
  32. package/dist/public/assets/{_YMDMk2XX2.js → _BV7BdgkE2.js} +2 -2
  33. package/dist/public/assets/{_YMDMk2XX2.js.map → _BV7BdgkE2.js.map} +1 -1
  34. package/dist/public/assets/{_CF3V7ZyO2.js → _BXe3hS8_2.js} +2 -2
  35. package/dist/public/assets/{_CF3V7ZyO2.js.map → _BXe3hS8_2.js.map} +1 -1
  36. package/dist/public/assets/{_js4WyaBT.js → _Bab58ETy.js} +2 -2
  37. package/dist/public/assets/{_js4WyaBT.js.map → _Bab58ETy.js.map} +1 -1
  38. package/dist/public/assets/{_BFPTVBh82.js → _Bdo5QTEH2.js} +2 -2
  39. package/dist/public/assets/{_BFPTVBh82.js.map → _Bdo5QTEH2.js.map} +1 -1
  40. package/dist/public/assets/{_b9uzSPzx.js → _BfjNQh7a.js} +2 -2
  41. package/dist/public/assets/{_b9uzSPzx.js.map → _BfjNQh7a.js.map} +1 -1
  42. package/dist/public/assets/{_B8mEgNvE.js → _BgKdw9kC.js} +2 -2
  43. package/dist/public/assets/{_B8mEgNvE.js.map → _BgKdw9kC.js.map} +1 -1
  44. package/dist/public/assets/{_DS1r4Da7.js → _BpQ-G-AF.js} +2 -2
  45. package/dist/public/assets/{_DS1r4Da7.js.map → _BpQ-G-AF.js.map} +1 -1
  46. package/dist/public/assets/{_DBj-L0Ww.js → _BqDMxN-L.js} +2 -2
  47. package/dist/public/assets/{_DBj-L0Ww.js.map → _BqDMxN-L.js.map} +1 -1
  48. package/dist/public/assets/{_B4R8SNvy.js → _Bq_9GHxI.js} +2 -2
  49. package/dist/public/assets/{_B4R8SNvy.js.map → _Bq_9GHxI.js.map} +1 -1
  50. package/dist/public/assets/{_CTkR0S8t.js → _BvkihIXY.js} +2 -2
  51. package/dist/public/assets/{_CTkR0S8t.js.map → _BvkihIXY.js.map} +1 -1
  52. package/dist/public/assets/{_CJlF2h3E2.js → _C4oMjK0u2.js} +2 -2
  53. package/dist/public/assets/{_CJlF2h3E2.js.map → _C4oMjK0u2.js.map} +1 -1
  54. package/dist/public/assets/{_BqeWVi6c.js → _C4olLuQJ.js} +2 -2
  55. package/dist/public/assets/{_BqeWVi6c.js.map → _C4olLuQJ.js.map} +1 -1
  56. package/dist/public/assets/{_B49hrT7F.js → _C6pzcNUP.js} +2 -2
  57. package/dist/public/assets/{_B49hrT7F.js.map → _C6pzcNUP.js.map} +1 -1
  58. package/dist/public/assets/{_DPDjFNn3.js → _C9AzMHu4.js} +2 -2
  59. package/dist/public/assets/{_DPDjFNn3.js.map → _C9AzMHu4.js.map} +1 -1
  60. package/dist/public/assets/{_JDPB-L9T2.js → _CE0gqRSP2.js} +2 -2
  61. package/dist/public/assets/{_JDPB-L9T2.js.map → _CE0gqRSP2.js.map} +1 -1
  62. package/dist/public/assets/{_DZp-Xvf0.js → _CEyWh8I4.js} +2 -2
  63. package/dist/public/assets/{_DZp-Xvf0.js.map → _CEyWh8I4.js.map} +1 -1
  64. package/dist/public/assets/{_DC9uMckf2.js → _CFJ_Gbqs2.js} +2 -2
  65. package/dist/public/assets/{_DC9uMckf2.js.map → _CFJ_Gbqs2.js.map} +1 -1
  66. package/dist/public/assets/{_CNDjHC1Q.js → _CH9AUL7E.js} +2 -2
  67. package/dist/public/assets/{_CNDjHC1Q.js.map → _CH9AUL7E.js.map} +1 -1
  68. package/dist/public/assets/{_CzBadWXq.js → _CLtk_qBT.js} +2 -2
  69. package/dist/public/assets/{_CzBadWXq.js.map → _CLtk_qBT.js.map} +1 -1
  70. package/dist/public/assets/{_BBbcogWL2.js → _CNNynxl62.js} +2 -2
  71. package/dist/public/assets/{_BBbcogWL2.js.map → _CNNynxl62.js.map} +1 -1
  72. package/dist/public/assets/{_Ck30GMoL.js → _CRJ5N3b1.js} +2 -2
  73. package/dist/public/assets/{_Ck30GMoL.js.map → _CRJ5N3b1.js.map} +1 -1
  74. package/dist/public/assets/{_ehtlhcCR.js → _CUHqwbp6.js} +2 -2
  75. package/dist/public/assets/{_ehtlhcCR.js.map → _CUHqwbp6.js.map} +1 -1
  76. package/dist/public/assets/{_DvdWf5o-.js → _Cb64F8Xd.js} +2 -2
  77. package/dist/public/assets/{_DvdWf5o-.js.map → _Cb64F8Xd.js.map} +1 -1
  78. package/dist/public/assets/{_CqNVh0h5.js → _CgRB9uAQ.js} +2 -2
  79. package/dist/public/assets/{_CqNVh0h5.js.map → _CgRB9uAQ.js.map} +1 -1
  80. package/dist/public/assets/{_D0PyqJyr2.js → _CgkmkIJ92.js} +2 -2
  81. package/dist/public/assets/{_D0PyqJyr2.js.map → _CgkmkIJ92.js.map} +1 -1
  82. package/dist/public/assets/{_BE8gA6TO.js → _CrOembp8.js} +2 -2
  83. package/dist/public/assets/{_BE8gA6TO.js.map → _CrOembp8.js.map} +1 -1
  84. package/dist/public/assets/{_D4uduNrb.js → _CtFaFUga.js} +2 -2
  85. package/dist/public/assets/{_D4uduNrb.js.map → _CtFaFUga.js.map} +1 -1
  86. package/dist/public/assets/{_Bhn-MKXG2.js → _CuFOgpWA2.js} +2 -2
  87. package/dist/public/assets/{_Bhn-MKXG2.js.map → _CuFOgpWA2.js.map} +1 -1
  88. package/dist/public/assets/{_B-_0cKbG.js → _D0Ts18KW.js} +2 -2
  89. package/dist/public/assets/{_B-_0cKbG.js.map → _D0Ts18KW.js.map} +1 -1
  90. package/dist/public/assets/{_Bx6coq7v.js → _D0Ttdg97.js} +2 -2
  91. package/dist/public/assets/{_Bx6coq7v.js.map → _D0Ttdg97.js.map} +1 -1
  92. package/dist/public/assets/{_Dk-i8IAv.js → _D8MgFd9S.js} +2 -2
  93. package/dist/public/assets/{_Dk-i8IAv.js.map → _D8MgFd9S.js.map} +1 -1
  94. package/dist/public/assets/{_C_K-IZx7.js → _DAwzmJAZ.js} +2 -2
  95. package/dist/public/assets/{_C_K-IZx7.js.map → _DAwzmJAZ.js.map} +1 -1
  96. package/dist/public/assets/{_BkEOzqHA2.js → _DB6AYvKF2.js} +2 -2
  97. package/dist/public/assets/{_BkEOzqHA2.js.map → _DB6AYvKF2.js.map} +1 -1
  98. package/dist/public/assets/{_Din9HEMs.js → _DE81xtaZ.js} +2 -2
  99. package/dist/public/assets/{_Din9HEMs.js.map → _DE81xtaZ.js.map} +1 -1
  100. package/dist/public/assets/{_B_U5SPso.js → _DEXcart7.js} +2 -2
  101. package/dist/public/assets/{_B_U5SPso.js.map → _DEXcart7.js.map} +1 -1
  102. package/dist/public/assets/{_B7K5PePe.js → _DIZ6bu7o.js} +2 -2
  103. package/dist/public/assets/{_B7K5PePe.js.map → _DIZ6bu7o.js.map} +1 -1
  104. package/dist/public/assets/{_CawcEo7A.js → _DJhn0lLx.js} +2 -2
  105. package/dist/public/assets/{_CawcEo7A.js.map → _DJhn0lLx.js.map} +1 -1
  106. package/dist/public/assets/{_dfWRmwy82.js → _DUnCYX_j2.js} +2 -2
  107. package/dist/public/assets/{_dfWRmwy82.js.map → _DUnCYX_j2.js.map} +1 -1
  108. package/dist/public/assets/{_CIUf_Jmq.js → _DX6DEPmj.js} +2 -2
  109. package/dist/public/assets/{_CIUf_Jmq.js.map → _DX6DEPmj.js.map} +1 -1
  110. package/dist/public/assets/{_WXstblxD2.js → _D_ecb7DE2.js} +2 -2
  111. package/dist/public/assets/{_WXstblxD2.js.map → _D_ecb7DE2.js.map} +1 -1
  112. package/dist/public/assets/{_BTnhYWUT.js → _DbcMovdI.js} +2 -2
  113. package/dist/public/assets/{_BTnhYWUT.js.map → _DbcMovdI.js.map} +1 -1
  114. package/dist/public/assets/{_D409hg3n.js → _DfNtk5CQ.js} +2 -2
  115. package/dist/public/assets/{_D409hg3n.js.map → _DfNtk5CQ.js.map} +1 -1
  116. package/dist/public/assets/{_Ch0uVmAz2.js → _Dgwkmp3z2.js} +2 -2
  117. package/dist/public/assets/{_Ch0uVmAz2.js.map → _Dgwkmp3z2.js.map} +1 -1
  118. package/dist/public/assets/{_BE5Ltp0D.js → _DgwlT66k.js} +2 -2
  119. package/dist/public/assets/{_BE5Ltp0D.js.map → _DgwlT66k.js.map} +1 -1
  120. package/dist/public/assets/{_BLuo0bJF.js → _DlgN2kEE.js} +2 -2
  121. package/dist/public/assets/{_BLuo0bJF.js.map → _DlgN2kEE.js.map} +1 -1
  122. package/dist/public/assets/{_DbP8pES9.js → _DmoK7wKA.js} +2 -2
  123. package/dist/public/assets/{_DbP8pES9.js.map → _DmoK7wKA.js.map} +1 -1
  124. package/dist/public/assets/{_DhqQ2yva.js → _DohC64nA.js} +2 -2
  125. package/dist/public/assets/{_DhqQ2yva.js.map → _DohC64nA.js.map} +1 -1
  126. package/dist/public/assets/{_fZl_Qerv.js → _DrtiB7iS.js} +2 -2
  127. package/dist/public/assets/{_fZl_Qerv.js.map → _DrtiB7iS.js.map} +1 -1
  128. package/dist/public/assets/{_Tqwd1-8Z2.js → _DsJHtXCw2.js} +2 -2
  129. package/dist/public/assets/{_Tqwd1-8Z2.js.map → _DsJHtXCw2.js.map} +1 -1
  130. package/dist/public/assets/{_BMbg6Q_32.js → _DtJOtiYn2.js} +2 -2
  131. package/dist/public/assets/{_BMbg6Q_32.js.map → _DtJOtiYn2.js.map} +1 -1
  132. package/dist/public/assets/{_UPkRAhR-.js → _DvQrzBXV.js} +2 -2
  133. package/dist/public/assets/{_UPkRAhR-.js.map → _DvQrzBXV.js.map} +1 -1
  134. package/dist/public/assets/{_BDxD__Ca.js → _DvRMLfAr.js} +2 -2
  135. package/dist/public/assets/{_BDxD__Ca.js.map → _DvRMLfAr.js.map} +1 -1
  136. package/dist/public/assets/{_BxWguH11.js → _W9pIZN2H.js} +2 -2
  137. package/dist/public/assets/{_BxWguH11.js.map → _W9pIZN2H.js.map} +1 -1
  138. package/dist/public/assets/{_DHsfzMP_.js → _WWfkY3yQ.js} +2 -2
  139. package/dist/public/assets/{_DHsfzMP_.js.map → _WWfkY3yQ.js.map} +1 -1
  140. package/dist/public/assets/{_BKNwgsJI2.js → _gACclczL2.js} +2 -2
  141. package/dist/public/assets/{_BKNwgsJI2.js.map → _gACclczL2.js.map} +1 -1
  142. package/dist/public/assets/{_WO2um4ce2.js → _iKqe8fVJ2.js} +2 -2
  143. package/dist/public/assets/{_WO2um4ce2.js.map → _iKqe8fVJ2.js.map} +1 -1
  144. package/dist/public/assets/{_Cx_br0wh2.js → _jPW5BUHX2.js} +2 -2
  145. package/dist/public/assets/{_Cx_br0wh2.js.map → _jPW5BUHX2.js.map} +1 -1
  146. package/dist/public/assets/{_rMU5-5Oc2.js → _jiFYFr7O2.js} +2 -2
  147. package/dist/public/assets/{_rMU5-5Oc2.js.map → _jiFYFr7O2.js.map} +1 -1
  148. package/dist/public/assets/{_Wq5Lwig62.js → _reyWd1VB2.js} +2 -2
  149. package/dist/public/assets/{_Wq5Lwig62.js.map → _reyWd1VB2.js.map} +1 -1
  150. package/dist/public/assets/{index-C_YqjXeW.css → index-DaxFUqZq.css} +1 -1
  151. package/dist/public/assets/index-_W4Ej1WQ.js +1615 -0
  152. package/dist/public/assets/index-_W4Ej1WQ.js.map +1 -0
  153. package/package.json +1 -1
  154. package/dist/public/assets/index-Bx9UtyrE.js +0 -1614
  155. package/dist/public/assets/index-Bx9UtyrE.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/icons/icon-base.marko
3362
- var icon_base_default = _template("r", (input) => {
3362
+ var icon_base_default = _template("t", (input) => {
3363
3363
  const $scope0_reason = _scope_reason();
3364
3364
  const $scope0_id = _scope_id();
3365
3365
  const size = input.size ?? 15;
@@ -3368,7 +3368,7 @@ var icon_base_default = _template("r", (input) => {
3368
3368
  });
3369
3369
  //#endregion
3370
3370
  //#region src/tags/icons/icon-diff.marko
3371
- var icon_diff_default = _template("u", (input) => {
3371
+ var icon_diff_default = _template("w", (input) => {
3372
3372
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
3373
3373
  const $scope0_id = _scope_id();
3374
3374
  _set_serialize_reason({
@@ -3385,7 +3385,7 @@ var icon_diff_default = _template("u", (input) => {
3385
3385
  });
3386
3386
  //#endregion
3387
3387
  //#region src/tags/icons/icon-manage.marko
3388
- var icon_manage_default = _template("B", (input) => {
3388
+ var icon_manage_default = _template("D", (input) => {
3389
3389
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
3390
3390
  const $scope0_id = _scope_id();
3391
3391
  _set_serialize_reason({
@@ -3402,7 +3402,7 @@ var icon_manage_default = _template("B", (input) => {
3402
3402
  });
3403
3403
  //#endregion
3404
3404
  //#region src/tags/icons/icon-plus.marko
3405
- var icon_plus_default = _template("C", (input) => {
3405
+ var icon_plus_default = _template("E", (input) => {
3406
3406
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
3407
3407
  const $scope0_id = _scope_id();
3408
3408
  _set_serialize_reason({
@@ -3426,7 +3426,7 @@ var PATHS = {
3426
3426
  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",
3427
3427
  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"
3428
3428
  };
3429
- var icon_agent_default = _template("p", (input) => {
3429
+ var icon_agent_default = _template("r", (input) => {
3430
3430
  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);
3431
3431
  const $scope0_id = _scope_id();
3432
3432
  const size = input.size ?? 15;
@@ -3474,7 +3474,7 @@ var $class$3 = [
3474
3474
  "\"row archived\"",
3475
3475
  "\"row hi archived\""
3476
3476
  ];
3477
- var palette_default = _template("h", (input) => {
3477
+ var palette_default = _template("j", (input) => {
3478
3478
  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);
3479
3479
  const $scope0_id = _scope_id();
3480
3480
  const $input_selectedId__closures = /* @__PURE__ */ new Set();
@@ -3485,7 +3485,7 @@ var palette_default = _template("h", (input) => {
3485
3485
  let showArchived = false;
3486
3486
  const active = input.workspaces.filter((ws) => ws.status === "active");
3487
3487
  const archived = input.workspaces.filter((ws) => ws.status === "archived");
3488
- const matches = _resume((list) => list.filter((ws) => fuzzy(query, ws.name)), "h2", $scope0_id);
3488
+ const matches = _resume((list) => list.filter((ws) => fuzzy(query, ws.name)), "j2", $scope0_id);
3489
3489
  const currentWs = input.workspaces.find((ws) => ws.id === input.selectedId);
3490
3490
  const commands = !query || !currentWs ? [] : [
3491
3491
  {
@@ -3523,12 +3523,12 @@ var palette_default = _template("h", (input) => {
3523
3523
  if (row.kind === "new") input.onNew();
3524
3524
  else if (row.kind === "cmd") row.run();
3525
3525
  else input.onSelect(row.ws);
3526
- }, "h3", $scope0_id);
3526
+ }, "j3", $scope0_id);
3527
3527
  _if(() => {
3528
3528
  if (!input.inline) {
3529
3529
  const $scope1_id = _scope_id();
3530
3530
  _html(`<div class=palette-backdrop></div>${_el_resume($scope1_id, "a")}`);
3531
- _script($scope1_id, "h4");
3531
+ _script($scope1_id, "j4");
3532
3532
  writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
3533
3533
  return 0;
3534
3534
  }
@@ -3545,7 +3545,7 @@ var palette_default = _template("h", (input) => {
3545
3545
  _html(`<input${_attr_input_value($scope0_id, "d", query, _resume(function(v) {
3546
3546
  query = v;
3547
3547
  hiRaw = 0;
3548
- }, "h0", $scope0_id))} autofocus placeholder="Jump to workspace…" aria-label="Filter workspaces">${_el_resume($scope0_id, "d")}<ul class=rows>`);
3548
+ }, "j0", $scope0_id))} autofocus placeholder="Jump to workspace…" aria-label="Filter workspaces">${_el_resume($scope0_id, "d")}<ul class=rows>`);
3549
3549
  _for_of(rows, (row, i) => {
3550
3550
  const $scope2_id = _scope_id();
3551
3551
  _html(`<li><div class=row-wrap><button class=${$class$3[(i === hi ? 1 : 0) + (row.kind === "ws" && row.archived ? 2 : 0)]}>`);
@@ -3647,20 +3647,20 @@ var palette_default = _template("h", (input) => {
3647
3647
  size: 14
3648
3648
  });
3649
3649
  _html(`${_sep($sg__input_settings_agents)}${_escape(agent)}${_el_resume($scope5_id, "c", $sg__input_settings_agents)}</button>${_el_resume($scope5_id, "a")}`);
3650
- _script($scope5_id, "h5");
3650
+ _script($scope5_id, "j5");
3651
3651
  writeScope($scope5_id, {
3652
3652
  e: agent,
3653
3653
  _: _scope_with_id($scope4_id),
3654
3654
  b: $si__input_settings_agents && _existing_scope($childScope)
3655
3655
  });
3656
3656
  }, (a) => a, $scope4_id, "g", $sg__input_settings_agents, 1, $sg__input_settings_agents, "</div>", 1);
3657
- _script($scope4_id, "h6");
3657
+ _script($scope4_id, "j6");
3658
3658
  _subscribe($si__input_settings_agents && $input_settings_agents__closures, writeScope($scope4_id, {}));
3659
3659
  return 0;
3660
3660
  }
3661
3661
  }, $scope2_id, "b");
3662
3662
  _html("</div></li>");
3663
- _script($scope2_id, "h7");
3663
+ _script($scope2_id, "j7");
3664
3664
  writeScope($scope2_id, {
3665
3665
  d: row,
3666
3666
  e: row?.kind,
@@ -3677,7 +3677,7 @@ var palette_default = _template("h", (input) => {
3677
3677
  if (archived.length && !query) {
3678
3678
  const $scope7_id = _scope_id();
3679
3679
  _html(`<button class="archived-link dim">${`archived (${_escape(`${archived.length}`)})`}${_el_resume($scope7_id, "b")}</button>${_el_resume($scope7_id, "a")}`);
3680
- _script($scope7_id, "h8");
3680
+ _script($scope7_id, "j8");
3681
3681
  writeScope($scope7_id, {});
3682
3682
  return 0;
3683
3683
  }
@@ -3697,7 +3697,7 @@ var palette_default = _template("h", (input) => {
3697
3697
  headers: { "content-type": "application/json" },
3698
3698
  body: JSON.stringify({ preferredAgent: v })
3699
3699
  }).catch(() => {});
3700
- }, "h1", $scope6_id), () => {
3700
+ }, "j1", $scope6_id), () => {
3701
3701
  _html("<select aria-label=\"Preferred agent\">");
3702
3702
  _for_of(input.settings.agents, (agent) => {
3703
3703
  const $scope17_id = _scope_id();
@@ -3706,15 +3706,15 @@ var palette_default = _template("h", (input) => {
3706
3706
  }, (a) => a, $scope6_id, "a", $sg__input_settings_agents, 1, $sg__input_settings_agents, "</select>", 1);
3707
3707
  });
3708
3708
  _html("</label>");
3709
- _script($scope6_id, "h9");
3709
+ _script($scope6_id, "j9");
3710
3710
  writeScope($scope6_id, { _: _scope_with_id($scope0_id) });
3711
3711
  return 0;
3712
3712
  }
3713
3713
  }, $scope0_id, "g", _serialize_guard($scope0_reason, 0), _serialize_guard($scope0_reason, 3), 1, 0, 1);
3714
3714
  _html(`</div></div>${_el_resume($scope0_id, "b", $sg__input_inline)}`);
3715
- _script($scope0_id, "h10");
3716
- _script($scope0_id, "h11");
3717
- _script($scope0_id, "h12");
3715
+ _script($scope0_id, "j10");
3716
+ _script($scope0_id, "j11");
3717
+ _script($scope0_id, "j12");
3718
3718
  writeScope($scope0_id, {
3719
3719
  j: $si__input_selectedId && input.workspaces,
3720
3720
  k: input.selectedId,
@@ -3752,7 +3752,7 @@ var palette_default = _template("h", (input) => {
3752
3752
  });
3753
3753
  //#endregion
3754
3754
  //#region src/tags/icons/icon-refresh.marko
3755
- var icon_refresh_default = _template("D", (input) => {
3755
+ var icon_refresh_default = _template("F", (input) => {
3756
3756
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
3757
3757
  const $scope0_id = _scope_id();
3758
3758
  _set_serialize_reason({
@@ -3771,7 +3771,7 @@ var icon_refresh_default = _template("D", (input) => {
3771
3771
  //#region src/tags/repo-picker.marko
3772
3772
  var api$6;
3773
3773
  var rankRepos;
3774
- var repo_picker_default = _template("j", (input) => {
3774
+ var repo_picker_default = _template("l", (input) => {
3775
3775
  _scope_reason();
3776
3776
  const $scope0_id = _scope_id();
3777
3777
  const $branchFilter__closures = /* @__PURE__ */ new Set();
@@ -3790,7 +3790,7 @@ var repo_picker_default = _template("j", (input) => {
3790
3790
  input.onError?.(String(err.message || err));
3791
3791
  }
3792
3792
  if (refresh) input.refreshingChange?.(false);
3793
- }, "j3", $scope0_id);
3793
+ }, "l3", $scope0_id);
3794
3794
  const results = catalog && filter ? rankRepos(filter, catalog.repos, (name) => input.exclude.has(name)) : [];
3795
3795
  let branchesFor = null;
3796
3796
  let branches = null;
@@ -3799,7 +3799,7 @@ var repo_picker_default = _template("j", (input) => {
3799
3799
  filter = "";
3800
3800
  branchesFor = null;
3801
3801
  input.onPick(fullName, baseBranch);
3802
- }, "j4", $scope0_id);
3802
+ }, "l4", $scope0_id);
3803
3803
  const toggleBranches = _resume(async (fullName) => {
3804
3804
  if (branchesFor === fullName) {
3805
3805
  branchesFor = null;
@@ -3815,11 +3815,11 @@ var repo_picker_default = _template("j", (input) => {
3815
3815
  branchesFor = null;
3816
3816
  input.onError?.(String(err.message || err));
3817
3817
  }
3818
- }, "j5", $scope0_id);
3818
+ }, "l5", $scope0_id);
3819
3819
  _html(`<div class=add-repo><input${_attr_input_value($scope0_id, "a", filter, _resume(function(v) {
3820
3820
  filter = v;
3821
3821
  highlight = 0;
3822
- }, "j0", $scope0_id))} placeholder="Add a repo…" aria-label="Add a repo"${_attr("disabled", input.disabled)}>${_el_resume($scope0_id, "a")}`);
3822
+ }, "l0", $scope0_id))} placeholder="Add a repo…" aria-label="Add a repo"${_attr("disabled", input.disabled)}>${_el_resume($scope0_id, "a")}`);
3823
3823
  _if(() => {
3824
3824
  if (filter && !catalog) {
3825
3825
  const $scope8_id = _scope_id();
@@ -3857,8 +3857,8 @@ var repo_picker_default = _template("j", (input) => {
3857
3857
  const $scope6_id = _scope_id();
3858
3858
  _html(`<input${_attr_input_value($scope6_id, "a", branchFilter, _resume((_new_branchFilter) => {
3859
3859
  branchFilter = _new_branchFilter;
3860
- }, "j1", $scope6_id))} placeholder="Filter branches…" aria-label="Filter branches" autofocus>${_el_resume($scope6_id, "a")}`);
3861
- _script($scope6_id, "j6");
3860
+ }, "l1", $scope6_id))} placeholder="Filter branches…" aria-label="Filter branches" autofocus>${_el_resume($scope6_id, "a")}`);
3861
+ _script($scope6_id, "l6");
3862
3862
  _subscribe($branchFilter__closures, writeScope($scope6_id, { Ca7: 1 }));
3863
3863
  return 0;
3864
3864
  }
@@ -3868,7 +3868,7 @@ var repo_picker_default = _template("j", (input) => {
3868
3868
  _for_of(shown, (branch) => {
3869
3869
  const $scope7_id = _scope_id();
3870
3870
  _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>`);
3871
- _script($scope7_id, "j7");
3871
+ _script($scope7_id, "l7");
3872
3872
  writeScope($scope7_id, { d: branch });
3873
3873
  }, (b) => b, $scope5_id, "b", 1, 1, 1, 0, 1);
3874
3874
  _if(() => {
@@ -3889,7 +3889,7 @@ var repo_picker_default = _template("j", (input) => {
3889
3889
  }
3890
3890
  }, $scope3_id, "f", 1, 1, 1, 0, 1);
3891
3891
  _html("</li>");
3892
- _script($scope3_id, "j8");
3892
+ _script($scope3_id, "l8");
3893
3893
  _subscribe($branchesFor__closures, _subscribe($highlight__closures, writeScope($scope3_id, {
3894
3894
  i: repo?.nameWithOwner,
3895
3895
  k: i
@@ -3905,9 +3905,9 @@ var repo_picker_default = _template("j", (input) => {
3905
3905
  }
3906
3906
  }, $scope0_id, "c", 1, 1, 1, 0, 1);
3907
3907
  _html("</div>");
3908
- const $return = _resume(() => loadCatalog(true), "j2", $scope0_id);
3909
- _script($scope0_id, "j9");
3910
- _script($scope0_id, "j10");
3908
+ const $return = _resume(() => loadCatalog(true), "l2", $scope0_id);
3909
+ _script($scope0_id, "l9");
3910
+ _script($scope0_id, "l10");
3911
3911
  writeScope($scope0_id, {
3912
3912
  f: input.refreshingChange,
3913
3913
  g: input.onError,
@@ -3935,7 +3935,7 @@ var repo_picker_default = _template("j", (input) => {
3935
3935
  });
3936
3936
  //#endregion
3937
3937
  //#region src/tags/modal-view.marko
3938
- var modal_view_default = _template("f", (input) => {
3938
+ var modal_view_default = _template("h", (input) => {
3939
3939
  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);
3940
3940
  const $scope0_id = _scope_id();
3941
3941
  const dismissable = input.dismissable !== false;
@@ -3953,14 +3953,14 @@ var modal_view_default = _template("f", (input) => {
3953
3953
  } else if (input.onClose) {
3954
3954
  const $scope2_id = _scope_id();
3955
3955
  _html(`<div class=manage-bar><button class="btn primary">Done</button>${_el_resume($scope2_id, "a")}</div>`);
3956
- _script($scope2_id, "f0");
3956
+ _script($scope2_id, "h0");
3957
3957
  writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
3958
3958
  return 1;
3959
3959
  }
3960
3960
  }, $scope0_id, "d", $sg__input_onClose__OR__input_footer, $sg__input_onClose__OR__input_footer, $sg__input_onClose__OR__input_footer, 0, 1);
3961
3961
  _html(`</div>${_el_resume($scope0_id, "b", _serialize_guard($scope0_reason, 1))}`);
3962
- _script($scope0_id, "f1");
3963
- _script($scope0_id, "f2");
3962
+ _script($scope0_id, "h1");
3963
+ _script($scope0_id, "h2");
3964
3964
  writeScope($scope0_id, {
3965
3965
  h: input.onClose,
3966
3966
  l: _serialize_if($scope0_reason, 2) && input.footer,
@@ -3973,7 +3973,7 @@ var modal_view_default = _template("f", (input) => {
3973
3973
  //#region src/tags/manage-workspace.marko
3974
3974
  var api$5;
3975
3975
  var lastData = /* @__PURE__ */ new Map();
3976
- var manage_workspace_default = _template("e", (input) => {
3976
+ var manage_workspace_default = _template("g", (input) => {
3977
3977
  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);
3978
3978
  const $scope0_id = _scope_id();
3979
3979
  const $actionStep__closures = /* @__PURE__ */ new Set();
@@ -4013,19 +4013,19 @@ var manage_workspace_default = _template("e", (input) => {
4013
4013
  procs = data;
4014
4014
  lastData.set(`procs:${ws.id}`, data);
4015
4015
  } catch {}
4016
- }, "e0", $scope0_id);
4016
+ }, "g0", $scope0_id);
4017
4017
  const loadPrs = _resume(async (signal, refresh) => {
4018
4018
  try {
4019
4019
  const data = await api$5(`/api/workspaces/${ws.id}/prs${refresh ? "?refresh" : ""}`, { signal });
4020
4020
  prs = data;
4021
4021
  lastData.set(`prs:${ws.id}`, data);
4022
4022
  } catch {}
4023
- }, "e1", $scope0_id);
4023
+ }, "g1", $scope0_id);
4024
4024
  const refreshPrs = _resume(async () => {
4025
4025
  prsRefreshing = true;
4026
4026
  await loadPrs(void 0, true);
4027
4027
  prsRefreshing = false;
4028
- }, "e2", $scope0_id);
4028
+ }, "g2", $scope0_id);
4029
4029
  const clearFinished = _resume(async () => {
4030
4030
  for (const repo of prs || []) for (const pr of repo.prs) {
4031
4031
  if (pr.state === "OPEN") continue;
@@ -4039,7 +4039,7 @@ var manage_workspace_default = _template("e", (input) => {
4039
4039
  }).catch(() => {});
4040
4040
  }
4041
4041
  await loadPrs(void 0, false);
4042
- }, "e3", $scope0_id);
4042
+ }, "g3", $scope0_id);
4043
4043
  const dismissPr = _resume(async (fullName, number) => {
4044
4044
  error = null;
4045
4045
  try {
@@ -4056,14 +4056,14 @@ var manage_workspace_default = _template("e", (input) => {
4056
4056
  } catch (err) {
4057
4057
  error = String(err.message || err);
4058
4058
  }
4059
- }, "e4", $scope0_id);
4059
+ }, "g4", $scope0_id);
4060
4060
  const inWorkspace = new Set(ws.repos.map((r) => r.full_name));
4061
4061
  const setBusy = _resume((name, on) => {
4062
4062
  const next = new Set(busy);
4063
4063
  if (on) next.add(name);
4064
4064
  else next.delete(name);
4065
4065
  busy = next;
4066
- }, "e5", $scope0_id);
4066
+ }, "g5", $scope0_id);
4067
4067
  const addRepo = _resume(async (name, baseBranch) => {
4068
4068
  if (!name || busy.has(name)) return;
4069
4069
  error = null;
@@ -4082,7 +4082,7 @@ var manage_workspace_default = _template("e", (input) => {
4082
4082
  error = String(err.message || err);
4083
4083
  }
4084
4084
  setBusy(name, false);
4085
- }, "e6", $scope0_id);
4085
+ }, "g6", $scope0_id);
4086
4086
  const removeRepo = _resume(async (row) => {
4087
4087
  if (busy.has(row.full_name)) return;
4088
4088
  error = null;
@@ -4097,7 +4097,7 @@ var manage_workspace_default = _template("e", (input) => {
4097
4097
  error = String(err.message || err);
4098
4098
  }
4099
4099
  setBusy(row.full_name, false);
4100
- }, "e7", $scope0_id);
4100
+ }, "g7", $scope0_id);
4101
4101
  const runAction = _resume(async (action) => {
4102
4102
  error = null;
4103
4103
  pendingAction = action;
@@ -4115,11 +4115,11 @@ var manage_workspace_default = _template("e", (input) => {
4115
4115
  pendingAction = null;
4116
4116
  actionStep = null;
4117
4117
  }
4118
- }, "e8", $scope0_id);
4118
+ }, "g8", $scope0_id);
4119
4119
  const killProc = _resume(async (pid) => {
4120
4120
  await fetch(`/api/procs/${pid}`, { method: "DELETE" });
4121
4121
  setTimeout(() => loadProcs(void 0), 500);
4122
- }, "e9", $scope0_id);
4122
+ }, "g9", $scope0_id);
4123
4123
  _set_serialize_reason({
4124
4124
  0: $sg__input_onClose,
4125
4125
  1: $sg__input_workspace,
@@ -4130,8 +4130,8 @@ var manage_workspace_default = _template("e", (input) => {
4130
4130
  label: `Manage ${ws.name}`,
4131
4131
  onClose: _resume(function() {
4132
4132
  input.onClose?.();
4133
- }, "e10", $scope0_id),
4134
- footer: attrTag({ content: _content_resume("e26", () => {
4133
+ }, "g10", $scope0_id),
4134
+ footer: attrTag({ content: _content_resume("g26", () => {
4135
4135
  _scope_reason();
4136
4136
  const $scope1_id = _scope_id();
4137
4137
  _html(`<button class="btn primary"${_attr("disabled", !!pendingAction)}>Done</button>${_el_resume($scope1_id, "a")}`);
@@ -4148,7 +4148,7 @@ var manage_workspace_default = _template("e", (input) => {
4148
4148
  if (ws.status === "active") {
4149
4149
  const $scope8_id = _scope_id();
4150
4150
  _html(`<button class=btn${_attr("disabled", !!pendingAction)}>${pendingAction === "archive" ? "Archiving…" : "Archive"}${_el_resume($scope8_id, "b")}</button>${_el_resume($scope8_id, "a")}`);
4151
- _script($scope8_id, "e14");
4151
+ _script($scope8_id, "g14");
4152
4152
  _subscribe($pendingAction__closures, writeScope($scope8_id, {
4153
4153
  _: _scope_with_id($scope1_id),
4154
4154
  Cap: 1
@@ -4157,7 +4157,7 @@ var manage_workspace_default = _template("e", (input) => {
4157
4157
  } else {
4158
4158
  const $scope9_id = _scope_id();
4159
4159
  _html(`<button class=btn${_attr("disabled", !!pendingAction)}>Restore</button>${_el_resume($scope9_id, "a")}`);
4160
- _script($scope9_id, "e15");
4160
+ _script($scope9_id, "g15");
4161
4161
  _subscribe($pendingAction__closures, writeScope($scope9_id, {
4162
4162
  _: _scope_with_id($scope1_id),
4163
4163
  Cap: 2
@@ -4166,11 +4166,11 @@ var manage_workspace_default = _template("e", (input) => {
4166
4166
  }
4167
4167
  }, $scope1_id, "c", $sg__input_workspace, $sg__input_workspace, 1, 0, 1);
4168
4168
  _html(`<button class="btn danger"${_attr("disabled", !!pendingAction)}>${pendingAction === "delete" ? "Deleting…" : "Delete"}${_el_resume($scope1_id, "e")}</button>${_el_resume($scope1_id, "d")}`);
4169
- _script($scope1_id, "e16");
4169
+ _script($scope1_id, "g16");
4170
4170
  _subscribe($si__input_workspace && $ws_status__closures, _subscribe($actionStep__closures, _subscribe($confirmingDelete__closures, _subscribe($pendingAction__closures, writeScope($scope1_id, { _: _scope_with_id($scope0_id) })))));
4171
4171
  _resume_branch($scope1_id);
4172
4172
  }, $scope0_id) }),
4173
- content: _content("e27", () => {
4173
+ content: _content("g27", () => {
4174
4174
  _scope_reason();
4175
4175
  const $scope2_id = _scope_id();
4176
4176
  _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>`);
@@ -4178,7 +4178,7 @@ var manage_workspace_default = _template("e", (input) => {
4178
4178
  if (error) {
4179
4179
  const $scope7_id = _scope_id();
4180
4180
  _html(`<p class=toast-error>${_escape(error)}${_el_resume($scope7_id, "a")} <button>×</button>${_el_resume($scope7_id, "b")}</p>`);
4181
- _script($scope7_id, "e17");
4181
+ _script($scope7_id, "g17");
4182
4182
  _subscribe($error__closures, writeScope($scope7_id, { Cao: 1 }));
4183
4183
  return 0;
4184
4184
  }
@@ -4192,7 +4192,7 @@ var manage_workspace_default = _template("e", (input) => {
4192
4192
  if (finishedCount) {
4193
4193
  const $scope12_id = _scope_id();
4194
4194
  _html(`<button class=btn title="Confirm every merged/closed PR is done — remove them from this list">Clear <!>${_escape(finishedCount)}${_el_resume($scope12_id, "b")} finished</button>${_el_resume($scope12_id, "a")}`);
4195
- _script($scope12_id, "e18");
4195
+ _script($scope12_id, "g18");
4196
4196
  writeScope($scope12_id, {});
4197
4197
  return 0;
4198
4198
  }
@@ -4233,7 +4233,7 @@ var manage_workspace_default = _template("e", (input) => {
4233
4233
  if (pr.state !== "OPEN") {
4234
4234
  const $scope14_id = _scope_id();
4235
4235
  _html(`<button class=pr-dismiss${_attr("title", `Confirm #${pr.number} is done — remove from this list`)}>✓</button>${_el_resume($scope14_id, "a")}`);
4236
- _script($scope14_id, "e19");
4236
+ _script($scope14_id, "g19");
4237
4237
  writeScope($scope14_id, {});
4238
4238
  return 0;
4239
4239
  }
@@ -4248,7 +4248,7 @@ var manage_workspace_default = _template("e", (input) => {
4248
4248
  }));
4249
4249
  }, "full_name", $scope4_id, "d", 1, 1, 1, 0, 1);
4250
4250
  _html("</section>");
4251
- _script($scope4_id, "e20");
4251
+ _script($scope4_id, "g20");
4252
4252
  _subscribe($prsRefreshing__closures, _subscribe($prs__closures, writeScope($scope4_id, {
4253
4253
  e: finishedCount,
4254
4254
  Caj: 1
@@ -4279,7 +4279,7 @@ var manage_workspace_default = _template("e", (input) => {
4279
4279
  } else {
4280
4280
  const $scope10_id = _scope_id();
4281
4281
  _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($scope10_id, "b")}</button>${_el_resume($scope10_id, "a")}`);
4282
- _script($scope10_id, "e21");
4282
+ _script($scope10_id, "g21");
4283
4283
  _subscribe($confirmingRemove__closures, writeScope($scope10_id, {}));
4284
4284
  return 1;
4285
4285
  }
@@ -4313,15 +4313,15 @@ var manage_workspace_default = _template("e", (input) => {
4313
4313
  exclude: inWorkspace,
4314
4314
  onPick: _resume(function(name, baseBranch) {
4315
4315
  addRepo(name, baseBranch);
4316
- }, "e11", $scope2_id),
4316
+ }, "g11", $scope2_id),
4317
4317
  onError: _resume(function(message) {
4318
4318
  error = message;
4319
- }, "e12", $scope2_id),
4319
+ }, "g12", $scope2_id),
4320
4320
  refreshingChange: _resume(function(busy) {
4321
4321
  catalogRefreshing = busy;
4322
- }, "e13", $scope2_id)
4322
+ }, "g13", $scope2_id)
4323
4323
  });
4324
- _var($scope2_id, "k", $childScope, "e22");
4324
+ _var($scope2_id, "k", $childScope, "g22");
4325
4325
  _html("</section>");
4326
4326
  _if(() => {
4327
4327
  if (procs && procs.length) {
@@ -4333,11 +4333,11 @@ var manage_workspace_default = _template("e", (input) => {
4333
4333
  _for_of(p.ports, (port) => {
4334
4334
  const $scope23_id = _scope_id();
4335
4335
  _html(`<button class="chip port-link"${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${port}`)}>:<!>${_escape(port)}${_el_resume($scope23_id, "b")}</button>${_el_resume($scope23_id, "a")}`);
4336
- _script($scope23_id, "e23");
4336
+ _script($scope23_id, "g23");
4337
4337
  writeScope($scope23_id, { d: port });
4338
4338
  }, (x) => String(x), $scope15_id, "c", 1, 1, 1, 0, 1);
4339
4339
  _html(`</span>${_el_resume($scope15_id, "a")}<button class=proc-kill${_attr("title", `Kill ${p.pid}`)}>×</button>${_el_resume($scope15_id, "d")}</li>`);
4340
- _script($scope15_id, "e24");
4340
+ _script($scope15_id, "g24");
4341
4341
  writeScope($scope15_id, { j: p?.pid });
4342
4342
  }, "pid", $scope3_id, "a", 1, 1, 1, "</ul>", 1);
4343
4343
  _html("</section>");
@@ -4345,7 +4345,7 @@ var manage_workspace_default = _template("e", (input) => {
4345
4345
  return 0;
4346
4346
  }
4347
4347
  }, $scope2_id, "l", 1, 1, 1, 0, 1);
4348
- _script($scope2_id, "e25");
4348
+ _script($scope2_id, "g25");
4349
4349
  _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, {
4350
4350
  m: refreshCatalog,
4351
4351
  _: _scope_with_id($scope0_id),
@@ -4354,7 +4354,7 @@ var manage_workspace_default = _template("e", (input) => {
4354
4354
  _resume_branch($scope2_id);
4355
4355
  })
4356
4356
  });
4357
- _script($scope0_id, "e28");
4357
+ _script($scope0_id, "g28");
4358
4358
  writeScope($scope0_id, {
4359
4359
  f: input.onChange,
4360
4360
  g: input.onClose,
@@ -4411,7 +4411,7 @@ var manage_workspace_default = _template("e", (input) => {
4411
4411
  //#endregion
4412
4412
  //#region src/tags/new-workspace.marko
4413
4413
  var api$4;
4414
- var new_workspace_default = _template("g", (input) => {
4414
+ var new_workspace_default = _template("i", (input) => {
4415
4415
  const $sg__input_onCancel = _serialize_guard(_scope_reason(), 0);
4416
4416
  const $scope0_id = _scope_id();
4417
4417
  const $name__closures = /* @__PURE__ */ new Set();
@@ -4440,17 +4440,17 @@ var new_workspace_default = _template("g", (input) => {
4440
4440
  if (e.seq) prog.last = e.seq;
4441
4441
  steps = steps.concat(e.message);
4442
4442
  }
4443
- }, "g1", $scope0_id);
4443
+ }, "i1", $scope0_id);
4444
4444
  const addRepo = _resume((fullName, baseBranch) => {
4445
4445
  if (!fullName || selected.some((r) => r.fullName === fullName)) return;
4446
4446
  selected = selected.concat({
4447
4447
  fullName,
4448
4448
  baseBranch
4449
4449
  });
4450
- }, "g2", $scope0_id);
4450
+ }, "i2", $scope0_id);
4451
4451
  const removeRepo = _resume((fullName) => {
4452
4452
  selected = selected.filter((r) => r.fullName !== fullName);
4453
- }, "g3", $scope0_id);
4453
+ }, "i3", $scope0_id);
4454
4454
  const create = _resume(async () => {
4455
4455
  busy = true;
4456
4456
  error = null;
@@ -4483,7 +4483,7 @@ var new_workspace_default = _template("g", (input) => {
4483
4483
  } finally {
4484
4484
  clearInterval(poll);
4485
4485
  }
4486
- }, "g4", $scope0_id);
4486
+ }, "i4", $scope0_id);
4487
4487
  _set_serialize_reason({
4488
4488
  0: $sg__input_onCancel,
4489
4489
  2: $sg__input_onCancel
@@ -4495,16 +4495,16 @@ var new_workspace_default = _template("g", (input) => {
4495
4495
  dismissable: !busy,
4496
4496
  onClose: _resume(function() {
4497
4497
  input.onCancel?.();
4498
- }, "g5", $scope0_id),
4499
- footer: attrTag({ content: _content_resume("g14", () => {
4498
+ }, "i5", $scope0_id),
4499
+ footer: attrTag({ content: _content_resume("i14", () => {
4500
4500
  _scope_reason();
4501
4501
  const $scope1_id = _scope_id();
4502
4502
  _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")}`);
4503
- _script($scope1_id, "g9");
4503
+ _script($scope1_id, "i9");
4504
4504
  _subscribe($busy__closures, _subscribe($name__closures, writeScope($scope1_id, { _: _scope_with_id($scope0_id) })));
4505
4505
  _resume_branch($scope1_id);
4506
4506
  }, $scope0_id) }),
4507
- content: _content("g15", () => {
4507
+ content: _content("i15", () => {
4508
4508
  _scope_reason();
4509
4509
  const $scope2_id = _scope_id();
4510
4510
  _html("<header class=manage-head><div><h2>New workspace</h2></div></header>");
@@ -4512,14 +4512,14 @@ var new_workspace_default = _template("g", (input) => {
4512
4512
  if (error) {
4513
4513
  const $scope4_id = _scope_id();
4514
4514
  _html(`<p class=toast-error>${_escape(error)}${_el_resume($scope4_id, "a")} <button>×</button>${_el_resume($scope4_id, "b")}</p>`);
4515
- _script($scope4_id, "g10");
4515
+ _script($scope4_id, "i10");
4516
4516
  _subscribe($error__closures, writeScope($scope4_id, { Ca2: 1 }));
4517
4517
  return 0;
4518
4518
  }
4519
4519
  }, $scope2_id, "a", 1, 1, 1, 0, 1);
4520
4520
  _html(`<label class=field><span>Name</span><input${_attr_input_value($scope2_id, "b", name, _resume((_new_name) => {
4521
4521
  name = _new_name;
4522
- }, "g0", $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)}>`);
4522
+ }, "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)}>`);
4523
4523
  icon_refresh_default({ size: 13 });
4524
4524
  _html(`</button>${_el_resume($scope2_id, "c")}</div><ul class=cur-repos>`);
4525
4525
  _for_of(selected, (repo) => {
@@ -4534,7 +4534,7 @@ var new_workspace_default = _template("g", (input) => {
4534
4534
  }
4535
4535
  }, $scope3_id, "b", 1, 1, 1, 0, 1);
4536
4536
  _html(`<button class=cur-remove${_attr("title", `Remove ${repo.fullName}`)}${_attr("disabled", busy)}>×</button>${_el_resume($scope3_id, "c")}</li>`);
4537
- _script($scope3_id, "g11");
4537
+ _script($scope3_id, "i11");
4538
4538
  _subscribe($busy__closures, writeScope($scope3_id, {
4539
4539
  f: repo?.fullName,
4540
4540
  g: repo?.baseBranch,
@@ -4556,15 +4556,15 @@ var new_workspace_default = _template("g", (input) => {
4556
4556
  disabled: busy,
4557
4557
  onPick: _resume(function(fullName, baseBranch) {
4558
4558
  addRepo(fullName, baseBranch);
4559
- }, "g6", $scope2_id),
4559
+ }, "i6", $scope2_id),
4560
4560
  onError: _resume(function(message) {
4561
4561
  error = message;
4562
- }, "g7", $scope2_id),
4562
+ }, "i7", $scope2_id),
4563
4563
  refreshingChange: _resume(function(v) {
4564
4564
  catalogRefreshing = v;
4565
- }, "g8", $scope2_id)
4565
+ }, "i8", $scope2_id)
4566
4566
  });
4567
- _var($scope2_id, "h", $childScope, "g12");
4567
+ _var($scope2_id, "h", $childScope, "i12");
4568
4568
  _html("</section>");
4569
4569
  _if(() => {
4570
4570
  if (busy && steps.length) {
@@ -4593,7 +4593,7 @@ var new_workspace_default = _template("g", (input) => {
4593
4593
  return 0;
4594
4594
  }
4595
4595
  }, $scope2_id, "i", 1, 1, 1, 0, 1);
4596
- _script($scope2_id, "g13");
4596
+ _script($scope2_id, "i13");
4597
4597
  _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, {
4598
4598
  j: refreshCatalog,
4599
4599
  _: _scope_with_id($scope0_id),
@@ -4604,7 +4604,7 @@ var new_workspace_default = _template("g", (input) => {
4604
4604
  _resume_branch($scope2_id);
4605
4605
  })
4606
4606
  });
4607
- _script($scope0_id, "g16");
4607
+ _script($scope0_id, "i16");
4608
4608
  writeScope($scope0_id, {
4609
4609
  d: input.onCreate,
4610
4610
  e: input.onCancel,
@@ -4678,7 +4678,7 @@ function diffUncommitted() {
4678
4678
  }
4679
4679
  //#endregion
4680
4680
  //#region src/tags/icons/icon-edit.marko
4681
- var icon_edit_default = _template("w", (input) => {
4681
+ var icon_edit_default = _template("y", (input) => {
4682
4682
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
4683
4683
  const $scope0_id = _scope_id();
4684
4684
  _set_serialize_reason({
@@ -4703,7 +4703,7 @@ var $class$2 = [
4703
4703
  "\"chip pr rejected\"",
4704
4704
  "\"chip pr draft rejected\""
4705
4705
  ];
4706
- var side_nav_item_default = _template("k", (input) => {
4706
+ var side_nav_item_default = _template("m", (input) => {
4707
4707
  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);
4708
4708
  const $scope0_id = _scope_id();
4709
4709
  const $input_current__closures = /* @__PURE__ */ new Set();
@@ -4726,7 +4726,7 @@ var side_nav_item_default = _template("k", (input) => {
4726
4726
  armedKill = null;
4727
4727
  armedPid = null;
4728
4728
  }, 3500);
4729
- }, "k0", $scope0_id);
4729
+ }, "m0", $scope0_id);
4730
4730
  const ws = input.workspaces.find((w) => w.id === input.workspaceId);
4731
4731
  _if(() => {
4732
4732
  if (ws) {
@@ -4739,7 +4739,7 @@ var side_nav_item_default = _template("k", (input) => {
4739
4739
  if (input.rail) {
4740
4740
  const $scope2_id = _scope_id();
4741
4741
  _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")}`);
4742
- _script($scope2_id, "k2");
4742
+ _script($scope2_id, "m2");
4743
4743
  _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) }))));
4744
4744
  return 0;
4745
4745
  } else {
@@ -4751,7 +4751,7 @@ var side_nav_item_default = _template("k", (input) => {
4751
4751
  _html("<button class=\"row-icon new-sess\" title=\"Review changes\">");
4752
4752
  icon_diff_default({ size: 12 });
4753
4753
  _html(`</button>${_el_resume($scope4_id, "a")}`);
4754
- _script($scope4_id, "k3");
4754
+ _script($scope4_id, "m3");
4755
4755
  writeScope($scope4_id, { _: _scope_with_id($scope3_id) });
4756
4756
  return 0;
4757
4757
  }
@@ -4782,14 +4782,14 @@ var side_nav_item_default = _template("k", (input) => {
4782
4782
  size: 14
4783
4783
  });
4784
4784
  _html(`${_sep($sg__input_agents)}${_escape(agent)}${_el_resume($scope6_id, "c", $sg__input_agents)}</button>${_el_resume($scope6_id, "a")}`);
4785
- _script($scope6_id, "k4");
4785
+ _script($scope6_id, "m4");
4786
4786
  writeScope($scope6_id, {
4787
4787
  e: agent,
4788
4788
  _: _scope_with_id($scope5_id),
4789
4789
  b: $si__input_agents && _existing_scope($childScope)
4790
4790
  });
4791
4791
  }, (a) => a, $scope5_id, "c", $sg__input_agents, 1, $sg__input_agents, "</div>", 1);
4792
- _script($scope5_id, "k5");
4792
+ _script($scope5_id, "m5");
4793
4793
  _subscribe($si__input_agents && $input_agents__closures, writeScope($scope5_id, { _: _scope_with_id($scope3_id) }));
4794
4794
  return 0;
4795
4795
  }
@@ -4812,7 +4812,7 @@ var side_nav_item_default = _template("k", (input) => {
4812
4812
  _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">`);
4813
4813
  icon_edit_default({ size: 12 });
4814
4814
  _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))}`);
4815
- _script($scope7_id, "k6");
4815
+ _script($scope7_id, "m6");
4816
4816
  _subscribe($armedKill__closures, _subscribe($si__input_currentTab && $input_currentTab__closures, writeScope($scope7_id, {
4817
4817
  j: s,
4818
4818
  k: s?.id,
@@ -4829,14 +4829,14 @@ var side_nav_item_default = _template("k", (input) => {
4829
4829
  if (repos.length < 2) return "";
4830
4830
  const name = repo.full_name.split("/")[1];
4831
4831
  return repos.some((r) => r.full_name !== repo.full_name && r.full_name.split("/")[1] === name) ? repo.full_name : name;
4832
- }, "k1", $scope8_id);
4832
+ }, "m1", $scope8_id);
4833
4833
  _html("<div class=side-chips>");
4834
4834
  _for_of(st?.repos || [], (repo) => {
4835
4835
  const $scope9_id = _scope_id();
4836
4836
  _for_of(repo.prs || [], (pr) => {
4837
4837
  const $scope10_id = _scope_id();
4838
4838
  _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")}`);
4839
- _script($scope10_id, "k7");
4839
+ _script($scope10_id, "m7");
4840
4840
  _subscribe($si__input_workspaceId__OR__input_status && $if_content5__repoLabel__closures, writeScope($scope10_id, {
4841
4841
  l: pr?.number,
4842
4842
  _: _scope_with_id($scope9_id)
@@ -4851,7 +4851,7 @@ var side_nav_item_default = _template("k", (input) => {
4851
4851
  _for_of(st?.ports || [], (p) => {
4852
4852
  const $scope11_id = _scope_id();
4853
4853
  _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)}`);
4854
- _script($scope11_id, "k8");
4854
+ _script($scope11_id, "m8");
4855
4855
  _subscribe($armedPid__closures, writeScope($scope11_id, {
4856
4856
  g: p?.cmd,
4857
4857
  h: p?.port,
@@ -4869,7 +4869,7 @@ var side_nav_item_default = _template("k", (input) => {
4869
4869
  }
4870
4870
  }, $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);
4871
4871
  _html(`</div></section>${_el_resume($scope3_id, "a", _serialize_guard($scope0_reason, 12))}`);
4872
- _script($scope3_id, "k9");
4872
+ _script($scope3_id, "m9");
4873
4873
  _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, {
4874
4874
  _: _scope_with_id($scope1_id),
4875
4875
  Ca5: $si__input_current && 1,
@@ -4927,7 +4927,7 @@ var side_nav_item_default = _template("k", (input) => {
4927
4927
  });
4928
4928
  //#endregion
4929
4929
  //#region src/tags/icons/icon-sidebar-collapse.marko
4930
- var icon_sidebar_collapse_default = _template("E", (input) => {
4930
+ var icon_sidebar_collapse_default = _template("G", (input) => {
4931
4931
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
4932
4932
  const $scope0_id = _scope_id();
4933
4933
  _set_serialize_reason({
@@ -4944,7 +4944,7 @@ var icon_sidebar_collapse_default = _template("E", (input) => {
4944
4944
  });
4945
4945
  //#endregion
4946
4946
  //#region src/tags/icons/icon-sidebar.marko
4947
- var icon_sidebar_default = _template("F", (input) => {
4947
+ var icon_sidebar_default = _template("H", (input) => {
4948
4948
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
4949
4949
  const $scope0_id = _scope_id();
4950
4950
  _set_serialize_reason({
@@ -4961,7 +4961,7 @@ var icon_sidebar_default = _template("F", (input) => {
4961
4961
  });
4962
4962
  //#endregion
4963
4963
  //#region src/tags/icons/icon-bell.marko
4964
- var icon_bell_default = _template("s", (input) => {
4964
+ var icon_bell_default = _template("u", (input) => {
4965
4965
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
4966
4966
  const $scope0_id = _scope_id();
4967
4967
  _set_serialize_reason({
@@ -4978,7 +4978,7 @@ var icon_bell_default = _template("s", (input) => {
4978
4978
  });
4979
4979
  //#endregion
4980
4980
  //#region src/tags/icons/icon-gauge.marko
4981
- var icon_gauge_default = _template("y", (input) => {
4981
+ var icon_gauge_default = _template("A", (input) => {
4982
4982
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
4983
4983
  const $scope0_id = _scope_id();
4984
4984
  _set_serialize_reason({
@@ -4995,7 +4995,7 @@ var icon_gauge_default = _template("y", (input) => {
4995
4995
  });
4996
4996
  //#endregion
4997
4997
  //#region src/tags/icons/icon-folder-plus.marko
4998
- var icon_folder_plus_default = _template("x", (input) => {
4998
+ var icon_folder_plus_default = _template("z", (input) => {
4999
4999
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5000
5000
  const $scope0_id = _scope_id();
5001
5001
  _set_serialize_reason({
@@ -5022,7 +5022,7 @@ var $class$1 = [
5022
5022
  "\"side-nav open\"",
5023
5023
  "\"side-nav closed open\""
5024
5024
  ];
5025
- var side_nav_default = _template("l", (input) => {
5025
+ var side_nav_default = _template("n", (input) => {
5026
5026
  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);
5027
5027
  const $scope0_id = _scope_id();
5028
5028
  const $ws_id__closures = /* @__PURE__ */ new Set();
@@ -5056,7 +5056,7 @@ var side_nav_default = _template("l", (input) => {
5056
5056
  notifyOn = false;
5057
5057
  input.onError?.(`Notifications failed: ${String(err.message || err)}`);
5058
5058
  }
5059
- }, "l0", $scope0_id);
5059
+ }, "n0", $scope0_id);
5060
5060
  const itemIds = input.allWorkspaces?.length ? input.allWorkspaces.filter((w) => w.status === "active").map((w) => w.id) : [ws.id];
5061
5061
  const workspaces = input.allWorkspaces || [ws];
5062
5062
  const allStatus = input.allStatus || {};
@@ -5065,7 +5065,7 @@ var side_nav_default = _template("l", (input) => {
5065
5065
  if (drawerOpen) {
5066
5066
  const $scope5_id = _scope_id();
5067
5067
  _html(`<div class=drawer-backdrop></div>${_el_resume($scope5_id, "a")}`);
5068
- _script($scope5_id, "l16");
5068
+ _script($scope5_id, "n16");
5069
5069
  writeScope($scope5_id, {});
5070
5070
  return 0;
5071
5071
  }
@@ -5103,16 +5103,16 @@ var side_nav_default = _template("l", (input) => {
5103
5103
  drawerOpen = false;
5104
5104
  input.onSelectWorkspace?.(wsId);
5105
5105
  }
5106
- }, "l1", $scope1_id),
5106
+ }, "n1", $scope1_id),
5107
5107
  onManage: _resume(function() {
5108
5108
  drawerOpen = false;
5109
5109
  input.onManage?.(wsId);
5110
- }, "l2", $scope1_id),
5110
+ }, "n2", $scope1_id),
5111
5111
  agents: input.agents,
5112
5112
  onNewSession: _resume(function(agent) {
5113
5113
  drawerOpen = false;
5114
5114
  input.onNewSession(wsId, agent);
5115
- }, "l3", $scope1_id),
5115
+ }, "n3", $scope1_id),
5116
5116
  onReview: _resume(function() {
5117
5117
  drawerOpen = false;
5118
5118
  if (wsId === ws.id) {
@@ -5122,7 +5122,7 @@ var side_nav_default = _template("l", (input) => {
5122
5122
  navIntent$1.requestDiff(wsId);
5123
5123
  input.onSelectWorkspace?.(wsId);
5124
5124
  }
5125
- }, "l4", $scope1_id),
5125
+ }, "n4", $scope1_id),
5126
5126
  onReviewPr: _resume(function(worktree, number) {
5127
5127
  drawerOpen = false;
5128
5128
  const pr = `${worktree}/${number}`;
@@ -5133,7 +5133,7 @@ var side_nav_default = _template("l", (input) => {
5133
5133
  navIntent$1.requestDiff(wsId, pr);
5134
5134
  input.onSelectWorkspace?.(wsId);
5135
5135
  }
5136
- }, "l5", $scope1_id),
5136
+ }, "n5", $scope1_id),
5137
5137
  sessions: wsId === ws.id && input.sessions ? input.sessions : allStatus[wsId]?.sessions || [],
5138
5138
  currentTab: wsId === ws.id && view === "term" ? tab : null,
5139
5139
  onOpenTab: _resume(function(sessionId) {
@@ -5142,7 +5142,7 @@ var side_nav_default = _template("l", (input) => {
5142
5142
  tab = sessionId;
5143
5143
  view = "term";
5144
5144
  } else input.onOpenSession?.(wsId, sessionId);
5145
- }, "l6", $scope1_id),
5145
+ }, "n6", $scope1_id),
5146
5146
  onRenameSession: input.onRenameSession,
5147
5147
  onCloseSession: input.onCloseSession
5148
5148
  });
@@ -5157,13 +5157,13 @@ var side_nav_default = _template("l", (input) => {
5157
5157
  const $scope2_id = _scope_id();
5158
5158
  let railHover = null;
5159
5159
  const railHoverBox = { timer: 0 };
5160
- const railKeep = _resume(() => clearTimeout(railHoverBox.timer), "l7", $scope2_id);
5160
+ const railKeep = _resume(() => clearTimeout(railHoverBox.timer), "n7", $scope2_id);
5161
5161
  const railHide = _resume(() => {
5162
5162
  clearTimeout(railHoverBox.timer);
5163
5163
  railHoverBox.timer = setTimeout(() => {
5164
5164
  railHover = null;
5165
5165
  }, 150);
5166
- }, "l8", $scope2_id);
5166
+ }, "n8", $scope2_id);
5167
5167
  _html("<div class=side-rail>");
5168
5168
  _for_of(itemIds, (wsId, i) => {
5169
5169
  const $scope3_id = _scope_id();
@@ -5192,10 +5192,10 @@ var side_nav_default = _template("l", (input) => {
5192
5192
  current: wsId === ws.id,
5193
5193
  onSelect: _resume(function() {
5194
5194
  if (wsId !== ws.id) input.onSelectWorkspace?.(wsId);
5195
- }, "l9", $scope3_id)
5195
+ }, "n9", $scope3_id)
5196
5196
  });
5197
5197
  _html(`</span>${_el_resume($scope3_id, "a")}`);
5198
- _script($scope3_id, "l17");
5198
+ _script($scope3_id, "n17");
5199
5199
  _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, {
5200
5200
  d: wsId,
5201
5201
  _: _scope_with_id($scope2_id),
@@ -5235,16 +5235,16 @@ var side_nav_default = _template("l", (input) => {
5235
5235
  onSelect: _resume(function() {
5236
5236
  railHover = null;
5237
5237
  if (hoverId !== ws.id) input.onSelectWorkspace?.(hoverId);
5238
- }, "l10", $scope4_id),
5238
+ }, "n10", $scope4_id),
5239
5239
  onManage: _resume(function() {
5240
5240
  railHover = null;
5241
5241
  input.onManage?.(hoverId);
5242
- }, "l11", $scope4_id),
5242
+ }, "n11", $scope4_id),
5243
5243
  agents: input.agents,
5244
5244
  onNewSession: _resume(function(agent) {
5245
5245
  railHover = null;
5246
5246
  input.onNewSession(hoverId, agent);
5247
- }, "l12", $scope4_id),
5247
+ }, "n12", $scope4_id),
5248
5248
  onReview: _resume(function() {
5249
5249
  railHover = null;
5250
5250
  if (hoverId === ws.id) {
@@ -5254,7 +5254,7 @@ var side_nav_default = _template("l", (input) => {
5254
5254
  navIntent$1.requestDiff(hoverId);
5255
5255
  input.onSelectWorkspace?.(hoverId);
5256
5256
  }
5257
- }, "l13", $scope4_id),
5257
+ }, "n13", $scope4_id),
5258
5258
  onReviewPr: _resume(function(worktree, number) {
5259
5259
  railHover = null;
5260
5260
  const pr = `${worktree}/${number}`;
@@ -5265,7 +5265,7 @@ var side_nav_default = _template("l", (input) => {
5265
5265
  navIntent$1.requestDiff(hoverId, pr);
5266
5266
  input.onSelectWorkspace?.(hoverId);
5267
5267
  }
5268
- }, "l14", $scope4_id),
5268
+ }, "n14", $scope4_id),
5269
5269
  sessions: hoverId === ws.id && input.sessions ? input.sessions : allStatus[hoverId]?.sessions || [],
5270
5270
  currentTab: hoverId === ws.id && view === "term" ? tab : null,
5271
5271
  onOpenTab: _resume(function(sessionId) {
@@ -5274,12 +5274,12 @@ var side_nav_default = _template("l", (input) => {
5274
5274
  tab = sessionId;
5275
5275
  view = "term";
5276
5276
  } else input.onOpenSession?.(hoverId, sessionId);
5277
- }, "l15", $scope4_id),
5277
+ }, "n15", $scope4_id),
5278
5278
  onRenameSession: input.onRenameSession,
5279
5279
  onCloseSession: input.onCloseSession
5280
5280
  });
5281
5281
  _html(`</div>${_el_resume($scope4_id, "a")}`);
5282
- _script($scope4_id, "l18");
5282
+ _script($scope4_id, "n18");
5283
5283
  _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, {
5284
5284
  c: hoverId,
5285
5285
  b: _existing_scope($childScope3),
@@ -5322,7 +5322,7 @@ var side_nav_default = _template("l", (input) => {
5322
5322
  _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\""}>`);
5323
5323
  icon_bell_default({ size: 15 });
5324
5324
  _html(`</button>${_el_resume($scope6_id, "a")}`);
5325
- _script($scope6_id, "l19");
5325
+ _script($scope6_id, "n19");
5326
5326
  writeScope($scope6_id, { _: _scope_with_id($scope0_id) });
5327
5327
  return 0;
5328
5328
  }
@@ -5332,8 +5332,8 @@ var side_nav_default = _template("l", (input) => {
5332
5332
  _html(`</button>${_el_resume($scope0_id, "g")}<button class=icon-btn title="New workspace">`);
5333
5333
  icon_folder_plus_default({ size: 16 });
5334
5334
  _html(`</button>${_el_resume($scope0_id, "i")}</div></aside>${_el_resume($scope0_id, "b")}`);
5335
- _script($scope0_id, "l20");
5336
- _script($scope0_id, "l21");
5335
+ _script($scope0_id, "n20");
5336
+ _script($scope0_id, "n21");
5337
5337
  writeScope($scope0_id, {
5338
5338
  n: _serialize_if($scope0_reason, 6) && input.tab,
5339
5339
  o: _serialize_if($scope0_reason, 5) && input.tabChange,
@@ -5513,7 +5513,7 @@ function treeRows(files) {
5513
5513
  }
5514
5514
  //#endregion
5515
5515
  //#region src/tags/icons/icon-back.marko
5516
- var icon_back_default = _template("q", (input) => {
5516
+ var icon_back_default = _template("s", (input) => {
5517
5517
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5518
5518
  const $scope0_id = _scope_id();
5519
5519
  _set_serialize_reason({
@@ -5528,6 +5528,44 @@ var icon_back_default = _template("q", (input) => {
5528
5528
  });
5529
5529
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
5530
5530
  });
5531
+ //#endregion
5532
+ //#region src/tags/file-filter.marko
5533
+ var file_filter_default = _template("f", (input) => {
5534
+ _scope_reason();
5535
+ const $scope0_id = _scope_id();
5536
+ let draft = input.value || "";
5537
+ const box = { timer: 0 };
5538
+ const flush = _resume(() => {
5539
+ if (box.timer) {
5540
+ clearTimeout(box.timer);
5541
+ box.timer = 0;
5542
+ }
5543
+ input.onChange(draft);
5544
+ }, "f1", $scope0_id);
5545
+ const type = _resume((v) => {
5546
+ draft = v;
5547
+ if (box.timer) clearTimeout(box.timer);
5548
+ if (!v) {
5549
+ box.timer = 0;
5550
+ input.onChange("");
5551
+ return;
5552
+ }
5553
+ box.timer = setTimeout(flush, 150);
5554
+ }, "f2", $scope0_id);
5555
+ _html(`<div class=wrap><input${_attr_input_value($scope0_id, "a", draft, _resume(function(v) {
5556
+ type(v);
5557
+ }, "f0", $scope0_id))} class=file-filter type=search placeholder="Filter files… (globs, !excludes)" aria-label="Filter files">${_el_resume($scope0_id, "a")}</div>`);
5558
+ _script($scope0_id, "f3");
5559
+ _script($scope0_id, "f4");
5560
+ writeScope($scope0_id, {
5561
+ e: input.onChange,
5562
+ f: draft,
5563
+ h: box.timer,
5564
+ j: flush,
5565
+ l: type
5566
+ });
5567
+ _resume_branch($scope0_id);
5568
+ });
5531
5569
  _template("c", (input) => {
5532
5570
  _scope_reason();
5533
5571
  const $scope0_id = _scope_id();
@@ -5547,18 +5585,94 @@ _template("c", (input) => {
5547
5585
  _resume_branch($scope0_id);
5548
5586
  });
5549
5587
  //#endregion
5588
+ //#region src/tags/diff-find.marko
5589
+ var searchDiffFiles;
5590
+ var setSearchPaint;
5591
+ var diff_find_default = _template("d", (input) => {
5592
+ _scope_reason();
5593
+ const $scope0_id = _scope_id();
5594
+ let query = "";
5595
+ let hi = 0;
5596
+ const hits = searchDiffFiles(input.files, query);
5597
+ const at = hits.length ? Math.min(hi, hits.length - 1) : -1;
5598
+ const box = {
5599
+ timer: 0,
5600
+ tick: 0
5601
+ };
5602
+ const emit = _resume((q, i) => {
5603
+ const list = searchDiffFiles(input.files, q);
5604
+ const keys = [...new Set(list.map((h) => h.key))];
5605
+ if (!list.length) {
5606
+ hi = 0;
5607
+ setSearchPaint(q, null);
5608
+ input.onState({
5609
+ query: q,
5610
+ hit: null,
5611
+ keys
5612
+ });
5613
+ return;
5614
+ }
5615
+ hi = (i % list.length + list.length) % list.length;
5616
+ const hit = list[hi];
5617
+ setSearchPaint(q, hit);
5618
+ input.onState({
5619
+ query: q,
5620
+ hit,
5621
+ keys
5622
+ });
5623
+ }, "d1", $scope0_id);
5624
+ const type = _resume((v) => {
5625
+ query = v;
5626
+ hi = 0;
5627
+ setSearchPaint(v, searchDiffFiles(input.files, v)[0] ?? null);
5628
+ if (box.timer) clearTimeout(box.timer);
5629
+ box.timer = setTimeout(() => {
5630
+ box.timer = 0;
5631
+ emit(v, 0);
5632
+ }, 80);
5633
+ }, "d2", $scope0_id);
5634
+ const next = _resume((dir) => {
5635
+ if (box.timer) {
5636
+ clearTimeout(box.timer);
5637
+ box.timer = 0;
5638
+ }
5639
+ emit(query, (at < 0 ? 0 : at) + dir);
5640
+ }, "d3", $scope0_id);
5641
+ _html(`<div class=find-bar><input${_attr_input_value($scope0_id, "a", query, _resume(function(v) {
5642
+ type(v);
5643
+ }, "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>`);
5644
+ _script($scope0_id, "d4");
5645
+ _script($scope0_id, "d5");
5646
+ writeScope($scope0_id, {
5647
+ h: input.files,
5648
+ i: input.onState,
5649
+ j: input.onClose,
5650
+ k: input.tick,
5651
+ l: query,
5652
+ n: hi,
5653
+ q: hits?.length,
5654
+ s: at,
5655
+ v: box.timer,
5656
+ w: box.tick,
5657
+ x: emit,
5658
+ a0: type,
5659
+ a2: next
5660
+ });
5661
+ _resume_branch($scope0_id);
5662
+ });
5663
+ //#endregion
5550
5664
  //#region src/tags/diff-view.marko
5551
5665
  var api$3;
5552
5666
  var copyText;
5553
5667
  var getTermDims;
5554
5668
  var makeFileFilter;
5555
- var diff_view_default = _template("d", (input) => {
5669
+ var diff_view_default = _template("e", (input) => {
5556
5670
  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);
5557
5671
  const $scope0_id = _scope_id();
5558
5672
  const $collapsedDirs__closures = /* @__PURE__ */ new Set();
5559
5673
  const $viewed__closures = /* @__PURE__ */ new Set();
5560
5674
  const $commentsByFile__closures = /* @__PURE__ */ new Set();
5561
- const $filesByRepo__closures = /* @__PURE__ */ new Set();
5675
+ const $shownByRepo__closures = /* @__PURE__ */ new Set();
5562
5676
  const $input_sessions_0_title__closures = /* @__PURE__ */ new Set();
5563
5677
  const $input_sessions_0_agent__closures = /* @__PURE__ */ new Set();
5564
5678
  const $sending__closures = /* @__PURE__ */ new Set();
@@ -5568,7 +5682,9 @@ var diff_view_default = _template("d", (input) => {
5568
5682
  const $draft__closures = /* @__PURE__ */ new Set();
5569
5683
  const $saveComment2__closures = /* @__PURE__ */ new Set();
5570
5684
  const $removeComment2__closures = /* @__PURE__ */ new Set();
5685
+ const $shownKeySet__closures = /* @__PURE__ */ new Set();
5571
5686
  const $toggleViewed2__closures = /* @__PURE__ */ new Set();
5687
+ const $findState_hit_repo__closures = /* @__PURE__ */ new Set();
5572
5688
  const $repoList_length__closures = /* @__PURE__ */ new Set();
5573
5689
  let repos = null;
5574
5690
  let comments = [];
@@ -5582,13 +5698,21 @@ var diff_view_default = _template("d", (input) => {
5582
5698
  let fileFilter = "";
5583
5699
  let uncommitted = diffUncommitted();
5584
5700
  let treeOpen = diffTreeOpen();
5701
+ let findOpen = false;
5702
+ let findTick = 0;
5703
+ let findState = {
5704
+ query: "",
5705
+ hit: null,
5706
+ keys: []
5707
+ };
5585
5708
  let collapsedDirs = /* @__PURE__ */ new Set();
5586
5709
  let collapsedRepos = /* @__PURE__ */ new Set();
5710
+ let dismissedDrift = /* @__PURE__ */ new Set();
5587
5711
  const toggleRepo = _resume((worktree) => {
5588
5712
  const next = new Set(collapsedRepos);
5589
5713
  if (!next.delete(worktree)) next.add(worktree);
5590
5714
  collapsedRepos = next;
5591
- }, "d3", $scope0_id);
5715
+ }, "e2", $scope0_id);
5592
5716
  const nearBox = {
5593
5717
  io: null,
5594
5718
  cbs: null
@@ -5603,14 +5727,15 @@ var diff_view_default = _template("d", (input) => {
5603
5727
  }, { rootMargin: "600px 0px" });
5604
5728
  nearBox.cbs.set(el, cb);
5605
5729
  nearBox.io.observe(el);
5606
- }, "d4", $scope0_id);
5607
- const load = _resume(async (dirty = uncommitted) => {
5730
+ }, "e3", $scope0_id);
5731
+ const load = _resume(async (dirty = uncommitted, refresh = false) => {
5608
5732
  loading = true;
5609
5733
  error = null;
5610
5734
  try {
5611
5735
  const q = new URLSearchParams();
5612
5736
  if (dirty) q.set("uncommitted", "1");
5613
5737
  if (input.focusPr) q.set("pr", input.focusPr);
5738
+ if (refresh) q.set("refresh", "1");
5614
5739
  const qs = q.size ? `?${q}` : "";
5615
5740
  const [diffData, reviewData] = await Promise.all([api$3(`/api/workspaces/${input.workspaceId}/diff${qs}`), api$3(`/api/workspaces/${input.workspaceId}/review`)]);
5616
5741
  repos = diffData;
@@ -5620,14 +5745,14 @@ var diff_view_default = _template("d", (input) => {
5620
5745
  error = String(err.message || err);
5621
5746
  }
5622
5747
  loading = false;
5623
- }, "d5", $scope0_id);
5748
+ }, "e4", $scope0_id);
5624
5749
  const loadReview = _resume(async () => {
5625
5750
  try {
5626
5751
  const reviewData = await api$3(`/api/workspaces/${input.workspaceId}/review`);
5627
5752
  comments = reviewData.comments || [];
5628
5753
  viewed = new Set(reviewData.viewed || []);
5629
5754
  } catch {}
5630
- }, "d6", $scope0_id);
5755
+ }, "e5", $scope0_id);
5631
5756
  const repoList = repos || [];
5632
5757
  const allFiles = repoList.flatMap((r) => r.files.map((f) => ({
5633
5758
  ...f,
@@ -5635,8 +5760,12 @@ var diff_view_default = _template("d", (input) => {
5635
5760
  key: `${r.worktree}/${f.path}`
5636
5761
  })));
5637
5762
  const fileMatch = makeFileFilter(fileFilter);
5638
- const shownFiles = allFiles.filter((f) => fileMatch(f.key));
5639
- const filesByRepo = new Map(repoList.map((r) => [r.id, shownFiles.filter((f) => f.repo === r.id)]));
5763
+ const fileFiltered = allFiles.filter((f) => fileMatch(f.key));
5764
+ const findKeys = findState.query.trim() ? new Set(findState.keys) : null;
5765
+ const shownFiles = findKeys ? fileFiltered.filter((f) => findKeys.has(f.key) || f.key === findState.hit?.key) : fileFiltered;
5766
+ const shownKeySet = new Set(shownFiles.map((f) => f.key));
5767
+ const filesByRepo = new Map(repoList.map((r) => [r.id, allFiles.filter((f) => f.repo === r.id)]));
5768
+ const shownByRepo = new Map(repoList.map((r) => [r.id, shownFiles.filter((f) => f.repo === r.id)]));
5640
5769
  const commentsByFile = (() => {
5641
5770
  const map = /* @__PURE__ */ new Map();
5642
5771
  for (const c of comments) {
@@ -5646,7 +5775,15 @@ var diff_view_default = _template("d", (input) => {
5646
5775
  return map;
5647
5776
  })();
5648
5777
  const sendPick = (input.sessions || []).some((s) => s.id === sendTarget) ? sendTarget : input.sessions?.[0]?.id ?? null;
5649
- const localDiffers = _resume((repo) => !!repo.pr && !!repo.localHead && (repo.localHead !== repo.head || repo.branch !== repo.pr.headRefName), "d7");
5778
+ const localDiffers = _resume((repo) => !!repo.pr && !!repo.localHead && (repo.localHead !== repo.head || repo.branch !== repo.pr.headRefName), "e6");
5779
+ const driftRepos = repoList.filter((r) => r.githubDrift && !dismissedDrift.has(r.id));
5780
+ const dismissDrift = _resume(() => {
5781
+ dismissedDrift = /* @__PURE__ */ new Set([...dismissedDrift, ...driftRepos.map((r) => r.id)]);
5782
+ }, "e7", $scope0_id);
5783
+ const reload = _resume(() => {
5784
+ dismissedDrift = /* @__PURE__ */ new Set();
5785
+ return load(uncommitted, true);
5786
+ }, "e8", $scope0_id);
5650
5787
  const toggleViewed = _resume((key) => {
5651
5788
  const next = new Set(viewed);
5652
5789
  const isViewed = !next.has(key);
@@ -5664,7 +5801,7 @@ var diff_view_default = _template("d", (input) => {
5664
5801
  }).catch(() => {
5665
5802
  error = "Saving viewed state failed — it may reset on reload.";
5666
5803
  });
5667
- }, "d8", $scope0_id);
5804
+ }, "e9", $scope0_id);
5668
5805
  const saveComment = _resume(async (file, text) => {
5669
5806
  const range = draft;
5670
5807
  draft = null;
@@ -5686,11 +5823,11 @@ var diff_view_default = _template("d", (input) => {
5686
5823
  } catch (err) {
5687
5824
  error = String(err.message || err);
5688
5825
  }
5689
- }, "d9", $scope0_id);
5826
+ }, "e10", $scope0_id);
5690
5827
  const removeComment = _resume(async (id) => {
5691
5828
  comments = comments.filter((c) => c.id !== id);
5692
5829
  await fetch(`/api/review-comments/${id}`, { method: "DELETE" });
5693
- }, "d10", $scope0_id);
5830
+ }, "e11", $scope0_id);
5694
5831
  const clearComments = _resume(async () => {
5695
5832
  comments = [];
5696
5833
  draft = null;
@@ -5699,7 +5836,7 @@ var diff_view_default = _template("d", (input) => {
5699
5836
  headers: { "content-type": "application/json" },
5700
5837
  body: JSON.stringify({ action: "clear" })
5701
5838
  });
5702
- }, "d11", $scope0_id);
5839
+ }, "e12", $scope0_id);
5703
5840
  const copyMarkdown = _resume(async () => {
5704
5841
  if (!await copyText(commentMarkdown(comments, repos))) {
5705
5842
  error = "Copy failed — clipboard needs HTTPS on this browser.";
@@ -5710,7 +5847,7 @@ var diff_view_default = _template("d", (input) => {
5710
5847
  copied = false;
5711
5848
  }, 1500);
5712
5849
  await clearComments();
5713
- }, "d12", $scope0_id);
5850
+ }, "e13", $scope0_id);
5714
5851
  const sendTo = _resume(async (sessionId) => {
5715
5852
  if (!sessionId) return;
5716
5853
  sending = true;
@@ -5730,25 +5867,33 @@ var diff_view_default = _template("d", (input) => {
5730
5867
  error = String(err.message || err);
5731
5868
  sending = false;
5732
5869
  }
5733
- }, "d13", $scope0_id);
5870
+ }, "e14", $scope0_id);
5734
5871
  const jumpTo = _resume((key) => {
5735
5872
  const el = ((scrollEl) => scrollEl())(_el_read_error).querySelector(`details[data-key="${CSS.escape(key)}"]`);
5736
5873
  if (el) {
5737
5874
  el.open = true;
5738
5875
  el.scrollIntoView({ block: "start" });
5739
5876
  }
5740
- }, "d14", $scope0_id);
5877
+ }, "e15", $scope0_id);
5878
+ const openFind = _resume(() => {
5879
+ findOpen = true;
5880
+ findTick++;
5881
+ }, "e16", $scope0_id);
5882
+ const onFindState = _resume((next) => {
5883
+ findState = next;
5884
+ if (next.hit) setTimeout(() => jumpTo(next.hit.key), 0);
5885
+ }, "e17", $scope0_id);
5741
5886
  _html(`<div class=diff-view><aside class=${!treeOpen ? "\"tree closed\"" : "tree"}>`);
5742
- _for_of(repoList.filter((r) => filesByRepo.get(r.id)?.length), (repo) => {
5887
+ _for_of(repoList.filter((r) => shownByRepo.get(r.id)?.length), (repo) => {
5743
5888
  const $scope5_id = _scope_id();
5744
5889
  _html(`<div class=tree-repo><button class=${collapsedRepos.has(repo.id) ? "\"tree-repo-name mono closed\"" : "\"tree-repo-name mono\""}><span class=tree-chev>${collapsedRepos.has(repo.id) ? "▸" : "▾"}${_el_resume($scope5_id, "b")}</span><!>${repo.pr ? `${_escape(`${repo.worktree}`)} #${_escape(`${repo.pr.number}`)}` : _escape(repo.worktree)}${_el_resume($scope5_id, "c")}</button>${_el_resume($scope5_id, "a")}`);
5745
5890
  _if(() => {
5746
5891
  if (!collapsedRepos.has(repo.id)) {
5747
5892
  const $scope6_id = _scope_id();
5748
5893
  const $if_content4__dirKey__closures = /* @__PURE__ */ new Set();
5749
- const repoRows = treeRows(filesByRepo.get(repo.id) || []);
5750
- const dirKey = _resume((path) => `${repo.id}/${path}`, "d15", $scope6_id);
5751
- const rowDir = _resume((row) => row.kind === "dir" ? row.path : row.file.path.includes("/") ? row.file.path.slice(0, row.file.path.lastIndexOf("/")) : "", "d16");
5894
+ const repoRows = treeRows(shownByRepo.get(repo.id) || []);
5895
+ const dirKey = _resume((path) => `${repo.id}/${path}`, "e18", $scope6_id);
5896
+ const rowDir = _resume((row) => row.kind === "dir" ? row.path : row.file.path.includes("/") ? row.file.path.slice(0, row.file.path.lastIndexOf("/")) : "", "e19");
5752
5897
  const hiddenByCollapse = _resume((row) => {
5753
5898
  const dir = rowDir(row);
5754
5899
  for (const collapsed of collapsedDirs) {
@@ -5758,29 +5903,29 @@ var diff_view_default = _template("d", (input) => {
5758
5903
  if (dir === path || dir.startsWith(`${path}/`)) return true;
5759
5904
  }
5760
5905
  return false;
5761
- }, "d17", $scope6_id);
5906
+ }, "e20", $scope6_id);
5762
5907
  _for_of(repoRows, (row) => {
5763
5908
  const $scope7_id = _scope_id();
5764
5909
  _if(() => {
5765
5910
  if (!hiddenByCollapse(row) && row.kind === "dir") {
5766
- const $scope22_id = _scope_id();
5767
- _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($scope22_id, "b")}</span>${_escape(row.label)}${_el_resume($scope22_id, "c")}/</button>${_el_resume($scope22_id, "a")}`);
5768
- _script($scope22_id, "d23");
5769
- _subscribe($if_content4__dirKey__closures, _subscribe($collapsedDirs__closures, writeScope($scope22_id, { Cc7: 1 })));
5911
+ const $scope24_id = _scope_id();
5912
+ _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($scope24_id, "b")}</span>${_escape(row.label)}${_el_resume($scope24_id, "c")}/</button>${_el_resume($scope24_id, "a")}`);
5913
+ _script($scope24_id, "e29");
5914
+ _subscribe($if_content4__dirKey__closures, _subscribe($collapsedDirs__closures, writeScope($scope24_id, { Cd0: 1 })));
5770
5915
  return 0;
5771
5916
  } else if (!hiddenByCollapse(row) && row.kind !== "dir") {
5772
5917
  const $scope8_id = _scope_id();
5773
5918
  _html(`<button class=${viewed.has(row.file.key) ? "\"tree-file mono seen\"" : "\"tree-file mono\""}${_attr("title", row.file.path)}${_attr_style(`padding-left:${.5 + row.depth * .75}rem`)}><span${_attr_class(["status", row.file.status])}>${_escape(row.file.status)}${_el_resume($scope8_id, "c")}</span>${_el_resume($scope8_id, "b")}<span class=tree-file-name>${_escape(row.name)}${_el_resume($scope8_id, "d")}</span>`);
5774
5919
  _if(() => {
5775
5920
  if (commentsByFile.has(row.file.key)) {
5776
- const $scope27_id = _scope_id();
5921
+ const $scope29_id = _scope_id();
5777
5922
  _html("<span class=tree-note>💬</span>");
5778
- writeScope($scope27_id, {});
5923
+ writeScope($scope29_id, {});
5779
5924
  return 0;
5780
5925
  }
5781
5926
  }, $scope8_id, "e", 1, 1, 1, 0, 1);
5782
5927
  _html(`</button>${_el_resume($scope8_id, "a")}`);
5783
- _script($scope8_id, "d24");
5928
+ _script($scope8_id, "e30");
5784
5929
  _subscribe($commentsByFile__closures, _subscribe($viewed__closures, writeScope($scope8_id, {})));
5785
5930
  return 1;
5786
5931
  }
@@ -5796,7 +5941,7 @@ var diff_view_default = _template("d", (input) => {
5796
5941
  l: row?.name
5797
5942
  });
5798
5943
  }, (r) => r.kind === "dir" ? `d:${r.path}` : r.file.key, $scope6_id, "a");
5799
- _subscribe($filesByRepo__closures, _subscribe($collapsedDirs__closures, writeScope($scope6_id, {
5944
+ _subscribe($shownByRepo__closures, _subscribe($collapsedDirs__closures, writeScope($scope6_id, {
5800
5945
  c: dirKey,
5801
5946
  d: rowDir,
5802
5947
  f: hiddenByCollapse,
@@ -5806,7 +5951,7 @@ var diff_view_default = _template("d", (input) => {
5806
5951
  }
5807
5952
  }, $scope5_id, "d");
5808
5953
  _html("</div>");
5809
- _script($scope5_id, "d25");
5954
+ _script($scope5_id, "e31");
5810
5955
  writeScope($scope5_id, { g: repo?.id });
5811
5956
  }, "id", $scope0_id, "a", 1, 1, 1, "</aside>", 1);
5812
5957
  _html("<div class=diff-col><div class=diff-head>");
@@ -5816,7 +5961,7 @@ var diff_view_default = _template("d", (input) => {
5816
5961
  _html("<button class=icon-btn title=\"Back to terminal\">");
5817
5962
  icon_back_default({ size: 14 });
5818
5963
  _html(`</button>${_el_resume($scope1_id, "a")}`);
5819
- _script($scope1_id, "d26");
5964
+ _script($scope1_id, "e32");
5820
5965
  writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
5821
5966
  return 0;
5822
5967
  }
@@ -5830,7 +5975,7 @@ var diff_view_default = _template("d", (input) => {
5830
5975
  if ((input.sessions || []).length === 1) {
5831
5976
  const $scope3_id = _scope_id();
5832
5977
  _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")}`);
5833
- _script($scope3_id, "d27");
5978
+ _script($scope3_id, "e33");
5834
5979
  _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) }))));
5835
5980
  return 0;
5836
5981
  } else if ((input.sessions || []).length) {
@@ -5838,33 +5983,33 @@ var diff_view_default = _template("d", (input) => {
5838
5983
  _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")}`);
5839
5984
  _attr_select_value($scope4_id, "c", sendTarget, _resume((_new_sendTarget) => {
5840
5985
  sendTarget = _new_sendTarget;
5841
- }, "d0", $scope4_id), () => {
5986
+ }, "e0", $scope4_id), () => {
5842
5987
  _html(`<select aria-label="Send comments to session"${_attr("disabled", sending)}>`);
5843
5988
  _for_of(input.sessions, (s) => {
5844
- const $scope28_id = _scope_id();
5845
- _html(`<option${_attr_option_value(s.id)}>${_escape(s.title || s.agent)}${_el_resume($scope28_id, "b", $sg__input_sessions)}</option>${_el_resume($scope28_id, "a", $sg__input_sessions)}`);
5846
- $si__input_sessions && writeScope($scope28_id, {});
5989
+ const $scope30_id = _scope_id();
5990
+ _html(`<option${_attr_option_value(s.id)}>${_escape(s.title || s.agent)}${_el_resume($scope30_id, "b", $sg__input_sessions)}</option>${_el_resume($scope30_id, "a", $sg__input_sessions)}`);
5991
+ $si__input_sessions && writeScope($scope30_id, {});
5847
5992
  }, "id", $scope4_id, "c", $sg__input_sessions, 1, $sg__input_sessions, "</select>", 1);
5848
5993
  });
5849
5994
  _html("</span>");
5850
- _script($scope4_id, "d28");
5995
+ _script($scope4_id, "e34");
5851
5996
  _subscribe($sendTarget__closures, _subscribe($sending__closures, _subscribe($si__input_sessions && $input_sessions__closures, writeScope($scope4_id, {
5852
5997
  _: _scope_with_id($scope2_id),
5853
- Cc3: 1
5998
+ Cct: 1
5854
5999
  }))));
5855
6000
  return 1;
5856
6001
  }
5857
6002
  }, $scope2_id, "c", $sg__input_sessions, $sg__input_sessions, $sg__input_sessions, 0, 1);
5858
- _script($scope2_id, "d29");
6003
+ _script($scope2_id, "e35");
5859
6004
  writeScope($scope2_id, {});
5860
6005
  return 0;
5861
6006
  }
5862
6007
  }, $scope0_id, "g", 1, 1, 1, "</span>");
5863
6008
  _if(() => {
5864
6009
  if (loading) {
5865
- const $scope29_id = _scope_id();
6010
+ const $scope31_id = _scope_id();
5866
6011
  _html("<span class=\"refresh-chip dim\"><span class=spin></span>Refreshing…</span>");
5867
- writeScope($scope29_id, {});
6012
+ writeScope($scope31_id, {});
5868
6013
  return 0;
5869
6014
  }
5870
6015
  }, $scope0_id, "h", 1, 1, 1, 0, 1);
@@ -5872,59 +6017,75 @@ var diff_view_default = _template("d", (input) => {
5872
6017
  icon_sidebar_default({ size: 14 });
5873
6018
  _html(`</button>${_el_resume($scope0_id, "i")}<button class=${loading ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh diff"${_attr("disabled", loading)}>`);
5874
6019
  icon_refresh_default({ size: 14 });
5875
- _html(`</button>${_el_resume($scope0_id, "k")}<button class="btn files-btn" title="Jump to file">Files (<!>${_escape(shownFiles.length)}${_el_resume($scope0_id, "n")})</button>${_el_resume($scope0_id, "m")}<input${_attr_input_value($scope0_id, "o", fileFilter, _resume((_new_fileFilter) => {
5876
- fileFilter = _new_fileFilter;
5877
- }, "d1", $scope0_id))} class=file-filter placeholder="Filter files… (globs, !excludes)" aria-label="Filter files">${_el_resume($scope0_id, "o")}<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></div><div class=diff-main>`);
6020
+ _html(`</button>${_el_resume($scope0_id, "k")}<button class="btn files-btn" title="Jump to file">Files (<!>${_escape(shownFiles.length)}${_el_resume($scope0_id, "n")})</button>${_el_resume($scope0_id, "m")}`);
6021
+ const $childScope = _peek_scope_id();
6022
+ file_filter_default({
6023
+ value: fileFilter,
6024
+ onChange: _resume(function(q) {
6025
+ fileFilter = q;
6026
+ }, "e21", $scope0_id)
6027
+ });
6028
+ _html(`<button class=btn title="Find in the review (⌘/Ctrl+F)">Find</button>${_el_resume($scope0_id, "p")}<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, "q", uncommitted)} type=checkbox>${_el_resume($scope0_id, "q")} include uncommitted</label></div><div class=diff-main>`);
5878
6029
  _if(() => {
5879
6030
  if (error) {
5880
6031
  const $scope17_id = _scope_id();
5881
6032
  _html(`<p class=toast-error>${_escape(error)}${_el_resume($scope17_id, "a")} <button>×</button>${_el_resume($scope17_id, "b")}</p>`);
5882
- _script($scope17_id, "d30");
6033
+ _script($scope17_id, "e36");
5883
6034
  writeScope($scope17_id, {});
5884
6035
  return 0;
5885
6036
  }
5886
- }, $scope0_id, "r", 1, 1, 1, 0, 1);
6037
+ }, $scope0_id, "s", 1, 1, 1, 0, 1);
5887
6038
  _for_of(repoList.filter((r) => r.baseMissing), (repo) => {
5888
- const $scope19_id = _scope_id();
5889
- _html(`<p class=toast-error>${_escape(repo.worktree)}${_el_resume($scope19_id, "a")}: base <!>${_escape(repo.base)}${_el_resume($scope19_id, "b")} not found<!>${uncommitted ? " — showing uncommitted changes only" : ""}${_el_resume($scope19_id, "c")}.</p>`);
5890
- writeScope($scope19_id, {});
5891
- }, "id", $scope0_id, "s", 1, 1, 1, 0, 1);
5892
- _for_of(repoList.filter((r) => r.contained && r.files.length), (repo) => {
5893
6039
  const $scope20_id = _scope_id();
5894
- _html(`<p class=dim>${_escape(repo.worktree)}${_el_resume($scope20_id, "a")}<!>${repo.pr ? ` #${_escape(`${repo.pr.number}`)}` : ""}${_el_resume($scope20_id, "b")}: already in <!>${_escape(repo.base)}${_el_resume($scope20_id, "c")}<!>${uncommitted ? " — showing uncommitted changes only" : ""}${_el_resume($scope20_id, "d")}.</p>`);
6040
+ _html(`<p class=toast-error>${_escape(repo.worktree)}${_el_resume($scope20_id, "a")}: base <!>${_escape(repo.base)}${_el_resume($scope20_id, "b")} not found<!>${uncommitted ? " — showing uncommitted changes only" : ""}${_el_resume($scope20_id, "c")}.</p>`);
5895
6041
  writeScope($scope20_id, {});
5896
6042
  }, "id", $scope0_id, "t", 1, 1, 1, 0, 1);
5897
- _for_of(repoList.filter((r) => r.githubDrift), (repo) => {
5898
- const $scope30_id = _scope_id();
5899
- _html(`<p class=toast-error>${_escape(repo.worktree)}${_el_resume($scope30_id, "a")} #<!>${_escape(repo.pr.number)}${_el_resume($scope30_id, "b")}: origin/<!>${_escape(repo.pr.headRefName)}${_el_resume($scope30_id, "c")} is <!>${_escape(shortSha(repo.head))}${_el_resume($scope30_id, "d")}, GitHub last saw <!>${_escape(shortSha(repo.pr.headRefOid))}${_el_resume($scope30_id, "e")}.</p>`);
5900
- writeScope($scope30_id, {});
5901
- }, "id", $scope0_id, "u", 1, 1, 1, 0, 1);
5902
- _for_of(repoList.filter(localDiffers), (repo) => {
6043
+ _for_of(repoList.filter((r) => r.contained && r.files.length), (repo) => {
5903
6044
  const $scope21_id = _scope_id();
5904
- _html(`<p class=dim>${_escape(repo.worktree)}${_el_resume($scope21_id, "a")} #<!>${_escape(repo.pr.number)}${_el_resume($scope21_id, "b")}: this view is <!>${_escape(shortSha(repo.head))}${_el_resume($scope21_id, "c")} (<!>${_escape(repo.pr.headRefName)}${_el_resume($scope21_id, "d")}). Local is <!>${_escape(shortSha(repo.localHead))}${_el_resume($scope21_id, "e")} (<!>${_escape(repo.branch)}${_el_resume($scope21_id, "f")}<!>${uncommitted ? ", plus uncommitted" : ""}${_el_resume($scope21_id, "g")}).</p>`);
6045
+ _html(`<p class=dim>${_escape(repo.worktree)}${_el_resume($scope21_id, "a")}<!>${repo.pr ? ` #${_escape(`${repo.pr.number}`)}` : ""}${_el_resume($scope21_id, "b")}: already in <!>${_escape(repo.base)}${_el_resume($scope21_id, "c")}<!>${uncommitted ? " showing uncommitted changes only" : ""}${_el_resume($scope21_id, "d")}.</p>`);
5905
6046
  writeScope($scope21_id, {});
5906
- }, "id", $scope0_id, "v", 1, 1, 1, 0, 1);
6047
+ }, "id", $scope0_id, "u", 1, 1, 1, 0, 1);
6048
+ _if(() => {
6049
+ if (driftRepos.length) {
6050
+ const $scope18_id = _scope_id();
6051
+ _html("<p class=toast-error>");
6052
+ _for_of(driftRepos, (repo) => {
6053
+ const $scope32_id = _scope_id();
6054
+ _html(`${_escape(repo.worktree)}${_el_resume($scope32_id, "a")} #<!>${_escape(repo.pr.number)}${_el_resume($scope32_id, "b")}: origin/<!>${_escape(repo.pr.headRefName)}${_el_resume($scope32_id, "c")} is <!>${_escape(shortSha(repo.head))}${_el_resume($scope32_id, "d")}, GitHub last saw <!>${_escape(shortSha(repo.pr.headRefOid))}${_el_resume($scope32_id, "e")}.`);
6055
+ writeScope($scope32_id, {});
6056
+ }, "id", $scope18_id, "a");
6057
+ _html(`<button class=btn${_attr("disabled", loading)}>${loading ? "Reloading…" : "Reload"}${_el_resume($scope18_id, "c")}</button>${_el_resume($scope18_id, "b")}<button title=Dismiss>×</button>${_el_resume($scope18_id, "d")}</p>`);
6058
+ _script($scope18_id, "e37");
6059
+ writeScope($scope18_id, {});
6060
+ return 0;
6061
+ }
6062
+ }, $scope0_id, "v", 1, 1, 1, 0, 1);
6063
+ _for_of(repoList.filter(localDiffers), (repo) => {
6064
+ const $scope22_id = _scope_id();
6065
+ _html(`<p class=dim>${_escape(repo.worktree)}${_el_resume($scope22_id, "a")} #<!>${_escape(repo.pr.number)}${_el_resume($scope22_id, "b")}: this view is <!>${_escape(shortSha(repo.head))}${_el_resume($scope22_id, "c")} (<!>${_escape(repo.pr.headRefName)}${_el_resume($scope22_id, "d")}). Local is <!>${_escape(shortSha(repo.localHead))}${_el_resume($scope22_id, "e")} (<!>${_escape(repo.branch)}${_el_resume($scope22_id, "f")}<!>${uncommitted ? ", plus uncommitted" : ""}${_el_resume($scope22_id, "g")}).</p>`);
6066
+ writeScope($scope22_id, {});
6067
+ }, "id", $scope0_id, "w", 1, 1, 1, 0, 1);
5907
6068
  _if(() => {
5908
6069
  if (!repos && loading) {
5909
- const $scope31_id = _scope_id();
6070
+ const $scope33_id = _scope_id();
5910
6071
  _html("<div class=diff-skel><p class=dim><span class=spin></span>Loading diff…</p><div class=skel-row></div><div class=skel-row></div><div class=skel-row></div></div>");
5911
- writeScope($scope31_id, {});
6072
+ writeScope($scope33_id, {});
5912
6073
  return 0;
5913
6074
  }
5914
- }, $scope0_id, "w", 1, 1, 1, 0, 1);
6075
+ }, $scope0_id, "x", 1, 1, 1, 0, 1);
5915
6076
  _if(() => {
5916
6077
  if (repos && !allFiles.length) {
5917
- const $scope25_id = _scope_id();
5918
- _html(`<p class="dim center-pad">${repoList.some((r) => r.pr) ? "No file changes on these PRs." : "No changes vs base."}${_el_resume($scope25_id, "a")}</p>`);
5919
- writeScope($scope25_id, {});
6078
+ const $scope27_id = _scope_id();
6079
+ _html(`<p class="dim center-pad">${repoList.some((r) => r.pr) ? "No file changes on these PRs." : "No changes vs base."}${_el_resume($scope27_id, "a")}</p>`);
6080
+ writeScope($scope27_id, {});
5920
6081
  return 0;
5921
- } else if (repos && !shownFiles.length) {
5922
- const $scope18_id = _scope_id();
5923
- _html(`<p class="dim center-pad">No files match "<!>${_escape(fileFilter)}${_el_resume($scope18_id, "a")}".</p>`);
5924
- writeScope($scope18_id, {});
6082
+ } else if (repos && !shownFiles.length && !findState.hit) {
6083
+ const $scope19_id = _scope_id();
6084
+ _html(`<p class="dim center-pad">${findState.query.trim() ? "No matches in diffs." : `No files match "${_escape(`${fileFilter}`)}".`}${_el_resume($scope19_id, "a")}</p>`);
6085
+ writeScope($scope19_id, {});
5925
6086
  return 1;
5926
6087
  }
5927
- }, $scope0_id, "x", 1, 1, 1, 0, 1);
6088
+ }, $scope0_id, "y", 1, 1, 1, 0, 1);
5928
6089
  _for_of(repoList, (repo) => {
5929
6090
  const $scope9_id = _scope_id();
5930
6091
  const $for_content3__repo_pr_number__closures = /* @__PURE__ */ new Set();
@@ -5943,84 +6104,85 @@ var diff_view_default = _template("d", (input) => {
5943
6104
  const $for_content3__repo_worktree__closures = /* @__PURE__ */ new Set();
5944
6105
  const $for_content3__repoFiles__closures = /* @__PURE__ */ new Set();
5945
6106
  const repoFiles = filesByRepo.get(repo.id) || [];
6107
+ const shownInRepo = shownByRepo.get(repo.id) || [];
5946
6108
  _if(() => {
5947
6109
  if (repoFiles.length) {
5948
6110
  const $scope10_id = _scope_id();
5949
- _html(`<section class=repo-section${repo.pr ? _attr("data-pr", `${repo.worktree}/${repo.pr.number}`) : ""}>`);
6111
+ _html(`<section class=repo-section${repo.pr ? _attr("data-pr", `${repo.worktree}/${repo.pr.number}`) : ""}${_attr("hidden", !shownInRepo.length && findState.hit?.repo !== repo.id)}>`);
5950
6112
  _if(() => {
5951
6113
  if (repoList.length > 1) {
5952
- const $scope23_id = _scope_id();
5953
- _html(`<button class=${collapsedRepos.has(repo.id) ? "\"repo-sep closed\"" : "repo-sep"}><span class=tree-chev>${collapsedRepos.has(repo.id) ? "▸" : "▾"}${_el_resume($scope23_id, "b")}</span><span class=mono>${_escape(repo.worktree)}${_el_resume($scope23_id, "c")}</span>`);
6114
+ const $scope25_id = _scope_id();
6115
+ _html(`<button class=${collapsedRepos.has(repo.id) ? "\"repo-sep closed\"" : "repo-sep"}><span class=tree-chev>${collapsedRepos.has(repo.id) ? "▸" : "▾"}${_el_resume($scope25_id, "b")}</span><span class=mono>${_escape(repo.worktree)}${_el_resume($scope25_id, "c")}</span>`);
5954
6116
  _if(() => {
5955
6117
  if (repo.pr) {
5956
- const $scope32_id = _scope_id();
5957
- _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($scope32_id, "b")}</a>${_el_resume($scope32_id, "a")}<span class=dim>${_escape(repo.pr.title)}${_el_resume($scope32_id, "c")}</span>`);
5958
- _script($scope32_id, "d31");
5959
- _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($scope32_id, {
5960
- Ca1: 2,
5961
- Ca2: 2,
5962
- Ca3: 2
6118
+ const $scope34_id = _scope_id();
6119
+ _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($scope34_id, "b")}</a>${_el_resume($scope34_id, "a")}<span class=dim>${_escape(repo.pr.title)}${_el_resume($scope34_id, "c")}</span>`);
6120
+ _script($scope34_id, "e38");
6121
+ _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($scope34_id, {
6122
+ Ca4: 2,
6123
+ Ca5: 2,
6124
+ Ca6: 2
5963
6125
  }))))))));
5964
6126
  return 0;
5965
6127
  } else {
5966
- const $scope33_id = _scope_id();
5967
- _html(`<span class=dim>${_escape(repo.full_name)}${_el_resume($scope33_id, "a")}</span>`);
5968
- _subscribe($for_content3__repo_full_name__closures, writeScope($scope33_id, {}));
6128
+ const $scope35_id = _scope_id();
6129
+ _html(`<span class=dim>${_escape(repo.full_name)}${_el_resume($scope35_id, "a")}</span>`);
6130
+ _subscribe($for_content3__repo_full_name__closures, writeScope($scope35_id, {}));
5969
6131
  return 1;
5970
6132
  }
5971
- }, $scope23_id, "d");
5972
- _html(`<span class="chip lane"${_attr("title", `${repo.pr ? "PR head" : "checked out"} ${repo.pr ? repo.pr.headRefName : repo.branch} ${repo.head}`)}>on <!>${repo.pr ? _escape(repo.pr.headRefName) : _escape(repo.branch)}${_el_resume($scope23_id, "f")}</span>${_el_resume($scope23_id, "e")}<span class=chip${_attr("title", `${repo.base} ${repo.baseSha}`)}>vs <!>${_escape(repo.base)}${_el_resume($scope23_id, "h")}</span>${_el_resume($scope23_id, "g")}`);
6133
+ }, $scope25_id, "d");
6134
+ _html(`<span class="chip lane"${_attr("title", `${repo.pr ? "PR head" : "checked out"} ${repo.pr ? repo.pr.headRefName : repo.branch} ${repo.head}`)}>on <!>${repo.pr ? _escape(repo.pr.headRefName) : _escape(repo.branch)}${_el_resume($scope25_id, "f")}</span>${_el_resume($scope25_id, "e")}<span class=chip${_attr("title", `${repo.base} ${repo.baseSha}`)}>vs <!>${_escape(repo.base)}${_el_resume($scope25_id, "h")}</span>${_el_resume($scope25_id, "g")}`);
5973
6135
  _if(() => {
5974
6136
  if (localDiffers(repo)) {
5975
- const $scope34_id = _scope_id();
5976
- _html(`<span class=chip${_attr("title", `checked out ${repo.branch} ${repo.localHead}`)}>local <!>${_escape(repo.branch)}${_el_resume($scope34_id, "b")}</span>${_el_resume($scope34_id, "a")}`);
5977
- _subscribe($for_content3__repo_localHead__closures, _subscribe($for_content3__repo_branch__closures, writeScope($scope34_id, { Ca5: 2 })));
6137
+ const $scope36_id = _scope_id();
6138
+ _html(`<span class=chip${_attr("title", `checked out ${repo.branch} ${repo.localHead}`)}>local <!>${_escape(repo.branch)}${_el_resume($scope36_id, "b")}</span>${_el_resume($scope36_id, "a")}`);
6139
+ _subscribe($for_content3__repo_localHead__closures, _subscribe($for_content3__repo_branch__closures, writeScope($scope36_id, { Ca8: 2 })));
5978
6140
  return 0;
5979
6141
  }
5980
- }, $scope23_id, "i", 1, 1, 1, 0, 1);
5981
- _html(`</button>${_el_resume($scope23_id, "a")}`);
5982
- _script($scope23_id, "d32");
5983
- _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($scope23_id, { Cc8: 1 }))))))))));
6142
+ }, $scope25_id, "i", 1, 1, 1, 0, 1);
6143
+ _html(`</button>${_el_resume($scope25_id, "a")}`);
6144
+ _script($scope25_id, "e39");
6145
+ _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($scope25_id, { Cd1: 1 }))))))))));
5984
6146
  return 0;
5985
6147
  } else {
5986
- const $scope26_id = _scope_id();
6148
+ const $scope28_id = _scope_id();
5987
6149
  _html("<p class=repo-meta>");
5988
6150
  _if(() => {
5989
6151
  if (repo.pr) {
5990
- const $scope35_id = _scope_id();
5991
- _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($scope35_id, "b")}</a>${_el_resume($scope35_id, "a")}<span class=dim>${_escape(repo.pr.title)}${_el_resume($scope35_id, "c")}</span>`);
5992
- _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($scope35_id, {
5993
- Cx: 1,
5994
- Cy: 1,
5995
- Cz: 1,
6152
+ const $scope37_id = _scope_id();
6153
+ _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($scope37_id, "b")}</a>${_el_resume($scope37_id, "a")}<span class=dim>${_escape(repo.pr.title)}${_el_resume($scope37_id, "c")}</span>`);
6154
+ _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($scope37_id, {
5996
6155
  Ca0: 1,
5997
- Ca1: 3,
5998
- Ca2: 3,
5999
- Ca3: 3
6156
+ Ca1: 1,
6157
+ Ca2: 1,
6158
+ Ca3: 1,
6159
+ Ca4: 3,
6160
+ Ca5: 3,
6161
+ Ca6: 3
6000
6162
  }))))))));
6001
6163
  return 0;
6002
6164
  }
6003
- }, $scope26_id, "a");
6004
- _html(`<span class="chip lane"${_attr("title", `${repo.pr ? "PR head" : "checked out"} ${repo.pr ? repo.pr.headRefName : repo.branch} ${repo.head}`)}>on <!>${repo.pr ? _escape(repo.pr.headRefName) : _escape(repo.branch)}${_el_resume($scope26_id, "c")}</span>${_el_resume($scope26_id, "b")}<span class=chip${_attr("title", `${repo.base} ${repo.baseSha}`)}>vs <!>${_escape(repo.base)}${_el_resume($scope26_id, "e")}</span>${_el_resume($scope26_id, "d")}`);
6165
+ }, $scope28_id, "a");
6166
+ _html(`<span class="chip lane"${_attr("title", `${repo.pr ? "PR head" : "checked out"} ${repo.pr ? repo.pr.headRefName : repo.branch} ${repo.head}`)}>on <!>${repo.pr ? _escape(repo.pr.headRefName) : _escape(repo.branch)}${_el_resume($scope28_id, "c")}</span>${_el_resume($scope28_id, "b")}<span class=chip${_attr("title", `${repo.base} ${repo.baseSha}`)}>vs <!>${_escape(repo.base)}${_el_resume($scope28_id, "e")}</span>${_el_resume($scope28_id, "d")}`);
6005
6167
  _if(() => {
6006
6168
  if (localDiffers(repo)) {
6007
- const $scope36_id = _scope_id();
6008
- _html(`<span class=chip${_attr("title", `checked out ${repo.branch} ${repo.localHead}`)}>local <!>${_escape(repo.branch)}${_el_resume($scope36_id, "b")}</span>${_el_resume($scope36_id, "a")}`);
6009
- _subscribe($for_content3__repo_localHead__closures, _subscribe($for_content3__repo_branch__closures, writeScope($scope36_id, {
6010
- Ca5: 3,
6011
- Ca6: 1
6169
+ const $scope38_id = _scope_id();
6170
+ _html(`<span class=chip${_attr("title", `checked out ${repo.branch} ${repo.localHead}`)}>local <!>${_escape(repo.branch)}${_el_resume($scope38_id, "b")}</span>${_el_resume($scope38_id, "a")}`);
6171
+ _subscribe($for_content3__repo_localHead__closures, _subscribe($for_content3__repo_branch__closures, writeScope($scope38_id, {
6172
+ Ca8: 3,
6173
+ Ca9: 1
6012
6174
  })));
6013
6175
  return 0;
6014
6176
  }
6015
- }, $scope26_id, "f", 1, 1, 1, 0, 1);
6177
+ }, $scope28_id, "f", 1, 1, 1, 0, 1);
6016
6178
  _html("</p>");
6017
- _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_pr__closures, _subscribe($for_content3__repo__closures, writeScope($scope26_id, {
6018
- Ct: 1,
6019
- Cv: 1,
6020
- Ca1: 1,
6021
- Ca2: 1,
6022
- Ca3: 1,
6023
- Ca5: 1
6179
+ _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_pr__closures, _subscribe($for_content3__repo__closures, writeScope($scope28_id, {
6180
+ Cw: 1,
6181
+ Cy: 1,
6182
+ Ca4: 1,
6183
+ Ca5: 1,
6184
+ Ca6: 1,
6185
+ Ca8: 1
6024
6186
  })))))));
6025
6187
  return 1;
6026
6188
  }
@@ -6036,42 +6198,42 @@ var diff_view_default = _template("d", (input) => {
6036
6198
  const $for_content4__fileComments__closures = /* @__PURE__ */ new Set();
6037
6199
  const fileComments = commentsByFile.get(file.key) || [];
6038
6200
  let expanded = !viewed.has(file.key);
6039
- _html(`<details${_attr_details_or_dialog_open($scope12_id, "a", expanded)} class=file${_attr("data-key", file.key)}><summary><span${_attr_class(["status", file.status])}>${_escape(file.status)}${_el_resume($scope12_id, "c")}</span>${_el_resume($scope12_id, "b")}<span class=path${_attr("title", file.path)}><bdi>${_escape(file.path)}${_el_resume($scope12_id, "e")}</bdi></span>${_el_resume($scope12_id, "d")}`);
6201
+ _html(`<details${_attr_details_or_dialog_open($scope12_id, "a", expanded)} class=file${_attr("data-key", file.key)}${_attr("hidden", !shownKeySet.has(file.key))}><summary><span${_attr_class(["status", file.status])}>${_escape(file.status)}${_el_resume($scope12_id, "c")}</span>${_el_resume($scope12_id, "b")}<span class=path${_attr("title", file.path)}><bdi>${_escape(file.path)}${_el_resume($scope12_id, "e")}</bdi></span>${_el_resume($scope12_id, "d")}`);
6040
6202
  _if(() => {
6041
6203
  if (fileComments.length) {
6042
- const $scope37_id = _scope_id();
6043
- _html(`<span class=chip>💬 <!>${_escape(fileComments.length)}${_el_resume($scope37_id, "a")}</span>`);
6044
- writeScope($scope37_id, {});
6204
+ const $scope39_id = _scope_id();
6205
+ _html(`<span class=chip>💬 <!>${_escape(fileComments.length)}${_el_resume($scope39_id, "a")}</span>`);
6206
+ writeScope($scope39_id, {});
6045
6207
  return 0;
6046
6208
  }
6047
6209
  }, $scope12_id, "f", 1, 1, 1, 0, 1);
6048
6210
  _html(`<label class=viewed><input${_attr_input_checked($scope12_id, "h", viewed.has(file.key), _resume(function() {
6049
6211
  toggleViewed(file.key);
6050
- }, "d2", $scope12_id))} type=checkbox>${_el_resume($scope12_id, "h")}<span class=dim>viewed</span></label>${_el_resume($scope12_id, "g")}</summary>`);
6212
+ }, "e1", $scope12_id))} type=checkbox>${_el_resume($scope12_id, "h")}<span class=dim>viewed</span></label>${_el_resume($scope12_id, "g")}</summary>`);
6051
6213
  _if(() => {
6052
6214
  if (file.binary) {
6053
- const $scope38_id = _scope_id();
6215
+ const $scope40_id = _scope_id();
6054
6216
  _html("<p class=\"dim diff-pad\">binary file</p>");
6055
- writeScope($scope38_id, {});
6217
+ writeScope($scope40_id, {});
6056
6218
  return 0;
6057
6219
  } else if (file.tooLarge) {
6058
- const $scope39_id = _scope_id();
6220
+ const $scope41_id = _scope_id();
6059
6221
  _html("<p class=\"dim diff-pad\">file too large to display</p>");
6060
- writeScope($scope39_id, {});
6222
+ writeScope($scope41_id, {});
6061
6223
  return 1;
6062
6224
  } else if (file.old == null && file.new == null) {
6063
- const $scope40_id = _scope_id();
6225
+ const $scope42_id = _scope_id();
6064
6226
  _html("<p class=\"dim diff-pad\">file could not be read</p>");
6065
- writeScope($scope40_id, {});
6227
+ writeScope($scope42_id, {});
6066
6228
  return 2;
6067
6229
  } else if (expanded) {
6068
6230
  const $scope15_id = _scope_id();
6069
6231
  _if(() => {
6070
6232
  {
6071
- const $scope24_id = _scope_id();
6072
- _html(`<div class=diff-wait></div>${_el_resume($scope24_id, "a")}`);
6073
- _script($scope24_id, "d33");
6074
- writeScope($scope24_id, {});
6233
+ const $scope26_id = _scope_id();
6234
+ _html(`<div class=diff-wait></div>${_el_resume($scope26_id, "a")}`);
6235
+ _script($scope26_id, "e40");
6236
+ writeScope($scope26_id, {});
6075
6237
  return 0;
6076
6238
  }
6077
6239
  }, $scope15_id, "a", 1, 1, 1, 0, 1);
@@ -6080,137 +6242,179 @@ var diff_view_default = _template("d", (input) => {
6080
6242
  }
6081
6243
  }, $scope12_id, "i");
6082
6244
  _html(`</details>${_el_resume($scope12_id, "a")}`);
6083
- _script($scope12_id, "d34");
6084
- _subscribe($toggleViewed2__closures, _subscribe($commentsByFile__closures, _subscribe($viewed__closures, writeScope($scope12_id, {
6245
+ _script($scope12_id, "e41");
6246
+ _subscribe($toggleViewed2__closures, _subscribe($commentsByFile__closures, _subscribe($shownKeySet__closures, _subscribe($viewed__closures, writeScope($scope12_id, {
6085
6247
  k: file,
6086
6248
  l: file?.key,
6087
- r: file?.binary,
6088
- s: file?.tooLarge,
6089
- t: file?.old,
6090
- u: file?.new,
6091
- v: fileComments,
6092
- w: fileComments.length,
6093
- x: expanded,
6094
- z: $for_content4__file__closures,
6095
- a0: $for_content4__file_key__closures,
6096
- a1: $for_content4__fileComments__closures,
6097
- Cby: 1,
6098
- Ccf: 1
6099
- }))));
6249
+ s: file?.binary,
6250
+ t: file?.tooLarge,
6251
+ u: file?.old,
6252
+ v: file?.new,
6253
+ w: fileComments,
6254
+ x: fileComments.length,
6255
+ y: expanded,
6256
+ a0: $for_content4__file__closures,
6257
+ a1: $for_content4__file_key__closures,
6258
+ a2: $for_content4__fileComments__closures,
6259
+ Ccn: 1,
6260
+ Cdb: 1
6261
+ })))));
6100
6262
  }, "key", $scope11_id, "a", 1, 1, 1, "</div>", 1);
6101
6263
  _subscribe($for_content3__repoFiles__closures, writeScope($scope11_id, {}));
6102
6264
  return 0;
6103
6265
  }
6104
6266
  }, $scope10_id, "c", 1, 1, 1, 0, 1);
6105
6267
  _html(`</section>${_el_resume($scope10_id, "a")}`);
6106
- _subscribe($repoList_length__closures, _subscribe($collapsedRepos__closures, writeScope($scope10_id, {})));
6268
+ _subscribe($repoList_length__closures, _subscribe($collapsedRepos__closures, _subscribe($findState_hit_repo__closures, writeScope($scope10_id, {}))));
6107
6269
  return 0;
6108
6270
  }
6109
6271
  }, $scope9_id, "a", 1, 1, 1, 0, 1);
6110
6272
  writeScope($scope9_id, {
6111
6273
  c: repo,
6112
6274
  d: repo?.id,
6113
- f: repo?.pr,
6114
- g: repo?.worktree,
6115
- h: repo?.pr?.number,
6116
- i: repo?.pr?.url,
6117
- j: repo?.pr?.title,
6118
- k: repo?.pr?.headRefName,
6119
- l: repo?.head,
6120
- m: repo?.base,
6121
- n: repo?.baseSha,
6122
- o: repo?.full_name,
6123
- p: repo?.branch,
6124
- q: repo?.localHead,
6125
- r: repoFiles,
6126
- x: $for_content3__repo_pr_number__closures,
6127
- y: $for_content3__repo_pr_url__closures,
6128
- z: $for_content3__repo_pr_title__closures,
6129
- a0: $for_content3__repo_pr_headRefName__closures,
6130
- a1: $for_content3__repo_head__closures,
6131
- a2: $for_content3__repo_base__closures,
6132
- a3: $for_content3__repo_baseSha__closures,
6133
- a4: $for_content3__repo_full_name__closures,
6134
- a5: $for_content3__repo_branch__closures,
6135
- a6: $for_content3__repo_localHead__closures,
6136
- t: $for_content3__repo__closures,
6137
- u: $for_content3__repo_id__closures,
6138
- v: $for_content3__repo_pr__closures,
6139
- w: $for_content3__repo_worktree__closures,
6140
- a7: $for_content3__repoFiles__closures
6275
+ g: repo?.pr,
6276
+ h: repo?.worktree,
6277
+ i: repo?.pr?.number,
6278
+ j: repo?.pr?.url,
6279
+ k: repo?.pr?.title,
6280
+ l: repo?.pr?.headRefName,
6281
+ m: repo?.head,
6282
+ n: repo?.base,
6283
+ o: repo?.baseSha,
6284
+ p: repo?.full_name,
6285
+ q: repo?.branch,
6286
+ r: repo?.localHead,
6287
+ s: repoFiles,
6288
+ v: shownInRepo.length,
6289
+ a0: $for_content3__repo_pr_number__closures,
6290
+ a1: $for_content3__repo_pr_url__closures,
6291
+ a2: $for_content3__repo_pr_title__closures,
6292
+ a3: $for_content3__repo_pr_headRefName__closures,
6293
+ a4: $for_content3__repo_head__closures,
6294
+ a5: $for_content3__repo_base__closures,
6295
+ a6: $for_content3__repo_baseSha__closures,
6296
+ a7: $for_content3__repo_full_name__closures,
6297
+ a8: $for_content3__repo_branch__closures,
6298
+ a9: $for_content3__repo_localHead__closures,
6299
+ w: $for_content3__repo__closures,
6300
+ x: $for_content3__repo_id__closures,
6301
+ y: $for_content3__repo_pr__closures,
6302
+ z: $for_content3__repo_worktree__closures,
6303
+ aa: $for_content3__repoFiles__closures
6141
6304
  });
6142
- }, "id", $scope0_id, "y");
6143
- _html(`</div>${_el_resume($scope0_id, "q")}</div>`);
6144
- _if(() => {}, $scope0_id, "z");
6305
+ }, "id", $scope0_id, "z");
6306
+ _html(`</div>${_el_resume($scope0_id, "r")}</div>`);
6307
+ _if(() => {
6308
+ if (findOpen) {
6309
+ const $scope23_id = _scope_id();
6310
+ const $childScope3 = _peek_scope_id();
6311
+ diff_find_default({
6312
+ files: fileFiltered,
6313
+ tick: findTick,
6314
+ onState: _resume(function(s) {
6315
+ onFindState(s);
6316
+ }, "e27", $scope23_id),
6317
+ onClose: _resume(function() {
6318
+ findOpen = false;
6319
+ findState = {
6320
+ query: "",
6321
+ hit: null,
6322
+ keys: []
6323
+ };
6324
+ }, "e28", $scope23_id)
6325
+ });
6326
+ writeScope($scope23_id, { a: _existing_scope($childScope3) });
6327
+ return 0;
6328
+ }
6329
+ }, $scope0_id, "a0", 1, 1, 1, 0, 1);
6330
+ _if(() => {}, $scope0_id, "a1");
6145
6331
  _html("</div>");
6146
- _script($scope0_id, "d37");
6147
- _script($scope0_id, "d38");
6332
+ _script($scope0_id, "e44");
6333
+ _script($scope0_id, "e45");
6148
6334
  writeScope($scope0_id, {
6149
- a2: input.focusPr,
6150
- a3: input.workspaceId,
6151
- a4: input.active,
6152
- a5: input.sessions,
6153
- a7: input.onSent,
6154
- a8: input.onExit,
6155
- a9: input.sessions?.[0]?.title,
6156
- aa: input.sessions?.[0]?.agent,
6157
- ab: repos,
6158
- ac: comments,
6159
- ae: viewed,
6160
- ag: viewed?.size,
6161
- ah: draft,
6162
- aj: error,
6163
- ak: loading,
6164
- am: copied,
6165
- an: sending,
6166
- ao: sendTarget,
6167
- aq: fileFilter,
6168
- ar: uncommitted,
6169
- at: treeOpen,
6170
- av: collapsedDirs,
6171
- aw: collapsedRepos,
6172
- ax: toggleRepo,
6173
- az: nearBox.cbs,
6174
- b0: nearBox.io,
6175
- b2: observeNear,
6176
- b3: load,
6177
- b4: loadReview,
6178
- b6: repoList,
6179
- b7: repoList.length,
6180
- b8: allFiles,
6181
- b9: allFiles?.length,
6182
- ba: fileMatch,
6183
- bc: shownFiles,
6184
- bg: filesByRepo,
6185
- bi: commentsByFile,
6186
- bj: sendPick,
6187
- bk: localDiffers,
6188
- bm: toggleViewed,
6189
- bn: saveComment,
6190
- bo: removeComment,
6191
- bp: clearComments,
6192
- bs: copyMarkdown,
6193
- bt: sendTo,
6194
- bu: jumpTo,
6195
- c7: $collapsedDirs__closures,
6196
- by: $viewed__closures,
6197
- cf: $commentsByFile__closures,
6198
- ce: $filesByRepo__closures,
6199
- bw: $si__input_sessions_0_title && $input_sessions_0_title__closures,
6200
- bx: $si__input_sessions_0_agent && $input_sessions_0_agent__closures,
6201
- c3: $sending__closures,
6202
- bv: $si__input_sessions && $input_sessions__closures,
6203
- c4: $sendTarget__closures,
6204
- c8: $collapsedRepos__closures,
6205
- c0: $draft__closures,
6206
- ci: $saveComment2__closures,
6207
- cj: $removeComment2__closures,
6208
- ch: $toggleViewed2__closures,
6209
- cb: $repoList_length__closures
6335
+ a4: input.focusPr,
6336
+ a5: input.workspaceId,
6337
+ a6: input.active,
6338
+ a7: input.sessions,
6339
+ a9: input.onSent,
6340
+ aa: input.onExit,
6341
+ ab: input.sessions?.[0]?.title,
6342
+ ac: input.sessions?.[0]?.agent,
6343
+ ad: repos,
6344
+ ae: comments,
6345
+ ag: viewed,
6346
+ ai: viewed?.size,
6347
+ aj: draft,
6348
+ al: error,
6349
+ am: loading,
6350
+ ao: copied,
6351
+ ap: sending,
6352
+ aq: sendTarget,
6353
+ as: fileFilter,
6354
+ at: uncommitted,
6355
+ av: treeOpen,
6356
+ ay: findTick,
6357
+ b0: findState?.query,
6358
+ b2: findState?.hit,
6359
+ b3: findState?.hit?.key,
6360
+ b4: findState?.hit?.repo,
6361
+ b5: collapsedDirs,
6362
+ b6: collapsedRepos,
6363
+ b7: dismissedDrift,
6364
+ b8: toggleRepo,
6365
+ ba: nearBox.cbs,
6366
+ bb: nearBox.io,
6367
+ bd: observeNear,
6368
+ be: load,
6369
+ bg: loadReview,
6370
+ bi: repoList,
6371
+ bk: repoList.length,
6372
+ bl: allFiles,
6373
+ bm: allFiles?.length,
6374
+ bn: fileMatch,
6375
+ bp: fileFiltered,
6376
+ bq: findKeys,
6377
+ bs: shownFiles,
6378
+ bw: shownKeySet,
6379
+ bx: filesByRepo,
6380
+ by: shownByRepo,
6381
+ c0: commentsByFile,
6382
+ c1: sendPick,
6383
+ c2: localDiffers,
6384
+ c4: driftRepos,
6385
+ c7: dismissDrift,
6386
+ c8: reload,
6387
+ c9: toggleViewed,
6388
+ ca: saveComment,
6389
+ cb: removeComment,
6390
+ cc: clearComments,
6391
+ cf: copyMarkdown,
6392
+ cg: sendTo,
6393
+ ch: jumpTo,
6394
+ ci: openFind,
6395
+ cj: onFindState,
6396
+ d0: $collapsedDirs__closures,
6397
+ cn: $viewed__closures,
6398
+ db: $commentsByFile__closures,
6399
+ da: $shownByRepo__closures,
6400
+ cl: $si__input_sessions_0_title && $input_sessions_0_title__closures,
6401
+ cm: $si__input_sessions_0_agent && $input_sessions_0_agent__closures,
6402
+ ct: $sending__closures,
6403
+ ck: $si__input_sessions && $input_sessions__closures,
6404
+ cu: $sendTarget__closures,
6405
+ o: _existing_scope($childScope),
6406
+ d1: $collapsedRepos__closures,
6407
+ cp: $draft__closures,
6408
+ df: $saveComment2__closures,
6409
+ dg: $removeComment2__closures,
6410
+ d8: $shownKeySet__closures,
6411
+ de: $toggleViewed2__closures,
6412
+ cz: $findState_hit_repo__closures,
6413
+ d4: $repoList_length__closures
6210
6414
  });
6211
6415
  _resume_branch($scope0_id);
6212
6416
  });
6213
- _template("v", (input) => {
6417
+ _template("x", (input) => {
6214
6418
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6215
6419
  const $scope0_id = _scope_id();
6216
6420
  _set_serialize_reason({
@@ -6225,7 +6429,7 @@ _template("v", (input) => {
6225
6429
  });
6226
6430
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6227
6431
  });
6228
- _template("A", (input) => {
6432
+ _template("C", (input) => {
6229
6433
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6230
6434
  const $scope0_id = _scope_id();
6231
6435
  _set_serialize_reason({
@@ -6240,7 +6444,7 @@ _template("A", (input) => {
6240
6444
  });
6241
6445
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6242
6446
  });
6243
- _template("t", (input) => {
6447
+ _template("v", (input) => {
6244
6448
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6245
6449
  const $scope0_id = _scope_id();
6246
6450
  _set_serialize_reason({
@@ -6255,7 +6459,7 @@ _template("t", (input) => {
6255
6459
  });
6256
6460
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6257
6461
  });
6258
- _template("z", (input) => {
6462
+ _template("B", (input) => {
6259
6463
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6260
6464
  const $scope0_id = _scope_id();
6261
6465
  _set_serialize_reason({
@@ -6274,7 +6478,7 @@ _template("z", (input) => {
6274
6478
  //#region src/tags/term.marko
6275
6479
  var REPEAT_DELAY = 400;
6276
6480
  var REPEAT_EVERY = 55;
6277
- var term_default = _template("m", (input) => {
6481
+ var term_default = _template("o", (input) => {
6278
6482
  const $scope0_reason = _scope_reason();
6279
6483
  _serialize_guard($scope0_reason, 6);
6280
6484
  _serialize_guard($scope0_reason, 7);
@@ -6291,7 +6495,7 @@ var term_default = _template("m", (input) => {
6291
6495
  _serialize_guard($scope0_reason, 14);
6292
6496
  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);
6293
6497
  const $scope0_id = _scope_id();
6294
- _hoist($scope0_id, "m6");
6498
+ _hoist($scope0_id, "o6");
6295
6499
  const $input_sessionId__closures = /* @__PURE__ */ new Set();
6296
6500
  const $input_onRenameSession__closures = /* @__PURE__ */ new Set();
6297
6501
  const $input_onCloseSession__closures = /* @__PURE__ */ new Set();
@@ -6314,7 +6518,7 @@ var term_default = _template("m", (input) => {
6314
6518
  copyFlashBox.timer = setTimeout(() => {
6315
6519
  copiedFlash = false;
6316
6520
  }, 1200);
6317
- }, "m0", $scope0_id);
6521
+ }, "o0", $scope0_id);
6318
6522
  const holdBox = { current: null };
6319
6523
  const startHold = _resume((seq) => {
6320
6524
  ((stopHold) => stopHold())(_hoist_read_error);
@@ -6324,7 +6528,7 @@ var term_default = _template("m", (input) => {
6324
6528
  state.repeat = setInterval(() => ioBox.current?.send(seq), REPEAT_EVERY);
6325
6529
  }, REPEAT_DELAY);
6326
6530
  holdBox.current = state;
6327
- }, "m1", $scope0_id);
6531
+ }, "o1", $scope0_id);
6328
6532
  const stopHold = _resume(() => {
6329
6533
  const hold = holdBox.current;
6330
6534
  if (hold) {
@@ -6332,7 +6536,7 @@ var term_default = _template("m", (input) => {
6332
6536
  clearInterval(hold.repeat);
6333
6537
  holdBox.current = null;
6334
6538
  }
6335
- }, "m2", $scope0_id);
6539
+ }, "o2", $scope0_id);
6336
6540
  const uploadAsset = _resume(async (file) => {
6337
6541
  if (!file) return;
6338
6542
  uploading = true;
@@ -6345,7 +6549,7 @@ var term_default = _template("m", (input) => {
6345
6549
  } finally {
6346
6550
  uploading = false;
6347
6551
  }
6348
- }, "m3", $scope0_id);
6552
+ }, "o3", $scope0_id);
6349
6553
  const handlePasted = _resume(async (clipboardData) => {
6350
6554
  const files = [...clipboardData?.files || []];
6351
6555
  for (const file of files) await uploadAsset(file);
@@ -6354,7 +6558,7 @@ var term_default = _template("m", (input) => {
6354
6558
  if (text) ioBox.current?.send(text);
6355
6559
  }
6356
6560
  trapOpen = false;
6357
- }, "m4", $scope0_id);
6561
+ }, "o4", $scope0_id);
6358
6562
  const pasteClipboard = _resume(async () => {
6359
6563
  if (!navigator.clipboard?.read) {
6360
6564
  trapOpen = true;
@@ -6374,7 +6578,7 @@ var term_default = _template("m", (input) => {
6374
6578
  } catch {
6375
6579
  trapOpen = true;
6376
6580
  }
6377
- }, "m5", $scope0_id);
6581
+ }, "o5", $scope0_id);
6378
6582
  _html(`<div${_attr("hidden", input.mode === "diff")} class=term-wrap><div class=term></div>${_el_resume($scope0_id, "b")}`);
6379
6583
  _if(() => {
6380
6584
  if (uploading) {
@@ -6397,16 +6601,16 @@ var term_default = _template("m", (input) => {
6397
6601
  if (trapOpen) {
6398
6602
  const $scope13_id = _scope_id();
6399
6603
  _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($scope13_id, "c")}<button class=btn>Cancel</button>${_el_resume($scope13_id, "d")}</div>${_el_resume($scope13_id, "b")}</div>${_el_resume($scope13_id, "a")}`);
6400
- _script($scope13_id, "m8");
6401
- _script($scope13_id, "m9");
6604
+ _script($scope13_id, "o8");
6605
+ _script($scope13_id, "o9");
6402
6606
  writeScope($scope13_id, {});
6403
6607
  return 0;
6404
6608
  }
6405
6609
  }, $scope0_id, "f", 1, 1, 1, 0, 1);
6406
6610
  _html(`</div>${_el_resume($scope0_id, "a")}`);
6407
6611
  _if(() => {}, $scope0_id, "g", 1, 1, 1, 0, 1);
6408
- _script($scope0_id, "m24");
6409
- _script($scope0_id, "m25");
6612
+ _script($scope0_id, "o24");
6613
+ _script($scope0_id, "o25");
6410
6614
  writeScope($scope0_id, {
6411
6615
  j: input.workspaceId,
6412
6616
  k: input.mode,
@@ -6471,7 +6675,7 @@ var $class = [
6471
6675
  "\"meter-fill warm\"",
6472
6676
  "\"meter-fill hot warm\""
6473
6677
  ];
6474
- var usage_stats_default = _template("n", (input) => {
6678
+ var usage_stats_default = _template("p", (input) => {
6475
6679
  const $scope0_reason = _scope_reason(), $sg__input_onClose = _serialize_guard($scope0_reason, 0);
6476
6680
  const $scope0_id = _scope_id();
6477
6681
  const $usage_error__closures = /* @__PURE__ */ new Set();
@@ -6486,12 +6690,12 @@ var usage_stats_default = _template("n", (input) => {
6486
6690
  } catch (err) {
6487
6691
  usage = { error: String(err.message || err) };
6488
6692
  }
6489
- }, "n0", $scope0_id);
6693
+ }, "p0", $scope0_id);
6490
6694
  const refresh = _resume(async () => {
6491
6695
  refreshing = true;
6492
6696
  await load(true);
6493
6697
  refreshing = false;
6494
- }, "n1", $scope0_id);
6698
+ }, "p1", $scope0_id);
6495
6699
  _set_serialize_reason({
6496
6700
  0: $sg__input_onClose,
6497
6701
  2: $sg__input_onClose
@@ -6502,8 +6706,8 @@ var usage_stats_default = _template("n", (input) => {
6502
6706
  class: "usage-modal",
6503
6707
  onClose: _resume(function() {
6504
6708
  input.onClose();
6505
- }, "n2", $scope0_id),
6506
- content: _content("n4", () => {
6709
+ }, "p2", $scope0_id),
6710
+ content: _content("p4", () => {
6507
6711
  _scope_reason();
6508
6712
  const $scope1_id = _scope_id();
6509
6713
  _html(`<header class=manage-head><div><h2>Usage</h2></div><button class=${refreshing ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh usage"${_attr("disabled", refreshing)}>`);
@@ -6560,12 +6764,12 @@ var usage_stats_default = _template("n", (input) => {
6560
6764
  return 2;
6561
6765
  }
6562
6766
  }, $scope1_id, "c", 1, 1, 1, 0, 1);
6563
- _script($scope1_id, "n3");
6767
+ _script($scope1_id, "p3");
6564
6768
  _subscribe($refreshing__closures, _subscribe($usage__closures, writeScope($scope1_id, { _: _scope_with_id($scope0_id) })));
6565
6769
  _resume_branch($scope1_id);
6566
6770
  })
6567
6771
  });
6568
- _script($scope0_id, "n5");
6772
+ _script($scope0_id, "p5");
6569
6773
  writeScope($scope0_id, {
6570
6774
  d: input.onClose,
6571
6775
  f: usage?.error,
@@ -6582,7 +6786,7 @@ var usage_stats_default = _template("n", (input) => {
6582
6786
  });
6583
6787
  //#endregion
6584
6788
  //#region src/tags/prompt-dialog.marko
6585
- var prompt_dialog_default = _template("i", (input) => {
6789
+ var prompt_dialog_default = _template("k", (input) => {
6586
6790
  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);
6587
6791
  const $scope0_id = _scope_id();
6588
6792
  const $modalview_content__subscribers = /* @__PURE__ */ new Set();
@@ -6594,7 +6798,7 @@ var prompt_dialog_default = _template("i", (input) => {
6594
6798
  const submit = _resume(() => {
6595
6799
  const v = value.trim();
6596
6800
  if (v) input.onSubmit(v);
6597
- }, "i1", $scope0_id);
6801
+ }, "k1", $scope0_id);
6598
6802
  _set_serialize_reason({
6599
6803
  0: $sg__input_onCancel,
6600
6804
  1: $sg__input_label,
@@ -6606,22 +6810,22 @@ var prompt_dialog_default = _template("i", (input) => {
6606
6810
  class: "prompt-dlg",
6607
6811
  onClose: _resume(function() {
6608
6812
  input.onCancel();
6609
- }, "i2", $scope0_id),
6610
- footer: attrTag({ content: _content_resume("i5", () => {
6813
+ }, "k2", $scope0_id),
6814
+ footer: attrTag({ content: _content_resume("k5", () => {
6611
6815
  _scope_reason();
6612
6816
  const $scope1_id = _scope_id();
6613
6817
  _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")}`);
6614
- _script($scope1_id, "i3");
6818
+ _script($scope1_id, "k3");
6615
6819
  _subscribe($value__closures, _subscribe($si__input_submitLabel && $input_submitLabel__closures, writeScope($scope1_id, { _: _scope_with_id($scope0_id) })));
6616
6820
  _resume_branch($scope1_id);
6617
6821
  }, $scope0_id) }),
6618
- content: _content("i6", () => {
6822
+ content: _content("k6", () => {
6619
6823
  _scope_reason();
6620
6824
  const $scope2_id = _scope_id();
6621
6825
  _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) => {
6622
6826
  value = _new_value;
6623
- }, "i0", $scope2_id))}${_attr("placeholder", input.placeholder)}>${_el_resume($scope2_id, "b")}`);
6624
- _script($scope2_id, "i4");
6827
+ }, "k0", $scope2_id))}${_attr("placeholder", input.placeholder)}>${_el_resume($scope2_id, "b")}`);
6828
+ _script($scope2_id, "k4");
6625
6829
  _subscribe($value__closures, _subscribe($si__input_placeholder && $input_placeholder__closures, _subscribe($si__input_label && $input_label__closures, _subscribe($modalview_content__subscribers, writeScope($scope2_id, {
6626
6830
  _: _scope_with_id($scope0_id),
6627
6831
  Cp: 1
@@ -6629,7 +6833,7 @@ var prompt_dialog_default = _template("i", (input) => {
6629
6833
  _resume_branch($scope2_id);
6630
6834
  })
6631
6835
  });
6632
- _script($scope0_id, "i7");
6836
+ _script($scope0_id, "k7");
6633
6837
  writeScope($scope0_id, {
6634
6838
  e: input.onSubmit,
6635
6839
  g: input.onCancel,
@@ -6648,7 +6852,7 @@ var prompt_dialog_default = _template("i", (input) => {
6648
6852
  //#endregion
6649
6853
  //#region src/tags/work-view.marko
6650
6854
  var api$1;
6651
- var work_view_default = _template("o", (input) => {
6855
+ var work_view_default = _template("q", (input) => {
6652
6856
  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);
6653
6857
  const $scope0_id = _scope_id();
6654
6858
  const $input_active__closures = /* @__PURE__ */ new Set();
@@ -6698,7 +6902,7 @@ var work_view_default = _template("o", (input) => {
6698
6902
  } finally {
6699
6903
  spawning = false;
6700
6904
  }
6701
- }, "o0", $scope0_id);
6905
+ }, "q0", $scope0_id);
6702
6906
  const loadMem = {
6703
6907
  wanted: false,
6704
6908
  run: void 0
@@ -6720,11 +6924,11 @@ var work_view_default = _template("o", (input) => {
6720
6924
  sessions = sessions || [];
6721
6925
  error = String(err);
6722
6926
  }
6723
- }, "o1", $scope0_id);
6927
+ }, "q1", $scope0_id);
6724
6928
  const loadSessions = _resume((autoCreate) => {
6725
6929
  if (autoCreate) loadMem.wanted = true;
6726
6930
  return (loadMem.run ??= coalesce(loadBody))();
6727
- }, "o2", $scope0_id);
6931
+ }, "q2", $scope0_id);
6728
6932
  const closeSession = _resume(async (id) => {
6729
6933
  try {
6730
6934
  await api$1(`/api/sessions/${id}`, { method: "DELETE" });
@@ -6733,7 +6937,7 @@ var work_view_default = _template("o", (input) => {
6733
6937
  } catch (err) {
6734
6938
  error = `Kill session failed: ${String(err.message || err)}`;
6735
6939
  }
6736
- }, "o3", $scope0_id);
6940
+ }, "q3", $scope0_id);
6737
6941
  const renameSession = _resume(async (id, title) => {
6738
6942
  title = title.trim();
6739
6943
  if (!title) return;
@@ -6746,7 +6950,7 @@ var work_view_default = _template("o", (input) => {
6746
6950
  headers: { "content-type": "application/json" },
6747
6951
  body: JSON.stringify({ title })
6748
6952
  });
6749
- }, "o4", $scope0_id);
6953
+ }, "q4", $scope0_id);
6750
6954
  const newSession = _resume(async (wsId, agent) => {
6751
6955
  if (wsId === ws.id) {
6752
6956
  const session = await createSession(agent, true);
@@ -6763,10 +6967,10 @@ var work_view_default = _template("o", (input) => {
6763
6967
  } catch (err) {
6764
6968
  error = String(err.message || err);
6765
6969
  }
6766
- }, "o5", $scope0_id);
6970
+ }, "q5", $scope0_id);
6767
6971
  const promptRename = _resume((s) => {
6768
6972
  renaming = s;
6769
- }, "o6", $scope0_id);
6973
+ }, "q6", $scope0_id);
6770
6974
  _html("<div class=work-view>");
6771
6975
  _set_serialize_reason({
6772
6976
  0: _serialize_guard($scope0_reason, 0),
@@ -6792,47 +6996,47 @@ var work_view_default = _template("o", (input) => {
6792
6996
  tab: curTab,
6793
6997
  tabChange: _resume(function(id) {
6794
6998
  tab = id;
6795
- }, "o7", $scope0_id),
6999
+ }, "q7", $scope0_id),
6796
7000
  view,
6797
7001
  viewChange: _resume((_new_view) => {
6798
7002
  view = _new_view;
6799
- }, "o8", $scope0_id),
7003
+ }, "q8", $scope0_id),
6800
7004
  drawerOpen,
6801
7005
  drawerOpenChange: _resume((_new_drawerOpen) => {
6802
7006
  drawerOpen = _new_drawerOpen;
6803
- }, "o9", $scope0_id),
7007
+ }, "q9", $scope0_id),
6804
7008
  allWorkspaces: input.allWorkspaces,
6805
7009
  allStatus: input.allStatus,
6806
7010
  agents: input.agents,
6807
7011
  onError: _resume(function(message) {
6808
7012
  error = message;
6809
- }, "o10", $scope0_id),
7013
+ }, "q10", $scope0_id),
6810
7014
  onSelectWorkspace: input.onSelectWorkspace,
6811
7015
  onOpenSession: input.onOpenSession,
6812
7016
  onManage: input.onManage,
6813
7017
  onNew: input.onNew,
6814
7018
  onUsage: _resume(function() {
6815
7019
  usageOpen = true;
6816
- }, "o11", $scope0_id),
7020
+ }, "q11", $scope0_id),
6817
7021
  onNewSession: _resume(function(wsId, agent) {
6818
7022
  newSession(wsId, agent);
6819
- }, "o12", $scope0_id),
7023
+ }, "q12", $scope0_id),
6820
7024
  onCloseSession: _resume(function(id) {
6821
7025
  closeSession(id);
6822
- }, "o13", $scope0_id),
7026
+ }, "q13", $scope0_id),
6823
7027
  onRenameSession: _resume(function(s) {
6824
7028
  promptRename(s);
6825
- }, "o14", $scope0_id),
7029
+ }, "q14", $scope0_id),
6826
7030
  onReviewOpened: _resume(function(pr) {
6827
7031
  focusPr = pr || "";
6828
- }, "o15", $scope0_id)
7032
+ }, "q15", $scope0_id)
6829
7033
  });
6830
7034
  _html("<div class=main-col>");
6831
7035
  _if(() => {
6832
7036
  if (error) {
6833
7037
  const $scope5_id = _scope_id();
6834
7038
  _html(`<p class=toast-error>${_escape(error)}${_el_resume($scope5_id, "a")}<button title=Dismiss>×</button>${_el_resume($scope5_id, "b")}</p>`);
6835
- _script($scope5_id, "o29");
7039
+ _script($scope5_id, "q29");
6836
7040
  writeScope($scope5_id, {});
6837
7041
  return 0;
6838
7042
  }
@@ -6849,10 +7053,10 @@ var work_view_default = _template("o", (input) => {
6849
7053
  onSent: _resume(function(sessionId) {
6850
7054
  tab = sessionId;
6851
7055
  view = "term";
6852
- }, "o16", $scope0_id),
7056
+ }, "q16", $scope0_id),
6853
7057
  onExit: _resume(function() {
6854
7058
  view = "term";
6855
- }, "o17", $scope0_id)
7059
+ }, "q17", $scope0_id)
6856
7060
  });
6857
7061
  _show_end($scope0_id, "f", $show);
6858
7062
  _html(`<div class=${view === "diff" ? "\"term-area as-bar\"" : "term-area"}>`);
@@ -6891,32 +7095,32 @@ var work_view_default = _template("o", (input) => {
6891
7095
  sessions: shownSessions,
6892
7096
  onNewSession: _resume(function(agent) {
6893
7097
  newSession(ws.id, agent);
6894
- }, "o18", $scope2_id),
7098
+ }, "q18", $scope2_id),
6895
7099
  onOpenTab: _resume(function(id) {
6896
7100
  tab = id;
6897
- }, "o19", $scope2_id),
7101
+ }, "q19", $scope2_id),
6898
7102
  onCloseSession: _resume(function(id) {
6899
7103
  closeSession(id);
6900
- }, "o20", $scope2_id),
7104
+ }, "q20", $scope2_id),
6901
7105
  onRenameSession: _resume(function(id) {
6902
7106
  const target = (shownSessions || []).find((x) => x.id === id);
6903
7107
  if (target) renaming = target;
6904
- }, "o21", $scope2_id),
7108
+ }, "q21", $scope2_id),
6905
7109
  active: input.active && view === "term" && s.id === curTab,
6906
7110
  mode: view,
6907
7111
  onToggleDiff: _resume(function() {
6908
7112
  focusPr = "";
6909
7113
  view = "diff";
6910
- }, "o22", $scope2_id),
7114
+ }, "q22", $scope2_id),
6911
7115
  onExitReview: _resume(function() {
6912
7116
  view = "term";
6913
- }, "o23", $scope2_id),
7117
+ }, "q23", $scope2_id),
6914
7118
  onOpenNav: _resume(function() {
6915
7119
  drawerOpen = true;
6916
- }, "o24", $scope2_id),
7120
+ }, "q24", $scope2_id),
6917
7121
  onManage: _resume(function() {
6918
7122
  input.onManage?.(ws.id);
6919
- }, "o25", $scope2_id)
7123
+ }, "q25", $scope2_id)
6920
7124
  });
6921
7125
  _show_end($scope2_id, "d", $show2);
6922
7126
  _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, {
@@ -6928,7 +7132,7 @@ var work_view_default = _template("o", (input) => {
6928
7132
  if (!shownSessions.length) {
6929
7133
  const $scope3_id = _scope_id();
6930
7134
  _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>`);
6931
- _script($scope3_id, "o30");
7135
+ _script($scope3_id, "q30");
6932
7136
  _subscribe($spawning__closures, _subscribe($si__input_preferred && $input_preferred__closures, writeScope($scope3_id, {})));
6933
7137
  return 0;
6934
7138
  }
@@ -6948,7 +7152,7 @@ var work_view_default = _template("o", (input) => {
6948
7152
  const $scope4_id = _scope_id();
6949
7153
  usage_stats_default({ onClose: _resume(function() {
6950
7154
  usageOpen = false;
6951
- }, "o26", $scope4_id) });
7155
+ }, "q26", $scope4_id) });
6952
7156
  writeScope($scope4_id, {});
6953
7157
  return 0;
6954
7158
  }
@@ -6964,21 +7168,21 @@ var work_view_default = _template("o", (input) => {
6964
7168
  onSubmit: _resume(function(title) {
6965
7169
  renameSession(renaming.id, title);
6966
7170
  renaming = null;
6967
- }, "o27", $scope6_id),
7171
+ }, "q27", $scope6_id),
6968
7172
  onCancel: _resume(function() {
6969
7173
  renaming = null;
6970
- }, "o28", $scope6_id)
7174
+ }, "q28", $scope6_id)
6971
7175
  });
6972
7176
  writeScope($scope6_id, { a: _existing_scope($childScope4) });
6973
7177
  return 0;
6974
7178
  }
6975
7179
  }, $scope0_id, "i");
6976
7180
  _html("</div>");
6977
- _script($scope0_id, "o31");
6978
- _script($scope0_id, "o32");
6979
- _script($scope0_id, "o33");
6980
- _script($scope0_id, "o34");
6981
- _script($scope0_id, "o35");
7181
+ _script($scope0_id, "q31");
7182
+ _script($scope0_id, "q32");
7183
+ _script($scope0_id, "q33");
7184
+ _script($scope0_id, "q34");
7185
+ _script($scope0_id, "q35");
6982
7186
  writeScope($scope0_id, {
6983
7187
  m: input.allStatus,
6984
7188
  n: input.active,
@@ -16622,7 +16826,8 @@ async function treeContainedIn(dir, base, head) {
16622
16826
  * base. `pr` (`worktree/number`) focuses one PR. `uncommitted` overlays
16623
16827
  * the working tree on the PR whose head is the current branch. */
16624
16828
  async function workspaceDiff(ws, opts = {}) {
16625
- const { baseRef, uncommitted = false, pr: focus } = opts;
16829
+ const { baseRef, uncommitted = false, pr: focus, refresh = false } = opts;
16830
+ if (refresh) for (const repo of ws.repos) lastFetch.delete(repo.full_name);
16626
16831
  const foreign = otherWorkspaceBranches(ws.id);
16627
16832
  return (await Promise.all(ws.repos.map(async (repo) => {
16628
16833
  const dir = path.join(ws.path, repo.worktree);
@@ -16632,7 +16837,7 @@ async function workspaceDiff(ws, opts = {}) {
16632
16837
  "HEAD"
16633
16838
  ], dir).catch(() => "HEAD");
16634
16839
  const localHead = await git(["rev-parse", "HEAD"], dir).catch(() => "");
16635
- const open = (await workspacePrs(repo.full_name, ws.branch, foreign)).filter((p) => p.state === "OPEN" && p.baseRefName && p.headRefName && (!focus || focus === `${repo.worktree}/${p.number}`));
16840
+ const open = (await workspacePrs(repo.full_name, ws.branch, foreign, refresh)).filter((p) => p.state === "OPEN" && p.baseRefName && p.headRefName && (!focus || focus === `${repo.worktree}/${p.number}`));
16636
16841
  if (open.length) return Promise.all(open.map((p) => prDiff(dir, repo, p, {
16637
16842
  uncommitted: uncommitted && branch === p.headRefName,
16638
16843
  localHead,
@@ -16868,11 +17073,13 @@ async function loadWorktreeFile(dir, filePath, status, old) {
16868
17073
  var getHandler$4 = normalizeHandler(Run.GET({ search: (value) => ({
16869
17074
  base: typeof value.base === "string" && value.base ? value.base : void 0,
16870
17075
  uncommitted: value.uncommitted === "1" || value.uncommitted === "true",
16871
- pr: typeof value.pr === "string" && value.pr ? value.pr : void 0
17076
+ pr: typeof value.pr === "string" && value.pr ? value.pr : void 0,
17077
+ refresh: "refresh" in value
16872
17078
  }) }, async (ctx) => Response.json(await workspaceDiff(ctx.data.workspace, {
16873
17079
  baseRef: ctx.search.base,
16874
17080
  uncommitted: ctx.search.uncommitted,
16875
- pr: ctx.search.pr
17081
+ pr: ctx.search.pr,
17082
+ refresh: ctx.search.refresh
16876
17083
  }))), "GET");
16877
17084
  var get21_options = mergeOptions(mware3, mware22, getHandler$4);
16878
17085
  var head21_options = mergeOptions(mware3, mware22);
@@ -21470,4 +21677,4 @@ server.listen(port, () => {
21470
21677
  //#endregion
21471
21678
  export {};
21472
21679
 
21473
- ;var __MARKO_MANIFEST__={"esfPH6H":{"block":[2,"stylesheet#/assets/index-C_YqjXeW.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/index-C_YqjXeW.css\"",">"],"defer":[2,"/assets/index-Bx9UtyrE.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/index-Bx9UtyrE.js\"","></script>"]}};
21680
+ ;var __MARKO_MANIFEST__={"esfPH6H":{"block":[2,"stylesheet#/assets/index-DaxFUqZq.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/index-DaxFUqZq.css\"",">"],"defer":[2,"/assets/index-_W4Ej1WQ.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/index-_W4Ej1WQ.js\"","></script>"]}};