claude-mux 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/CLAUDE.md +18 -0
  2. package/dist/db/sessions-json.d.ts +3 -0
  3. package/dist/db/sessions-json.d.ts.map +1 -1
  4. package/dist/db/sessions-json.js +1 -0
  5. package/dist/db/sessions-json.js.map +1 -1
  6. package/dist/hooks/claude-mux-hook.js +8 -1
  7. package/dist/hooks/claude-mux-hook.js.map +1 -1
  8. package/dist/server/message-queue.d.ts +33 -4
  9. package/dist/server/message-queue.d.ts.map +1 -1
  10. package/dist/server/message-queue.js +194 -32
  11. package/dist/server/message-queue.js.map +1 -1
  12. package/dist/server/ws-handlers.d.ts +42 -2
  13. package/dist/server/ws-handlers.d.ts.map +1 -1
  14. package/dist/server/ws-handlers.js +163 -71
  15. package/dist/server/ws-handlers.js.map +1 -1
  16. package/dist/transcript/parser.d.ts +2 -0
  17. package/dist/transcript/parser.d.ts.map +1 -1
  18. package/dist/transcript/parser.js +4 -0
  19. package/dist/transcript/parser.js.map +1 -1
  20. package/dist/transcript/tailer.d.ts +25 -6
  21. package/dist/transcript/tailer.d.ts.map +1 -1
  22. package/dist/transcript/tailer.js +55 -10
  23. package/dist/transcript/tailer.js.map +1 -1
  24. package/dist/types/ws-messages.d.ts +25 -0
  25. package/dist/types/ws-messages.d.ts.map +1 -1
  26. package/dist/types/ws-messages.js +4 -0
  27. package/dist/types/ws-messages.js.map +1 -1
  28. package/dist/utils/pid.d.ts +4 -0
  29. package/dist/utils/pid.d.ts.map +1 -1
  30. package/dist/utils/pid.js +6 -2
  31. package/dist/utils/pid.js.map +1 -1
  32. package/dist/utils/version.d.ts +1 -1
  33. package/dist/utils/version.js +1 -1
  34. package/dist/web/client/_app/immutable/assets/{0.BOPL4ELt.css → 0.BdF1WsN5.css} +1 -1
  35. package/dist/web/client/_app/immutable/assets/3.CwgS8Piv.css +1 -0
  36. package/dist/web/client/_app/immutable/assets/4.D3oacHIV.css +1 -0
  37. package/dist/web/client/_app/immutable/chunks/0LFkEQJj.js +1 -0
  38. package/dist/web/client/_app/immutable/chunks/3VEt59CJ.js +1 -0
  39. package/dist/web/client/_app/immutable/chunks/3VK5OoqB.js +2 -0
  40. package/dist/web/client/_app/immutable/chunks/BIgf2y--.js +1 -0
  41. package/dist/web/client/_app/immutable/chunks/BYKFr1kc.js +1 -0
  42. package/dist/web/client/_app/immutable/chunks/C1qmP6Y6.js +57 -0
  43. package/dist/web/client/_app/immutable/chunks/D0kXDnUP.js +1 -0
  44. package/dist/web/client/_app/immutable/chunks/DhmuQbXA.js +2 -0
  45. package/dist/web/client/_app/immutable/chunks/DiDHw6ae.js +1 -0
  46. package/dist/web/client/_app/immutable/chunks/DmnhiWj-.js +2 -0
  47. package/dist/web/client/_app/immutable/chunks/JdItwS__.js +1 -0
  48. package/dist/web/client/_app/immutable/entry/app.CeK9ifQZ.js +2 -0
  49. package/dist/web/client/_app/immutable/entry/start.DqoVoTWT.js +1 -0
  50. package/dist/web/client/_app/immutable/nodes/0.CTZWnfW3.js +1 -0
  51. package/dist/web/client/_app/immutable/nodes/1.BJ1jbyzF.js +1 -0
  52. package/dist/web/client/_app/immutable/nodes/{2.CtTVoSAX.js → 2.CeQA6mdU.js} +1 -1
  53. package/dist/web/client/_app/immutable/nodes/3.BY426pnS.js +169 -0
  54. package/dist/web/client/_app/immutable/nodes/4.ZFC80VFu.js +2 -0
  55. package/dist/web/client/_app/version.json +1 -1
  56. package/dist/web/server/chunks/{0-Db7nSuZ0.js → 0-qYaZUhBh.js} +15 -17
  57. package/dist/web/server/chunks/0-qYaZUhBh.js.map +1 -0
  58. package/dist/web/server/chunks/{1-BJV9MPOn.js → 1-vNWIk4pm.js} +6 -6
  59. package/dist/web/server/chunks/{1-BJV9MPOn.js.map → 1-vNWIk4pm.js.map} +1 -1
  60. package/dist/web/server/chunks/2-C3_Hio6f.js +26 -0
  61. package/dist/web/server/chunks/{2-mtrhsiYS.js.map → 2-C3_Hio6f.js.map} +1 -1
  62. package/dist/web/server/chunks/3-C7eraYeX.js +26 -0
  63. package/dist/web/server/chunks/3-C7eraYeX.js.map +1 -0
  64. package/dist/web/server/chunks/4-DIz14T8h.js +18 -0
  65. package/dist/web/server/chunks/4-DIz14T8h.js.map +1 -0
  66. package/dist/web/server/chunks/{_layout.svelte-BPUWL_CJ.js → _layout.svelte-tXCCzX4Y.js} +220 -231
  67. package/dist/web/server/chunks/_layout.svelte-tXCCzX4Y.js.map +1 -0
  68. package/dist/web/server/chunks/{_page.svelte-DgHVg4V1.js → _page.svelte-BFMK4Qci.js} +3 -4
  69. package/dist/web/server/chunks/_page.svelte-BFMK4Qci.js.map +1 -0
  70. package/dist/web/server/chunks/{_page.svelte-NYyAP3x7.js → _page.svelte-Dch4E1Rh.js} +5 -5
  71. package/dist/web/server/chunks/{_page.svelte-NYyAP3x7.js.map → _page.svelte-Dch4E1Rh.js.map} +1 -1
  72. package/dist/web/server/chunks/{_server.ts-BPbH7LJV.js → _server.ts-B-lHdJxn.js} +2 -2
  73. package/dist/web/server/chunks/{_server.ts-BPbH7LJV.js.map → _server.ts-B-lHdJxn.js.map} +1 -1
  74. package/dist/web/server/chunks/{_server.ts-CX7HFwG_.js → _server.ts-BBFH6yZ0.js} +2 -2
  75. package/dist/web/server/chunks/{_server.ts-CX7HFwG_.js.map → _server.ts-BBFH6yZ0.js.map} +1 -1
  76. package/dist/web/server/chunks/{_server.ts-DGaaRqn9.js → _server.ts-BYB66HM_.js} +3 -3
  77. package/dist/web/server/chunks/{_server.ts-DGaaRqn9.js.map → _server.ts-BYB66HM_.js.map} +1 -1
  78. package/dist/web/server/chunks/{_server.ts-CSH42v1n.js → _server.ts-BrfdmL6E.js} +4 -4
  79. package/dist/web/server/chunks/{_server.ts-CSH42v1n.js.map → _server.ts-BrfdmL6E.js.map} +1 -1
  80. package/dist/web/server/chunks/{_server.ts-TnlTbrO5.js → _server.ts-BsP01Hkg.js} +2 -2
  81. package/dist/web/server/chunks/{_server.ts-TnlTbrO5.js.map → _server.ts-BsP01Hkg.js.map} +1 -1
  82. package/dist/web/server/chunks/{_server.ts-DoAck7hw.js → _server.ts-C2sGvDiR.js} +3 -3
  83. package/dist/web/server/chunks/{_server.ts-DoAck7hw.js.map → _server.ts-C2sGvDiR.js.map} +1 -1
  84. package/dist/web/server/chunks/{_server.ts-D-Qq_95j.js → _server.ts-C7yq6qeP.js} +2 -2
  85. package/dist/web/server/chunks/{_server.ts-D-Qq_95j.js.map → _server.ts-C7yq6qeP.js.map} +1 -1
  86. package/dist/web/server/chunks/{_server.ts-C-_tMNQf.js → _server.ts-CEGljBAH.js} +3 -3
  87. package/dist/web/server/chunks/{_server.ts-C-_tMNQf.js.map → _server.ts-CEGljBAH.js.map} +1 -1
  88. package/dist/web/server/chunks/{_server.ts-C8xddQab.js → _server.ts-CKPeS61d.js} +4 -3
  89. package/dist/web/server/chunks/{_server.ts-C8xddQab.js.map → _server.ts-CKPeS61d.js.map} +1 -1
  90. package/dist/web/server/chunks/{_server.ts-C8flg7gn.js → _server.ts-C_Ql8FZ-.js} +2 -2
  91. package/dist/web/server/chunks/{_server.ts-C8flg7gn.js.map → _server.ts-C_Ql8FZ-.js.map} +1 -1
  92. package/dist/web/server/chunks/{_server.ts-DIQGFE8O.js → _server.ts-C_mfkTE7.js} +3 -3
  93. package/dist/web/server/chunks/{_server.ts-DIQGFE8O.js.map → _server.ts-C_mfkTE7.js.map} +1 -1
  94. package/dist/web/server/chunks/{_server.ts-B8NDaVEA.js → _server.ts-Cn71ivEy.js} +2 -2
  95. package/dist/web/server/chunks/{_server.ts-B8NDaVEA.js.map → _server.ts-Cn71ivEy.js.map} +1 -1
  96. package/dist/web/server/chunks/{_server.ts-DjPJQFg6.js → _server.ts-CrGvgmhz.js} +2 -2
  97. package/dist/web/server/chunks/{_server.ts-DjPJQFg6.js.map → _server.ts-CrGvgmhz.js.map} +1 -1
  98. package/dist/web/server/chunks/{_server.ts-BUOlFdaJ.js → _server.ts-CuyvmPMw.js} +2 -2
  99. package/dist/web/server/chunks/{_server.ts-BUOlFdaJ.js.map → _server.ts-CuyvmPMw.js.map} +1 -1
  100. package/dist/web/server/chunks/{_server.ts-D5dm8i7d.js → _server.ts-DC17XVgt.js} +3 -3
  101. package/dist/web/server/chunks/{_server.ts-D5dm8i7d.js.map → _server.ts-DC17XVgt.js.map} +1 -1
  102. package/dist/web/server/chunks/{_server.ts-Gx9itF7F.js → _server.ts-DN18Vkn-.js} +3 -3
  103. package/dist/web/server/chunks/{_server.ts-Gx9itF7F.js.map → _server.ts-DN18Vkn-.js.map} +1 -1
  104. package/dist/web/server/chunks/{_server.ts-D6Uvtstq.js → _server.ts-DO1zt6Kx.js} +6 -6
  105. package/dist/web/server/chunks/{_server.ts-D6Uvtstq.js.map → _server.ts-DO1zt6Kx.js.map} +1 -1
  106. package/dist/web/server/chunks/{_server.ts-BH5WsFew.js → _server.ts-Da7wwvP7.js} +5 -5
  107. package/dist/web/server/chunks/{_server.ts-BH5WsFew.js.map → _server.ts-Da7wwvP7.js.map} +1 -1
  108. package/dist/web/server/chunks/{_server.ts-Brx8WsV_.js → _server.ts-DfgmK00n.js} +3 -3
  109. package/dist/web/server/chunks/{_server.ts-Brx8WsV_.js.map → _server.ts-DfgmK00n.js.map} +1 -1
  110. package/dist/web/server/chunks/{_server.ts-ClnHebbv.js → _server.ts-Sp9RMGm3.js} +2 -2
  111. package/dist/web/server/chunks/{_server.ts-ClnHebbv.js.map → _server.ts-Sp9RMGm3.js.map} +1 -1
  112. package/dist/web/server/chunks/{_server.ts-BjzIEXqr.js → _server.ts-Tbx4Fo9h.js} +4 -4
  113. package/dist/web/server/chunks/{_server.ts-BjzIEXqr.js.map → _server.ts-Tbx4Fo9h.js.map} +1 -1
  114. package/dist/web/server/chunks/{_server.ts-sXwS8wXq.js → _server.ts-WRtFZDr6.js} +5 -5
  115. package/dist/web/server/chunks/{_server.ts-sXwS8wXq.js.map → _server.ts-WRtFZDr6.js.map} +1 -1
  116. package/dist/web/server/chunks/{_server.ts-CzEOLTft.js → _server.ts-oE4pAGqp.js} +3 -3
  117. package/dist/web/server/chunks/{_server.ts-CzEOLTft.js.map → _server.ts-oE4pAGqp.js.map} +1 -1
  118. package/dist/web/server/chunks/atomic-write-DZQx1GJa.js +13 -0
  119. package/dist/web/server/chunks/atomic-write-DZQx1GJa.js.map +1 -0
  120. package/dist/web/server/chunks/{attachments-ClNRGnTM.js → attachments-kaxlsreD.js} +2 -2
  121. package/dist/web/server/chunks/{attachments-ClNRGnTM.js.map → attachments-kaxlsreD.js.map} +1 -1
  122. package/dist/web/server/chunks/{button-7v7P6MKH.js → button-DL5o8qCi.js} +1863 -935
  123. package/dist/web/server/chunks/button-DL5o8qCi.js.map +1 -0
  124. package/dist/web/server/chunks/{chunks-z0jzReFn.js → chunks-DjkFKU0Z.js} +200 -106
  125. package/dist/web/server/chunks/chunks-DjkFKU0Z.js.map +1 -0
  126. package/dist/web/server/chunks/{error.svelte-BF20x8lR.js → error.svelte-BbIs6wWT.js} +4 -4
  127. package/dist/web/server/chunks/{error.svelte-BF20x8lR.js.map → error.svelte-BbIs6wWT.js.map} +1 -1
  128. package/dist/web/server/chunks/{exports-BXZSJVru.js → exports-piA4c_uA.js} +4 -4
  129. package/dist/web/server/chunks/{exports-BXZSJVru.js.map → exports-piA4c_uA.js.map} +1 -1
  130. package/dist/web/server/chunks/{hooks.server-DHO7nRLl.js → hooks.server-C7RNKySW.js} +17 -7
  131. package/dist/web/server/chunks/hooks.server-C7RNKySW.js.map +1 -0
  132. package/dist/web/server/chunks/json-4v86y-Ft.js +15 -0
  133. package/dist/web/server/chunks/json-4v86y-Ft.js.map +1 -0
  134. package/dist/web/server/chunks/message-queue-B_JPzbSZ.js +281 -0
  135. package/dist/web/server/chunks/message-queue-B_JPzbSZ.js.map +1 -0
  136. package/dist/web/server/chunks/paths-6nWNmeI4.js +13 -0
  137. package/dist/web/server/chunks/paths-6nWNmeI4.js.map +1 -0
  138. package/dist/web/server/chunks/{report-C1vPmDz8.js → report-DzmJJvNC.js} +7 -11
  139. package/dist/web/server/chunks/report-DzmJJvNC.js.map +1 -0
  140. package/dist/web/server/chunks/{root-PTKprA41.js → root-CpxFdOD_.js} +125 -109
  141. package/dist/web/server/chunks/root-CpxFdOD_.js.map +1 -0
  142. package/dist/web/server/chunks/{sessions-json-oEHt1v8y.js → sessions-json-CtkawSxA.js} +5 -4
  143. package/dist/web/server/chunks/sessions-json-CtkawSxA.js.map +1 -0
  144. package/dist/web/server/chunks/{state.svelte-CB0Au2qM.js → state.svelte-DaxvD0LT.js} +3 -3
  145. package/dist/web/server/chunks/{state.svelte-CB0Au2qM.js.map → state.svelte-DaxvD0LT.js.map} +1 -1
  146. package/dist/web/server/chunks/{ws-handlers-xWVftyUw.js → ws-handlers-CfRlNP0b.js} +165 -61
  147. package/dist/web/server/chunks/ws-handlers-CfRlNP0b.js.map +1 -0
  148. package/dist/web/server/chunks/{ws-managers-BbpA8jLN.js → ws-managers-3xrj0jsB.js} +2 -2
  149. package/dist/web/server/chunks/{ws-managers-BbpA8jLN.js.map → ws-managers-3xrj0jsB.js.map} +1 -1
  150. package/dist/web/server/index.js +5 -5
  151. package/dist/web/server/index.js.map +1 -1
  152. package/dist/web/server/manifest.js +39 -39
  153. package/dist/web/server/manifest.js.map +1 -1
  154. package/package.json +1 -1
  155. package/src/db/sessions-json.ts +4 -0
  156. package/src/hooks/claude-mux-hook.ts +11 -1
  157. package/src/server/message-queue.ts +233 -31
  158. package/src/server/ws-handlers.ts +204 -88
  159. package/src/transcript/parser.ts +5 -0
  160. package/src/transcript/tailer.ts +71 -14
  161. package/src/types/ws-messages.ts +4 -0
  162. package/src/utils/pid.ts +6 -2
  163. package/src/utils/version.ts +1 -1
  164. package/tests/server/message-queue.test.ts +83 -0
  165. package/tests/transcript/tailer.test.ts +97 -0
  166. package/web/.svelte-kit/adapter-bun/.vite/manifest.json +24 -22
  167. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/{_layout.DwchimSV.css → _layout.Bc6D36yK.css} +1 -1
  168. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_page.CwgS8Piv.css +1 -0
  169. package/web/.svelte-kit/adapter-bun/chunks/atomic-write.js +11 -0
  170. package/web/.svelte-kit/adapter-bun/chunks/button.js +30 -4
  171. package/web/.svelte-kit/adapter-bun/chunks/index.js +286 -182
  172. package/web/.svelte-kit/adapter-bun/chunks/internal2.js +1 -1
  173. package/web/.svelte-kit/adapter-bun/chunks/message-queue.js +141 -27
  174. package/web/.svelte-kit/adapter-bun/chunks/report.js +3 -8
  175. package/web/.svelte-kit/adapter-bun/chunks/root.js +154 -138
  176. package/web/.svelte-kit/adapter-bun/chunks/sessions-json.js +4 -2
  177. package/web/.svelte-kit/adapter-bun/chunks/severity.js +74 -28
  178. package/web/.svelte-kit/adapter-bun/chunks/ws-handlers.js +163 -68
  179. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/rename/_server.ts.js +1 -1
  180. package/web/.svelte-kit/adapter-bun/entries/hooks.server.js +18 -6
  181. package/web/.svelte-kit/adapter-bun/entries/pages/_layout.svelte.js +130 -163
  182. package/web/.svelte-kit/adapter-bun/entries/pages/session/_target_/_page.svelte.js +185 -252
  183. package/web/.svelte-kit/adapter-bun/entries/pages/usage/_page.svelte.js +1 -3
  184. package/web/.svelte-kit/adapter-bun/manifest-full.js +1 -1
  185. package/web/.svelte-kit/adapter-bun/manifest.js +1 -1
  186. package/web/.svelte-kit/adapter-bun/nodes/0.js +2 -2
  187. package/web/.svelte-kit/adapter-bun/nodes/1.js +1 -1
  188. package/web/.svelte-kit/adapter-bun/nodes/2.js +1 -1
  189. package/web/.svelte-kit/adapter-bun/nodes/3.js +2 -2
  190. package/web/.svelte-kit/adapter-bun/nodes/4.js +2 -2
  191. package/web/.svelte-kit/generated/client/nodes/1.js +1 -1
  192. package/web/.svelte-kit/generated/client-optimized/nodes/1.js +1 -1
  193. package/web/.svelte-kit/generated/server/internal.js +2 -2
  194. package/web/.svelte-kit/output/client/.vite/manifest.json +116 -141
  195. package/web/.svelte-kit/output/client/_app/immutable/assets/{0.BOPL4ELt.css → 0.BdF1WsN5.css} +1 -1
  196. package/web/.svelte-kit/output/client/_app/immutable/assets/3.CwgS8Piv.css +1 -0
  197. package/web/.svelte-kit/output/client/_app/immutable/assets/4.D3oacHIV.css +1 -0
  198. package/web/.svelte-kit/output/client/_app/immutable/chunks/0LFkEQJj.js +1 -0
  199. package/web/.svelte-kit/output/client/_app/immutable/chunks/3VEt59CJ.js +1 -0
  200. package/web/.svelte-kit/output/client/_app/immutable/chunks/3VK5OoqB.js +2 -0
  201. package/web/.svelte-kit/output/client/_app/immutable/chunks/BIgf2y--.js +1 -0
  202. package/web/.svelte-kit/output/client/_app/immutable/chunks/BYKFr1kc.js +1 -0
  203. package/web/.svelte-kit/output/client/_app/immutable/chunks/C1qmP6Y6.js +57 -0
  204. package/web/.svelte-kit/output/client/_app/immutable/chunks/D0kXDnUP.js +1 -0
  205. package/web/.svelte-kit/output/client/_app/immutable/chunks/DhmuQbXA.js +2 -0
  206. package/web/.svelte-kit/output/client/_app/immutable/chunks/DiDHw6ae.js +1 -0
  207. package/web/.svelte-kit/output/client/_app/immutable/chunks/DmnhiWj-.js +2 -0
  208. package/web/.svelte-kit/output/client/_app/immutable/chunks/JdItwS__.js +1 -0
  209. package/web/.svelte-kit/output/client/_app/immutable/entry/app.CeK9ifQZ.js +2 -0
  210. package/web/.svelte-kit/output/client/_app/immutable/entry/start.DqoVoTWT.js +1 -0
  211. package/web/.svelte-kit/output/client/_app/immutable/nodes/0.CTZWnfW3.js +1 -0
  212. package/web/.svelte-kit/output/client/_app/immutable/nodes/1.BJ1jbyzF.js +1 -0
  213. package/web/.svelte-kit/output/client/_app/immutable/nodes/{2.CtTVoSAX.js → 2.CeQA6mdU.js} +1 -1
  214. package/web/.svelte-kit/output/client/_app/immutable/nodes/3.BY426pnS.js +169 -0
  215. package/web/.svelte-kit/output/client/_app/immutable/nodes/4.ZFC80VFu.js +2 -0
  216. package/web/.svelte-kit/output/client/_app/version.json +1 -1
  217. package/web/.svelte-kit/output/server/.vite/manifest.json +24 -22
  218. package/web/.svelte-kit/output/server/_app/immutable/assets/{_layout.DwchimSV.css → _layout.Bc6D36yK.css} +1 -1
  219. package/web/.svelte-kit/output/server/_app/immutable/assets/_page.CwgS8Piv.css +1 -0
  220. package/web/.svelte-kit/output/server/chunks/atomic-write.js +11 -0
  221. package/web/.svelte-kit/output/server/chunks/button.js +30 -4
  222. package/web/.svelte-kit/output/server/chunks/index.js +286 -182
  223. package/web/.svelte-kit/output/server/chunks/internal2.js +1 -1
  224. package/web/.svelte-kit/output/server/chunks/message-queue.js +141 -27
  225. package/web/.svelte-kit/output/server/chunks/report.js +3 -8
  226. package/web/.svelte-kit/output/server/chunks/root.js +154 -138
  227. package/web/.svelte-kit/output/server/chunks/sessions-json.js +4 -2
  228. package/web/.svelte-kit/output/server/chunks/severity.js +74 -28
  229. package/web/.svelte-kit/output/server/chunks/ws-handlers.js +163 -68
  230. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_id_/rename/_server.ts.js +1 -1
  231. package/web/.svelte-kit/output/server/entries/hooks.server.js +18 -6
  232. package/web/.svelte-kit/output/server/entries/pages/_layout.svelte.js +130 -163
  233. package/web/.svelte-kit/output/server/entries/pages/session/_target_/_page.svelte.js +185 -252
  234. package/web/.svelte-kit/output/server/entries/pages/usage/_page.svelte.js +1 -3
  235. package/web/.svelte-kit/output/server/manifest-full.js +1 -1
  236. package/web/.svelte-kit/output/server/manifest.js +1 -1
  237. package/web/.svelte-kit/output/server/nodes/0.js +2 -2
  238. package/web/.svelte-kit/output/server/nodes/1.js +1 -1
  239. package/web/.svelte-kit/output/server/nodes/2.js +1 -1
  240. package/web/.svelte-kit/output/server/nodes/3.js +2 -2
  241. package/web/.svelte-kit/output/server/nodes/4.js +2 -2
  242. package/web/src/hooks.server.ts +27 -13
  243. package/web/src/lib/components/MessageQueuePanel.svelte +13 -6
  244. package/web/src/lib/components/SidebarMeters.svelte +290 -0
  245. package/web/src/lib/components/TranscriptView.svelte +106 -10
  246. package/web/src/lib/stores/sessions.svelte.ts +6 -1
  247. package/web/src/lib/stores/terminal.svelte.ts +1 -2
  248. package/web/src/lib/stores/transcript.svelte.ts +83 -7
  249. package/web/src/lib/stores/websocket-base.svelte.ts +25 -0
  250. package/web/src/routes/+layout.svelte +2 -2
  251. package/web/src/routes/api/sessions/[id]/rename/+server.ts +1 -1
  252. package/web/src/routes/session/[target]/+page.svelte +92 -13
  253. package/web/vite.config.ts +4 -1
  254. package/dist/web/client/_app/immutable/assets/3.D3RFs7x_.css +0 -1
  255. package/dist/web/client/_app/immutable/assets/4.BQRymb6N.css +0 -1
  256. package/dist/web/client/_app/immutable/assets/MeterBar.CLkbUOdK.css +0 -1
  257. package/dist/web/client/_app/immutable/chunks/B3ra2-SP.js +0 -1
  258. package/dist/web/client/_app/immutable/chunks/BdCvs6nA.js +0 -1
  259. package/dist/web/client/_app/immutable/chunks/BsIG7LLB.js +0 -69
  260. package/dist/web/client/_app/immutable/chunks/Btdua0aO.js +0 -1
  261. package/dist/web/client/_app/immutable/chunks/CX5X3-8S.js +0 -1
  262. package/dist/web/client/_app/immutable/chunks/D463ACw8.js +0 -2
  263. package/dist/web/client/_app/immutable/chunks/DFmTkvSY.js +0 -1
  264. package/dist/web/client/_app/immutable/chunks/DX4DJVtU.js +0 -1
  265. package/dist/web/client/_app/immutable/chunks/D_l4HINr.js +0 -1
  266. package/dist/web/client/_app/immutable/chunks/Dhl3V6pC.js +0 -1
  267. package/dist/web/client/_app/immutable/chunks/DnYa_s9W.js +0 -2
  268. package/dist/web/client/_app/immutable/chunks/ZJtS1BIn.js +0 -1
  269. package/dist/web/client/_app/immutable/chunks/q8VH4U1M.js +0 -2
  270. package/dist/web/client/_app/immutable/entry/app.UrvZKvY-.js +0 -2
  271. package/dist/web/client/_app/immutable/entry/start.BxC5bZNU.js +0 -1
  272. package/dist/web/client/_app/immutable/nodes/0.DXy_nlRL.js +0 -1
  273. package/dist/web/client/_app/immutable/nodes/1.Gitf4gZU.js +0 -1
  274. package/dist/web/client/_app/immutable/nodes/3.58r_tVoX.js +0 -169
  275. package/dist/web/client/_app/immutable/nodes/4.BGo8keWr.js +0 -2
  276. package/dist/web/server/chunks/0-Db7nSuZ0.js.map +0 -1
  277. package/dist/web/server/chunks/2-mtrhsiYS.js +0 -26
  278. package/dist/web/server/chunks/3-BWmrsbYm.js +0 -27
  279. package/dist/web/server/chunks/3-BWmrsbYm.js.map +0 -1
  280. package/dist/web/server/chunks/4-Bhsra5Wf.js +0 -20
  281. package/dist/web/server/chunks/4-Bhsra5Wf.js.map +0 -1
  282. package/dist/web/server/chunks/_layout.svelte-BPUWL_CJ.js.map +0 -1
  283. package/dist/web/server/chunks/_page.svelte-DgHVg4V1.js.map +0 -1
  284. package/dist/web/server/chunks/button-7v7P6MKH.js.map +0 -1
  285. package/dist/web/server/chunks/chunks-z0jzReFn.js.map +0 -1
  286. package/dist/web/server/chunks/hooks.server-DHO7nRLl.js.map +0 -1
  287. package/dist/web/server/chunks/message-queue--iRdHngh.js +0 -154
  288. package/dist/web/server/chunks/message-queue--iRdHngh.js.map +0 -1
  289. package/dist/web/server/chunks/paths-D6kXc8vK.js +0 -25
  290. package/dist/web/server/chunks/paths-D6kXc8vK.js.map +0 -1
  291. package/dist/web/server/chunks/report-C1vPmDz8.js.map +0 -1
  292. package/dist/web/server/chunks/root-PTKprA41.js.map +0 -1
  293. package/dist/web/server/chunks/sessions-json-oEHt1v8y.js.map +0 -1
  294. package/dist/web/server/chunks/ws-handlers-xWVftyUw.js.map +0 -1
  295. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/MeterBar.CLkbUOdK.css +0 -1
  296. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_page.D3RFs7x_.css +0 -1
  297. package/web/.svelte-kit/output/client/_app/immutable/assets/3.D3RFs7x_.css +0 -1
  298. package/web/.svelte-kit/output/client/_app/immutable/assets/4.BQRymb6N.css +0 -1
  299. package/web/.svelte-kit/output/client/_app/immutable/assets/MeterBar.CLkbUOdK.css +0 -1
  300. package/web/.svelte-kit/output/client/_app/immutable/chunks/B3ra2-SP.js +0 -1
  301. package/web/.svelte-kit/output/client/_app/immutable/chunks/BdCvs6nA.js +0 -1
  302. package/web/.svelte-kit/output/client/_app/immutable/chunks/BsIG7LLB.js +0 -69
  303. package/web/.svelte-kit/output/client/_app/immutable/chunks/Btdua0aO.js +0 -1
  304. package/web/.svelte-kit/output/client/_app/immutable/chunks/CX5X3-8S.js +0 -1
  305. package/web/.svelte-kit/output/client/_app/immutable/chunks/D463ACw8.js +0 -2
  306. package/web/.svelte-kit/output/client/_app/immutable/chunks/DFmTkvSY.js +0 -1
  307. package/web/.svelte-kit/output/client/_app/immutable/chunks/DX4DJVtU.js +0 -1
  308. package/web/.svelte-kit/output/client/_app/immutable/chunks/D_l4HINr.js +0 -1
  309. package/web/.svelte-kit/output/client/_app/immutable/chunks/Dhl3V6pC.js +0 -1
  310. package/web/.svelte-kit/output/client/_app/immutable/chunks/DnYa_s9W.js +0 -2
  311. package/web/.svelte-kit/output/client/_app/immutable/chunks/ZJtS1BIn.js +0 -1
  312. package/web/.svelte-kit/output/client/_app/immutable/chunks/q8VH4U1M.js +0 -2
  313. package/web/.svelte-kit/output/client/_app/immutable/entry/app.UrvZKvY-.js +0 -2
  314. package/web/.svelte-kit/output/client/_app/immutable/entry/start.BxC5bZNU.js +0 -1
  315. package/web/.svelte-kit/output/client/_app/immutable/nodes/0.DXy_nlRL.js +0 -1
  316. package/web/.svelte-kit/output/client/_app/immutable/nodes/1.Gitf4gZU.js +0 -1
  317. package/web/.svelte-kit/output/client/_app/immutable/nodes/3.58r_tVoX.js +0 -169
  318. package/web/.svelte-kit/output/client/_app/immutable/nodes/4.BGo8keWr.js +0 -2
  319. package/web/.svelte-kit/output/server/_app/immutable/assets/MeterBar.CLkbUOdK.css +0 -1
  320. package/web/.svelte-kit/output/server/_app/immutable/assets/_page.D3RFs7x_.css +0 -1
  321. package/web/src/lib/components/SystemStatsWidget.svelte +0 -55
