claude-mux 0.13.0 → 0.15.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 (347) hide show
  1. package/CLAUDE.md +32 -2
  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 +60 -9
  13. package/dist/server/ws-handlers.d.ts.map +1 -1
  14. package/dist/server/ws-handlers.js +173 -72
  15. package/dist/server/ws-handlers.js.map +1 -1
  16. package/dist/tmux/answer-keys.d.ts +14 -0
  17. package/dist/tmux/answer-keys.d.ts.map +1 -1
  18. package/dist/tmux/answer-keys.js +23 -1
  19. package/dist/tmux/answer-keys.js.map +1 -1
  20. package/dist/tmux/pane.d.ts +30 -0
  21. package/dist/tmux/pane.d.ts.map +1 -1
  22. package/dist/tmux/pane.js +103 -0
  23. package/dist/tmux/pane.js.map +1 -1
  24. package/dist/transcript/parser.d.ts +2 -0
  25. package/dist/transcript/parser.d.ts.map +1 -1
  26. package/dist/transcript/parser.js +4 -0
  27. package/dist/transcript/parser.js.map +1 -1
  28. package/dist/transcript/tailer.d.ts +25 -6
  29. package/dist/transcript/tailer.d.ts.map +1 -1
  30. package/dist/transcript/tailer.js +55 -10
  31. package/dist/transcript/tailer.js.map +1 -1
  32. package/dist/types/ws-messages.d.ts +75 -0
  33. package/dist/types/ws-messages.d.ts.map +1 -1
  34. package/dist/types/ws-messages.js +14 -0
  35. package/dist/types/ws-messages.js.map +1 -1
  36. package/dist/utils/pid.d.ts +4 -0
  37. package/dist/utils/pid.d.ts.map +1 -1
  38. package/dist/utils/pid.js +6 -2
  39. package/dist/utils/pid.js.map +1 -1
  40. package/dist/utils/version.d.ts +1 -1
  41. package/dist/utils/version.js +1 -1
  42. package/dist/web/client/_app/immutable/assets/0.CM7ebVA7.css +1 -0
  43. package/dist/web/client/_app/immutable/assets/3.BdsDZ0o8.css +1 -0
  44. package/dist/web/client/_app/immutable/assets/4.D3oacHIV.css +1 -0
  45. package/dist/web/client/_app/immutable/chunks/BpsTpPGB.js +2 -0
  46. package/{web/.svelte-kit/output/client/_app/immutable/chunks/D463ACw8.js → dist/web/client/_app/immutable/chunks/BtT7mcTJ.js} +2 -2
  47. package/dist/web/client/_app/immutable/chunks/BuvGONG-.js +2 -0
  48. package/dist/web/client/_app/immutable/chunks/CcuctAcy.js +1 -0
  49. package/dist/web/client/_app/immutable/chunks/CjMoR7Dp.js +1 -0
  50. package/dist/web/client/_app/immutable/chunks/DE2a_9Uk.js +1 -0
  51. package/dist/web/client/_app/immutable/chunks/DRBq3mUM.js +1 -0
  52. package/dist/web/client/_app/immutable/chunks/Dy0iaTyC.js +1 -0
  53. package/dist/web/client/_app/immutable/chunks/RhyL4cOo.js +1 -0
  54. package/dist/web/client/_app/immutable/chunks/T8RFyyA1.js +57 -0
  55. package/dist/web/client/_app/immutable/chunks/ukOf9Kzz.js +1 -0
  56. package/dist/web/client/_app/immutable/entry/app.BTMzvzKK.js +2 -0
  57. package/dist/web/client/_app/immutable/entry/start.ieHH0cEf.js +1 -0
  58. package/dist/web/client/_app/immutable/nodes/0.X9ScV8I8.js +1 -0
  59. package/dist/web/client/_app/immutable/nodes/1.BcEIUcui.js +1 -0
  60. package/dist/web/client/_app/immutable/nodes/{2.CtTVoSAX.js → 2.B1QiBSmU.js} +1 -1
  61. package/dist/web/client/_app/immutable/nodes/3.CLGJ9_B6.js +168 -0
  62. package/dist/web/client/_app/immutable/nodes/4.RVM8gnvM.js +2 -0
  63. package/dist/web/client/_app/version.json +1 -1
  64. package/dist/web/server/chunks/{0-Db7nSuZ0.js → 0-CqA3Dl6m.js} +15 -17
  65. package/dist/web/server/chunks/0-CqA3Dl6m.js.map +1 -0
  66. package/dist/web/server/chunks/{1-BJV9MPOn.js → 1-5-IYG2Xy.js} +6 -6
  67. package/dist/web/server/chunks/{1-BJV9MPOn.js.map → 1-5-IYG2Xy.js.map} +1 -1
  68. package/dist/web/server/chunks/2-Bz4VYycr.js +26 -0
  69. package/dist/web/server/chunks/{2-mtrhsiYS.js.map → 2-Bz4VYycr.js.map} +1 -1
  70. package/dist/web/server/chunks/3-_PwGZ7cI.js +26 -0
  71. package/dist/web/server/chunks/3-_PwGZ7cI.js.map +1 -0
  72. package/dist/web/server/chunks/4-DWNV8gkw.js +18 -0
  73. package/dist/web/server/chunks/4-DWNV8gkw.js.map +1 -0
  74. package/dist/web/server/chunks/{_layout.svelte-BPUWL_CJ.js → _layout.svelte-BGrqPLMw.js} +234 -235
  75. package/dist/web/server/chunks/_layout.svelte-BGrqPLMw.js.map +1 -0
  76. package/dist/web/server/chunks/{_page.svelte-DgHVg4V1.js → _page.svelte-BFMK4Qci.js} +3 -4
  77. package/dist/web/server/chunks/_page.svelte-BFMK4Qci.js.map +1 -0
  78. package/dist/web/server/chunks/{_page.svelte-NYyAP3x7.js → _page.svelte-CoheoAsM.js} +5 -5
  79. package/dist/web/server/chunks/{_page.svelte-NYyAP3x7.js.map → _page.svelte-CoheoAsM.js.map} +1 -1
  80. package/dist/web/server/chunks/{_server.ts-BPbH7LJV.js → _server.ts-B-lHdJxn.js} +2 -2
  81. package/dist/web/server/chunks/{_server.ts-BPbH7LJV.js.map → _server.ts-B-lHdJxn.js.map} +1 -1
  82. package/dist/web/server/chunks/{_server.ts-CX7HFwG_.js → _server.ts-BBFH6yZ0.js} +2 -2
  83. package/dist/web/server/chunks/{_server.ts-CX7HFwG_.js.map → _server.ts-BBFH6yZ0.js.map} +1 -1
  84. package/dist/web/server/chunks/{_server.ts-D6Uvtstq.js → _server.ts-BUNHIvSv.js} +6 -6
  85. package/dist/web/server/chunks/{_server.ts-D6Uvtstq.js.map → _server.ts-BUNHIvSv.js.map} +1 -1
  86. package/dist/web/server/chunks/{_server.ts-DGaaRqn9.js → _server.ts-BYB66HM_.js} +3 -3
  87. package/dist/web/server/chunks/{_server.ts-DGaaRqn9.js.map → _server.ts-BYB66HM_.js.map} +1 -1
  88. package/dist/web/server/chunks/{_server.ts-TnlTbrO5.js → _server.ts-BsP01Hkg.js} +2 -2
  89. package/dist/web/server/chunks/{_server.ts-TnlTbrO5.js.map → _server.ts-BsP01Hkg.js.map} +1 -1
  90. package/dist/web/server/chunks/{_server.ts-DoAck7hw.js → _server.ts-C2sGvDiR.js} +3 -3
  91. package/dist/web/server/chunks/{_server.ts-DoAck7hw.js.map → _server.ts-C2sGvDiR.js.map} +1 -1
  92. package/dist/web/server/chunks/{_server.ts-D-Qq_95j.js → _server.ts-C7yq6qeP.js} +2 -2
  93. package/dist/web/server/chunks/{_server.ts-D-Qq_95j.js.map → _server.ts-C7yq6qeP.js.map} +1 -1
  94. package/dist/web/server/chunks/{_server.ts-C-_tMNQf.js → _server.ts-CEGljBAH.js} +3 -3
  95. package/dist/web/server/chunks/{_server.ts-C-_tMNQf.js.map → _server.ts-CEGljBAH.js.map} +1 -1
  96. package/dist/web/server/chunks/{_server.ts-C8xddQab.js → _server.ts-CKPeS61d.js} +4 -3
  97. package/dist/web/server/chunks/{_server.ts-C8xddQab.js.map → _server.ts-CKPeS61d.js.map} +1 -1
  98. package/dist/web/server/chunks/{_server.ts-C8flg7gn.js → _server.ts-C_Ql8FZ-.js} +2 -2
  99. package/dist/web/server/chunks/{_server.ts-C8flg7gn.js.map → _server.ts-C_Ql8FZ-.js.map} +1 -1
  100. package/dist/web/server/chunks/{_server.ts-DIQGFE8O.js → _server.ts-C_mfkTE7.js} +3 -3
  101. package/dist/web/server/chunks/{_server.ts-DIQGFE8O.js.map → _server.ts-C_mfkTE7.js.map} +1 -1
  102. package/dist/web/server/chunks/{_server.ts-CSH42v1n.js → _server.ts-CmiVXskP.js} +4 -4
  103. package/dist/web/server/chunks/{_server.ts-CSH42v1n.js.map → _server.ts-CmiVXskP.js.map} +1 -1
  104. package/dist/web/server/chunks/{_server.ts-B8NDaVEA.js → _server.ts-Cn71ivEy.js} +2 -2
  105. package/dist/web/server/chunks/{_server.ts-B8NDaVEA.js.map → _server.ts-Cn71ivEy.js.map} +1 -1
  106. package/dist/web/server/chunks/{_server.ts-DjPJQFg6.js → _server.ts-CrGvgmhz.js} +2 -2
  107. package/dist/web/server/chunks/{_server.ts-DjPJQFg6.js.map → _server.ts-CrGvgmhz.js.map} +1 -1
  108. package/dist/web/server/chunks/{_server.ts-BUOlFdaJ.js → _server.ts-CuyvmPMw.js} +2 -2
  109. package/dist/web/server/chunks/{_server.ts-BUOlFdaJ.js.map → _server.ts-CuyvmPMw.js.map} +1 -1
  110. package/dist/web/server/chunks/{_server.ts-BjzIEXqr.js → _server.ts-D0p-5SOe.js} +4 -4
  111. package/dist/web/server/chunks/{_server.ts-BjzIEXqr.js.map → _server.ts-D0p-5SOe.js.map} +1 -1
  112. package/dist/web/server/chunks/{_server.ts-D5dm8i7d.js → _server.ts-DC17XVgt.js} +3 -3
  113. package/dist/web/server/chunks/{_server.ts-D5dm8i7d.js.map → _server.ts-DC17XVgt.js.map} +1 -1
  114. package/dist/web/server/chunks/{_server.ts-Gx9itF7F.js → _server.ts-DN18Vkn-.js} +3 -3
  115. package/dist/web/server/chunks/{_server.ts-Gx9itF7F.js.map → _server.ts-DN18Vkn-.js.map} +1 -1
  116. package/dist/web/server/chunks/{_server.ts-BH5WsFew.js → _server.ts-Da7wwvP7.js} +5 -5
  117. package/dist/web/server/chunks/{_server.ts-BH5WsFew.js.map → _server.ts-Da7wwvP7.js.map} +1 -1
  118. package/dist/web/server/chunks/{_server.ts-ClnHebbv.js → _server.ts-Sp9RMGm3.js} +2 -2
  119. package/dist/web/server/chunks/{_server.ts-ClnHebbv.js.map → _server.ts-Sp9RMGm3.js.map} +1 -1
  120. package/dist/web/server/chunks/{_server.ts-sXwS8wXq.js → _server.ts-WRtFZDr6.js} +5 -5
  121. package/dist/web/server/chunks/{_server.ts-sXwS8wXq.js.map → _server.ts-WRtFZDr6.js.map} +1 -1
  122. package/dist/web/server/chunks/{_server.ts-Brx8WsV_.js → _server.ts-kqTdT7BK.js} +3 -3
  123. package/dist/web/server/chunks/{_server.ts-Brx8WsV_.js.map → _server.ts-kqTdT7BK.js.map} +1 -1
  124. package/dist/web/server/chunks/{_server.ts-CzEOLTft.js → _server.ts-oE4pAGqp.js} +3 -3
  125. package/dist/web/server/chunks/{_server.ts-CzEOLTft.js.map → _server.ts-oE4pAGqp.js.map} +1 -1
  126. package/dist/web/server/chunks/atomic-write-DZQx1GJa.js +13 -0
  127. package/dist/web/server/chunks/atomic-write-DZQx1GJa.js.map +1 -0
  128. package/dist/web/server/chunks/{attachments-ClNRGnTM.js → attachments-kaxlsreD.js} +2 -2
  129. package/dist/web/server/chunks/{attachments-ClNRGnTM.js.map → attachments-kaxlsreD.js.map} +1 -1
  130. package/dist/web/server/chunks/{button-7v7P6MKH.js → button-BUv-WJCB.js} +1879 -932
  131. package/dist/web/server/chunks/button-BUv-WJCB.js.map +1 -0
  132. package/dist/web/server/chunks/{chunks-z0jzReFn.js → chunks-DjkFKU0Z.js} +200 -106
  133. package/dist/web/server/chunks/chunks-DjkFKU0Z.js.map +1 -0
  134. package/dist/web/server/chunks/{error.svelte-BF20x8lR.js → error.svelte-BbIs6wWT.js} +4 -4
  135. package/dist/web/server/chunks/{error.svelte-BF20x8lR.js.map → error.svelte-BbIs6wWT.js.map} +1 -1
  136. package/dist/web/server/chunks/{exports-BXZSJVru.js → exports-piA4c_uA.js} +4 -4
  137. package/dist/web/server/chunks/{exports-BXZSJVru.js.map → exports-piA4c_uA.js.map} +1 -1
  138. package/dist/web/server/chunks/{hooks.server-DHO7nRLl.js → hooks.server-CIv7ibaV.js} +17 -7
  139. package/dist/web/server/chunks/hooks.server-CIv7ibaV.js.map +1 -0
  140. package/dist/web/server/chunks/json-4v86y-Ft.js +15 -0
  141. package/dist/web/server/chunks/json-4v86y-Ft.js.map +1 -0
  142. package/dist/web/server/chunks/message-queue-B_JPzbSZ.js +281 -0
  143. package/dist/web/server/chunks/message-queue-B_JPzbSZ.js.map +1 -0
  144. package/dist/web/server/chunks/paths-6nWNmeI4.js +13 -0
  145. package/dist/web/server/chunks/paths-6nWNmeI4.js.map +1 -0
  146. package/dist/web/server/chunks/{report-C1vPmDz8.js → report-DzmJJvNC.js} +7 -11
  147. package/dist/web/server/chunks/report-DzmJJvNC.js.map +1 -0
  148. package/dist/web/server/chunks/{root-PTKprA41.js → root-CpxFdOD_.js} +125 -109
  149. package/dist/web/server/chunks/root-CpxFdOD_.js.map +1 -0
  150. package/dist/web/server/chunks/{sessions-json-oEHt1v8y.js → sessions-json-CtkawSxA.js} +5 -4
  151. package/dist/web/server/chunks/sessions-json-CtkawSxA.js.map +1 -0
  152. package/dist/web/server/chunks/{state.svelte-CB0Au2qM.js → state.svelte-DaxvD0LT.js} +3 -3
  153. package/dist/web/server/chunks/{state.svelte-CB0Au2qM.js.map → state.svelte-DaxvD0LT.js.map} +1 -1
  154. package/dist/web/server/chunks/{ws-handlers-xWVftyUw.js → ws-handlers-CS6IEx1B.js} +229 -62
  155. package/dist/web/server/chunks/ws-handlers-CS6IEx1B.js.map +1 -0
  156. package/dist/web/server/chunks/{ws-managers-BbpA8jLN.js → ws-managers-DcA1rt1Q.js} +2 -2
  157. package/dist/web/server/chunks/{ws-managers-BbpA8jLN.js.map → ws-managers-DcA1rt1Q.js.map} +1 -1
  158. package/dist/web/server/index.js +5 -5
  159. package/dist/web/server/index.js.map +1 -1
  160. package/dist/web/server/manifest.js +39 -39
  161. package/dist/web/server/manifest.js.map +1 -1
  162. package/package.json +1 -1
  163. package/src/db/sessions-json.ts +4 -0
  164. package/src/hooks/claude-mux-hook.ts +11 -1
  165. package/src/server/message-queue.ts +233 -31
  166. package/src/server/ws-handlers.ts +235 -105
  167. package/src/tmux/answer-keys.ts +23 -1
  168. package/src/tmux/pane.ts +120 -0
  169. package/src/transcript/parser.ts +5 -0
  170. package/src/transcript/tailer.ts +71 -14
  171. package/src/types/ws-messages.ts +18 -0
  172. package/src/utils/pid.ts +6 -2
  173. package/src/utils/version.ts +1 -1
  174. package/tests/server/message-queue.test.ts +83 -0
  175. package/tests/tmux/answer-keys.test.ts +25 -1
  176. package/tests/tmux/prompt-options.test.ts +94 -0
  177. package/tests/transcript/tailer.test.ts +97 -0
  178. package/web/.svelte-kit/adapter-bun/.vite/manifest.json +27 -21
  179. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_layout.CtYwsG1M.css +1 -0
  180. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_page.BdsDZ0o8.css +1 -0
  181. package/web/.svelte-kit/adapter-bun/chunks/atomic-write.js +11 -0
  182. package/web/.svelte-kit/adapter-bun/chunks/button.js +45 -4
  183. package/web/.svelte-kit/adapter-bun/chunks/index.js +286 -182
  184. package/web/.svelte-kit/adapter-bun/chunks/internal2.js +1 -1
  185. package/web/.svelte-kit/adapter-bun/chunks/message-queue.js +141 -27
  186. package/web/.svelte-kit/adapter-bun/chunks/report.js +3 -8
  187. package/web/.svelte-kit/adapter-bun/chunks/root.js +154 -138
  188. package/web/.svelte-kit/adapter-bun/chunks/sessions-json.js +4 -2
  189. package/web/.svelte-kit/adapter-bun/chunks/severity.js +123 -28
  190. package/web/.svelte-kit/adapter-bun/chunks/ws-handlers.js +232 -69
  191. package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/rename/_server.ts.js +1 -1
  192. package/web/.svelte-kit/adapter-bun/entries/hooks.server.js +18 -6
  193. package/web/.svelte-kit/adapter-bun/entries/pages/_layout.svelte.js +134 -167
  194. package/web/.svelte-kit/adapter-bun/entries/pages/session/_target_/_page.svelte.js +1917 -864
  195. package/web/.svelte-kit/adapter-bun/entries/pages/usage/_page.svelte.js +1 -3
  196. package/web/.svelte-kit/adapter-bun/manifest-full.js +1 -1
  197. package/web/.svelte-kit/adapter-bun/manifest.js +1 -1
  198. package/web/.svelte-kit/adapter-bun/nodes/0.js +2 -2
  199. package/web/.svelte-kit/adapter-bun/nodes/1.js +1 -1
  200. package/web/.svelte-kit/adapter-bun/nodes/2.js +1 -1
  201. package/web/.svelte-kit/adapter-bun/nodes/3.js +2 -2
  202. package/web/.svelte-kit/adapter-bun/nodes/4.js +2 -2
  203. package/web/.svelte-kit/generated/client/nodes/1.js +1 -1
  204. package/web/.svelte-kit/generated/client-optimized/nodes/1.js +1 -1
  205. package/web/.svelte-kit/generated/server/internal.js +2 -2
  206. package/web/.svelte-kit/output/client/.vite/manifest.json +115 -140
  207. package/web/.svelte-kit/output/client/_app/immutable/assets/0.CM7ebVA7.css +1 -0
  208. package/web/.svelte-kit/output/client/_app/immutable/assets/3.BdsDZ0o8.css +1 -0
  209. package/web/.svelte-kit/output/client/_app/immutable/assets/4.D3oacHIV.css +1 -0
  210. package/web/.svelte-kit/output/client/_app/immutable/chunks/BpsTpPGB.js +2 -0
  211. package/{dist/web/client/_app/immutable/chunks/D463ACw8.js → web/.svelte-kit/output/client/_app/immutable/chunks/BtT7mcTJ.js} +2 -2
  212. package/web/.svelte-kit/output/client/_app/immutable/chunks/BuvGONG-.js +2 -0
  213. package/web/.svelte-kit/output/client/_app/immutable/chunks/CcuctAcy.js +1 -0
  214. package/web/.svelte-kit/output/client/_app/immutable/chunks/CjMoR7Dp.js +1 -0
  215. package/web/.svelte-kit/output/client/_app/immutable/chunks/DE2a_9Uk.js +1 -0
  216. package/web/.svelte-kit/output/client/_app/immutable/chunks/DRBq3mUM.js +1 -0
  217. package/web/.svelte-kit/output/client/_app/immutable/chunks/Dy0iaTyC.js +1 -0
  218. package/web/.svelte-kit/output/client/_app/immutable/chunks/RhyL4cOo.js +1 -0
  219. package/web/.svelte-kit/output/client/_app/immutable/chunks/T8RFyyA1.js +57 -0
  220. package/web/.svelte-kit/output/client/_app/immutable/chunks/ukOf9Kzz.js +1 -0
  221. package/web/.svelte-kit/output/client/_app/immutable/entry/app.BTMzvzKK.js +2 -0
  222. package/web/.svelte-kit/output/client/_app/immutable/entry/start.ieHH0cEf.js +1 -0
  223. package/web/.svelte-kit/output/client/_app/immutable/nodes/0.X9ScV8I8.js +1 -0
  224. package/web/.svelte-kit/output/client/_app/immutable/nodes/1.BcEIUcui.js +1 -0
  225. package/web/.svelte-kit/output/client/_app/immutable/nodes/{2.CtTVoSAX.js → 2.B1QiBSmU.js} +1 -1
  226. package/web/.svelte-kit/output/client/_app/immutable/nodes/3.CLGJ9_B6.js +168 -0
  227. package/web/.svelte-kit/output/client/_app/immutable/nodes/4.RVM8gnvM.js +2 -0
  228. package/web/.svelte-kit/output/client/_app/version.json +1 -1
  229. package/web/.svelte-kit/output/server/.vite/manifest.json +27 -21
  230. package/web/.svelte-kit/output/server/_app/immutable/assets/_layout.CtYwsG1M.css +1 -0
  231. package/web/.svelte-kit/output/server/_app/immutable/assets/_page.BdsDZ0o8.css +1 -0
  232. package/web/.svelte-kit/output/server/chunks/atomic-write.js +11 -0
  233. package/web/.svelte-kit/output/server/chunks/button.js +45 -4
  234. package/web/.svelte-kit/output/server/chunks/index.js +286 -182
  235. package/web/.svelte-kit/output/server/chunks/internal2.js +1 -1
  236. package/web/.svelte-kit/output/server/chunks/message-queue.js +141 -27
  237. package/web/.svelte-kit/output/server/chunks/report.js +3 -8
  238. package/web/.svelte-kit/output/server/chunks/root.js +154 -138
  239. package/web/.svelte-kit/output/server/chunks/sessions-json.js +4 -2
  240. package/web/.svelte-kit/output/server/chunks/severity.js +123 -28
  241. package/web/.svelte-kit/output/server/chunks/ws-handlers.js +232 -69
  242. package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_id_/rename/_server.ts.js +1 -1
  243. package/web/.svelte-kit/output/server/entries/hooks.server.js +18 -6
  244. package/web/.svelte-kit/output/server/entries/pages/_layout.svelte.js +134 -167
  245. package/web/.svelte-kit/output/server/entries/pages/session/_target_/_page.svelte.js +1917 -864
  246. package/web/.svelte-kit/output/server/entries/pages/usage/_page.svelte.js +1 -3
  247. package/web/.svelte-kit/output/server/manifest-full.js +1 -1
  248. package/web/.svelte-kit/output/server/manifest.js +1 -1
  249. package/web/.svelte-kit/output/server/nodes/0.js +2 -2
  250. package/web/.svelte-kit/output/server/nodes/1.js +1 -1
  251. package/web/.svelte-kit/output/server/nodes/2.js +1 -1
  252. package/web/.svelte-kit/output/server/nodes/3.js +2 -2
  253. package/web/.svelte-kit/output/server/nodes/4.js +2 -2
  254. package/web/src/hooks.server.ts +27 -13
  255. package/web/src/lib/components/ContextGauge.svelte +132 -42
  256. package/web/src/lib/components/Hint.svelte +62 -0
  257. package/web/src/lib/components/KeyTray.svelte +330 -0
  258. package/web/src/lib/components/MessageQueuePanel.svelte +13 -6
  259. package/web/src/lib/components/SessionSheet.svelte +202 -0
  260. package/web/src/lib/components/SidebarMeters.svelte +290 -0
  261. package/web/src/lib/components/TranscriptView.svelte +107 -11
  262. package/web/src/lib/components/ui/tooltip/index.ts +19 -0
  263. package/web/src/lib/components/ui/tooltip/tooltip-content.svelte +52 -0
  264. package/web/src/lib/components/ui/tooltip/tooltip-portal.svelte +7 -0
  265. package/web/src/lib/components/ui/tooltip/tooltip-provider.svelte +7 -0
  266. package/web/src/lib/components/ui/tooltip/tooltip-trigger.svelte +7 -0
  267. package/web/src/lib/components/ui/tooltip/tooltip.svelte +7 -0
  268. package/web/src/lib/severity.ts +1 -1
  269. package/web/src/lib/stores/drawer.svelte.ts +20 -0
  270. package/web/src/lib/stores/sessions.svelte.ts +25 -2
  271. package/web/src/lib/stores/terminal.svelte.ts +1 -2
  272. package/web/src/lib/stores/transcript.svelte.ts +83 -7
  273. package/web/src/lib/stores/websocket-base.svelte.ts +25 -0
  274. package/web/src/routes/+layout.svelte +16 -31
  275. package/web/src/routes/api/sessions/[id]/rename/+server.ts +1 -1
  276. package/web/src/routes/session/[target]/+page.svelte +749 -905
  277. package/web/vite.config.ts +4 -1
  278. package/dist/web/client/_app/immutable/assets/0.BOPL4ELt.css +0 -1
  279. package/dist/web/client/_app/immutable/assets/3.D3RFs7x_.css +0 -1
  280. package/dist/web/client/_app/immutable/assets/4.BQRymb6N.css +0 -1
  281. package/dist/web/client/_app/immutable/assets/MeterBar.CLkbUOdK.css +0 -1
  282. package/dist/web/client/_app/immutable/chunks/B3ra2-SP.js +0 -1
  283. package/dist/web/client/_app/immutable/chunks/BdCvs6nA.js +0 -1
  284. package/dist/web/client/_app/immutable/chunks/BsIG7LLB.js +0 -69
  285. package/dist/web/client/_app/immutable/chunks/Btdua0aO.js +0 -1
  286. package/dist/web/client/_app/immutable/chunks/CX5X3-8S.js +0 -1
  287. package/dist/web/client/_app/immutable/chunks/DFmTkvSY.js +0 -1
  288. package/dist/web/client/_app/immutable/chunks/DX4DJVtU.js +0 -1
  289. package/dist/web/client/_app/immutable/chunks/D_l4HINr.js +0 -1
  290. package/dist/web/client/_app/immutable/chunks/Dhl3V6pC.js +0 -1
  291. package/dist/web/client/_app/immutable/chunks/DnYa_s9W.js +0 -2
  292. package/dist/web/client/_app/immutable/chunks/ZJtS1BIn.js +0 -1
  293. package/dist/web/client/_app/immutable/chunks/q8VH4U1M.js +0 -2
  294. package/dist/web/client/_app/immutable/entry/app.UrvZKvY-.js +0 -2
  295. package/dist/web/client/_app/immutable/entry/start.BxC5bZNU.js +0 -1
  296. package/dist/web/client/_app/immutable/nodes/0.DXy_nlRL.js +0 -1
  297. package/dist/web/client/_app/immutable/nodes/1.Gitf4gZU.js +0 -1
  298. package/dist/web/client/_app/immutable/nodes/3.58r_tVoX.js +0 -169
  299. package/dist/web/client/_app/immutable/nodes/4.BGo8keWr.js +0 -2
  300. package/dist/web/server/chunks/0-Db7nSuZ0.js.map +0 -1
  301. package/dist/web/server/chunks/2-mtrhsiYS.js +0 -26
  302. package/dist/web/server/chunks/3-BWmrsbYm.js +0 -27
  303. package/dist/web/server/chunks/3-BWmrsbYm.js.map +0 -1
  304. package/dist/web/server/chunks/4-Bhsra5Wf.js +0 -20
  305. package/dist/web/server/chunks/4-Bhsra5Wf.js.map +0 -1
  306. package/dist/web/server/chunks/_layout.svelte-BPUWL_CJ.js.map +0 -1
  307. package/dist/web/server/chunks/_page.svelte-DgHVg4V1.js.map +0 -1
  308. package/dist/web/server/chunks/button-7v7P6MKH.js.map +0 -1
  309. package/dist/web/server/chunks/chunks-z0jzReFn.js.map +0 -1
  310. package/dist/web/server/chunks/hooks.server-DHO7nRLl.js.map +0 -1
  311. package/dist/web/server/chunks/message-queue--iRdHngh.js +0 -154
  312. package/dist/web/server/chunks/message-queue--iRdHngh.js.map +0 -1
  313. package/dist/web/server/chunks/paths-D6kXc8vK.js +0 -25
  314. package/dist/web/server/chunks/paths-D6kXc8vK.js.map +0 -1
  315. package/dist/web/server/chunks/report-C1vPmDz8.js.map +0 -1
  316. package/dist/web/server/chunks/root-PTKprA41.js.map +0 -1
  317. package/dist/web/server/chunks/sessions-json-oEHt1v8y.js.map +0 -1
  318. package/dist/web/server/chunks/ws-handlers-xWVftyUw.js.map +0 -1
  319. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/MeterBar.CLkbUOdK.css +0 -1
  320. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_layout.DwchimSV.css +0 -1
  321. package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_page.D3RFs7x_.css +0 -1
  322. package/web/.svelte-kit/output/client/_app/immutable/assets/0.BOPL4ELt.css +0 -1
  323. package/web/.svelte-kit/output/client/_app/immutable/assets/3.D3RFs7x_.css +0 -1
  324. package/web/.svelte-kit/output/client/_app/immutable/assets/4.BQRymb6N.css +0 -1
  325. package/web/.svelte-kit/output/client/_app/immutable/assets/MeterBar.CLkbUOdK.css +0 -1
  326. package/web/.svelte-kit/output/client/_app/immutable/chunks/B3ra2-SP.js +0 -1
  327. package/web/.svelte-kit/output/client/_app/immutable/chunks/BdCvs6nA.js +0 -1
  328. package/web/.svelte-kit/output/client/_app/immutable/chunks/BsIG7LLB.js +0 -69
  329. package/web/.svelte-kit/output/client/_app/immutable/chunks/Btdua0aO.js +0 -1
  330. package/web/.svelte-kit/output/client/_app/immutable/chunks/CX5X3-8S.js +0 -1
  331. package/web/.svelte-kit/output/client/_app/immutable/chunks/DFmTkvSY.js +0 -1
  332. package/web/.svelte-kit/output/client/_app/immutable/chunks/DX4DJVtU.js +0 -1
  333. package/web/.svelte-kit/output/client/_app/immutable/chunks/D_l4HINr.js +0 -1
  334. package/web/.svelte-kit/output/client/_app/immutable/chunks/Dhl3V6pC.js +0 -1
  335. package/web/.svelte-kit/output/client/_app/immutable/chunks/DnYa_s9W.js +0 -2
  336. package/web/.svelte-kit/output/client/_app/immutable/chunks/ZJtS1BIn.js +0 -1
  337. package/web/.svelte-kit/output/client/_app/immutable/chunks/q8VH4U1M.js +0 -2
  338. package/web/.svelte-kit/output/client/_app/immutable/entry/app.UrvZKvY-.js +0 -2
  339. package/web/.svelte-kit/output/client/_app/immutable/entry/start.BxC5bZNU.js +0 -1
  340. package/web/.svelte-kit/output/client/_app/immutable/nodes/0.DXy_nlRL.js +0 -1
  341. package/web/.svelte-kit/output/client/_app/immutable/nodes/1.Gitf4gZU.js +0 -1
  342. package/web/.svelte-kit/output/client/_app/immutable/nodes/3.58r_tVoX.js +0 -169
  343. package/web/.svelte-kit/output/client/_app/immutable/nodes/4.BGo8keWr.js +0 -2
  344. package/web/.svelte-kit/output/server/_app/immutable/assets/MeterBar.CLkbUOdK.css +0 -1
  345. package/web/.svelte-kit/output/server/_app/immutable/assets/_layout.DwchimSV.css +0 -1
  346. package/web/.svelte-kit/output/server/_app/immutable/assets/_page.D3RFs7x_.css +0 -1
  347. package/web/src/lib/components/SystemStatsWidget.svelte +0 -55
