factory-factory 0.2.3 → 0.2.5
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/README.md +2 -2
- package/dist/client/assets/{_basePickBy-ClLqD23W.js → _basePickBy-BXw54oMQ.js} +1 -1
- package/dist/client/assets/{_baseUniq-DVVSJ599.js → _baseUniq-_2-lN-JZ.js} +1 -1
- package/dist/client/assets/{arc-DCPJ-atk.js → arc-DaCKgXo4.js} +1 -1
- package/dist/client/assets/{architectureDiagram-VXUJARFQ-dvBXEdHJ.js → architectureDiagram-VXUJARFQ-D5dlDvyJ.js} +1 -1
- package/dist/client/assets/{blockDiagram-VD42YOAC-BnlsKN_S.js → blockDiagram-VD42YOAC-CEAiD2S_.js} +1 -1
- package/dist/client/assets/{c4Diagram-YG6GDRKO-AMG1QOcD.js → c4Diagram-YG6GDRKO-DTNRx2b5.js} +1 -1
- package/dist/client/assets/channel-BusoDFL5.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-CvbHsudf.js → chunk-4BX2VUAB-yvp0WNZ0.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CtFa9sig.js → chunk-55IACEB6-Cse3ExNd.js} +1 -1
- package/dist/client/assets/{chunk-B4BG7PRW-sjqCuFZK.js → chunk-B4BG7PRW-Bl2GpPLn.js} +1 -1
- package/dist/client/assets/{chunk-DI55MBZ5-vsqDRqHG.js → chunk-DI55MBZ5-CV5Cqkss.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-lEVbnFWf.js → chunk-FMBD7UC4-CP3yjlO6.js} +1 -1
- package/dist/client/assets/{chunk-QN33PNHL-laYvT_kS.js → chunk-QN33PNHL-DUdJaEPB.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-Cs-LwO3R.js → chunk-QZHKN3VN-DYTUnPIc.js} +1 -1
- package/dist/client/assets/{chunk-TZMSLE5B-GQQ1aq3v.js → chunk-TZMSLE5B-CtWiqR24.js} +1 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-C3RMRasv.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-C3RMRasv.js +1 -0
- package/dist/client/assets/clone-D6B-nWvg.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-Y_FrS_Az.js → cose-bilkent-S5V4N54A-B67RdhOB.js} +1 -1
- package/dist/client/assets/{dagre-6UL2VRFP-DQIwKP-6.js → dagre-6UL2VRFP-D9u_oxJL.js} +1 -1
- package/dist/client/assets/{diagram-PSM6KHXK-jFQ4tsW4.js → diagram-PSM6KHXK-DOWfPnpa.js} +1 -1
- package/dist/client/assets/{diagram-QEK2KX5R-0kFBcfBt.js → diagram-QEK2KX5R-CqJwZbAA.js} +1 -1
- package/dist/client/assets/{diagram-S2PKOQOG-Cx_fwFHF.js → diagram-S2PKOQOG-D0ri9ztm.js} +1 -1
- package/dist/client/assets/{erDiagram-Q2GNP2WA-CUgHzWnq.js → erDiagram-Q2GNP2WA-0cRKPUY7.js} +1 -1
- package/dist/client/assets/{flowDiagram-NV44I4VS-DBPSyGKN.js → flowDiagram-NV44I4VS-Cj_5-ww1.js} +1 -1
- package/dist/client/assets/{ganttDiagram-JELNMOA3-BPAxxsuh.js → ganttDiagram-JELNMOA3-Cwm2arni.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-NY62KEGX-BHLuayx7.js → gitGraphDiagram-NY62KEGX-DKyLuO26.js} +1 -1
- package/dist/client/assets/{graph-hSnQ7U0p.js → graph-BhRkLhV1.js} +1 -1
- package/dist/client/assets/{index-CwTQdVJd.js → index-1HR_eYGL.js} +220 -182
- package/dist/client/assets/index-DHENAn70.css +1 -0
- package/dist/client/assets/{infoDiagram-WHAUD3N6-DqA4KMDO.js → infoDiagram-WHAUD3N6-DuzPbELj.js} +1 -1
- package/dist/client/assets/{journeyDiagram-XKPGCS4Q-DlVpIfsm.js → journeyDiagram-XKPGCS4Q-BfearpNr.js} +1 -1
- package/dist/client/assets/{kanban-definition-3W4ZIXB7-Bn7zJ_Qs.js → kanban-definition-3W4ZIXB7-R5KMtAj4.js} +1 -1
- package/dist/client/assets/{layout-BgfjjiLB.js → layout-B-tL36G2.js} +1 -1
- package/dist/client/assets/{linear-pgYyXM7v.js → linear-CvIBiHN-.js} +1 -1
- package/dist/client/assets/{mindmap-definition-VGOIOE7T-CU2bFQ_O.js → mindmap-definition-VGOIOE7T-CHYN0wBz.js} +1 -1
- package/dist/client/assets/{pieDiagram-ADFJNKIX-CdkFaWPc.js → pieDiagram-ADFJNKIX-LkA8WwD-.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-AYHSOK5B-gp1mJ5Yc.js → quadrantDiagram-AYHSOK5B-B5s8Qc9j.js} +1 -1
- package/dist/client/assets/{requirementDiagram-UZGBJVZJ-BO59auEv.js → requirementDiagram-UZGBJVZJ-BMLpjBJA.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-TZEHDZUN-BrZ8rlwL.js → sankeyDiagram-TZEHDZUN-BIj9RGlp.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-WL72ISMW-LojphsDR.js → sequenceDiagram-WL72ISMW-uGM-Jh_O.js} +1 -1
- package/dist/client/assets/{stateDiagram-FKZM4ZOC-8bPGJ9iG.js → stateDiagram-FKZM4ZOC-CQQhnUok.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BUJPEM7D.js +1 -0
- package/dist/client/assets/{terminal-instance-YWv2YE4B.js → terminal-instance-DpK3PfW4.js} +1 -1
- package/dist/client/assets/{timeline-definition-IT6M3QCI-1mTwPI08.js → timeline-definition-IT6M3QCI-BusXMYfI.js} +1 -1
- package/dist/client/assets/{treemap-KMMF4GRG-VwmVQuy1.js → treemap-KMMF4GRG-XF3-w8dz.js} +1 -1
- package/dist/client/assets/{xychartDiagram-PRI3JC2R-zPQ-EL8y.js → xychartDiagram-PRI3JC2R-DhKTXxb3.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/prisma/generated/enums.d.ts +0 -1
- package/dist/prisma/generated/enums.d.ts.map +1 -1
- package/dist/prisma/generated/enums.js +0 -1
- package/dist/prisma/generated/enums.js.map +1 -1
- package/dist/prisma/generated/internal/class.js +2 -2
- package/dist/prisma/generated/internal/class.js.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespace.d.ts +0 -1
- package/dist/prisma/generated/internal/prismaNamespace.d.ts.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespace.js +0 -1
- package/dist/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts +0 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.js +0 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/prisma/generated/models/UserSettings.d.ts +1 -29
- package/dist/prisma/generated/models/UserSettings.d.ts.map +1 -1
- package/dist/prompts/ratchet/dispatch.md +31 -0
- package/dist/prompts/workflows/ratchet.md +22 -36
- package/dist/src/backend/app-context.d.ts +4 -0
- package/dist/src/backend/app-context.d.ts.map +1 -1
- package/dist/src/backend/app-context.js +4 -0
- package/dist/src/backend/app-context.js.map +1 -1
- package/dist/src/backend/claude/protocol.d.ts +3 -0
- package/dist/src/backend/claude/protocol.d.ts.map +1 -1
- package/dist/src/backend/claude/protocol.js +63 -10
- package/dist/src/backend/claude/protocol.js.map +1 -1
- package/dist/src/backend/claude/protocol.test.js +188 -0
- package/dist/src/backend/claude/protocol.test.js.map +1 -1
- package/dist/src/backend/claude/registry.d.ts.map +1 -1
- package/dist/src/backend/claude/registry.js +12 -1
- package/dist/src/backend/claude/registry.js.map +1 -1
- package/dist/src/backend/claude/session.d.ts.map +1 -1
- package/dist/src/backend/claude/session.js +40 -6
- package/dist/src/backend/claude/session.js.map +1 -1
- package/dist/src/backend/claude/session.test.js +46 -0
- package/dist/src/backend/claude/session.test.js.map +1 -1
- package/dist/src/backend/claude/types.d.ts +28 -3
- package/dist/src/backend/claude/types.d.ts.map +1 -1
- package/dist/src/backend/claude/types.js +28 -0
- package/dist/src/backend/claude/types.js.map +1 -1
- package/dist/src/backend/interceptors/pr-detection.interceptor.d.ts.map +1 -1
- package/dist/src/backend/interceptors/pr-detection.interceptor.js +19 -23
- package/dist/src/backend/interceptors/pr-detection.interceptor.js.map +1 -1
- package/dist/src/backend/prompts/markdown-loader.d.ts +22 -0
- package/dist/src/backend/prompts/markdown-loader.d.ts.map +1 -0
- package/dist/src/backend/prompts/markdown-loader.js +77 -0
- package/dist/src/backend/prompts/markdown-loader.js.map +1 -0
- package/dist/src/backend/prompts/markdown-loader.test.d.ts +2 -0
- package/dist/src/backend/prompts/markdown-loader.test.d.ts.map +1 -0
- package/dist/src/backend/prompts/markdown-loader.test.js +190 -0
- package/dist/src/backend/prompts/markdown-loader.test.js.map +1 -0
- package/dist/src/backend/prompts/quick-actions.d.ts.map +1 -1
- package/dist/src/backend/prompts/quick-actions.js +34 -92
- package/dist/src/backend/prompts/quick-actions.js.map +1 -1
- package/dist/src/backend/prompts/ratchet-dispatch.d.ts +3 -0
- package/dist/src/backend/prompts/ratchet-dispatch.d.ts.map +1 -0
- package/dist/src/backend/prompts/ratchet-dispatch.js +53 -0
- package/dist/src/backend/prompts/ratchet-dispatch.js.map +1 -0
- package/dist/src/backend/prompts/ratchet-dispatch.test.d.ts +2 -0
- package/dist/src/backend/prompts/ratchet-dispatch.test.d.ts.map +1 -0
- package/dist/src/backend/prompts/ratchet-dispatch.test.js +34 -0
- package/dist/src/backend/prompts/ratchet-dispatch.test.js.map +1 -0
- package/dist/src/backend/prompts/workflows.d.ts.map +1 -1
- package/dist/src/backend/prompts/workflows.js +23 -76
- package/dist/src/backend/prompts/workflows.js.map +1 -1
- package/dist/src/backend/resource_accessors/user-settings.accessor.d.ts +0 -1
- package/dist/src/backend/resource_accessors/user-settings.accessor.d.ts.map +1 -1
- package/dist/src/backend/resource_accessors/user-settings.accessor.js.map +1 -1
- package/dist/src/backend/resource_accessors/workspace.accessor.d.ts +4 -3
- package/dist/src/backend/resource_accessors/workspace.accessor.d.ts.map +1 -1
- package/dist/src/backend/resource_accessors/workspace.accessor.js +4 -2
- package/dist/src/backend/resource_accessors/workspace.accessor.js.map +1 -1
- package/dist/src/backend/routers/websocket/chat.handler.d.ts.map +1 -1
- package/dist/src/backend/routers/websocket/chat.handler.js +1 -30
- package/dist/src/backend/routers/websocket/chat.handler.js.map +1 -1
- package/dist/src/backend/services/chat-event-forwarder.service.d.ts.map +1 -1
- package/dist/src/backend/services/chat-event-forwarder.service.js +9 -13
- package/dist/src/backend/services/chat-event-forwarder.service.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.d.ts +14 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.js +81 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.test.d.ts +2 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.test.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.test.js +315 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-processing.test.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/get-history.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/get-history.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/get-history.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.js +7 -3
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/handlers.test.js +156 -6
- package/dist/src/backend/services/chat-message-handlers/handlers/handlers.test.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/list-sessions.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/list-sessions.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/list-sessions.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.js +41 -31
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.js +1 -2
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.js +1 -2
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.js +6 -7
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.js +1 -2
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.js +8 -9
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.js +4 -5
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.js +4 -5
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.js +4 -2
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.js +7 -2
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.d.ts +2 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.js +1 -2
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/registry.d.ts +5 -1
- package/dist/src/backend/services/chat-message-handlers/registry.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/registry.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers.service.d.ts +0 -2
- package/dist/src/backend/services/chat-message-handlers.service.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers.service.js +6 -68
- package/dist/src/backend/services/chat-message-handlers.service.js.map +1 -1
- package/dist/src/backend/services/chat-transport-adapter.service.d.ts +2 -0
- package/dist/src/backend/services/chat-transport-adapter.service.d.ts.map +1 -1
- package/dist/src/backend/services/chat-transport-adapter.service.js +32 -1
- package/dist/src/backend/services/chat-transport-adapter.service.js.map +1 -1
- package/dist/src/backend/services/chat-transport-adapter.service.test.js +14 -0
- package/dist/src/backend/services/chat-transport-adapter.service.test.js.map +1 -1
- package/dist/src/backend/services/data-backup.service.d.ts +3 -144
- package/dist/src/backend/services/data-backup.service.d.ts.map +1 -1
- package/dist/src/backend/services/data-backup.service.js +119 -115
- package/dist/src/backend/services/data-backup.service.js.map +1 -1
- package/dist/src/backend/services/data-backup.service.test.d.ts +2 -0
- package/dist/src/backend/services/data-backup.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/data-backup.service.test.js +602 -0
- package/dist/src/backend/services/data-backup.service.test.js.map +1 -0
- package/dist/src/backend/services/file-lock.service.d.ts.map +1 -1
- package/dist/src/backend/services/file-lock.service.js +3 -5
- package/dist/src/backend/services/file-lock.service.js.map +1 -1
- package/dist/src/backend/services/file-lock.service.test.js +55 -0
- package/dist/src/backend/services/file-lock.service.test.js.map +1 -1
- package/dist/src/backend/services/github-cli.service.d.ts.map +1 -1
- package/dist/src/backend/services/github-cli.service.js +118 -19
- package/dist/src/backend/services/github-cli.service.js.map +1 -1
- package/dist/src/backend/services/github-cli.service.test.js +126 -0
- package/dist/src/backend/services/github-cli.service.test.js.map +1 -1
- package/dist/src/backend/services/index.d.ts +1 -0
- package/dist/src/backend/services/index.d.ts.map +1 -1
- package/dist/src/backend/services/index.js +1 -0
- package/dist/src/backend/services/index.js.map +1 -1
- package/dist/src/backend/services/message-state-machine.d.ts.map +1 -1
- package/dist/src/backend/services/message-state-machine.js +11 -5
- package/dist/src/backend/services/message-state-machine.js.map +1 -1
- package/dist/src/backend/services/message-state.service.d.ts +16 -18
- package/dist/src/backend/services/message-state.service.d.ts.map +1 -1
- package/dist/src/backend/services/message-state.service.js +8 -14
- package/dist/src/backend/services/message-state.service.js.map +1 -1
- package/dist/src/backend/services/message-state.service.test.js +36 -45
- package/dist/src/backend/services/message-state.service.test.js.map +1 -1
- package/dist/src/backend/services/pr-snapshot.service.d.ts +9 -1
- package/dist/src/backend/services/pr-snapshot.service.d.ts.map +1 -1
- package/dist/src/backend/services/pr-snapshot.service.js +53 -3
- package/dist/src/backend/services/pr-snapshot.service.js.map +1 -1
- package/dist/src/backend/services/pr-snapshot.service.test.js +102 -47
- package/dist/src/backend/services/pr-snapshot.service.test.js.map +1 -1
- package/dist/src/backend/services/ratchet.service.d.ts +14 -71
- package/dist/src/backend/services/ratchet.service.d.ts.map +1 -1
- package/dist/src/backend/services/ratchet.service.js +198 -439
- package/dist/src/backend/services/ratchet.service.js.map +1 -1
- package/dist/src/backend/services/ratchet.service.test.js +210 -358
- package/dist/src/backend/services/ratchet.service.test.js.map +1 -1
- package/dist/src/backend/services/run-script-state-machine.service.d.ts +27 -0
- package/dist/src/backend/services/run-script-state-machine.service.d.ts.map +1 -0
- package/dist/src/backend/services/run-script-state-machine.service.js +149 -0
- package/dist/src/backend/services/run-script-state-machine.service.js.map +1 -0
- package/dist/src/backend/services/run-script-state-machine.service.test.d.ts +2 -0
- package/dist/src/backend/services/run-script-state-machine.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/run-script-state-machine.service.test.js +453 -0
- package/dist/src/backend/services/run-script-state-machine.service.test.js.map +1 -0
- package/dist/src/backend/services/run-script.service.d.ts +0 -7
- package/dist/src/backend/services/run-script.service.d.ts.map +1 -1
- package/dist/src/backend/services/run-script.service.js +145 -76
- package/dist/src/backend/services/run-script.service.js.map +1 -1
- package/dist/src/backend/services/scheduler.service.d.ts.map +1 -1
- package/dist/src/backend/services/scheduler.service.js +16 -7
- package/dist/src/backend/services/scheduler.service.js.map +1 -1
- package/dist/src/backend/services/scheduler.service.test.js +41 -5
- package/dist/src/backend/services/scheduler.service.test.js.map +1 -1
- package/dist/src/backend/services/session-runtime-store.service.d.ts +38 -0
- package/dist/src/backend/services/session-runtime-store.service.d.ts.map +1 -0
- package/dist/src/backend/services/session-runtime-store.service.js +111 -0
- package/dist/src/backend/services/session-runtime-store.service.js.map +1 -0
- package/dist/src/backend/services/session-runtime-store.service.test.d.ts +2 -0
- package/dist/src/backend/services/session-runtime-store.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/session-runtime-store.service.test.js +15 -0
- package/dist/src/backend/services/session-runtime-store.service.test.js.map +1 -0
- package/dist/src/backend/services/session.repository.d.ts +2 -0
- package/dist/src/backend/services/session.repository.d.ts.map +1 -1
- package/dist/src/backend/services/session.repository.js +3 -0
- package/dist/src/backend/services/session.repository.js.map +1 -1
- package/dist/src/backend/services/session.service.d.ts +0 -1
- package/dist/src/backend/services/session.service.d.ts.map +1 -1
- package/dist/src/backend/services/session.service.js +18 -23
- package/dist/src/backend/services/session.service.js.map +1 -1
- package/dist/src/backend/services/session.service.test.js +210 -12
- package/dist/src/backend/services/session.service.test.js.map +1 -1
- package/dist/src/backend/services/workspace-creation.service.test.js +0 -2
- package/dist/src/backend/services/workspace-creation.service.test.js.map +1 -1
- package/dist/src/backend/services/workspace-flow-state.service.d.ts.map +1 -1
- package/dist/src/backend/services/workspace-flow-state.service.js +0 -1
- package/dist/src/backend/services/workspace-flow-state.service.js.map +1 -1
- package/dist/src/backend/services/workspace-query.service.d.ts +1 -0
- package/dist/src/backend/services/workspace-query.service.d.ts.map +1 -1
- package/dist/src/backend/services/workspace-query.service.js +8 -0
- package/dist/src/backend/services/workspace-query.service.js.map +1 -1
- package/dist/src/backend/services/worktree-lifecycle.service.d.ts.map +1 -1
- package/dist/src/backend/services/worktree-lifecycle.service.js +139 -19
- package/dist/src/backend/services/worktree-lifecycle.service.js.map +1 -1
- package/dist/src/backend/services/worktree-lifecycle.service.test.js +48 -1
- package/dist/src/backend/services/worktree-lifecycle.service.test.js.map +1 -1
- package/dist/src/backend/trpc/admin.trpc.d.ts +130 -7
- package/dist/src/backend/trpc/admin.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/admin.trpc.js +2 -1
- package/dist/src/backend/trpc/admin.trpc.js.map +1 -1
- package/dist/src/backend/trpc/github.trpc.d.ts +14 -0
- package/dist/src/backend/trpc/github.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/github.trpc.js +28 -0
- package/dist/src/backend/trpc/github.trpc.js.map +1 -1
- package/dist/src/backend/trpc/index.d.ts +149 -20
- package/dist/src/backend/trpc/index.d.ts.map +1 -1
- package/dist/src/backend/trpc/session.trpc.d.ts +3 -3
- package/dist/src/backend/trpc/user-settings.trpc.d.ts +0 -3
- package/dist/src/backend/trpc/user-settings.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/user-settings.trpc.js +0 -1
- package/dist/src/backend/trpc/user-settings.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/run-script.trpc.d.ts +0 -7
- package/dist/src/backend/trpc/workspace/run-script.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace.trpc.d.ts +2 -7
- package/dist/src/backend/trpc/workspace.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace.trpc.js +13 -1
- package/dist/src/backend/trpc/workspace.trpc.js.map +1 -1
- package/dist/src/shared/ci-status.d.ts +9 -0
- package/dist/src/shared/ci-status.d.ts.map +1 -0
- package/dist/src/shared/ci-status.js +44 -0
- package/dist/src/shared/ci-status.js.map +1 -0
- package/dist/src/shared/claude/index.d.ts +1 -0
- package/dist/src/shared/claude/index.d.ts.map +1 -1
- package/dist/src/shared/claude/index.js +1 -0
- package/dist/src/shared/claude/index.js.map +1 -1
- package/dist/src/shared/claude/protocol.d.ts +6 -3
- package/dist/src/shared/claude/protocol.d.ts.map +1 -1
- package/dist/src/shared/claude/protocol.js.map +1 -1
- package/dist/src/shared/schemas/export-data.schema.d.ts +865 -0
- package/dist/src/shared/schemas/export-data.schema.d.ts.map +1 -0
- package/dist/src/shared/schemas/export-data.schema.js +167 -0
- package/dist/src/shared/schemas/export-data.schema.js.map +1 -0
- package/dist/src/shared/schemas/persisted-stores.schema.d.ts +19 -0
- package/dist/src/shared/schemas/persisted-stores.schema.d.ts.map +1 -0
- package/dist/src/shared/schemas/persisted-stores.schema.js +17 -0
- package/dist/src/shared/schemas/persisted-stores.schema.js.map +1 -0
- package/dist/src/shared/session-runtime.d.ts +17 -0
- package/dist/src/shared/session-runtime.d.ts.map +1 -0
- package/dist/src/shared/session-runtime.js +9 -0
- package/dist/src/shared/session-runtime.js.map +1 -0
- package/dist/src/shared/websocket/chat-message.schema.d.ts +24 -11
- package/dist/src/shared/websocket/chat-message.schema.d.ts.map +1 -1
- package/dist/src/shared/websocket/chat-message.schema.js +4 -1
- package/dist/src/shared/websocket/chat-message.schema.js.map +1 -1
- package/dist/src/shared/websocket/index.d.ts +1 -1
- package/dist/src/shared/websocket/index.d.ts.map +1 -1
- package/dist/src/shared/websocket/index.js.map +1 -1
- package/dist/src/shared/workspace-sidebar-status.d.ts +20 -0
- package/dist/src/shared/workspace-sidebar-status.d.ts.map +1 -0
- package/dist/src/shared/workspace-sidebar-status.js +73 -0
- package/dist/src/shared/workspace-sidebar-status.js.map +1 -0
- package/dist/tsconfig.backend.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/prisma/migrations/20260206170000_remove_merge_conflict_state/migration.sql +7 -0
- package/prisma/migrations/20260206174726_remove_ratchet_auto_fix_conflicts/migration.sql +33 -0
- package/prisma/schema.prisma +0 -2
- package/prompts/ratchet/dispatch.md +31 -0
- package/prompts/workflows/ratchet.md +22 -36
- package/dist/client/assets/channel-DWeb1p1N.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-DkYgN_SG.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-DkYgN_SG.js +0 -1
- package/dist/client/assets/clone-WKF0ejf5.js +0 -1
- package/dist/client/assets/index-DCpIgwSv.css +0 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BFf_HK07.js +0 -1
|
@@ -0,0 +1,602 @@
|
|
|
1
|
+
import { CIStatus, KanbanColumn, PRState, RatchetState, RunScriptStatus, WorkspaceCreationSource, WorkspaceStatus, } from '../../../prisma/generated/client.js';
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
3
|
+
const mockTx = vi.hoisted(() => ({
|
|
4
|
+
project: {
|
|
5
|
+
findUnique: vi.fn(),
|
|
6
|
+
create: vi.fn(),
|
|
7
|
+
},
|
|
8
|
+
workspace: {
|
|
9
|
+
findUnique: vi.fn(),
|
|
10
|
+
create: vi.fn(),
|
|
11
|
+
},
|
|
12
|
+
claudeSession: {
|
|
13
|
+
findUnique: vi.fn(),
|
|
14
|
+
create: vi.fn(),
|
|
15
|
+
},
|
|
16
|
+
terminalSession: {
|
|
17
|
+
findUnique: vi.fn(),
|
|
18
|
+
create: vi.fn(),
|
|
19
|
+
},
|
|
20
|
+
userSettings: {
|
|
21
|
+
findFirst: vi.fn(),
|
|
22
|
+
create: vi.fn(),
|
|
23
|
+
},
|
|
24
|
+
}));
|
|
25
|
+
vi.mock('../db', () => ({
|
|
26
|
+
prisma: {
|
|
27
|
+
project: {
|
|
28
|
+
findMany: vi.fn(),
|
|
29
|
+
findUnique: vi.fn(),
|
|
30
|
+
create: vi.fn(),
|
|
31
|
+
},
|
|
32
|
+
workspace: {
|
|
33
|
+
findMany: vi.fn(),
|
|
34
|
+
findUnique: vi.fn(),
|
|
35
|
+
create: vi.fn(),
|
|
36
|
+
},
|
|
37
|
+
claudeSession: {
|
|
38
|
+
findMany: vi.fn(),
|
|
39
|
+
findUnique: vi.fn(),
|
|
40
|
+
create: vi.fn(),
|
|
41
|
+
},
|
|
42
|
+
terminalSession: {
|
|
43
|
+
findMany: vi.fn(),
|
|
44
|
+
findUnique: vi.fn(),
|
|
45
|
+
create: vi.fn(),
|
|
46
|
+
},
|
|
47
|
+
userSettings: {
|
|
48
|
+
findFirst: vi.fn(),
|
|
49
|
+
create: vi.fn(),
|
|
50
|
+
},
|
|
51
|
+
$transaction: vi.fn((callback) => callback(mockTx)),
|
|
52
|
+
},
|
|
53
|
+
}));
|
|
54
|
+
import { prisma } from '../db.js';
|
|
55
|
+
import { dataBackupService, exportDataSchema } from './data-backup.service.js';
|
|
56
|
+
describe('DataBackupService', () => {
|
|
57
|
+
const mockProject = {
|
|
58
|
+
id: 'proj-1',
|
|
59
|
+
name: 'Test Project',
|
|
60
|
+
slug: 'test-project',
|
|
61
|
+
repoPath: '/path/to/repo',
|
|
62
|
+
worktreeBasePath: '/path/to/worktrees',
|
|
63
|
+
defaultBranch: 'main',
|
|
64
|
+
githubOwner: 'test-owner',
|
|
65
|
+
githubRepo: 'test-repo',
|
|
66
|
+
isArchived: false,
|
|
67
|
+
startupScriptCommand: 'npm install',
|
|
68
|
+
startupScriptPath: null,
|
|
69
|
+
startupScriptTimeout: 300,
|
|
70
|
+
createdAt: new Date('2025-01-01T00:00:00.000Z'),
|
|
71
|
+
updatedAt: new Date('2025-01-01T00:00:00.000Z'),
|
|
72
|
+
};
|
|
73
|
+
const mockWorkspaceV2 = {
|
|
74
|
+
id: 'ws-1',
|
|
75
|
+
projectId: 'proj-1',
|
|
76
|
+
name: 'Test Workspace',
|
|
77
|
+
description: 'Test description',
|
|
78
|
+
status: WorkspaceStatus.READY,
|
|
79
|
+
worktreePath: '/path/to/worktree',
|
|
80
|
+
branchName: 'feature/test',
|
|
81
|
+
isAutoGeneratedBranch: true,
|
|
82
|
+
creationSource: WorkspaceCreationSource.GITHUB_ISSUE,
|
|
83
|
+
creationMetadata: { issueNumber: 123 },
|
|
84
|
+
initErrorMessage: null,
|
|
85
|
+
initOutput: 'Init output',
|
|
86
|
+
initStartedAt: new Date('2025-01-01T00:00:00.000Z'),
|
|
87
|
+
initCompletedAt: new Date('2025-01-01T00:05:00.000Z'),
|
|
88
|
+
initRetryCount: 0,
|
|
89
|
+
runScriptCommand: 'npm run dev',
|
|
90
|
+
runScriptCleanupCommand: 'npm run cleanup',
|
|
91
|
+
runScriptPid: 12_345,
|
|
92
|
+
runScriptPort: 3000,
|
|
93
|
+
runScriptStartedAt: new Date('2025-01-01T00:10:00.000Z'),
|
|
94
|
+
runScriptStatus: RunScriptStatus.RUNNING,
|
|
95
|
+
prUrl: 'https://github.com/test/repo/pull/1',
|
|
96
|
+
githubIssueNumber: 123,
|
|
97
|
+
githubIssueUrl: 'https://github.com/test/repo/issues/123',
|
|
98
|
+
prNumber: 1,
|
|
99
|
+
prState: PRState.OPEN,
|
|
100
|
+
prReviewState: 'APPROVED',
|
|
101
|
+
prCiStatus: CIStatus.SUCCESS,
|
|
102
|
+
prUpdatedAt: new Date('2025-01-01T00:15:00.000Z'),
|
|
103
|
+
prCiFailedAt: null,
|
|
104
|
+
prCiLastNotifiedAt: null,
|
|
105
|
+
prReviewLastCheckedAt: new Date('2025-01-01T00:20:00.000Z'),
|
|
106
|
+
prReviewLastCommentId: 'comment-123',
|
|
107
|
+
ratchetEnabled: true,
|
|
108
|
+
ratchetState: RatchetState.READY,
|
|
109
|
+
ratchetLastCheckedAt: new Date('2025-01-01T00:25:00.000Z'),
|
|
110
|
+
ratchetLastPushAt: new Date('2025-01-01T00:30:00.000Z'),
|
|
111
|
+
ratchetActiveSessionId: 'session-123',
|
|
112
|
+
ratchetLastCiRunId: 'run-123',
|
|
113
|
+
ratchetLastNotifiedState: RatchetState.CI_RUNNING,
|
|
114
|
+
hasHadSessions: true,
|
|
115
|
+
cachedKanbanColumn: KanbanColumn.WORKING,
|
|
116
|
+
stateComputedAt: new Date('2025-01-01T00:35:00.000Z'),
|
|
117
|
+
createdAt: new Date('2025-01-01T00:00:00.000Z'),
|
|
118
|
+
updatedAt: new Date('2025-01-01T00:35:00.000Z'),
|
|
119
|
+
};
|
|
120
|
+
const mockUserSettingsV2 = {
|
|
121
|
+
id: 'settings-1',
|
|
122
|
+
userId: 'default',
|
|
123
|
+
preferredIde: 'cursor',
|
|
124
|
+
customIdeCommand: null,
|
|
125
|
+
playSoundOnComplete: true,
|
|
126
|
+
notificationSoundPath: '/path/to/sound.mp3',
|
|
127
|
+
workspaceOrder: { 'proj-1': ['ws-1', 'ws-2'] },
|
|
128
|
+
cachedSlashCommands: { commands: [] },
|
|
129
|
+
ratchetEnabled: true,
|
|
130
|
+
ratchetAutoFixCi: true,
|
|
131
|
+
ratchetAutoFixReviews: false,
|
|
132
|
+
ratchetAutoMerge: false,
|
|
133
|
+
ratchetAllowedReviewers: ['user1', 'user2'],
|
|
134
|
+
createdAt: new Date('2025-01-01T00:00:00.000Z'),
|
|
135
|
+
updatedAt: new Date('2025-01-01T00:00:00.000Z'),
|
|
136
|
+
};
|
|
137
|
+
beforeEach(() => {
|
|
138
|
+
vi.clearAllMocks();
|
|
139
|
+
});
|
|
140
|
+
describe('exportData', () => {
|
|
141
|
+
it('should export data in v2 format with all fields', async () => {
|
|
142
|
+
vi.mocked(prisma.project.findMany).mockResolvedValue([mockProject]);
|
|
143
|
+
vi.mocked(prisma.workspace.findMany).mockResolvedValue([mockWorkspaceV2]);
|
|
144
|
+
vi.mocked(prisma.claudeSession.findMany).mockResolvedValue([]);
|
|
145
|
+
vi.mocked(prisma.terminalSession.findMany).mockResolvedValue([]);
|
|
146
|
+
vi.mocked(prisma.userSettings.findFirst).mockResolvedValue(mockUserSettingsV2);
|
|
147
|
+
const result = await dataBackupService.exportData('1.0.0');
|
|
148
|
+
expect(result.meta.schemaVersion).toBe(2);
|
|
149
|
+
expect(result.meta.version).toBe('1.0.0');
|
|
150
|
+
expect(result.data.projects).toHaveLength(1);
|
|
151
|
+
expect(result.data.workspaces).toHaveLength(1);
|
|
152
|
+
const exportedWorkspace = result.data.workspaces[0];
|
|
153
|
+
expect(exportedWorkspace).toBeDefined();
|
|
154
|
+
expect(exportedWorkspace?.ratchetEnabled).toBe(true);
|
|
155
|
+
expect(exportedWorkspace?.ratchetState).toBe(RatchetState.READY);
|
|
156
|
+
expect(exportedWorkspace?.ratchetLastCheckedAt).toBe('2025-01-01T00:25:00.000Z');
|
|
157
|
+
expect(exportedWorkspace?.ratchetActiveSessionId).toBe('session-123');
|
|
158
|
+
expect(exportedWorkspace?.ratchetLastCiRunId).toBe('run-123');
|
|
159
|
+
expect(exportedWorkspace?.prReviewLastCheckedAt).toBe('2025-01-01T00:20:00.000Z');
|
|
160
|
+
expect(exportedWorkspace?.prReviewLastCommentId).toBe('comment-123');
|
|
161
|
+
const exportedSettings = result.data.userSettings;
|
|
162
|
+
expect(exportedSettings).not.toBeNull();
|
|
163
|
+
expect(exportedSettings?.ratchetEnabled).toBe(true);
|
|
164
|
+
expect(exportedSettings?.ratchetAutoFixCi).toBe(true);
|
|
165
|
+
expect(exportedSettings?.ratchetAutoFixReviews).toBe(false);
|
|
166
|
+
expect(exportedSettings?.ratchetAutoMerge).toBe(false);
|
|
167
|
+
expect(exportedSettings?.ratchetAllowedReviewers).toEqual(['user1', 'user2']);
|
|
168
|
+
expect('workspaceOrder' in (exportedSettings ?? {})).toBe(false);
|
|
169
|
+
expect('cachedSlashCommands' in (exportedSettings ?? {})).toBe(false);
|
|
170
|
+
});
|
|
171
|
+
it('should handle null user settings', async () => {
|
|
172
|
+
vi.mocked(prisma.project.findMany).mockResolvedValue([]);
|
|
173
|
+
vi.mocked(prisma.workspace.findMany).mockResolvedValue([]);
|
|
174
|
+
vi.mocked(prisma.claudeSession.findMany).mockResolvedValue([]);
|
|
175
|
+
vi.mocked(prisma.terminalSession.findMany).mockResolvedValue([]);
|
|
176
|
+
vi.mocked(prisma.userSettings.findFirst).mockResolvedValue(null);
|
|
177
|
+
const result = await dataBackupService.exportData('1.0.0');
|
|
178
|
+
expect(result.data.userSettings).toBeNull();
|
|
179
|
+
});
|
|
180
|
+
it('should export valid v2 schema', async () => {
|
|
181
|
+
vi.mocked(prisma.project.findMany).mockResolvedValue([mockProject]);
|
|
182
|
+
vi.mocked(prisma.workspace.findMany).mockResolvedValue([mockWorkspaceV2]);
|
|
183
|
+
vi.mocked(prisma.claudeSession.findMany).mockResolvedValue([]);
|
|
184
|
+
vi.mocked(prisma.terminalSession.findMany).mockResolvedValue([]);
|
|
185
|
+
vi.mocked(prisma.userSettings.findFirst).mockResolvedValue(mockUserSettingsV2);
|
|
186
|
+
const result = await dataBackupService.exportData('1.0.0');
|
|
187
|
+
const parseResult = exportDataSchema.safeParse(result);
|
|
188
|
+
expect(parseResult.success).toBe(true);
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
describe('importData - v2 round-trip', () => {
|
|
192
|
+
it('should import v2 data without loss', async () => {
|
|
193
|
+
const exportedData = {
|
|
194
|
+
meta: {
|
|
195
|
+
exportedAt: '2025-01-01T00:00:00.000Z',
|
|
196
|
+
version: '1.0.0',
|
|
197
|
+
schemaVersion: 2,
|
|
198
|
+
},
|
|
199
|
+
data: {
|
|
200
|
+
projects: [
|
|
201
|
+
{
|
|
202
|
+
id: 'proj-1',
|
|
203
|
+
name: 'Test Project',
|
|
204
|
+
slug: 'test-project',
|
|
205
|
+
repoPath: '/path/to/repo',
|
|
206
|
+
worktreeBasePath: '/path/to/worktrees',
|
|
207
|
+
defaultBranch: 'main',
|
|
208
|
+
githubOwner: 'test-owner',
|
|
209
|
+
githubRepo: 'test-repo',
|
|
210
|
+
isArchived: false,
|
|
211
|
+
startupScriptCommand: 'npm install',
|
|
212
|
+
startupScriptPath: null,
|
|
213
|
+
startupScriptTimeout: 300,
|
|
214
|
+
createdAt: '2025-01-01T00:00:00.000Z',
|
|
215
|
+
updatedAt: '2025-01-01T00:00:00.000Z',
|
|
216
|
+
},
|
|
217
|
+
],
|
|
218
|
+
workspaces: [
|
|
219
|
+
{
|
|
220
|
+
id: 'ws-1',
|
|
221
|
+
projectId: 'proj-1',
|
|
222
|
+
name: 'Test Workspace',
|
|
223
|
+
description: 'Test description',
|
|
224
|
+
status: WorkspaceStatus.READY,
|
|
225
|
+
worktreePath: '/path/to/worktree',
|
|
226
|
+
branchName: 'feature/test',
|
|
227
|
+
isAutoGeneratedBranch: true,
|
|
228
|
+
creationSource: WorkspaceCreationSource.GITHUB_ISSUE,
|
|
229
|
+
creationMetadata: { issueNumber: 123 },
|
|
230
|
+
initErrorMessage: null,
|
|
231
|
+
initOutput: 'Init output',
|
|
232
|
+
initStartedAt: '2025-01-01T00:00:00.000Z',
|
|
233
|
+
initCompletedAt: '2025-01-01T00:05:00.000Z',
|
|
234
|
+
initRetryCount: 0,
|
|
235
|
+
runScriptCommand: 'npm run dev',
|
|
236
|
+
runScriptCleanupCommand: 'npm run cleanup',
|
|
237
|
+
runScriptPid: 12_345,
|
|
238
|
+
runScriptPort: 3000,
|
|
239
|
+
runScriptStartedAt: '2025-01-01T00:10:00.000Z',
|
|
240
|
+
runScriptStatus: RunScriptStatus.RUNNING,
|
|
241
|
+
prUrl: 'https://github.com/test/repo/pull/1',
|
|
242
|
+
githubIssueNumber: 123,
|
|
243
|
+
githubIssueUrl: 'https://github.com/test/repo/issues/123',
|
|
244
|
+
prNumber: 1,
|
|
245
|
+
prState: PRState.OPEN,
|
|
246
|
+
prReviewState: 'APPROVED',
|
|
247
|
+
prCiStatus: CIStatus.SUCCESS,
|
|
248
|
+
prUpdatedAt: '2025-01-01T00:15:00.000Z',
|
|
249
|
+
prCiFailedAt: null,
|
|
250
|
+
prCiLastNotifiedAt: null,
|
|
251
|
+
prReviewLastCheckedAt: '2025-01-01T00:20:00.000Z',
|
|
252
|
+
prReviewLastCommentId: 'comment-123',
|
|
253
|
+
ratchetEnabled: true,
|
|
254
|
+
ratchetState: RatchetState.READY,
|
|
255
|
+
ratchetLastCheckedAt: '2025-01-01T00:25:00.000Z',
|
|
256
|
+
ratchetLastPushAt: '2025-01-01T00:30:00.000Z',
|
|
257
|
+
ratchetActiveSessionId: 'session-123',
|
|
258
|
+
ratchetLastCiRunId: 'run-123',
|
|
259
|
+
ratchetLastNotifiedState: RatchetState.CI_RUNNING,
|
|
260
|
+
hasHadSessions: true,
|
|
261
|
+
cachedKanbanColumn: KanbanColumn.WORKING,
|
|
262
|
+
stateComputedAt: '2025-01-01T00:35:00.000Z',
|
|
263
|
+
createdAt: '2025-01-01T00:00:00.000Z',
|
|
264
|
+
updatedAt: '2025-01-01T00:35:00.000Z',
|
|
265
|
+
},
|
|
266
|
+
],
|
|
267
|
+
claudeSessions: [],
|
|
268
|
+
terminalSessions: [],
|
|
269
|
+
userSettings: {
|
|
270
|
+
preferredIde: 'cursor',
|
|
271
|
+
customIdeCommand: null,
|
|
272
|
+
playSoundOnComplete: true,
|
|
273
|
+
notificationSoundPath: '/path/to/sound.mp3',
|
|
274
|
+
ratchetEnabled: true,
|
|
275
|
+
ratchetAutoFixCi: true,
|
|
276
|
+
ratchetAutoFixReviews: false,
|
|
277
|
+
ratchetAutoMerge: false,
|
|
278
|
+
ratchetAllowedReviewers: ['user1', 'user2'],
|
|
279
|
+
},
|
|
280
|
+
},
|
|
281
|
+
};
|
|
282
|
+
vi.mocked(mockTx.project.findUnique)
|
|
283
|
+
.mockResolvedValueOnce(null)
|
|
284
|
+
.mockResolvedValueOnce(null)
|
|
285
|
+
.mockResolvedValue(mockProject);
|
|
286
|
+
vi.mocked(mockTx.project.create).mockResolvedValue(mockProject);
|
|
287
|
+
vi.mocked(mockTx.workspace.findUnique).mockResolvedValue(null);
|
|
288
|
+
vi.mocked(mockTx.workspace.create).mockResolvedValue(mockWorkspaceV2);
|
|
289
|
+
vi.mocked(mockTx.userSettings.findFirst).mockResolvedValue(null);
|
|
290
|
+
vi.mocked(mockTx.userSettings.create).mockResolvedValue(mockUserSettingsV2);
|
|
291
|
+
const result = await dataBackupService.importData(exportedData);
|
|
292
|
+
expect(result.projects.imported).toBe(1);
|
|
293
|
+
expect(result.workspaces.imported).toBe(1);
|
|
294
|
+
expect(result.userSettings.imported).toBe(true);
|
|
295
|
+
expect(mockTx.workspace.create).toHaveBeenCalledWith({
|
|
296
|
+
data: expect.objectContaining({
|
|
297
|
+
ratchetEnabled: true,
|
|
298
|
+
ratchetState: RatchetState.READY,
|
|
299
|
+
ratchetActiveSessionId: 'session-123',
|
|
300
|
+
ratchetLastCiRunId: 'run-123',
|
|
301
|
+
prReviewLastCommentId: 'comment-123',
|
|
302
|
+
}),
|
|
303
|
+
});
|
|
304
|
+
expect(mockTx.userSettings.create).toHaveBeenCalledWith({
|
|
305
|
+
data: expect.objectContaining({
|
|
306
|
+
ratchetEnabled: true,
|
|
307
|
+
ratchetAutoFixCi: true,
|
|
308
|
+
ratchetAutoFixReviews: false,
|
|
309
|
+
ratchetAutoMerge: false,
|
|
310
|
+
}),
|
|
311
|
+
});
|
|
312
|
+
});
|
|
313
|
+
});
|
|
314
|
+
describe('importData - v1 compatibility', () => {
|
|
315
|
+
it('should import v1 data with migration to v2 defaults', async () => {
|
|
316
|
+
const v1Data = {
|
|
317
|
+
meta: {
|
|
318
|
+
exportedAt: '2024-12-01T00:00:00.000Z',
|
|
319
|
+
version: '0.9.0',
|
|
320
|
+
schemaVersion: 1,
|
|
321
|
+
},
|
|
322
|
+
data: {
|
|
323
|
+
projects: [
|
|
324
|
+
{
|
|
325
|
+
id: 'proj-1',
|
|
326
|
+
name: 'Test Project',
|
|
327
|
+
slug: 'test-project',
|
|
328
|
+
repoPath: '/path/to/repo',
|
|
329
|
+
worktreeBasePath: '/path/to/worktrees',
|
|
330
|
+
defaultBranch: 'main',
|
|
331
|
+
githubOwner: null,
|
|
332
|
+
githubRepo: null,
|
|
333
|
+
isArchived: false,
|
|
334
|
+
startupScriptCommand: null,
|
|
335
|
+
startupScriptPath: null,
|
|
336
|
+
startupScriptTimeout: 300,
|
|
337
|
+
createdAt: '2024-12-01T00:00:00.000Z',
|
|
338
|
+
updatedAt: '2024-12-01T00:00:00.000Z',
|
|
339
|
+
},
|
|
340
|
+
],
|
|
341
|
+
workspaces: [
|
|
342
|
+
{
|
|
343
|
+
id: 'ws-1',
|
|
344
|
+
projectId: 'proj-1',
|
|
345
|
+
name: 'Old Workspace',
|
|
346
|
+
description: null,
|
|
347
|
+
status: WorkspaceStatus.READY,
|
|
348
|
+
worktreePath: '/path/to/worktree',
|
|
349
|
+
branchName: 'main',
|
|
350
|
+
initErrorMessage: null,
|
|
351
|
+
initOutput: null,
|
|
352
|
+
initStartedAt: null,
|
|
353
|
+
initCompletedAt: null,
|
|
354
|
+
initRetryCount: 0,
|
|
355
|
+
runScriptCommand: null,
|
|
356
|
+
runScriptCleanupCommand: null,
|
|
357
|
+
runScriptPid: null,
|
|
358
|
+
runScriptPort: null,
|
|
359
|
+
runScriptStartedAt: null,
|
|
360
|
+
runScriptStatus: RunScriptStatus.IDLE,
|
|
361
|
+
prUrl: null,
|
|
362
|
+
githubIssueNumber: null,
|
|
363
|
+
githubIssueUrl: null,
|
|
364
|
+
prNumber: null,
|
|
365
|
+
prState: PRState.NONE,
|
|
366
|
+
prReviewState: null,
|
|
367
|
+
prCiStatus: CIStatus.UNKNOWN,
|
|
368
|
+
prUpdatedAt: null,
|
|
369
|
+
prCiFailedAt: null,
|
|
370
|
+
prCiLastNotifiedAt: null,
|
|
371
|
+
hasHadSessions: false,
|
|
372
|
+
cachedKanbanColumn: KanbanColumn.WAITING,
|
|
373
|
+
stateComputedAt: null,
|
|
374
|
+
createdAt: '2024-12-01T00:00:00.000Z',
|
|
375
|
+
updatedAt: '2024-12-01T00:00:00.000Z',
|
|
376
|
+
},
|
|
377
|
+
],
|
|
378
|
+
claudeSessions: [],
|
|
379
|
+
terminalSessions: [],
|
|
380
|
+
userSettings: {
|
|
381
|
+
preferredIde: 'cursor',
|
|
382
|
+
customIdeCommand: null,
|
|
383
|
+
playSoundOnComplete: true,
|
|
384
|
+
notificationSoundPath: null,
|
|
385
|
+
},
|
|
386
|
+
},
|
|
387
|
+
};
|
|
388
|
+
vi.mocked(mockTx.project.findUnique)
|
|
389
|
+
.mockResolvedValueOnce(null)
|
|
390
|
+
.mockResolvedValueOnce(null)
|
|
391
|
+
.mockResolvedValue(mockProject);
|
|
392
|
+
vi.mocked(mockTx.project.create).mockResolvedValue(mockProject);
|
|
393
|
+
vi.mocked(mockTx.workspace.findUnique).mockResolvedValue(null);
|
|
394
|
+
vi.mocked(mockTx.workspace.create).mockResolvedValue(mockWorkspaceV2);
|
|
395
|
+
vi.mocked(mockTx.userSettings.findFirst).mockResolvedValue(null);
|
|
396
|
+
vi.mocked(mockTx.userSettings.create).mockResolvedValue(mockUserSettingsV2);
|
|
397
|
+
const result = await dataBackupService.importData(v1Data);
|
|
398
|
+
expect(result.projects.imported).toBe(1);
|
|
399
|
+
expect(result.workspaces.imported).toBe(1);
|
|
400
|
+
expect(result.userSettings.imported).toBe(true);
|
|
401
|
+
expect(mockTx.workspace.create).toHaveBeenCalledWith({
|
|
402
|
+
data: expect.objectContaining({
|
|
403
|
+
id: 'ws-1',
|
|
404
|
+
name: 'Old Workspace',
|
|
405
|
+
isAutoGeneratedBranch: false,
|
|
406
|
+
creationSource: WorkspaceCreationSource.MANUAL,
|
|
407
|
+
creationMetadata: undefined,
|
|
408
|
+
ratchetEnabled: true,
|
|
409
|
+
ratchetState: RatchetState.IDLE,
|
|
410
|
+
ratchetLastCheckedAt: null,
|
|
411
|
+
ratchetLastPushAt: null,
|
|
412
|
+
ratchetActiveSessionId: null,
|
|
413
|
+
ratchetLastCiRunId: null,
|
|
414
|
+
ratchetLastNotifiedState: null,
|
|
415
|
+
prReviewLastCheckedAt: null,
|
|
416
|
+
prReviewLastCommentId: null,
|
|
417
|
+
}),
|
|
418
|
+
});
|
|
419
|
+
expect(mockTx.userSettings.create).toHaveBeenCalledWith({
|
|
420
|
+
data: expect.objectContaining({
|
|
421
|
+
preferredIde: 'cursor',
|
|
422
|
+
ratchetEnabled: false,
|
|
423
|
+
ratchetAutoFixCi: true,
|
|
424
|
+
ratchetAutoFixReviews: true,
|
|
425
|
+
ratchetAutoMerge: false,
|
|
426
|
+
}),
|
|
427
|
+
});
|
|
428
|
+
});
|
|
429
|
+
it('should handle v1 PAUSED runScriptStatus migration', async () => {
|
|
430
|
+
const v1Data = {
|
|
431
|
+
meta: {
|
|
432
|
+
exportedAt: '2024-12-01T00:00:00.000Z',
|
|
433
|
+
version: '0.9.0',
|
|
434
|
+
schemaVersion: 1,
|
|
435
|
+
},
|
|
436
|
+
data: {
|
|
437
|
+
projects: [],
|
|
438
|
+
workspaces: [
|
|
439
|
+
{
|
|
440
|
+
id: 'ws-1',
|
|
441
|
+
projectId: 'proj-1',
|
|
442
|
+
name: 'Old Workspace',
|
|
443
|
+
description: null,
|
|
444
|
+
status: WorkspaceStatus.READY,
|
|
445
|
+
worktreePath: '/path',
|
|
446
|
+
branchName: 'main',
|
|
447
|
+
initErrorMessage: null,
|
|
448
|
+
initOutput: null,
|
|
449
|
+
initStartedAt: null,
|
|
450
|
+
initCompletedAt: null,
|
|
451
|
+
initRetryCount: 0,
|
|
452
|
+
runScriptCommand: null,
|
|
453
|
+
runScriptCleanupCommand: null,
|
|
454
|
+
runScriptPid: null,
|
|
455
|
+
runScriptPort: null,
|
|
456
|
+
runScriptStartedAt: null,
|
|
457
|
+
runScriptStatus: 'PAUSED',
|
|
458
|
+
prUrl: null,
|
|
459
|
+
githubIssueNumber: null,
|
|
460
|
+
githubIssueUrl: null,
|
|
461
|
+
prNumber: null,
|
|
462
|
+
prState: PRState.NONE,
|
|
463
|
+
prReviewState: null,
|
|
464
|
+
prCiStatus: CIStatus.UNKNOWN,
|
|
465
|
+
prUpdatedAt: null,
|
|
466
|
+
prCiFailedAt: null,
|
|
467
|
+
prCiLastNotifiedAt: null,
|
|
468
|
+
hasHadSessions: false,
|
|
469
|
+
cachedKanbanColumn: KanbanColumn.WAITING,
|
|
470
|
+
stateComputedAt: null,
|
|
471
|
+
createdAt: '2024-12-01T00:00:00.000Z',
|
|
472
|
+
updatedAt: '2024-12-01T00:00:00.000Z',
|
|
473
|
+
},
|
|
474
|
+
],
|
|
475
|
+
claudeSessions: [],
|
|
476
|
+
terminalSessions: [],
|
|
477
|
+
userSettings: null,
|
|
478
|
+
},
|
|
479
|
+
};
|
|
480
|
+
vi.mocked(mockTx.project.findUnique).mockResolvedValue(mockProject);
|
|
481
|
+
vi.mocked(mockTx.workspace.findUnique).mockResolvedValue(null);
|
|
482
|
+
vi.mocked(mockTx.workspace.create).mockResolvedValue(mockWorkspaceV2);
|
|
483
|
+
await dataBackupService.importData(v1Data);
|
|
484
|
+
expect(mockTx.workspace.create).toHaveBeenCalledWith({
|
|
485
|
+
data: expect.objectContaining({
|
|
486
|
+
runScriptStatus: RunScriptStatus.IDLE,
|
|
487
|
+
}),
|
|
488
|
+
});
|
|
489
|
+
});
|
|
490
|
+
});
|
|
491
|
+
describe('importData - skip existing records', () => {
|
|
492
|
+
it('should skip projects that already exist', async () => {
|
|
493
|
+
const exportedData = {
|
|
494
|
+
meta: {
|
|
495
|
+
exportedAt: '2025-01-01T00:00:00.000Z',
|
|
496
|
+
version: '1.0.0',
|
|
497
|
+
schemaVersion: 2,
|
|
498
|
+
},
|
|
499
|
+
data: {
|
|
500
|
+
projects: [
|
|
501
|
+
{
|
|
502
|
+
id: 'proj-1',
|
|
503
|
+
name: 'Test Project',
|
|
504
|
+
slug: 'test-project',
|
|
505
|
+
repoPath: '/path',
|
|
506
|
+
worktreeBasePath: '/path',
|
|
507
|
+
defaultBranch: 'main',
|
|
508
|
+
githubOwner: null,
|
|
509
|
+
githubRepo: null,
|
|
510
|
+
isArchived: false,
|
|
511
|
+
startupScriptCommand: null,
|
|
512
|
+
startupScriptPath: null,
|
|
513
|
+
startupScriptTimeout: 300,
|
|
514
|
+
createdAt: '2025-01-01T00:00:00.000Z',
|
|
515
|
+
updatedAt: '2025-01-01T00:00:00.000Z',
|
|
516
|
+
},
|
|
517
|
+
],
|
|
518
|
+
workspaces: [],
|
|
519
|
+
claudeSessions: [],
|
|
520
|
+
terminalSessions: [],
|
|
521
|
+
userSettings: null,
|
|
522
|
+
},
|
|
523
|
+
};
|
|
524
|
+
vi.mocked(mockTx.project.findUnique).mockResolvedValue(mockProject);
|
|
525
|
+
const result = await dataBackupService.importData(exportedData);
|
|
526
|
+
expect(result.projects.skipped).toBe(1);
|
|
527
|
+
expect(result.projects.imported).toBe(0);
|
|
528
|
+
expect(mockTx.project.create).not.toHaveBeenCalled();
|
|
529
|
+
});
|
|
530
|
+
it('should skip workspaces with missing projects', async () => {
|
|
531
|
+
const exportedData = {
|
|
532
|
+
meta: {
|
|
533
|
+
exportedAt: '2025-01-01T00:00:00.000Z',
|
|
534
|
+
version: '1.0.0',
|
|
535
|
+
schemaVersion: 2,
|
|
536
|
+
},
|
|
537
|
+
data: {
|
|
538
|
+
projects: [],
|
|
539
|
+
workspaces: [
|
|
540
|
+
{
|
|
541
|
+
id: 'ws-1',
|
|
542
|
+
projectId: 'missing-project',
|
|
543
|
+
name: 'Orphaned Workspace',
|
|
544
|
+
description: null,
|
|
545
|
+
status: WorkspaceStatus.NEW,
|
|
546
|
+
worktreePath: null,
|
|
547
|
+
branchName: null,
|
|
548
|
+
isAutoGeneratedBranch: false,
|
|
549
|
+
creationSource: WorkspaceCreationSource.MANUAL,
|
|
550
|
+
creationMetadata: null,
|
|
551
|
+
initErrorMessage: null,
|
|
552
|
+
initOutput: null,
|
|
553
|
+
initStartedAt: null,
|
|
554
|
+
initCompletedAt: null,
|
|
555
|
+
initRetryCount: 0,
|
|
556
|
+
runScriptCommand: null,
|
|
557
|
+
runScriptCleanupCommand: null,
|
|
558
|
+
runScriptPid: null,
|
|
559
|
+
runScriptPort: null,
|
|
560
|
+
runScriptStartedAt: null,
|
|
561
|
+
runScriptStatus: RunScriptStatus.IDLE,
|
|
562
|
+
prUrl: null,
|
|
563
|
+
githubIssueNumber: null,
|
|
564
|
+
githubIssueUrl: null,
|
|
565
|
+
prNumber: null,
|
|
566
|
+
prState: PRState.NONE,
|
|
567
|
+
prReviewState: null,
|
|
568
|
+
prCiStatus: CIStatus.UNKNOWN,
|
|
569
|
+
prUpdatedAt: null,
|
|
570
|
+
prCiFailedAt: null,
|
|
571
|
+
prCiLastNotifiedAt: null,
|
|
572
|
+
prReviewLastCheckedAt: null,
|
|
573
|
+
prReviewLastCommentId: null,
|
|
574
|
+
ratchetEnabled: true,
|
|
575
|
+
ratchetState: RatchetState.IDLE,
|
|
576
|
+
ratchetLastCheckedAt: null,
|
|
577
|
+
ratchetLastPushAt: null,
|
|
578
|
+
ratchetActiveSessionId: null,
|
|
579
|
+
ratchetLastCiRunId: null,
|
|
580
|
+
ratchetLastNotifiedState: null,
|
|
581
|
+
hasHadSessions: false,
|
|
582
|
+
cachedKanbanColumn: KanbanColumn.WAITING,
|
|
583
|
+
stateComputedAt: null,
|
|
584
|
+
createdAt: '2025-01-01T00:00:00.000Z',
|
|
585
|
+
updatedAt: '2025-01-01T00:00:00.000Z',
|
|
586
|
+
},
|
|
587
|
+
],
|
|
588
|
+
claudeSessions: [],
|
|
589
|
+
terminalSessions: [],
|
|
590
|
+
userSettings: null,
|
|
591
|
+
},
|
|
592
|
+
};
|
|
593
|
+
vi.mocked(mockTx.workspace.findUnique).mockResolvedValue(null);
|
|
594
|
+
vi.mocked(mockTx.project.findUnique).mockResolvedValue(null);
|
|
595
|
+
const result = await dataBackupService.importData(exportedData);
|
|
596
|
+
expect(result.workspaces.skipped).toBe(1);
|
|
597
|
+
expect(result.workspaces.imported).toBe(0);
|
|
598
|
+
expect(mockTx.workspace.create).not.toHaveBeenCalled();
|
|
599
|
+
});
|
|
600
|
+
});
|
|
601
|
+
});
|
|
602
|
+
//# sourceMappingURL=data-backup.service.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-backup.service.test.js","sourceRoot":"","sources":["../../../../src/backend/services/data-backup.service.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-lock.service.d.ts","sourceRoot":"","sources":["../../../../src/backend/services/file-lock.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-lock.service.d.ts","sourceRoot":"","sources":["../../../../src/backend/services/file-lock.service.ts"],"names":[],"mappings":"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"}
|