package/CLAUDE.md CHANGED
@@ -100,6 +100,24 @@ to every other check, so adding a detector there costs no extra `tmux` calls.
100
100
  `draft_input`, `draft_kind` and `pane_queue` are live-only: they ride the
101
101
  WebSocket broadcast and are never written to the session JSON.
102
102
 
103
+ ### 5. Finding and streaming a transcript
104
+
105
+ A session's JSONL lives in `~/.claude/projects/<launch dir with / as ->/<session
106
+ id>.jsonl`. The directory is named after the directory Claude Code was *launched*
107
+ in, which stops matching the session's `cwd` as soon as it changes directory, so
108
+ the path cannot be derived from `cwd` alone. The hooks record Claude Code's own
109
+ `transcript_path` in the session JSON; `resolveTranscriptPath()` in
110
+ `src/transcript/tailer.ts` prefers it, falls back to the cwd-derived path, and
111
+ finally scans the project directories for `<session id>.jsonl` (which is what
112
+ rescues sessions written by an older hook). It returns null when the session has
113
+ not written a file yet, and `TranscriptWsManager` keeps looking every few polls.
114
+
115
+ Long sessions run to thousands of entries, so the socket sends the tail
116
+ (`SNAPSHOT_ENTRIES`) with the `firstIndex` it starts at, and the client asks for
117
+ older slices with `history_request` — the same message the terminal uses for its
118
+ scrollback. Delta messages carry each entry's index so a client holding only the
119
+ tail can tell a new entry from an update to one it never received.
120
+
103
121
  ## Key Data Flow
104
122
 
105
123
  ```