package/CLAUDE.md CHANGED
@@ -95,10 +95,40 @@ user typed into the pane while Claude was busy, which sit directly above the box
95
95
  indented two spaces on a painted row (`48;5;237`). A submitted message looks the
96
96
  same but starts at column 0, which is what keeps scrollback out of the result.
97
97
 
98
+ `readPromptOptions()` reads the third thing a pane can hold: the numbered rows
99
+ of a permission or question dialog, which `readPromptBox` recognises only in
100
+ order to bail out of. It is deliberately layout-agnostic — rather than locating
101
+ Claude Code's dialog frame it scans the foot of the pane for the last contiguous
102
+ run numbered 1, 2, 3 with no gap — and the poll only calls it for a session the
103
+ hooks already report as `waiting` or `permission`, because the hooks are
104
+ authoritative for whether a dialog is open and prose can look like a list.
105
+
98
106
  The session poll captures with colour once per tick and hands the stripped copy
99
107
  to every other check, so adding a detector there costs no extra `tmux` calls.
100
- `draft_input`, `draft_kind` and `pane_queue` are live-only: they ride the
101
- WebSocket broadcast and are never written to the session JSON.
108
+ `draft_input`, `draft_kind`, `pane_queue` and `pane_choice` are live-only: they
109
+ ride the WebSocket broadcast and are never written to the session JSON. They are
110
+ typed once as `LivePaneFields` in `src/server/ws-handlers.ts`, and **each one
111
+ also needs a line in `EnrichedSessionSchema`** (`src/types/ws-messages.ts`) —
112
+ without it Zod strips the field on the way into the browser and the UI silently
113
+ never sees it.
114
+
115
+ ### 5. Finding and streaming a transcript
116
+
117
+ A session's JSONL lives in `~/.claude/projects/<launch dir with / as ->/<session
118
+ id>.jsonl`. The directory is named after the directory Claude Code was *launched*
119
+ in, which stops matching the session's `cwd` as soon as it changes directory, so
120
+ the path cannot be derived from `cwd` alone. The hooks record Claude Code's own
121
+ `transcript_path` in the session JSON; `resolveTranscriptPath()` in
122
+ `src/transcript/tailer.ts` prefers it, falls back to the cwd-derived path, and
123
+ finally scans the project directories for `<session id>.jsonl` (which is what
124
+ rescues sessions written by an older hook). It returns null when the session has
125
+ not written a file yet, and `TranscriptWsManager` keeps looking every few polls.
126
+
127
+ Long sessions run to thousands of entries, so the socket sends the tail
128
+ (`SNAPSHOT_ENTRIES`) with the `firstIndex` it starts at, and the client asks for
129
+ older slices with `history_request` — the same message the terminal uses for its
130
+ scrollback. Delta messages carry each entry's index so a client holding only the
131
+ tail can tell a new entry from an update to one it never received.
102
132
 
103
133
  ## Key Data Flow
104
134
 
@@ -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