agent-tower 0.7.3 → 0.7.4-beta.1
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/dist/git/worktree.manager.d.ts +2 -0
- package/dist/git/worktree.manager.d.ts.map +1 -1
- package/dist/git/worktree.manager.js +29 -8
- package/dist/git/worktree.manager.js.map +1 -1
- package/dist/git/worktree.manager.test.js +38 -0
- package/dist/git/worktree.manager.test.js.map +1 -1
- package/dist/mcp/http-client.d.ts +3 -1
- package/dist/mcp/http-client.d.ts.map +1 -1
- package/dist/mcp/http-client.js +6 -0
- package/dist/mcp/http-client.js.map +1 -1
- package/dist/mcp/tools/__tests__/tasks.test.js +33 -1
- package/dist/mcp/tools/__tests__/tasks.test.js.map +1 -1
- package/dist/mcp/tools/tasks.d.ts.map +1 -1
- package/dist/mcp/tools/tasks.js +30 -2
- package/dist/mcp/tools/tasks.js.map +1 -1
- package/dist/mcp/types.d.ts +24 -0
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/mcp/types.js +12 -1
- package/dist/mcp/types.js.map +1 -1
- package/dist/prompts/task-handoff.d.ts +6 -0
- package/dist/prompts/task-handoff.d.ts.map +1 -0
- package/dist/prompts/task-handoff.js +18 -0
- package/dist/prompts/task-handoff.js.map +1 -0
- package/dist/prompts/task-handoff.test.d.ts +2 -0
- package/dist/prompts/task-handoff.test.d.ts.map +1 -0
- package/dist/prompts/task-handoff.test.js +27 -0
- package/dist/prompts/task-handoff.test.js.map +1 -0
- package/dist/prompts/workspace-background-service-policy.d.ts +6 -0
- package/dist/prompts/workspace-background-service-policy.d.ts.map +1 -1
- package/dist/prompts/workspace-background-service-policy.js +2 -1
- package/dist/prompts/workspace-background-service-policy.js.map +1 -1
- package/dist/routes/__tests__/sessions-runtime.test.js +2 -0
- package/dist/routes/__tests__/sessions-runtime.test.js.map +1 -1
- package/dist/routes/__tests__/task-handoff.test.d.ts +2 -0
- package/dist/routes/__tests__/task-handoff.test.d.ts.map +1 -0
- package/dist/routes/__tests__/task-handoff.test.js +185 -0
- package/dist/routes/__tests__/task-handoff.test.js.map +1 -0
- package/dist/routes/__tests__/tasks.test.js +64 -0
- package/dist/routes/__tests__/tasks.test.js.map +1 -1
- package/dist/routes/__tests__/workspace-history.test.d.ts +2 -0
- package/dist/routes/__tests__/workspace-history.test.d.ts.map +1 -0
- package/dist/routes/__tests__/workspace-history.test.js +174 -0
- package/dist/routes/__tests__/workspace-history.test.js.map +1 -0
- package/dist/routes/sessions.d.ts.map +1 -1
- package/dist/routes/sessions.js +10 -0
- package/dist/routes/sessions.js.map +1 -1
- package/dist/routes/tasks.d.ts.map +1 -1
- package/dist/routes/tasks.js +67 -2
- package/dist/routes/tasks.js.map +1 -1
- package/dist/runtime/__tests__/cli-driver-lifecycle.test.js +84 -0
- package/dist/runtime/__tests__/cli-driver-lifecycle.test.js.map +1 -1
- package/dist/runtime/cli-driver.js +11 -8
- package/dist/runtime/cli-driver.js.map +1 -1
- package/dist/services/__tests__/session-manager.lifecycle.test.js +171 -1
- package/dist/services/__tests__/session-manager.lifecycle.test.js.map +1 -1
- package/dist/services/__tests__/task.service.test.js +152 -76
- package/dist/services/__tests__/task.service.test.js.map +1 -1
- package/dist/services/__tests__/workspace-background-service.service.test.js +74 -26
- package/dist/services/__tests__/workspace-background-service.service.test.js.map +1 -1
- package/dist/services/__tests__/workspace.service.test.js +100 -5
- package/dist/services/__tests__/workspace.service.test.js.map +1 -1
- package/dist/services/message-delivery.service.d.ts +3 -0
- package/dist/services/message-delivery.service.d.ts.map +1 -1
- package/dist/services/project.service.d.ts +2 -0
- package/dist/services/project.service.d.ts.map +1 -1
- package/dist/services/session-manager.d.ts +12 -1
- package/dist/services/session-manager.d.ts.map +1 -1
- package/dist/services/session-manager.js +21 -3
- package/dist/services/session-manager.js.map +1 -1
- package/dist/services/session-resource-cleanup.d.ts +5 -0
- package/dist/services/session-resource-cleanup.d.ts.map +1 -1
- package/dist/services/session-resource-cleanup.js +7 -0
- package/dist/services/session-resource-cleanup.js.map +1 -1
- package/dist/services/task-cleanup.service.d.ts +4 -0
- package/dist/services/task-cleanup.service.d.ts.map +1 -1
- package/dist/services/task-cleanup.service.js +6 -2
- package/dist/services/task-cleanup.service.js.map +1 -1
- package/dist/services/task-handoff.service.d.ts +18 -0
- package/dist/services/task-handoff.service.d.ts.map +1 -0
- package/dist/services/task-handoff.service.js +87 -0
- package/dist/services/task-handoff.service.js.map +1 -0
- package/dist/services/task.service.d.ts +46 -10
- package/dist/services/task.service.d.ts.map +1 -1
- package/dist/services/task.service.js +258 -170
- package/dist/services/task.service.js.map +1 -1
- package/dist/services/team-run.service.d.ts +2 -0
- package/dist/services/team-run.service.d.ts.map +1 -1
- package/dist/services/team-task-input.service.d.ts +2 -0
- package/dist/services/team-task-input.service.d.ts.map +1 -1
- package/dist/services/workspace-background-service.service.d.ts +1 -3
- package/dist/services/workspace-background-service.service.d.ts.map +1 -1
- package/dist/services/workspace-background-service.service.js +17 -65
- package/dist/services/workspace-background-service.service.js.map +1 -1
- package/dist/services/workspace.service.d.ts +20 -7
- package/dist/services/workspace.service.d.ts.map +1 -1
- package/dist/services/workspace.service.js +197 -82
- package/dist/services/workspace.service.js.map +1 -1
- package/dist/web/assets/AgentDemoPage-DiHEh1iv.js +1 -0
- package/dist/web/assets/{AgentEnvironmentSettingsPage-CvvkMKT1.js → AgentEnvironmentSettingsPage-B_Xk7Bef.js} +1 -1
- package/dist/web/assets/AttachmentPreview-BngGSahV.js +2 -0
- package/dist/web/assets/{BranchSelect-Cv92vEjG.js → BranchSelect-BgVKUnxj.js} +1 -1
- package/dist/web/assets/BrandLogo-CBahjTd7.js +1 -0
- package/dist/web/assets/ConversationPage-kgJIlyS5.js +1 -0
- package/dist/web/assets/CreateTaskInput-Cllw4abW.js +1 -0
- package/dist/web/assets/{DemoPage-CpYNBQhA.js → DemoPage-CkS__9CE.js} +3 -3
- package/dist/web/assets/{DesignSystemPage-DLeH6DnV.js → DesignSystemPage-BklN99GA.js} +3 -3
- package/dist/web/assets/{ExecutionPermissionSelector-IoWR9YLb.js → ExecutionPermissionSelector-Bsi1aa7q.js} +1 -1
- package/dist/web/assets/{GeneralSettingsPage-BAYgxCqx.js → GeneralSettingsPage-BC9TUWiu.js} +1 -1
- package/dist/web/assets/{LoadingPreviewPage-CumrzyxW.js → LoadingPreviewPage-Dx8Si6-g.js} +1 -1
- package/dist/web/assets/{McpSettingsPage-CFNwxT9Y.js → McpSettingsPage-fqXRGtFu.js} +1 -1
- package/dist/web/assets/{MemberAvatar-BVXD0jTy.js → MemberAvatar-CZ3F53Ep.js} +1 -1
- package/dist/web/assets/MobileTaskDetail-B68iYPOI.js +3 -0
- package/dist/web/assets/{NotificationSettingsPage-B0s5YbG3.js → NotificationSettingsPage-D9KGIFVA.js} +1 -1
- package/dist/web/assets/{ProfileSettingsPage-BuhoF-mL.js → ProfileSettingsPage-D_Hw5lpd.js} +2 -2
- package/dist/web/assets/ProjectKanbanPage-CUX0Kh-t.js +12 -0
- package/dist/web/assets/{ProjectSettingsPage-DDMg6axy.js → ProjectSettingsPage-CJANCPJX.js} +2 -2
- package/dist/web/assets/{ProviderSettingsPage-DRt9m4mF.js → ProviderSettingsPage-B6Ro5PQa.js} +2 -2
- package/dist/web/assets/{SettingsMasterDetail-D7vStQjR.js → SettingsMasterDetail-Q-049Dvh.js} +1 -1
- package/dist/web/assets/TaskDetail-DBtWf0YV.js +1 -0
- package/dist/web/assets/TaskHandoffPanel-BpGiZ5eT.js +70 -0
- package/dist/web/assets/TeamSettingsPage-DbKgqEO_.js +1 -0
- package/dist/web/assets/{TranslationSettingsPage-D2oks6OM.js → TranslationSettingsPage-Ba-iypOV.js} +1 -1
- package/dist/web/assets/{arc-vYWCZsE_.js → arc-SOqs3Svk.js} +1 -1
- package/dist/web/assets/{architectureDiagram-3BPJPVTR-Cu1VIpcJ.js → architectureDiagram-3BPJPVTR-BH25ukq_.js} +1 -1
- package/dist/web/assets/{at-sign-BhSPafOS.js → at-sign-CEsum1vJ.js} +1 -1
- package/dist/web/assets/{blockDiagram-GPEHLZMM-C4x_nj5S.js → blockDiagram-GPEHLZMM-CKA17iNP.js} +1 -1
- package/dist/web/assets/{c4Diagram-AAUBKEIU-jHOo5lal.js → c4Diagram-AAUBKEIU-DnZ_8oOf.js} +1 -1
- package/dist/web/assets/channel-xU45IQlP.js +1 -0
- package/dist/web/assets/check-DUA2DjGH.js +1 -0
- package/dist/web/assets/{chevron-down-BoS08pMa.js → chevron-down-Bmwy-nvS.js} +1 -1
- package/dist/web/assets/{chevron-up-BWtKfdKT.js → chevron-up-CClL6-SF.js} +1 -1
- package/dist/web/assets/{chip-Ck4dqxR3.js → chip-BSMT2uT1.js} +1 -1
- package/dist/web/assets/{chunk-2J33WTMH-BZcpjmfm.js → chunk-2J33WTMH-BrtUyBDF.js} +1 -1
- package/dist/web/assets/{chunk-4BX2VUAB-DZGB3q-I.js → chunk-4BX2VUAB-DZDNetDC.js} +1 -1
- package/dist/web/assets/{chunk-55IACEB6-CcNrOmyy.js → chunk-55IACEB6-xVa3bJqv.js} +1 -1
- package/dist/web/assets/{chunk-727SXJPM-dWrxio8O.js → chunk-727SXJPM-B7n9vxY4.js} +1 -1
- package/dist/web/assets/{chunk-AQP2D5EJ-K4gkVzqE.js → chunk-AQP2D5EJ-DQd4G76y.js} +1 -1
- package/dist/web/assets/{chunk-FMBD7UC4-CnHyY4qD.js → chunk-FMBD7UC4-CXyP08kl.js} +1 -1
- package/dist/web/assets/{chunk-ND2GUHAM-CHUmcyDv.js → chunk-ND2GUHAM-BtnIS-HK.js} +1 -1
- package/dist/web/assets/{chunk-QZHKN3VN-Bzzjd-Qt.js → chunk-QZHKN3VN-D4D-V_ex.js} +1 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-pvRulc6s.js +1 -0
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-pvRulc6s.js +1 -0
- package/dist/web/assets/{code-block-OCS4YCEC-B2hHBO_G.js → code-block-OCS4YCEC-DfERo9L1.js} +1 -1
- package/dist/web/assets/confirm-dialog-8ItnHBi0.js +1 -0
- package/dist/web/assets/{content-D0qmHfHK.js → content-DrW8KnXu.js} +2 -2
- package/dist/web/assets/{copy-C4WnOY6Y.js → copy-prrQrInw.js} +1 -1
- package/dist/web/assets/{cose-bilkent-S5V4N54A-Dcn8tOhb.js → cose-bilkent-S5V4N54A-CXdH8Idq.js} +1 -1
- package/dist/web/assets/cssMode-CJ6_f10q.js +1 -0
- package/dist/web/assets/{dagre-BM42HDAG-DWBV4UfP.js → dagre-BM42HDAG-XZydDwXe.js} +1 -1
- package/dist/web/assets/{diagram-2AECGRRQ-CnNTJQ3q.js → diagram-2AECGRRQ-CofEe0Fr.js} +1 -1
- package/dist/web/assets/{diagram-5GNKFQAL-DlXJFzDF.js → diagram-5GNKFQAL-BbTtW5WH.js} +1 -1
- package/dist/web/assets/{diagram-KO2AKTUF-DZ22YV4n.js → diagram-KO2AKTUF-BJHZXpUM.js} +1 -1
- package/dist/web/assets/{diagram-LMA3HP47-B4pQJjG9.js → diagram-LMA3HP47-DN7A27YU.js} +1 -1
- package/dist/web/assets/{diagram-OG6HWLK6-DJBLjtgL.js → diagram-OG6HWLK6-4IdYadiw.js} +1 -1
- package/dist/web/assets/{dialog-1o8KQWoQ.js → dialog-BUsI4h2U.js} +2 -2
- package/dist/web/assets/{erDiagram-TEJ5UH35-CDsfoJUT.js → erDiagram-TEJ5UH35-BFijhCWv.js} +1 -1
- package/dist/web/assets/{file-6qwbIga1.js → file-C6QMUr5_.js} +1 -1
- package/dist/web/assets/{flowDiagram-I6XJVG4X-CuGOAYmY.js → flowDiagram-I6XJVG4X-D9MxC-El.js} +1 -1
- package/dist/web/assets/{folder-picker-Cj1VZOZU.js → folder-picker-CBdw-4v3.js} +1 -1
- package/dist/web/assets/{freemarker2-BG8VyI2V.js → freemarker2-CJVobC22.js} +2 -2
- package/dist/web/assets/{ganttDiagram-6RSMTGT7-BjrSOqAM.js → ganttDiagram-6RSMTGT7-BijCAyPQ.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-PVQCEYII-4VVr4F8_.js → gitGraphDiagram-PVQCEYII-AvI5QqxQ.js} +1 -1
- package/dist/web/assets/{globe-CxeM27yy.js → globe-BOfcTsvL.js} +1 -1
- package/dist/web/assets/handlebars-DTqWmI25.js +1 -0
- package/dist/web/assets/html-Bx7L8DX_.js +1 -0
- package/dist/web/assets/htmlMode-D_S0NjZc.js +1 -0
- package/dist/web/assets/{index-hHrknzh7.js → index-BClyhWqz.js} +1 -1
- package/dist/web/assets/index-BDON669P.css +1 -0
- package/dist/web/assets/{index-DVdiOmqt.js → index-BFcDmhr0.js} +1 -1
- package/dist/web/assets/index-BRu1Yhrx.js +122 -0
- package/dist/web/assets/{index-Db28hRe8.js → index-Bg8TlDo_.js} +1 -1
- package/dist/web/assets/{index-Da2mWAtm.js → index-COigMgrJ.js} +1 -1
- package/dist/web/assets/{index-cu8sedJH.js → index-Cdmj8aPv.js} +1 -1
- package/dist/web/assets/index-CtOu4p9B.js +1 -0
- package/dist/web/assets/{index-CrKx8Yaz.js → index-DUmVscrR.js} +4 -4
- package/dist/web/assets/{index-C1lMEjmZ.js → index-JXcQeorP.js} +1 -1
- package/dist/web/assets/{infoDiagram-5YYISTIA-Cy9ntb6t.js → infoDiagram-5YYISTIA-76JLqjJ0.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-D6UiVzRz.js → ishikawaDiagram-YF4QCWOH-CXHFTVly.js} +1 -1
- package/dist/web/assets/javascript-80FDzX3y.js +1 -0
- package/dist/web/assets/{journeyDiagram-JHISSGLW-owdKzZoh.js → journeyDiagram-JHISSGLW-6SDJs9C5.js} +1 -1
- package/dist/web/assets/jsonMode-BGg9MhFR.js +7 -0
- package/dist/web/assets/{kanban-definition-UN3LZRKU-v5TBnyp0.js → kanban-definition-UN3LZRKU-C0Y3zy1P.js} +1 -1
- package/dist/web/assets/{kbd-Cl4AzzJp.js → kbd-D4KIW7lm.js} +1 -1
- package/dist/web/assets/{key-round-CnYjSrCz.js → key-round-C4vhwqUu.js} +1 -1
- package/dist/web/assets/{layers-XImbMX-P.js → layers-BBHgMnhN.js} +1 -1
- package/dist/web/assets/{linear-DNlKYt8R.js → linear-CjeIgBwO.js} +1 -1
- package/dist/web/assets/{link-DQk-Vapq.js → link-C-Jq7dnc.js} +1 -1
- package/dist/web/assets/liquid-guocpCJB.js +1 -0
- package/dist/web/assets/{lspLanguageFeatures-DD_y1bZa.js → lspLanguageFeatures-CPXERxVW.js} +1 -1
- package/dist/web/assets/mdx-DA4ymd3l.js +1 -0
- package/dist/web/assets/{menu-DXF6iUsq.js → menu-BgtmXAzT.js} +1 -1
- package/dist/web/assets/{mermaid-NOHMQCX5-CG_LpwAI.js → mermaid-NOHMQCX5-XQbfQDGS.js} +49 -49
- package/dist/web/assets/{message-square-BviHdb67.js → message-square-DIFv9yrO.js} +1 -1
- package/dist/web/assets/{mindmap-definition-RKZ34NQL-Bn_rnnGT.js → mindmap-definition-RKZ34NQL-6ucD61UV.js} +1 -1
- package/dist/web/assets/modal-Dx4N46s5.js +1 -0
- package/dist/web/assets/{monaco-yuGji-2E.js → monaco-Mn1xgio_.js} +3 -3
- package/dist/web/assets/nav-row-DwEkbw3N.js +1 -0
- package/dist/web/assets/{paperclip-D9ka2IAB.js → paperclip-CdQvl5ee.js} +1 -1
- package/dist/web/assets/{pencil-isP1rXC-.js → pencil-ChX7G9j9.js} +1 -1
- package/dist/web/assets/{people-CbmH8m4i.js → people-D_VwidfV.js} +1 -1
- package/dist/web/assets/{pieDiagram-4H26LBE5-DIE_f9W_.js → pieDiagram-4H26LBE5-KVvAyrIn.js} +1 -1
- package/dist/web/assets/{popover-D8VtO5qF.js → popover-CGEFZKuu.js} +1 -1
- package/dist/web/assets/python-BzNNRn8W.js +1 -0
- package/dist/web/assets/{quadrantDiagram-W4KKPZXB-CavFxJCk.js → quadrantDiagram-W4KKPZXB-ClVzvpE7.js} +1 -1
- package/dist/web/assets/razor-DF2ZxqCE.js +1 -0
- package/dist/web/assets/{requirementDiagram-4Y6WPE33-Dm1FwUUh.js → requirementDiagram-4Y6WPE33-uXN6Uoln.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-5OEKKPKP-qeqcO27M.js → sankeyDiagram-5OEKKPKP-Bi3Tc0wR.js} +1 -1
- package/dist/web/assets/{search-DOMr5jPS.js → search--FRFbCre.js} +1 -1
- package/dist/web/assets/{select-Cw5BaOLQ.js → select-D0sHgfcU.js} +1 -1
- package/dist/web/assets/{select-CzZNbe1Z.js → select-c5IIpQj0.js} +1 -1
- package/dist/web/assets/{sequenceDiagram-3UESZ5HK-Dqtb3BYG.js → sequenceDiagram-3UESZ5HK-CLdrO2PY.js} +1 -1
- package/dist/web/assets/{server-u-PC-CcX.js → server-Dr_6KJFM.js} +1 -1
- package/dist/web/assets/{stateDiagram-AJRCARHV-C_MqF9Fy.js → stateDiagram-AJRCARHV-BGInldGc.js} +1 -1
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-D44x8SXb.js +1 -0
- package/dist/web/assets/{textarea-xt2hLb-d.js → textarea-W-xQPto3.js} +1 -1
- package/dist/web/assets/{timeline-definition-PNZ67QCA-Bzov6t31.js → timeline-definition-PNZ67QCA-BUp6Qykc.js} +1 -1
- package/dist/web/assets/{toggles-B6E1UBYN.js → toggles-Bgp7vdwg.js} +1 -1
- package/dist/web/assets/tooltip-DZcaSN1F.js +1 -0
- package/dist/web/assets/{track-BeqaPopG.js → track-Cj1Ogapu.js} +1 -1
- package/dist/web/assets/{trash-2-5jI3_KHh.js → trash-2-DmFXzIhh.js} +1 -1
- package/dist/web/assets/tsMode-CSHMQttX.js +11 -0
- package/dist/web/assets/typescript-CyQKmnN-.js +1 -0
- package/dist/web/assets/{upload-DUteazR7.js → upload-C-4QDrwN.js} +1 -1
- package/dist/web/assets/use-profiles-D5mIgeQU.js +1 -0
- package/dist/web/assets/{use-providers-CQwBj9hp.js → use-providers-BViTes-6.js} +1 -1
- package/dist/web/assets/{use-translation-settings-DBzFqP-d.js → use-translation-settings-Dgw0oKP1.js} +1 -1
- package/dist/web/assets/{useNormalizedLogs-DsdwmfS7.js → useNormalizedLogs-BX7pMg0-.js} +1 -1
- package/dist/web/assets/useTokenUsage-T03faPfn.js +1 -0
- package/dist/web/assets/{vennDiagram-CIIHVFJN-BqxICvT_.js → vennDiagram-CIIHVFJN-iQYnP9Ux.js} +1 -1
- package/dist/web/assets/{wardley-L42UT6IY-BTdLPFcA.js → wardley-L42UT6IY-J7vXwA5J.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-YWT4CUSO-icnFsFn4.js → wardleyDiagram-YWT4CUSO-CdtM5GJv.js} +1 -1
- package/dist/web/assets/xml-C79KdvcD.js +1 -0
- package/dist/web/assets/{xychartDiagram-2RQKCTM6-BN2_ducK.js → xychartDiagram-2RQKCTM6-B3gcBChQ.js} +1 -1
- package/dist/web/assets/yaml-C1WLpuVe.js +1 -0
- package/dist/web/index.html +2 -2
- package/node_modules/@agent-tower/shared/dist/index.d.ts +2 -0
- package/node_modules/@agent-tower/shared/dist/index.d.ts.map +1 -1
- package/node_modules/@agent-tower/shared/dist/index.js +2 -0
- package/node_modules/@agent-tower/shared/dist/index.js.map +1 -1
- package/node_modules/@agent-tower/shared/dist/task-handoff.d.ts +12 -0
- package/node_modules/@agent-tower/shared/dist/task-handoff.d.ts.map +1 -0
- package/node_modules/@agent-tower/shared/dist/task-handoff.js +2 -0
- package/node_modules/@agent-tower/shared/dist/task-handoff.js.map +1 -0
- package/node_modules/@agent-tower/shared/dist/task-hierarchy.d.ts +17 -0
- package/node_modules/@agent-tower/shared/dist/task-hierarchy.d.ts.map +1 -0
- package/node_modules/@agent-tower/shared/dist/task-hierarchy.js +12 -0
- package/node_modules/@agent-tower/shared/dist/task-hierarchy.js.map +1 -0
- package/node_modules/@agent-tower/shared/dist/types.d.ts +22 -1
- package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
- package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/prisma/migrations/20261023010000_add_subtasks/migration.sql +2 -0
- package/prisma/migrations/20261026000000_add_task_handoff/migration.sql +1 -0
- package/prisma/migrations/20261027000000_preserve_workspace_history/migration.sql +2 -0
- package/prisma/schema.prisma +7 -0
- package/dist/web/assets/AgentDemoPage-Dwux6TyV.js +0 -1
- package/dist/web/assets/AttachmentPreview-CFJ6MZ1f.js +0 -2
- package/dist/web/assets/BrandLogo-H4nCbVzs.js +0 -1
- package/dist/web/assets/ConversationPage-CZzGME21.js +0 -1
- package/dist/web/assets/CreateTaskInput-BM2tx4hJ.js +0 -1
- package/dist/web/assets/EditableTaskTitle-BEsiULnD.js +0 -70
- package/dist/web/assets/MobileTaskDetail-IOQ1WnS8.js +0 -3
- package/dist/web/assets/ProjectKanbanPage-DMtv15rq.js +0 -12
- package/dist/web/assets/TaskDetail-DzKbs5Jt.js +0 -1
- package/dist/web/assets/TeamSettingsPage-fjlaqaLo.js +0 -1
- package/dist/web/assets/channel-D1cEj22-.js +0 -1
- package/dist/web/assets/check-D_VFGpIy.js +0 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-DIrDMefa.js +0 -1
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-DIrDMefa.js +0 -1
- package/dist/web/assets/confirm-dialog-CL_1pF4K.js +0 -1
- package/dist/web/assets/cssMode-CXBMyfYY.js +0 -1
- package/dist/web/assets/handlebars-Ci38FPsA.js +0 -1
- package/dist/web/assets/html-5hdYEgVF.js +0 -1
- package/dist/web/assets/htmlMode-BzU9qsw0.js +0 -1
- package/dist/web/assets/icon-button-BmrJtYFC.js +0 -1
- package/dist/web/assets/index-BR3Wg2fS.js +0 -122
- package/dist/web/assets/index-DSy5JLC1.js +0 -1
- package/dist/web/assets/index-DZLg4-xM.css +0 -1
- package/dist/web/assets/javascript-Ib060GQ8.js +0 -1
- package/dist/web/assets/jsonMode-CLmu6gzc.js +0 -7
- package/dist/web/assets/liquid-Bc7OSAPR.js +0 -1
- package/dist/web/assets/mdx-CxJNHHTn.js +0 -1
- package/dist/web/assets/modal-D496f1fE.js +0 -1
- package/dist/web/assets/python-C0E43gUo.js +0 -1
- package/dist/web/assets/razor-xarhYR9V.js +0 -1
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-BxmbGAhh.js +0 -1
- package/dist/web/assets/tooltip-C8--8CNX.js +0 -1
- package/dist/web/assets/tsMode-uT3sMVHt.js +0 -11
- package/dist/web/assets/typescript-Dkdj2ks0.js +0 -1
- package/dist/web/assets/use-profiles-T3saKiBg.js +0 -1
- package/dist/web/assets/useTokenUsage-Drh3v3kx.js +0 -1
- package/dist/web/assets/xml-BO8gYu0L.js +0 -1
- package/dist/web/assets/yaml-DlovbQzw.js +0 -1
- /package/dist/web/assets/{EditableTaskTitle-DcpNTP1B.css → TaskHandoffPanel-DcpNTP1B.css} +0 -0
|
@@ -344,9 +344,7 @@ describe('WorkspaceBackgroundService', () => {
|
|
|
344
344
|
await shutdown;
|
|
345
345
|
}
|
|
346
346
|
expect(manager.startCalls).toHaveBeenCalledTimes(1);
|
|
347
|
-
expect(await service.list(workspace.id)).toEqual([
|
|
348
|
-
expect.objectContaining({ desiredState: 'RUNNING', runtimeState: 'STOPPED' }),
|
|
349
|
-
]);
|
|
347
|
+
expect(await service.list(workspace.id)).toEqual([]);
|
|
350
348
|
});
|
|
351
349
|
it('retains a failed shutdown owner and retries it on the next attempt', async () => {
|
|
352
350
|
const manager = new FakeProcessManager();
|
|
@@ -360,46 +358,96 @@ describe('WorkspaceBackgroundService', () => {
|
|
|
360
358
|
await service.shutdown();
|
|
361
359
|
expect(manager.has(running.id)).toBe(false);
|
|
362
360
|
});
|
|
363
|
-
it('
|
|
361
|
+
it('keeps services stopped after app restart until explicitly started again', async () => {
|
|
364
362
|
const manager = new FakeProcessManager();
|
|
365
363
|
const service = new WorkspaceBackgroundService(manager);
|
|
366
364
|
const { workspace } = await createWorkspace('shutdown');
|
|
367
|
-
await service.start(workspace.id, 'web', { command: 'node' });
|
|
365
|
+
const running = await service.start(workspace.id, 'web', { command: 'node' });
|
|
368
366
|
await service.shutdown();
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
367
|
+
expect(manager.has(running.id)).toBe(false);
|
|
368
|
+
await expect(prisma.workspaceBackgroundService.findUniqueOrThrow({ where: { id: running.id } }))
|
|
369
|
+
.resolves.toMatchObject({
|
|
370
|
+
desiredState: 'STOPPED',
|
|
371
|
+
runtimeState: 'STOPPED',
|
|
372
|
+
runtimeInstanceId: null,
|
|
373
|
+
pid: null,
|
|
374
|
+
});
|
|
372
375
|
await expect(service.reconcile()).rejects.toMatchObject({ code: 'SERVICE_SHUTTING_DOWN' });
|
|
373
|
-
const
|
|
374
|
-
|
|
375
|
-
await
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
expect(
|
|
376
|
+
const restartedManager = new FakeProcessManager();
|
|
377
|
+
const restartedService = new WorkspaceBackgroundService(restartedManager);
|
|
378
|
+
await restartedService.reconcile();
|
|
379
|
+
await expect(restartedService.list(workspace.id)).resolves.toEqual([]);
|
|
380
|
+
expect(restartedManager.startCalls).not.toHaveBeenCalled();
|
|
381
|
+
await expect(restartedService.start(workspace.id, 'web', { command: 'node' }))
|
|
382
|
+
.resolves.toMatchObject({ id: running.id, desiredState: 'RUNNING', runtimeState: 'RUNNING' });
|
|
383
|
+
expect(restartedManager.startCalls).toHaveBeenCalledTimes(1);
|
|
384
|
+
await restartedService.shutdown();
|
|
385
|
+
});
|
|
386
|
+
it('clears legacy launch intent and stale runtimes across tasks without starting services', async () => {
|
|
387
|
+
const manager = new FakeProcessManager();
|
|
388
|
+
const service = new WorkspaceBackgroundService(manager);
|
|
389
|
+
const records = [];
|
|
390
|
+
for (const runtimeState of ['STARTING', 'RUNNING', 'STOPPING', 'STOPPED', 'EXITED', 'FAILED']) {
|
|
391
|
+
const { workspace } = await createWorkspace(`startup-${runtimeState}`);
|
|
392
|
+
const hasRuntime = ['STARTING', 'RUNNING', 'STOPPING'].includes(runtimeState);
|
|
393
|
+
records.push(await prisma.workspaceBackgroundService.create({
|
|
394
|
+
data: {
|
|
395
|
+
workspaceId: workspace.id,
|
|
396
|
+
name: 'web',
|
|
397
|
+
command: 'node',
|
|
398
|
+
argsJson: '["server.js"]',
|
|
399
|
+
desiredState: 'RUNNING',
|
|
400
|
+
runtimeState,
|
|
401
|
+
runtimeInstanceId: hasRuntime ? `old-${runtimeState}` : null,
|
|
402
|
+
pid: hasRuntime ? 12345 : null,
|
|
403
|
+
},
|
|
404
|
+
}));
|
|
405
|
+
}
|
|
406
|
+
await service.reconcile();
|
|
407
|
+
expect(manager.startCalls).not.toHaveBeenCalled();
|
|
408
|
+
for (const record of records) {
|
|
409
|
+
await expect(service.list(record.workspaceId)).resolves.toEqual([]);
|
|
410
|
+
await expect(prisma.workspaceBackgroundService.findUniqueOrThrow({ where: { id: record.id } }))
|
|
411
|
+
.resolves.toMatchObject({
|
|
412
|
+
command: 'node',
|
|
413
|
+
argsJson: '["server.js"]',
|
|
414
|
+
desiredState: 'STOPPED',
|
|
415
|
+
runtimeState: 'STOPPED',
|
|
416
|
+
runtimeInstanceId: null,
|
|
417
|
+
pid: null,
|
|
418
|
+
stoppedAt: expect.any(Date),
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
await expect(service.restart(records[0].workspaceId, 'web'))
|
|
422
|
+
.resolves.toMatchObject({ id: records[0].id, desiredState: 'RUNNING', runtimeState: 'RUNNING' });
|
|
423
|
+
expect(manager.startCalls).toHaveBeenCalledTimes(1);
|
|
424
|
+
await service.shutdown();
|
|
379
425
|
});
|
|
380
|
-
it(
|
|
426
|
+
it.each([
|
|
427
|
+
{ relativeCwd: 'missing-directory', argsJson: '[]' },
|
|
428
|
+
{ relativeCwd: '.', argsJson: 'invalid-json' },
|
|
429
|
+
])('does not attempt to launch an obsolete service configuration on startup: %j', async (spec) => {
|
|
381
430
|
const manager = new FakeProcessManager();
|
|
382
431
|
const service = new WorkspaceBackgroundService(manager);
|
|
383
|
-
const { workspace } = await createWorkspace('
|
|
384
|
-
await prisma.workspaceBackgroundService.create({
|
|
432
|
+
const { workspace } = await createWorkspace('obsolete-service');
|
|
433
|
+
const record = await prisma.workspaceBackgroundService.create({
|
|
385
434
|
data: {
|
|
386
435
|
workspaceId: workspace.id,
|
|
387
436
|
name: 'web',
|
|
388
437
|
command: 'node',
|
|
389
|
-
|
|
390
|
-
relativeCwd: 'missing-directory',
|
|
438
|
+
...spec,
|
|
391
439
|
desiredState: 'RUNNING',
|
|
392
440
|
runtimeState: 'STOPPED',
|
|
393
441
|
},
|
|
394
442
|
});
|
|
395
443
|
await service.reconcile();
|
|
396
|
-
await expect(service.list(workspace.id)).resolves.toEqual([
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
444
|
+
await expect(service.list(workspace.id)).resolves.toEqual([]);
|
|
445
|
+
await expect(prisma.workspaceBackgroundService.findUniqueOrThrow({ where: { id: record.id } }))
|
|
446
|
+
.resolves.toMatchObject({
|
|
447
|
+
desiredState: 'STOPPED',
|
|
448
|
+
runtimeState: 'STOPPED',
|
|
449
|
+
lastError: null,
|
|
450
|
+
});
|
|
403
451
|
expect(manager.startCalls).not.toHaveBeenCalled();
|
|
404
452
|
});
|
|
405
453
|
it('releases every service log buffer when its workspace entity is deleted', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-background-service.service.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/workspace-background-service.service.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace-background-service.service.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/workspace-background-service.service.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -357,6 +357,67 @@ describe('WorkspaceService TeamRun workspace lifecycle', () => {
|
|
|
357
357
|
expect(await prisma.executionProcess.count({ where: { sessionId: workspace.sessions[0].id } })).toBe(1);
|
|
358
358
|
expect(removeWorktreeMock).not.toHaveBeenCalled();
|
|
359
359
|
});
|
|
360
|
+
it('merges a subtask into the parent worktree without completing the parent task', async () => {
|
|
361
|
+
const { project, task: parent } = await createTask('Subtask merge');
|
|
362
|
+
const parentWorkspace = await prisma.workspace.create({ data: {
|
|
363
|
+
taskId: parent.id, branchName: 'at/parent', baseBranch: 'main', worktreePath: '/parent',
|
|
364
|
+
} });
|
|
365
|
+
const child = await prisma.task.create({ data: { projectId: project.id, title: 'Child', parentTaskId: parent.id, baseBranch: 'at/parent', status: 'IN_REVIEW' } });
|
|
366
|
+
const childWorkspace = await prisma.workspace.create({ data: {
|
|
367
|
+
taskId: child.id, branchName: 'at/child', baseBranch: 'at/parent', worktreePath: '/child',
|
|
368
|
+
} });
|
|
369
|
+
await service.merge(childWorkspace.id);
|
|
370
|
+
expect(mergeWorktreeMock).toHaveBeenCalledWith('/child', 'at/parent', expect.objectContaining({ targetWorktreePath: '/parent' }));
|
|
371
|
+
expect((await prisma.task.findUniqueOrThrow({ where: { id: child.id } })).status).toBe('DONE');
|
|
372
|
+
expect((await prisma.task.findUniqueOrThrow({ where: { id: parent.id } })).status).toBe('TODO');
|
|
373
|
+
expect((await prisma.workspace.findUniqueOrThrow({ where: { id: parentWorkspace.id } })).status).toBe('ACTIVE');
|
|
374
|
+
});
|
|
375
|
+
it('blocks a subtask merge while its parent has an active write session', async () => {
|
|
376
|
+
const { project, task: parent } = await createTask('Busy parent');
|
|
377
|
+
const parentWorkspace = await prisma.workspace.create({ data: { taskId: parent.id, branchName: 'at/parent', baseBranch: 'main', worktreePath: '/parent' } });
|
|
378
|
+
const child = await prisma.task.create({ data: { projectId: project.id, title: 'Child', parentTaskId: parent.id } });
|
|
379
|
+
const workspace = await prisma.workspace.create({ data: { taskId: child.id, branchName: 'at/child', baseBranch: 'at/parent', worktreePath: '/child' } });
|
|
380
|
+
await prisma.session.create({ data: { workspaceId: parentWorkspace.id, agentType: 'CODEX', prompt: 'busy', status: 'RUNNING' } });
|
|
381
|
+
await expect(service.merge(workspace.id)).rejects.toMatchObject({ code: 'PARENT_WORKSPACE_HAS_ACTIVE_SESSION' });
|
|
382
|
+
expect(mergeWorktreeMock).not.toHaveBeenCalled();
|
|
383
|
+
});
|
|
384
|
+
it('retains a merged parent branch and its ownership until its subtasks no longer depend on it', async () => {
|
|
385
|
+
const { project, task: parent } = await createTask('Retain parent branch');
|
|
386
|
+
await prisma.task.update({ where: { id: parent.id }, data: { status: 'DONE' } });
|
|
387
|
+
const workspace = await prisma.workspace.create({ data: { taskId: parent.id, branchName: 'at/parent', baseBranch: 'main', worktreePath: '/parent', status: 'MERGED' } });
|
|
388
|
+
const child = await prisma.task.create({ data: { projectId: project.id, title: 'Child', parentTaskId: parent.id, baseBranch: 'at/parent' } });
|
|
389
|
+
await service.cleanup();
|
|
390
|
+
expect(deleteBranchIfSafeMock).not.toHaveBeenCalled();
|
|
391
|
+
expect(await prisma.workspace.findUnique({ where: { id: workspace.id } })).not.toBeNull();
|
|
392
|
+
await prisma.task.update({ where: { id: child.id }, data: { deletedAt: new Date() } });
|
|
393
|
+
await service.cleanup();
|
|
394
|
+
expect(deleteBranchIfSafeMock).toHaveBeenCalledWith('at/parent', expect.anything());
|
|
395
|
+
});
|
|
396
|
+
it('retains an ancestor branch referenced only by a grandchild', async () => {
|
|
397
|
+
const { project, task: parent } = await createTask('Grandchild branch dependency');
|
|
398
|
+
await prisma.task.update({ where: { id: parent.id }, data: { status: 'DONE' } });
|
|
399
|
+
const workspace = await prisma.workspace.create({ data: { taskId: parent.id, branchName: 'at/root', baseBranch: 'main', worktreePath: '/root', status: 'MERGED' } });
|
|
400
|
+
const child = await prisma.task.create({ data: { projectId: project.id, title: 'Child', parentTaskId: parent.id, baseBranch: 'main' } });
|
|
401
|
+
const grandchild = await prisma.task.create({ data: { projectId: project.id, title: 'Grandchild', parentTaskId: child.id, baseBranch: 'at/root' } });
|
|
402
|
+
await service.cleanup();
|
|
403
|
+
expect(deleteBranchIfSafeMock).not.toHaveBeenCalled();
|
|
404
|
+
expect(await prisma.workspace.findUnique({ where: { id: workspace.id } })).not.toBeNull();
|
|
405
|
+
await prisma.task.update({ where: { id: grandchild.id }, data: { deletedAt: new Date() } });
|
|
406
|
+
await service.cleanup();
|
|
407
|
+
expect(deleteBranchIfSafeMock).toHaveBeenCalledWith('at/root', expect.anything());
|
|
408
|
+
});
|
|
409
|
+
it('merges a grandchild into its immediate parent without completing either ancestor', async () => {
|
|
410
|
+
const { project, task: parent } = await createTask('Grandchild merge');
|
|
411
|
+
const child = await prisma.task.create({ data: { projectId: project.id, title: 'Child', parentTaskId: parent.id } });
|
|
412
|
+
await prisma.workspace.create({ data: { taskId: child.id, branchName: 'at/child', baseBranch: 'main', worktreePath: '/child' } });
|
|
413
|
+
const grandchild = await prisma.task.create({ data: { projectId: project.id, title: 'Grandchild', parentTaskId: child.id, status: 'IN_REVIEW' } });
|
|
414
|
+
const workspace = await prisma.workspace.create({ data: { taskId: grandchild.id, branchName: 'at/grandchild', baseBranch: 'at/child', worktreePath: '/grandchild' } });
|
|
415
|
+
await service.merge(workspace.id);
|
|
416
|
+
expect(mergeWorktreeMock).toHaveBeenCalledWith('/grandchild', 'at/child', expect.objectContaining({ targetWorktreePath: '/child' }));
|
|
417
|
+
expect((await prisma.task.findUniqueOrThrow({ where: { id: grandchild.id } })).status).toBe('DONE');
|
|
418
|
+
expect((await prisma.task.findUniqueOrThrow({ where: { id: child.id } })).status).toBe('TODO');
|
|
419
|
+
expect((await prisma.task.findUniqueOrThrow({ where: { id: parent.id } })).status).toBe('TODO');
|
|
420
|
+
});
|
|
360
421
|
it('creates a main-directory workspace without creating a git worktree', async () => {
|
|
361
422
|
const { project, task } = await createTask('main directory workspace task');
|
|
362
423
|
const workspace = await service.create(task.id, {
|
|
@@ -2245,7 +2306,7 @@ describe('WorkspaceService TeamRun workspace lifecycle', () => {
|
|
|
2245
2306
|
await expect(lockedService.merge(workspace.id)).rejects.toThrow('git merge failed');
|
|
2246
2307
|
expect(lockService.listLocks()).toEqual([]);
|
|
2247
2308
|
});
|
|
2248
|
-
it('
|
|
2309
|
+
it('reclaims stale managed worktrees and branches while retaining history records', async () => {
|
|
2249
2310
|
const { project, task } = await createTask('cleanup stale workspace task');
|
|
2250
2311
|
await prisma.task.update({
|
|
2251
2312
|
where: { id: task.id },
|
|
@@ -2270,7 +2331,11 @@ describe('WorkspaceService TeamRun workspace lifecycle', () => {
|
|
|
2270
2331
|
expect(deleteBranchIfSafeMock).toHaveBeenCalledWith(workspace.branchName, {
|
|
2271
2332
|
protectedBranches: [project.mainBranch, workspace.baseBranch],
|
|
2272
2333
|
});
|
|
2273
|
-
await expect(prisma.workspace.findUnique({ where: { id: workspace.id } })).resolves.
|
|
2334
|
+
await expect(prisma.workspace.findUnique({ where: { id: workspace.id } })).resolves.toMatchObject({
|
|
2335
|
+
status: 'MERGED', worktreePath: '', workingDir: '', cleanedAt: expect.any(Date),
|
|
2336
|
+
});
|
|
2337
|
+
await expect(service.cleanup()).resolves.toBe(0);
|
|
2338
|
+
expect(removeWorktreeMock).toHaveBeenCalledTimes(1);
|
|
2274
2339
|
});
|
|
2275
2340
|
it('retries periodic cleanup only after completed session trees are confirmed stopped', async () => {
|
|
2276
2341
|
const { task } = await createTask('periodic idle ACP cleanup');
|
|
@@ -2293,7 +2358,10 @@ describe('WorkspaceService TeamRun workspace lifecycle', () => {
|
|
|
2293
2358
|
isRuntimeCleanupConfirmed.mockResolvedValue(true);
|
|
2294
2359
|
await expect(service.cleanup()).resolves.toBe(1);
|
|
2295
2360
|
expect(removeWorktreeMock).toHaveBeenCalledWith(workspace.worktreePath);
|
|
2296
|
-
expect(await prisma.workspace.findUnique({ where: { id: workspace.id } })).
|
|
2361
|
+
expect(await prisma.workspace.findUnique({ where: { id: workspace.id } })).toMatchObject({
|
|
2362
|
+
cleanedAt: expect.any(Date), worktreePath: '',
|
|
2363
|
+
});
|
|
2364
|
+
expect(await prisma.session.count({ where: { workspaceId: workspace.id } })).toBe(1);
|
|
2297
2365
|
});
|
|
2298
2366
|
it('stops background services before cleanup removes a workspace directory', async () => {
|
|
2299
2367
|
const { project, task } = await createTask('cleanup background service task');
|
|
@@ -2320,7 +2388,7 @@ describe('WorkspaceService TeamRun workspace lifecycle', () => {
|
|
|
2320
2388
|
expect(backgroundService.releaseLogsForWorkspace).toHaveBeenCalledWith(workspace.id);
|
|
2321
2389
|
expect(removeWorktreeMock).toHaveBeenCalledWith(workspace.worktreePath);
|
|
2322
2390
|
});
|
|
2323
|
-
it('
|
|
2391
|
+
it('reclaims stale managed TeamRun worktrees while retaining workspace identity', async () => {
|
|
2324
2392
|
const { project, task, teamRun } = await createTeamRunWithMember();
|
|
2325
2393
|
await prisma.task.update({
|
|
2326
2394
|
where: { id: task.id },
|
|
@@ -2345,7 +2413,9 @@ describe('WorkspaceService TeamRun workspace lifecycle', () => {
|
|
|
2345
2413
|
expect(deleteBranchIfSafeMock).toHaveBeenCalledWith(workspace.branchName, {
|
|
2346
2414
|
protectedBranches: [project.mainBranch, workspace.baseBranch],
|
|
2347
2415
|
});
|
|
2348
|
-
await expect(prisma.workspace.findUnique({ where: { id: workspace.id } })).resolves.
|
|
2416
|
+
await expect(prisma.workspace.findUnique({ where: { id: workspace.id } })).resolves.toMatchObject({
|
|
2417
|
+
status: 'MERGED', worktreePath: '', workingDir: '', cleanedAt: expect.any(Date),
|
|
2418
|
+
});
|
|
2349
2419
|
});
|
|
2350
2420
|
it('keeps non-managed unregistered worktree records for retry', async () => {
|
|
2351
2421
|
const { task } = await createTask('cleanup unmanaged workspace task');
|
|
@@ -2417,5 +2487,30 @@ describe('WorkspaceService TeamRun workspace lifecycle', () => {
|
|
|
2417
2487
|
expect(cleaned).toBe(0);
|
|
2418
2488
|
expect(removeWorktreeMock).not.toHaveBeenCalled();
|
|
2419
2489
|
});
|
|
2490
|
+
it.each(['failed', 'checked_out'])('retries %s branch cleanup without removing history or the directory twice', async (status) => {
|
|
2491
|
+
const { task } = await createTask('pending branch cleanup');
|
|
2492
|
+
await prisma.task.update({ where: { id: task.id }, data: { status: 'DONE' } });
|
|
2493
|
+
const workspace = await prisma.workspace.create({ data: {
|
|
2494
|
+
taskId: task.id, branchName: 'at/pending-branch', worktreePath: '/pending-branch', status: 'MERGED',
|
|
2495
|
+
sessions: { create: { agentType: 'CODEX', prompt: 'history', status: 'COMPLETED', logSnapshot: '{"entries":[]}' } },
|
|
2496
|
+
}, include: { sessions: true } });
|
|
2497
|
+
Object.assign(service, { sessionService: { stop: vi.fn(async () => workspace.sessions[0]), isRuntimeCleanupConfirmed: vi.fn(async () => true) } });
|
|
2498
|
+
deleteBranchIfSafeMock.mockResolvedValueOnce({ status, branchName: workspace.branchName });
|
|
2499
|
+
await service.cleanup();
|
|
2500
|
+
expect(await prisma.workspace.findUnique({ where: { id: workspace.id } })).toMatchObject({ worktreePath: '', cleanedAt: null });
|
|
2501
|
+
await service.cleanup();
|
|
2502
|
+
expect(await prisma.workspace.findUnique({ where: { id: workspace.id } })).toMatchObject({ cleanedAt: expect.any(Date) });
|
|
2503
|
+
expect((await prisma.session.findUniqueOrThrow({ where: { id: workspace.sessions[0].id } })).logSnapshot).toBe('{"entries":[]}');
|
|
2504
|
+
expect(removeWorktreeMock).toHaveBeenCalledTimes(1);
|
|
2505
|
+
expect(deleteBranchIfSafeMock).toHaveBeenCalledTimes(2);
|
|
2506
|
+
});
|
|
2507
|
+
it('serializes concurrent cleanups before releasing the same workspace resources', async () => {
|
|
2508
|
+
const { task } = await createTask('concurrent cleanup');
|
|
2509
|
+
await prisma.task.update({ where: { id: task.id }, data: { status: 'DONE' } });
|
|
2510
|
+
await prisma.workspace.create({ data: { taskId: task.id, branchName: 'at/concurrent', worktreePath: '/concurrent', status: 'MERGED' } });
|
|
2511
|
+
const results = await Promise.all([service.cleanup(), service.cleanup()]);
|
|
2512
|
+
expect(results.reduce((sum, count) => sum + count, 0)).toBe(1);
|
|
2513
|
+
expect(removeWorktreeMock).toHaveBeenCalledTimes(1);
|
|
2514
|
+
});
|
|
2420
2515
|
});
|
|
2421
2516
|
//# sourceMappingURL=workspace.service.test.js.map
|