@@ -15,6 +15,8 @@ export interface Session {
15
15
  id: string;
16
16
  pid: number;
17
17
  cwd: string;
18
+ /** Claude Code's own JSONL path; absent on older sessions — see resolveTranscriptPath. */
19
+ transcript_path?: string | null;
18
20
  git_root: string | null;
19
21
  tmux_target: string | null;
20
22
  state: SessionState;
@@ -32,6 +34,7 @@ export interface SessionInput {
32
34
  id: string;
33
35
  pid: number;
34
36
  cwd: string;
37
+ transcript_path?: string | null;
35
38
  git_root?: string | null;
36
39
  tmux_target?: string | null;
37
40
  state?: SessionState;
@@ -1 +1 @@
1
- {"version":3,"file":"sessions-json.d.ts","sourceRoot":"","sources":["../../src/db/sessions-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessions-json.d.ts","sourceRoot":"","sources":["../../src/db/sessions-json.ts"],"names":[],"mappings":"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"}
@@ -79,6 +79,7 @@ export function upsertSession(input) {
79
79
  id: input.id,
80
80
  pid: input.pid,
81
81
  cwd: input.cwd,
82
+ transcript_path: input.transcript_path ?? existing?.transcript_path ?? null,
82
83
  git_root: input.git_root ?? existing?.git_root ?? null,
83
84
  tmux_target: input.tmux_target ?? existing?.tmux_target ?? null,
84
85
  state: input.state ?? existing?.state ?? "busy",
@@ -1 +1 @@
1
- {"version":3,"file":"sessions-json.js","sourceRoot":"","sources":["../../src/db/sessions-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessions-json.js","sourceRoot":"","sources":["../../src/db/sessions-json.ts"],"names":[],"mappings":"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"}
@@ -287,6 +287,7 @@ function handleSessionStart(input) {
287
287
  id: input.session_id,
288
288
  pid,
289
289
  cwd: input.cwd,
290
+ transcript_path: input.transcript_path ?? existing?.transcript_path ?? null,
290
291
  git_root: gitRoot,
291
292
  tmux_target: tmuxTarget,
292
293
  state: keepRunState ? (existing?.state ?? "idle") : "idle",
@@ -300,8 +301,13 @@ function handleSessionStart(input) {
300
301
  }
301
302
  function getOrCreateSession(input) {
302
303
  const existing = readSession(input.session_id);
303
- if (existing)
304
+ if (existing) {
305
+ // Sessions written before this field existed, and resumed sessions whose
306
+ // file moved, pick it up on their next event.
307
+ if (input.transcript_path)
308
+ existing.transcript_path = input.transcript_path;
304
309
  return existing;
310
+ }
305
311
  // Session doesn't exist (e.g., resumed session) - create it
306
312
  const tmuxTarget = getTmuxTarget();
307
313
  let linkedTo = null;
@@ -314,6 +320,7 @@ function getOrCreateSession(input) {
314
320
  id: input.session_id,
315
321
  pid: getClaudePid(),
316
322
  cwd: input.cwd,
323
+ transcript_path: input.transcript_path ?? null,
317
324
  git_root: gitRoot,
318
325
  tmux_target: tmuxTarget,
319
326
  state: "idle",
@@ -1 +1 @@
1
- {"version":3,"file":"claude-mux-hook.js","sourceRoot":"","sources":["../../src/hooks/claude-mux-hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-mux-hook.js","sourceRoot":"","sources":["../../src/hooks/claude-mux-hook.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,27 @@
1
1
  /**
2
- * In-memory message queue for sessions.
2
+ * Message queue for sessions.
3
3
  * Messages are queued per tmux target and auto-sent when the session goes idle.
4
+ *
5
+ * The queue is kept in memory and mirrored to ~/.claude-mux/queue.json, so a
6
+ * server restart does not silently swallow messages that were waiting for a
7
+ * busy pane. Only one server owns the file at a time (see the ownership lock
8
+ * below): a second instance, such as the dev server running alongside the
9
+ * systemd one, keeps its own in-memory queue and leaves the file alone, so
10
+ * neither restores — and then re-sends — what the other is already holding.
11
+ */
12
+ /**
13
+ * Who put the message in the queue. `user` is something a human typed and is
14
+ * waiting to see delivered; `control` is claude-mux talking to the agent on its
15
+ * own behalf (today: mirroring a dashboard rename as `/rename`). The UI needs
16
+ * the difference so it can stop reporting its own bookkeeping as your backlog.
4
17
  */
18
+ export type QueuedMessageKind = 'user' | 'control';
5
19
  export interface QueuedMessage {
6
20
  text: string;
7
21
  queuedAt: number;
22
+ kind: QueuedMessageKind;
23
+ /** Failed send attempts, so a message aimed at a dead pane gives up. */
24
+ attempts?: number;
8
25
  }
9
26
  interface SessionLike {
10
27
  tmux_target: string | null;
@@ -17,14 +34,26 @@ interface SessionLike {
17
34
  export declare function sendTextToPane(target: string, text: string, opts?: {
18
35
  appendEnter?: boolean;
19
36
  }): void;
20
- export declare function enqueue(target: string, text: string): QueuedMessage[];
37
+ export declare function enqueue(target: string, text: string, kind?: QueuedMessageKind): QueuedMessage[];
21
38
  export declare function dequeue(target: string): QueuedMessage | undefined;
22
39
  export declare function getQueue(target: string): QueuedMessage[];
23
40
  export declare function removeFromQueue(target: string, index: number): QueuedMessage[];
24
41
  export declare function reorderQueue(target: string, fromIndex: number, toIndex: number): QueuedMessage[];
25
42
  export declare function clearQueue(target: string): void;
26
- /** Returns queue counts for all targets that have queued messages */
27
- export declare function getQueueCounts(): Map<string, number>;
43
+ export interface QueueSummary {
44
+ count: number;
45
+ /** The message that goes out next — what the UI should name. */
46
+ head: QueuedMessage;
47
+ }
48
+ /**
49
+ * How much is queued for one target and what goes out next, so the dashboard
50
+ * can say what it is waiting on instead of showing a bare number. A lookup
51
+ * rather than a collection: the sessions broadcast asks per session, twice a
52
+ * second, and the queues are almost always empty.
53
+ */
54
+ export declare function getQueueSummary(target: string): QueueSummary | null;
55
+ /** Whether anything at all is queued — the drain loop's own start/stop guard. */
56
+ export declare function hasQueuedMessages(): boolean;
28
57
  /**
29
58
  * Drain queued messages for sessions sitting idle.
30
59
  * Called every ~500ms from the sessions WS manager refresh loop.
@@ -1 +1 @@
1
- {"version":3,"file":"message-queue.d.ts","sourceRoot":"","sources":["../../src/server/message-queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,WAAW;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACd;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,IAAI,CAavG;AAyCD,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAQrE;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAIjE;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAExD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAM9E;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAQhG;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,qEAAqE;AACrE,wBAAgB,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQpD;AAMD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAiDzD;AAMD;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAgBtC"}
1
+ {"version":3,"file":"message-queue.d.ts","sourceRoot":"","sources":["../../src/server/message-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAcH;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,iBAAiB,CAAC;IACxB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,WAAW;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACd;AAqBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,IAAI,CAavG;AAqHD,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,iBAA0B,GAAG,aAAa,EAAE,CAOvG;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAOjE;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAExD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAO9E;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAShG;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAK/C;AAED,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,IAAI,EAAE,aAAa,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAInE;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAuDD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAwEzD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAgBtC"}
@@ -1,9 +1,33 @@
1
1
  /**
2
- * In-memory message queue for sessions.
2
+ * Message queue for sessions.
3
3
  * Messages are queued per tmux target and auto-sent when the session goes idle.
4
+ *
5
+ * The queue is kept in memory and mirrored to ~/.claude-mux/queue.json, so a
6
+ * server restart does not silently swallow messages that were waiting for a
7
+ * busy pane. Only one server owns the file at a time (see the ownership lock
8
+ * below): a second instance, such as the dev server running alongside the
9
+ * systemd one, keeps its own in-memory queue and leaves the file alone, so
10
+ * neither restores — and then re-sends — what the other is already holding.
4
11
  */
5
12
  import { execFileSync, execSync } from 'child_process';
13
+ import { existsSync, readFileSync } from 'fs';
14
+ import { join } from 'path';
6
15
  import { getAllSessions } from '../db/index.js';
16
+ import { CLAUDE_MUX_DIR } from '../utils/paths.js';
17
+ import { writeFileAtomic } from '../utils/atomic-write.js';
18
+ import { isPidAlive } from '../utils/pid.js';
19
+ // ============================================================================
20
+ // Timing
21
+ // ============================================================================
22
+ const IDLE_GRACE_MS = 1000;
23
+ const RESEND_FALLBACK_MS = 10_000;
24
+ const DRAIN_INTERVAL_MS = 500;
25
+ /** How long a message may wait for its pane before it is assumed stale. */
26
+ const QUEUE_TTL_MS = 24 * 60 * 60 * 1000;
27
+ /** How long a target may be absent from the session list before its queue dies. */
28
+ const ORPHAN_GRACE_MS = 60_000;
29
+ /** Send attempts before an undeliverable message is dropped. */
30
+ const MAX_SEND_ATTEMPTS = 3;
7
31
  // ============================================================================
8
32
  // Shared tmux text injection helper
9
33
  // ============================================================================
@@ -26,33 +50,99 @@ export function sendTextToPane(target, text, opts = {}) {
26
50
  }
27
51
  }
28
52
  const GLOBAL_KEY = '__claude_mux_message_queue__';
53
+ /** Overridable so tests never touch the real ~/.claude-mux/queue.json. */
54
+ const QUEUE_PATH = process.env.CLAUDE_MUX_QUEUE_PATH ?? join(CLAUDE_MUX_DIR, 'queue.json');
55
+ /**
56
+ * Read the persisted queue and decide whether this process may own it.
57
+ *
58
+ * Ownership is the pid recorded in the file: if that process is still running
59
+ * and is not us, another server is already draining those messages, so we start
60
+ * empty and never write — two servers pasting the same queued text into one
61
+ * pane is worse than losing the restore.
62
+ */
63
+ function loadPersisted() {
64
+ const empty = new Map();
65
+ if (!existsSync(QUEUE_PATH))
66
+ return { queues: empty, persist: true };
67
+ try {
68
+ const file = JSON.parse(readFileSync(QUEUE_PATH, 'utf-8'));
69
+ if (file.owner_pid && file.owner_pid !== process.pid && isPidAlive(file.owner_pid)) {
70
+ console.warn(`[queue] ${QUEUE_PATH} is owned by live pid ${file.owner_pid}; running without persistence`);
71
+ return { queues: empty, persist: false };
72
+ }
73
+ const queues = new Map();
74
+ for (const [target, messages] of Object.entries(file.queues ?? {})) {
75
+ // Expiry belongs to pruneQueues, which runs on the first drain tick.
76
+ const restored = (messages ?? [])
77
+ .filter((m) => m && typeof m.text === 'string')
78
+ .map((m) => ({ ...m, kind: m.kind === 'control' ? 'control' : 'user' }));
79
+ if (restored.length > 0)
80
+ queues.set(target, restored);
81
+ }
82
+ if (queues.size > 0) {
83
+ console.log(`[queue] Restored ${queues.size} queue(s) from ${QUEUE_PATH}`);
84
+ }
85
+ return { queues, persist: true };
86
+ }
87
+ catch (err) {
88
+ console.error('[queue] Failed to read persisted queue:', err);
89
+ return { queues: empty, persist: true };
90
+ }
91
+ }
92
+ /** Mirror the in-memory queues to disk. No-op when another server owns the file. */
93
+ function persistQueues() {
94
+ if (!globalState.persist)
95
+ return;
96
+ try {
97
+ const queues = {};
98
+ for (const [target, queue] of globalState.queues) {
99
+ if (queue.length > 0)
100
+ queues[target] = queue;
101
+ }
102
+ const file = { v: 1, owner_pid: process.pid, queues };
103
+ writeFileAtomic(QUEUE_PATH, JSON.stringify(file, null, 2));
104
+ }
105
+ catch (err) {
106
+ console.error('[queue] Failed to persist queue:', err);
107
+ }
108
+ }
29
109
  function getGlobalState() {
30
110
  const g = globalThis;
31
111
  if (!g[GLOBAL_KEY]) {
112
+ const restored = loadPersisted();
32
113
  g[GLOBAL_KEY] = {
33
- queues: new Map(),
114
+ queues: restored.queues,
34
115
  pendingDrain: new Map(),
35
116
  recentlySent: new Map(),
36
- drainTimer: null
117
+ missingSince: new Map(),
118
+ drainTimer: null,
119
+ persist: restored.persist
37
120
  };
38
121
  }
39
122
  const state = g[GLOBAL_KEY];
40
123
  // Backfill fields added after an older module instance created the state (dev HMR)
41
124
  state.recentlySent ??= new Map();
125
+ state.missingSince ??= new Map();
42
126
  state.drainTimer ??= null;
127
+ state.persist ??= true;
43
128
  return state;
44
129
  }
45
130
  const globalState = getGlobalState();
46
- const { queues, pendingDrain, recentlySent } = globalState;
131
+ const { queues, pendingDrain, recentlySent, missingSince } = globalState;
47
132
  // ============================================================================
48
133
  // Queue operations
49
134
  // ============================================================================
50
- export function enqueue(target, text) {
51
- if (!queues.has(target)) {
52
- queues.set(target, []);
53
- }
54
- const queue = queues.get(target);
55
- queue.push({ text, queuedAt: Date.now() });
135
+ function queueFor(target) {
136
+ let queue = queues.get(target);
137
+ if (!queue)
138
+ queues.set(target, (queue = []));
139
+ return queue;
140
+ }
141
+ export function enqueue(target, text, kind = 'user') {
142
+ const queue = queueFor(target);
143
+ queue.push({ text, queuedAt: Date.now(), kind });
144
+ missingSince.delete(target);
145
+ persistQueues();
56
146
  ensureDrainLoop();
57
147
  return queue;
58
148
  }
@@ -60,7 +150,11 @@ export function dequeue(target) {
60
150
  const queue = queues.get(target);
61
151
  if (!queue || queue.length === 0)
62
152
  return undefined;
63
- return queue.shift();
153
+ const message = queue.shift();
154
+ if (queue.length === 0)
155
+ queues.delete(target);
156
+ persistQueues();
157
+ return message;
64
158
  }
65
159
  export function getQueue(target) {
66
160
  return queues.get(target) ?? [];
@@ -72,6 +166,7 @@ export function removeFromQueue(target, index) {
72
166
  queue.splice(index, 1);
73
167
  if (queue.length === 0)
74
168
  queues.delete(target);
169
+ persistQueues();
75
170
  return queue ?? [];
76
171
  }
77
172
  export function reorderQueue(target, fromIndex, toIndex) {
@@ -84,24 +179,78 @@ export function reorderQueue(target, fromIndex, toIndex) {
84
179
  return queue;
85
180
  const [item] = queue.splice(fromIndex, 1);
86
181
  queue.splice(toIndex, 0, item);
182
+ persistQueues();
87
183
  return queue;
88
184
  }
89
185
  export function clearQueue(target) {
90
186
  queues.delete(target);
187
+ pendingDrain.delete(target);
188
+ missingSince.delete(target);
189
+ persistQueues();
91
190
  }
92
- /** Returns queue counts for all targets that have queued messages */
93
- export function getQueueCounts() {
94
- const counts = new Map();
95
- for (const [target, queue] of queues) {
96
- if (queue.length > 0) {
97
- counts.set(target, queue.length);
98
- }
99
- }
100
- return counts;
191
+ /**
192
+ * How much is queued for one target and what goes out next, so the dashboard
193
+ * can say what it is waiting on instead of showing a bare number. A lookup
194
+ * rather than a collection: the sessions broadcast asks per session, twice a
195
+ * second, and the queues are almost always empty.
196
+ */
197
+ export function getQueueSummary(target) {
198
+ const queue = queues.get(target);
199
+ if (!queue || queue.length === 0)
200
+ return null;
201
+ return { count: queue.length, head: queue[0] };
202
+ }
203
+ /** Whether anything at all is queued — the drain loop's own start/stop guard. */
204
+ export function hasQueuedMessages() {
205
+ return queues.size > 0;
101
206
  }
102
207
  // ============================================================================
103
208
  // Auto-drain logic
104
209
  // ============================================================================
210
+ /**
211
+ * Forget queues that can no longer be delivered: messages older than the TTL,
212
+ * and queues whose tmux target no longer belongs to any session. Without this a
213
+ * queue aimed at a closed pane keeps the drain loop spinning forever.
214
+ */
215
+ function pruneQueues(knownTargets, now) {
216
+ let changed = false;
217
+ const drop = (target) => {
218
+ queues.delete(target);
219
+ pendingDrain.delete(target);
220
+ missingSince.delete(target);
221
+ changed = true;
222
+ };
223
+ for (const [target, queue] of queues) {
224
+ // Messages are appended in time order (and a retry goes back to the
225
+ // front), so the head is the oldest: no scan unless it has expired.
226
+ if (queue.length === 0 || now - queue[0].queuedAt >= QUEUE_TTL_MS) {
227
+ const fresh = queue.filter((m) => now - m.queuedAt < QUEUE_TTL_MS);
228
+ if (fresh.length < queue.length) {
229
+ console.warn(`[queue] Dropped ${queue.length - fresh.length} message(s) for ${target}: older than ${QUEUE_TTL_MS}ms`);
230
+ }
231
+ if (fresh.length === 0) {
232
+ drop(target);
233
+ continue;
234
+ }
235
+ queues.set(target, fresh);
236
+ changed = true;
237
+ }
238
+ if (knownTargets.has(target)) {
239
+ missingSince.delete(target);
240
+ continue;
241
+ }
242
+ // The session file is gone (pane closed, session ended). Give it a grace
243
+ // period — a session list read can come back short mid-write.
244
+ const since = missingSince.get(target) ?? now;
245
+ missingSince.set(target, since);
246
+ if (now - since >= ORPHAN_GRACE_MS) {
247
+ console.warn(`[queue] Dropped ${queue.length} message(s) for ${target}: session gone`);
248
+ drop(target);
249
+ }
250
+ }
251
+ if (changed)
252
+ persistQueues();
253
+ }
105
254
  /**
106
255
  * Drain queued messages for sessions sitting idle.
107
256
  * Called every ~500ms from the sessions WS manager refresh loop.
@@ -113,6 +262,12 @@ export function getQueueCounts() {
113
262
  */
114
263
  export function drainQueues(sessions) {
115
264
  const now = Date.now();
265
+ const knownTargets = new Set();
266
+ for (const session of sessions) {
267
+ if (session.tmux_target)
268
+ knownTargets.add(session.tmux_target);
269
+ }
270
+ pruneQueues(knownTargets, now);
116
271
  for (const session of sessions) {
117
272
  if (!session.tmux_target)
118
273
  continue;
@@ -145,25 +300,31 @@ export function drainQueues(sessions) {
145
300
  if (now - pendingTime < IDLE_GRACE_MS)
146
301
  continue;
147
302
  pendingDrain.delete(target);
148
- const message = dequeue(target);
149
- if (!message)
150
- continue;
303
+ // Peek rather than dequeue: a message only leaves the queue once tmux has
304
+ // taken it, so a failed send costs one attempt instead of a remove and a
305
+ // re-insert (and two writes of the persisted file).
306
+ const message = queue[0];
151
307
  try {
152
308
  sendTextToPane(target, message.text);
309
+ dequeue(target);
153
310
  recentlySent.set(target, now);
154
311
  console.log(`[queue] Auto-sent queued message to ${target}`);
155
312
  }
156
313
  catch (err) {
157
- console.error(`[queue] Failed to send queued message to ${target}:`, err);
158
- if (!queues.has(target))
159
- queues.set(target, []);
160
- queues.get(target).unshift(message);
314
+ // tmux refused the paste usually the pane is gone. Retry a couple of
315
+ // times, then drop it: an undeliverable message must not keep the drain
316
+ // loop, and its error log, running forever.
317
+ message.attempts = (message.attempts ?? 0) + 1;
318
+ if (message.attempts >= MAX_SEND_ATTEMPTS) {
319
+ console.error(`[queue] Giving up on message for ${target} after ${message.attempts} attempts:`, err);
320
+ dequeue(target);
321
+ continue;
322
+ }
323
+ console.error(`[queue] Failed to send queued message to ${target} (attempt ${message.attempts}):`, err);
324
+ persistQueues();
161
325
  }
162
326
  }
163
327
  }
164
- const IDLE_GRACE_MS = 1000;
165
- const RESEND_FALLBACK_MS = 10_000;
166
- const DRAIN_INTERVAL_MS = 500;
167
328
  /**
168
329
  * Server-owned drain loop. Runs while any queue is non-empty, independent of
169
330
  * whether a dashboard client is connected (the WS refresh loop only runs with
@@ -174,7 +335,7 @@ export function ensureDrainLoop() {
174
335
  if (globalState.drainTimer)
175
336
  return;
176
337
  globalState.drainTimer = setInterval(() => {
177
- if (getQueueCounts().size === 0) {
338
+ if (!hasQueuedMessages()) {
178
339
  if (globalState.drainTimer)
179
340
  clearInterval(globalState.drainTimer);
180
341
  globalState.drainTimer = null;
@@ -191,6 +352,7 @@ export function ensureDrainLoop() {
191
352
  globalState.drainTimer.unref?.();
192
353
  }
193
354
  // Resume draining if queues survived a module reload (dev HMR keeps globalThis)
194
- if (getQueueCounts().size > 0)
355
+ // or a server restart (the persisted file above).
356
+ if (hasQueuedMessages())
195
357
  ensureDrainLoop();
196
358
  //# sourceMappingURL=message-queue.js.map