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.
- package/CLAUDE.md +18 -0
- package/dist/db/sessions-json.d.ts +3 -0
- package/dist/db/sessions-json.d.ts.map +1 -1
- package/dist/db/sessions-json.js +1 -0
- package/dist/db/sessions-json.js.map +1 -1
- package/dist/hooks/claude-mux-hook.js +8 -1
- package/dist/hooks/claude-mux-hook.js.map +1 -1
- package/dist/server/message-queue.d.ts +33 -4
- package/dist/server/message-queue.d.ts.map +1 -1
- package/dist/server/message-queue.js +194 -32
- package/dist/server/message-queue.js.map +1 -1
- package/dist/server/ws-handlers.d.ts +42 -2
- package/dist/server/ws-handlers.d.ts.map +1 -1
- package/dist/server/ws-handlers.js +163 -71
- package/dist/server/ws-handlers.js.map +1 -1
- package/dist/transcript/parser.d.ts +2 -0
- package/dist/transcript/parser.d.ts.map +1 -1
- package/dist/transcript/parser.js +4 -0
- package/dist/transcript/parser.js.map +1 -1
- package/dist/transcript/tailer.d.ts +25 -6
- package/dist/transcript/tailer.d.ts.map +1 -1
- package/dist/transcript/tailer.js +55 -10
- package/dist/transcript/tailer.js.map +1 -1
- package/dist/types/ws-messages.d.ts +25 -0
- package/dist/types/ws-messages.d.ts.map +1 -1
- package/dist/types/ws-messages.js +4 -0
- package/dist/types/ws-messages.js.map +1 -1
- package/dist/utils/pid.d.ts +4 -0
- package/dist/utils/pid.d.ts.map +1 -1
- package/dist/utils/pid.js +6 -2
- package/dist/utils/pid.js.map +1 -1
- package/dist/utils/version.d.ts +1 -1
- package/dist/utils/version.js +1 -1
- package/dist/web/client/_app/immutable/assets/{0.BOPL4ELt.css → 0.BdF1WsN5.css} +1 -1
- package/dist/web/client/_app/immutable/assets/3.CwgS8Piv.css +1 -0
- package/dist/web/client/_app/immutable/assets/4.D3oacHIV.css +1 -0
- package/dist/web/client/_app/immutable/chunks/0LFkEQJj.js +1 -0
- package/dist/web/client/_app/immutable/chunks/3VEt59CJ.js +1 -0
- package/dist/web/client/_app/immutable/chunks/3VK5OoqB.js +2 -0
- package/dist/web/client/_app/immutable/chunks/BIgf2y--.js +1 -0
- package/dist/web/client/_app/immutable/chunks/BYKFr1kc.js +1 -0
- package/dist/web/client/_app/immutable/chunks/C1qmP6Y6.js +57 -0
- package/dist/web/client/_app/immutable/chunks/D0kXDnUP.js +1 -0
- package/dist/web/client/_app/immutable/chunks/DhmuQbXA.js +2 -0
- package/dist/web/client/_app/immutable/chunks/DiDHw6ae.js +1 -0
- package/dist/web/client/_app/immutable/chunks/DmnhiWj-.js +2 -0
- package/dist/web/client/_app/immutable/chunks/JdItwS__.js +1 -0
- package/dist/web/client/_app/immutable/entry/app.CeK9ifQZ.js +2 -0
- package/dist/web/client/_app/immutable/entry/start.DqoVoTWT.js +1 -0
- package/dist/web/client/_app/immutable/nodes/0.CTZWnfW3.js +1 -0
- package/dist/web/client/_app/immutable/nodes/1.BJ1jbyzF.js +1 -0
- package/dist/web/client/_app/immutable/nodes/{2.CtTVoSAX.js → 2.CeQA6mdU.js} +1 -1
- package/dist/web/client/_app/immutable/nodes/3.BY426pnS.js +169 -0
- package/dist/web/client/_app/immutable/nodes/4.ZFC80VFu.js +2 -0
- package/dist/web/client/_app/version.json +1 -1
- package/dist/web/server/chunks/{0-Db7nSuZ0.js → 0-qYaZUhBh.js} +15 -17
- package/dist/web/server/chunks/0-qYaZUhBh.js.map +1 -0
- package/dist/web/server/chunks/{1-BJV9MPOn.js → 1-vNWIk4pm.js} +6 -6
- package/dist/web/server/chunks/{1-BJV9MPOn.js.map → 1-vNWIk4pm.js.map} +1 -1
- package/dist/web/server/chunks/2-C3_Hio6f.js +26 -0
- package/dist/web/server/chunks/{2-mtrhsiYS.js.map → 2-C3_Hio6f.js.map} +1 -1
- package/dist/web/server/chunks/3-C7eraYeX.js +26 -0
- package/dist/web/server/chunks/3-C7eraYeX.js.map +1 -0
- package/dist/web/server/chunks/4-DIz14T8h.js +18 -0
- package/dist/web/server/chunks/4-DIz14T8h.js.map +1 -0
- package/dist/web/server/chunks/{_layout.svelte-BPUWL_CJ.js → _layout.svelte-tXCCzX4Y.js} +220 -231
- package/dist/web/server/chunks/_layout.svelte-tXCCzX4Y.js.map +1 -0
- package/dist/web/server/chunks/{_page.svelte-DgHVg4V1.js → _page.svelte-BFMK4Qci.js} +3 -4
- package/dist/web/server/chunks/_page.svelte-BFMK4Qci.js.map +1 -0
- package/dist/web/server/chunks/{_page.svelte-NYyAP3x7.js → _page.svelte-Dch4E1Rh.js} +5 -5
- package/dist/web/server/chunks/{_page.svelte-NYyAP3x7.js.map → _page.svelte-Dch4E1Rh.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-BPbH7LJV.js → _server.ts-B-lHdJxn.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-BPbH7LJV.js.map → _server.ts-B-lHdJxn.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-CX7HFwG_.js → _server.ts-BBFH6yZ0.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-CX7HFwG_.js.map → _server.ts-BBFH6yZ0.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-DGaaRqn9.js → _server.ts-BYB66HM_.js} +3 -3
- package/dist/web/server/chunks/{_server.ts-DGaaRqn9.js.map → _server.ts-BYB66HM_.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-CSH42v1n.js → _server.ts-BrfdmL6E.js} +4 -4
- package/dist/web/server/chunks/{_server.ts-CSH42v1n.js.map → _server.ts-BrfdmL6E.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-TnlTbrO5.js → _server.ts-BsP01Hkg.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-TnlTbrO5.js.map → _server.ts-BsP01Hkg.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-DoAck7hw.js → _server.ts-C2sGvDiR.js} +3 -3
- package/dist/web/server/chunks/{_server.ts-DoAck7hw.js.map → _server.ts-C2sGvDiR.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-D-Qq_95j.js → _server.ts-C7yq6qeP.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-D-Qq_95j.js.map → _server.ts-C7yq6qeP.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-C-_tMNQf.js → _server.ts-CEGljBAH.js} +3 -3
- package/dist/web/server/chunks/{_server.ts-C-_tMNQf.js.map → _server.ts-CEGljBAH.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-C8xddQab.js → _server.ts-CKPeS61d.js} +4 -3
- package/dist/web/server/chunks/{_server.ts-C8xddQab.js.map → _server.ts-CKPeS61d.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-C8flg7gn.js → _server.ts-C_Ql8FZ-.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-C8flg7gn.js.map → _server.ts-C_Ql8FZ-.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-DIQGFE8O.js → _server.ts-C_mfkTE7.js} +3 -3
- package/dist/web/server/chunks/{_server.ts-DIQGFE8O.js.map → _server.ts-C_mfkTE7.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-B8NDaVEA.js → _server.ts-Cn71ivEy.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-B8NDaVEA.js.map → _server.ts-Cn71ivEy.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-DjPJQFg6.js → _server.ts-CrGvgmhz.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-DjPJQFg6.js.map → _server.ts-CrGvgmhz.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-BUOlFdaJ.js → _server.ts-CuyvmPMw.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-BUOlFdaJ.js.map → _server.ts-CuyvmPMw.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-D5dm8i7d.js → _server.ts-DC17XVgt.js} +3 -3
- package/dist/web/server/chunks/{_server.ts-D5dm8i7d.js.map → _server.ts-DC17XVgt.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-Gx9itF7F.js → _server.ts-DN18Vkn-.js} +3 -3
- package/dist/web/server/chunks/{_server.ts-Gx9itF7F.js.map → _server.ts-DN18Vkn-.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-D6Uvtstq.js → _server.ts-DO1zt6Kx.js} +6 -6
- package/dist/web/server/chunks/{_server.ts-D6Uvtstq.js.map → _server.ts-DO1zt6Kx.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-BH5WsFew.js → _server.ts-Da7wwvP7.js} +5 -5
- package/dist/web/server/chunks/{_server.ts-BH5WsFew.js.map → _server.ts-Da7wwvP7.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-Brx8WsV_.js → _server.ts-DfgmK00n.js} +3 -3
- package/dist/web/server/chunks/{_server.ts-Brx8WsV_.js.map → _server.ts-DfgmK00n.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-ClnHebbv.js → _server.ts-Sp9RMGm3.js} +2 -2
- package/dist/web/server/chunks/{_server.ts-ClnHebbv.js.map → _server.ts-Sp9RMGm3.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-BjzIEXqr.js → _server.ts-Tbx4Fo9h.js} +4 -4
- package/dist/web/server/chunks/{_server.ts-BjzIEXqr.js.map → _server.ts-Tbx4Fo9h.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-sXwS8wXq.js → _server.ts-WRtFZDr6.js} +5 -5
- package/dist/web/server/chunks/{_server.ts-sXwS8wXq.js.map → _server.ts-WRtFZDr6.js.map} +1 -1
- package/dist/web/server/chunks/{_server.ts-CzEOLTft.js → _server.ts-oE4pAGqp.js} +3 -3
- package/dist/web/server/chunks/{_server.ts-CzEOLTft.js.map → _server.ts-oE4pAGqp.js.map} +1 -1
- package/dist/web/server/chunks/atomic-write-DZQx1GJa.js +13 -0
- package/dist/web/server/chunks/atomic-write-DZQx1GJa.js.map +1 -0
- package/dist/web/server/chunks/{attachments-ClNRGnTM.js → attachments-kaxlsreD.js} +2 -2
- package/dist/web/server/chunks/{attachments-ClNRGnTM.js.map → attachments-kaxlsreD.js.map} +1 -1
- package/dist/web/server/chunks/{button-7v7P6MKH.js → button-DL5o8qCi.js} +1863 -935
- package/dist/web/server/chunks/button-DL5o8qCi.js.map +1 -0
- package/dist/web/server/chunks/{chunks-z0jzReFn.js → chunks-DjkFKU0Z.js} +200 -106
- package/dist/web/server/chunks/chunks-DjkFKU0Z.js.map +1 -0
- package/dist/web/server/chunks/{error.svelte-BF20x8lR.js → error.svelte-BbIs6wWT.js} +4 -4
- package/dist/web/server/chunks/{error.svelte-BF20x8lR.js.map → error.svelte-BbIs6wWT.js.map} +1 -1
- package/dist/web/server/chunks/{exports-BXZSJVru.js → exports-piA4c_uA.js} +4 -4
- package/dist/web/server/chunks/{exports-BXZSJVru.js.map → exports-piA4c_uA.js.map} +1 -1
- package/dist/web/server/chunks/{hooks.server-DHO7nRLl.js → hooks.server-C7RNKySW.js} +17 -7
- package/dist/web/server/chunks/hooks.server-C7RNKySW.js.map +1 -0
- package/dist/web/server/chunks/json-4v86y-Ft.js +15 -0
- package/dist/web/server/chunks/json-4v86y-Ft.js.map +1 -0
- package/dist/web/server/chunks/message-queue-B_JPzbSZ.js +281 -0
- package/dist/web/server/chunks/message-queue-B_JPzbSZ.js.map +1 -0
- package/dist/web/server/chunks/paths-6nWNmeI4.js +13 -0
- package/dist/web/server/chunks/paths-6nWNmeI4.js.map +1 -0
- package/dist/web/server/chunks/{report-C1vPmDz8.js → report-DzmJJvNC.js} +7 -11
- package/dist/web/server/chunks/report-DzmJJvNC.js.map +1 -0
- package/dist/web/server/chunks/{root-PTKprA41.js → root-CpxFdOD_.js} +125 -109
- package/dist/web/server/chunks/root-CpxFdOD_.js.map +1 -0
- package/dist/web/server/chunks/{sessions-json-oEHt1v8y.js → sessions-json-CtkawSxA.js} +5 -4
- package/dist/web/server/chunks/sessions-json-CtkawSxA.js.map +1 -0
- package/dist/web/server/chunks/{state.svelte-CB0Au2qM.js → state.svelte-DaxvD0LT.js} +3 -3
- package/dist/web/server/chunks/{state.svelte-CB0Au2qM.js.map → state.svelte-DaxvD0LT.js.map} +1 -1
- package/dist/web/server/chunks/{ws-handlers-xWVftyUw.js → ws-handlers-CfRlNP0b.js} +165 -61
- package/dist/web/server/chunks/ws-handlers-CfRlNP0b.js.map +1 -0
- package/dist/web/server/chunks/{ws-managers-BbpA8jLN.js → ws-managers-3xrj0jsB.js} +2 -2
- package/dist/web/server/chunks/{ws-managers-BbpA8jLN.js.map → ws-managers-3xrj0jsB.js.map} +1 -1
- package/dist/web/server/index.js +5 -5
- package/dist/web/server/index.js.map +1 -1
- package/dist/web/server/manifest.js +39 -39
- package/dist/web/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/src/db/sessions-json.ts +4 -0
- package/src/hooks/claude-mux-hook.ts +11 -1
- package/src/server/message-queue.ts +233 -31
- package/src/server/ws-handlers.ts +204 -88
- package/src/transcript/parser.ts +5 -0
- package/src/transcript/tailer.ts +71 -14
- package/src/types/ws-messages.ts +4 -0
- package/src/utils/pid.ts +6 -2
- package/src/utils/version.ts +1 -1
- package/tests/server/message-queue.test.ts +83 -0
- package/tests/transcript/tailer.test.ts +97 -0
- package/web/.svelte-kit/adapter-bun/.vite/manifest.json +24 -22
- package/web/.svelte-kit/adapter-bun/_app/immutable/assets/{_layout.DwchimSV.css → _layout.Bc6D36yK.css} +1 -1
- package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_page.CwgS8Piv.css +1 -0
- package/web/.svelte-kit/adapter-bun/chunks/atomic-write.js +11 -0
- package/web/.svelte-kit/adapter-bun/chunks/button.js +30 -4
- package/web/.svelte-kit/adapter-bun/chunks/index.js +286 -182
- package/web/.svelte-kit/adapter-bun/chunks/internal2.js +1 -1
- package/web/.svelte-kit/adapter-bun/chunks/message-queue.js +141 -27
- package/web/.svelte-kit/adapter-bun/chunks/report.js +3 -8
- package/web/.svelte-kit/adapter-bun/chunks/root.js +154 -138
- package/web/.svelte-kit/adapter-bun/chunks/sessions-json.js +4 -2
- package/web/.svelte-kit/adapter-bun/chunks/severity.js +74 -28
- package/web/.svelte-kit/adapter-bun/chunks/ws-handlers.js +163 -68
- package/web/.svelte-kit/adapter-bun/entries/endpoints/api/sessions/_id_/rename/_server.ts.js +1 -1
- package/web/.svelte-kit/adapter-bun/entries/hooks.server.js +18 -6
- package/web/.svelte-kit/adapter-bun/entries/pages/_layout.svelte.js +130 -163
- package/web/.svelte-kit/adapter-bun/entries/pages/session/_target_/_page.svelte.js +185 -252
- package/web/.svelte-kit/adapter-bun/entries/pages/usage/_page.svelte.js +1 -3
- package/web/.svelte-kit/adapter-bun/manifest-full.js +1 -1
- package/web/.svelte-kit/adapter-bun/manifest.js +1 -1
- package/web/.svelte-kit/adapter-bun/nodes/0.js +2 -2
- package/web/.svelte-kit/adapter-bun/nodes/1.js +1 -1
- package/web/.svelte-kit/adapter-bun/nodes/2.js +1 -1
- package/web/.svelte-kit/adapter-bun/nodes/3.js +2 -2
- package/web/.svelte-kit/adapter-bun/nodes/4.js +2 -2
- package/web/.svelte-kit/generated/client/nodes/1.js +1 -1
- package/web/.svelte-kit/generated/client-optimized/nodes/1.js +1 -1
- package/web/.svelte-kit/generated/server/internal.js +2 -2
- package/web/.svelte-kit/output/client/.vite/manifest.json +116 -141
- package/web/.svelte-kit/output/client/_app/immutable/assets/{0.BOPL4ELt.css → 0.BdF1WsN5.css} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/assets/3.CwgS8Piv.css +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/assets/4.D3oacHIV.css +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/chunks/0LFkEQJj.js +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/chunks/3VEt59CJ.js +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/chunks/3VK5OoqB.js +2 -0
- package/web/.svelte-kit/output/client/_app/immutable/chunks/BIgf2y--.js +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/chunks/BYKFr1kc.js +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/chunks/C1qmP6Y6.js +57 -0
- package/web/.svelte-kit/output/client/_app/immutable/chunks/D0kXDnUP.js +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/chunks/DhmuQbXA.js +2 -0
- package/web/.svelte-kit/output/client/_app/immutable/chunks/DiDHw6ae.js +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/chunks/DmnhiWj-.js +2 -0
- package/web/.svelte-kit/output/client/_app/immutable/chunks/JdItwS__.js +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/entry/app.CeK9ifQZ.js +2 -0
- package/web/.svelte-kit/output/client/_app/immutable/entry/start.DqoVoTWT.js +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/nodes/0.CTZWnfW3.js +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/nodes/1.BJ1jbyzF.js +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/nodes/{2.CtTVoSAX.js → 2.CeQA6mdU.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/nodes/3.BY426pnS.js +169 -0
- package/web/.svelte-kit/output/client/_app/immutable/nodes/4.ZFC80VFu.js +2 -0
- package/web/.svelte-kit/output/client/_app/version.json +1 -1
- package/web/.svelte-kit/output/server/.vite/manifest.json +24 -22
- package/web/.svelte-kit/output/server/_app/immutable/assets/{_layout.DwchimSV.css → _layout.Bc6D36yK.css} +1 -1
- package/web/.svelte-kit/output/server/_app/immutable/assets/_page.CwgS8Piv.css +1 -0
- package/web/.svelte-kit/output/server/chunks/atomic-write.js +11 -0
- package/web/.svelte-kit/output/server/chunks/button.js +30 -4
- package/web/.svelte-kit/output/server/chunks/index.js +286 -182
- package/web/.svelte-kit/output/server/chunks/internal2.js +1 -1
- package/web/.svelte-kit/output/server/chunks/message-queue.js +141 -27
- package/web/.svelte-kit/output/server/chunks/report.js +3 -8
- package/web/.svelte-kit/output/server/chunks/root.js +154 -138
- package/web/.svelte-kit/output/server/chunks/sessions-json.js +4 -2
- package/web/.svelte-kit/output/server/chunks/severity.js +74 -28
- package/web/.svelte-kit/output/server/chunks/ws-handlers.js +163 -68
- package/web/.svelte-kit/output/server/entries/endpoints/api/sessions/_id_/rename/_server.ts.js +1 -1
- package/web/.svelte-kit/output/server/entries/hooks.server.js +18 -6
- package/web/.svelte-kit/output/server/entries/pages/_layout.svelte.js +130 -163
- package/web/.svelte-kit/output/server/entries/pages/session/_target_/_page.svelte.js +185 -252
- package/web/.svelte-kit/output/server/entries/pages/usage/_page.svelte.js +1 -3
- package/web/.svelte-kit/output/server/manifest-full.js +1 -1
- package/web/.svelte-kit/output/server/manifest.js +1 -1
- package/web/.svelte-kit/output/server/nodes/0.js +2 -2
- package/web/.svelte-kit/output/server/nodes/1.js +1 -1
- package/web/.svelte-kit/output/server/nodes/2.js +1 -1
- package/web/.svelte-kit/output/server/nodes/3.js +2 -2
- package/web/.svelte-kit/output/server/nodes/4.js +2 -2
- package/web/src/hooks.server.ts +27 -13
- package/web/src/lib/components/MessageQueuePanel.svelte +13 -6
- package/web/src/lib/components/SidebarMeters.svelte +290 -0
- package/web/src/lib/components/TranscriptView.svelte +106 -10
- package/web/src/lib/stores/sessions.svelte.ts +6 -1
- package/web/src/lib/stores/terminal.svelte.ts +1 -2
- package/web/src/lib/stores/transcript.svelte.ts +83 -7
- package/web/src/lib/stores/websocket-base.svelte.ts +25 -0
- package/web/src/routes/+layout.svelte +2 -2
- package/web/src/routes/api/sessions/[id]/rename/+server.ts +1 -1
- package/web/src/routes/session/[target]/+page.svelte +92 -13
- package/web/vite.config.ts +4 -1
- package/dist/web/client/_app/immutable/assets/3.D3RFs7x_.css +0 -1
- package/dist/web/client/_app/immutable/assets/4.BQRymb6N.css +0 -1
- package/dist/web/client/_app/immutable/assets/MeterBar.CLkbUOdK.css +0 -1
- package/dist/web/client/_app/immutable/chunks/B3ra2-SP.js +0 -1
- package/dist/web/client/_app/immutable/chunks/BdCvs6nA.js +0 -1
- package/dist/web/client/_app/immutable/chunks/BsIG7LLB.js +0 -69
- package/dist/web/client/_app/immutable/chunks/Btdua0aO.js +0 -1
- package/dist/web/client/_app/immutable/chunks/CX5X3-8S.js +0 -1
- package/dist/web/client/_app/immutable/chunks/D463ACw8.js +0 -2
- package/dist/web/client/_app/immutable/chunks/DFmTkvSY.js +0 -1
- package/dist/web/client/_app/immutable/chunks/DX4DJVtU.js +0 -1
- package/dist/web/client/_app/immutable/chunks/D_l4HINr.js +0 -1
- package/dist/web/client/_app/immutable/chunks/Dhl3V6pC.js +0 -1
- package/dist/web/client/_app/immutable/chunks/DnYa_s9W.js +0 -2
- package/dist/web/client/_app/immutable/chunks/ZJtS1BIn.js +0 -1
- package/dist/web/client/_app/immutable/chunks/q8VH4U1M.js +0 -2
- package/dist/web/client/_app/immutable/entry/app.UrvZKvY-.js +0 -2
- package/dist/web/client/_app/immutable/entry/start.BxC5bZNU.js +0 -1
- package/dist/web/client/_app/immutable/nodes/0.DXy_nlRL.js +0 -1
- package/dist/web/client/_app/immutable/nodes/1.Gitf4gZU.js +0 -1
- package/dist/web/client/_app/immutable/nodes/3.58r_tVoX.js +0 -169
- package/dist/web/client/_app/immutable/nodes/4.BGo8keWr.js +0 -2
- package/dist/web/server/chunks/0-Db7nSuZ0.js.map +0 -1
- package/dist/web/server/chunks/2-mtrhsiYS.js +0 -26
- package/dist/web/server/chunks/3-BWmrsbYm.js +0 -27
- package/dist/web/server/chunks/3-BWmrsbYm.js.map +0 -1
- package/dist/web/server/chunks/4-Bhsra5Wf.js +0 -20
- package/dist/web/server/chunks/4-Bhsra5Wf.js.map +0 -1
- package/dist/web/server/chunks/_layout.svelte-BPUWL_CJ.js.map +0 -1
- package/dist/web/server/chunks/_page.svelte-DgHVg4V1.js.map +0 -1
- package/dist/web/server/chunks/button-7v7P6MKH.js.map +0 -1
- package/dist/web/server/chunks/chunks-z0jzReFn.js.map +0 -1
- package/dist/web/server/chunks/hooks.server-DHO7nRLl.js.map +0 -1
- package/dist/web/server/chunks/message-queue--iRdHngh.js +0 -154
- package/dist/web/server/chunks/message-queue--iRdHngh.js.map +0 -1
- package/dist/web/server/chunks/paths-D6kXc8vK.js +0 -25
- package/dist/web/server/chunks/paths-D6kXc8vK.js.map +0 -1
- package/dist/web/server/chunks/report-C1vPmDz8.js.map +0 -1
- package/dist/web/server/chunks/root-PTKprA41.js.map +0 -1
- package/dist/web/server/chunks/sessions-json-oEHt1v8y.js.map +0 -1
- package/dist/web/server/chunks/ws-handlers-xWVftyUw.js.map +0 -1
- package/web/.svelte-kit/adapter-bun/_app/immutable/assets/MeterBar.CLkbUOdK.css +0 -1
- package/web/.svelte-kit/adapter-bun/_app/immutable/assets/_page.D3RFs7x_.css +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/assets/3.D3RFs7x_.css +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/assets/4.BQRymb6N.css +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/assets/MeterBar.CLkbUOdK.css +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/chunks/B3ra2-SP.js +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/chunks/BdCvs6nA.js +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/chunks/BsIG7LLB.js +0 -69
- package/web/.svelte-kit/output/client/_app/immutable/chunks/Btdua0aO.js +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/chunks/CX5X3-8S.js +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/chunks/D463ACw8.js +0 -2
- package/web/.svelte-kit/output/client/_app/immutable/chunks/DFmTkvSY.js +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/chunks/DX4DJVtU.js +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/chunks/D_l4HINr.js +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/chunks/Dhl3V6pC.js +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/chunks/DnYa_s9W.js +0 -2
- package/web/.svelte-kit/output/client/_app/immutable/chunks/ZJtS1BIn.js +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/chunks/q8VH4U1M.js +0 -2
- package/web/.svelte-kit/output/client/_app/immutable/entry/app.UrvZKvY-.js +0 -2
- package/web/.svelte-kit/output/client/_app/immutable/entry/start.BxC5bZNU.js +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/nodes/0.DXy_nlRL.js +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/nodes/1.Gitf4gZU.js +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/nodes/3.58r_tVoX.js +0 -169
- package/web/.svelte-kit/output/client/_app/immutable/nodes/4.BGo8keWr.js +0 -2
- package/web/.svelte-kit/output/server/_app/immutable/assets/MeterBar.CLkbUOdK.css +0 -1
- package/web/.svelte-kit/output/server/_app/immutable/assets/_page.D3RFs7x_.css +0 -1
- 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":"AA8BA,eAAO,MAAM,eAAe,QAAsC,CAAC;AAEnE,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE3D;AAQD;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEvD;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;AACtE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,YAAY,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AA6BD;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CASrD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"sessions-json.d.ts","sourceRoot":"","sources":["../../src/db/sessions-json.ts"],"names":[],"mappings":"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"}
|
package/dist/db/sessions-json.js
CHANGED
|
@@ -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":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,MAAM,GACP,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,QAAQ;AACR,MAAM,uBAAuB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AACjE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC;AAEtD,IAAI,CAAC;IACH,IAAI,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACvE,UAAU,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAAC,MAAM,CAAC;IACP,oDAAoD;AACtD,CAAC;AAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;AAEtD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AAEnE,MAAM,UAAU,wBAAwB,CAAC,EAAU;IACjD,OAAO,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,iBAAiB;AACjB,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,kDAAkD;AAClD,IAAI,WAAW,GAAG,oBAAoB,CAAC;AAEvC;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAkB;IAC/C,WAAW,GAAG,GAAG,IAAI,oBAAoB,CAAC;AAC5C,CAAC;
|
|
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
|
-
*
|
|
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
|
-
|
|
27
|
-
|
|
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
|
|
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
|
-
*
|
|
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:
|
|
114
|
+
queues: restored.queues,
|
|
34
115
|
pendingDrain: new Map(),
|
|
35
116
|
recentlySent: new Map(),
|
|
36
|
-
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
|
|
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
|
-
/**
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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
|
-
|
|
149
|
-
|
|
150
|
-
|
|
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
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
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 (
|
|
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
|
-
|
|
355
|
+
// or a server restart (the persisted file above).
|
|
356
|
+
if (hasQueuedMessages())
|
|
195
357
|
ensureDrainLoop();
|
|
196
358
|
//# sourceMappingURL=message-queue.js.map
|