factory-factory 0.1.5 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -0
- package/dist/client/assets/{_basePickBy-auQMLRsw.js → _basePickBy-BUCmhYMi.js} +1 -1
- package/dist/client/assets/{_baseUniq-BMdZG9To.js → _baseUniq-DkCvE4O6.js} +1 -1
- package/dist/client/assets/{arc-CTqmVKB0.js → arc-C1SZ3gFz.js} +1 -1
- package/dist/client/assets/{architectureDiagram-VXUJARFQ-mn7TDnXB.js → architectureDiagram-VXUJARFQ-DJw9fXI5.js} +1 -1
- package/dist/client/assets/{blockDiagram-VD42YOAC-D0QcWwFJ.js → blockDiagram-VD42YOAC-DxNjgXL1.js} +1 -1
- package/dist/client/assets/{c4Diagram-YG6GDRKO-Co5gIsxx.js → c4Diagram-YG6GDRKO-DYyf8hqJ.js} +1 -1
- package/dist/client/assets/channel-C1q-YHIv.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-D62ng-w_.js → chunk-4BX2VUAB-D_xs3w4g.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-Co2YjNYs.js → chunk-55IACEB6-NeVyGiBw.js} +1 -1
- package/dist/client/assets/{chunk-B4BG7PRW-z38ht5-D.js → chunk-B4BG7PRW-EyCx-NZJ.js} +1 -1
- package/dist/client/assets/{chunk-DI55MBZ5-BhLXfyfd.js → chunk-DI55MBZ5-PoOxaYU4.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-CkXhdTBx.js → chunk-FMBD7UC4-D1FKmcwY.js} +1 -1
- package/dist/client/assets/{chunk-QN33PNHL-BVUY3PSB.js → chunk-QN33PNHL-B-nhuti6.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-DcqnpQkK.js → chunk-QZHKN3VN-BvwrXwAL.js} +1 -1
- package/dist/client/assets/{chunk-TZMSLE5B-B3MHL8qH.js → chunk-TZMSLE5B-CwcAJq0Y.js} +1 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-BRch7PJo.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-BRch7PJo.js +1 -0
- package/dist/client/assets/clone-D8y6D-S6.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-C9QD2Vj0.js → cose-bilkent-S5V4N54A-70G8lj7y.js} +1 -1
- package/dist/client/assets/{dagre-6UL2VRFP-Dbfyf8O9.js → dagre-6UL2VRFP-CxTqTZJX.js} +1 -1
- package/dist/client/assets/{diagram-PSM6KHXK-DYRvz_Qg.js → diagram-PSM6KHXK-wdA5gBhP.js} +1 -1
- package/dist/client/assets/{diagram-QEK2KX5R-DtPeTPAB.js → diagram-QEK2KX5R-BWiPIEBn.js} +1 -1
- package/dist/client/assets/{diagram-S2PKOQOG-BS4iPIf_.js → diagram-S2PKOQOG-CzhUSsIe.js} +1 -1
- package/dist/client/assets/{erDiagram-Q2GNP2WA-k4lDNTHf.js → erDiagram-Q2GNP2WA-DvowAcu-.js} +1 -1
- package/dist/client/assets/{flowDiagram-NV44I4VS-V62nOD8U.js → flowDiagram-NV44I4VS-B9jMwSHS.js} +1 -1
- package/dist/client/assets/{ganttDiagram-JELNMOA3-gFntrpvN.js → ganttDiagram-JELNMOA3-Bfaxm8Qf.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-NY62KEGX-BL07Phhj.js → gitGraphDiagram-NY62KEGX-5EWbjg13.js} +1 -1
- package/dist/client/assets/{graph-ETbv5TWG.js → graph-Bms-Sm3d.js} +1 -1
- package/dist/client/assets/index-Cp1e-xYL.js +408 -0
- package/dist/client/assets/index-CwyuSNf-.css +1 -0
- package/dist/client/assets/{infoDiagram-WHAUD3N6-C8zwYaNm.js → infoDiagram-WHAUD3N6-DYAoqgKw.js} +1 -1
- package/dist/client/assets/{journeyDiagram-XKPGCS4Q-DOV_hzrw.js → journeyDiagram-XKPGCS4Q-B0HifI98.js} +1 -1
- package/dist/client/assets/{kanban-definition-3W4ZIXB7-1FfVptSb.js → kanban-definition-3W4ZIXB7-BnBdOX8w.js} +1 -1
- package/dist/client/assets/{layout-Bvnfpgsa.js → layout-Tzmamt4J.js} +1 -1
- package/dist/client/assets/{linear-BFfZiIkJ.js → linear-DuZ88VjU.js} +1 -1
- package/dist/client/assets/{mindmap-definition-VGOIOE7T-BMCn7QhC.js → mindmap-definition-VGOIOE7T-mIqXf7ud.js} +1 -1
- package/dist/client/assets/{pieDiagram-ADFJNKIX-DMOd-_iB.js → pieDiagram-ADFJNKIX-LU3IJ_3z.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-AYHSOK5B-u_3HRHh2.js → quadrantDiagram-AYHSOK5B-RcfMXzE1.js} +1 -1
- package/dist/client/assets/{requirementDiagram-UZGBJVZJ-BZwVSXWr.js → requirementDiagram-UZGBJVZJ-fCa8OVB7.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-TZEHDZUN-DOWjxbUH.js → sankeyDiagram-TZEHDZUN-ByI3z-Yp.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-WL72ISMW-DwXxnRBe.js → sequenceDiagram-WL72ISMW-Bi2fH0fZ.js} +1 -1
- package/dist/client/assets/{stateDiagram-FKZM4ZOC-8BpOZTJw.js → stateDiagram-FKZM4ZOC-BcKHGHcW.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-DIADSwH3.js +1 -0
- package/dist/client/assets/{terminal-instance-Bpw7QC1n.js → terminal-instance-CXvzjFQW.js} +1 -1
- package/dist/client/assets/{timeline-definition-IT6M3QCI-CbV19eXj.js → timeline-definition-IT6M3QCI-7U7VPI2C.js} +1 -1
- package/dist/client/assets/{treemap-KMMF4GRG-CZkxCyK0.js → treemap-KMMF4GRG-B1RMkeMx.js} +1 -1
- package/dist/client/assets/{xychartDiagram-PRI3JC2R-DPKbYLDL.js → xychartDiagram-PRI3JC2R-DC1DrOy8.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/prisma/generated/commonInputTypes.d.ts +100 -0
- package/dist/prisma/generated/commonInputTypes.d.ts.map +1 -1
- package/dist/prisma/generated/enums.d.ts +11 -5
- package/dist/prisma/generated/enums.d.ts.map +1 -1
- package/dist/prisma/generated/enums.js +10 -5
- 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 +43 -0
- package/dist/prisma/generated/internal/prismaNamespace.d.ts.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespace.js +37 -0
- package/dist/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts +40 -0
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts.map +1 -1
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.js +37 -0
- package/dist/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/prisma/generated/models/UserSettings.d.ts +341 -1
- package/dist/prisma/generated/models/UserSettings.d.ts.map +1 -1
- package/dist/prisma/generated/models/Workspace.d.ts +480 -1
- package/dist/prisma/generated/models/Workspace.d.ts.map +1 -1
- package/dist/prompts/workflows/ci-fix.md +52 -0
- package/dist/prompts/workflows/pr-review-fix.md +61 -0
- package/dist/prompts/workflows/ratchet.md +83 -0
- package/dist/src/backend/app-context.d.ts +56 -0
- package/dist/src/backend/app-context.d.ts.map +1 -0
- package/dist/src/backend/app-context.js +59 -0
- package/dist/src/backend/app-context.js.map +1 -0
- package/dist/src/backend/claude/index.d.ts +5 -14
- package/dist/src/backend/claude/index.d.ts.map +1 -1
- package/dist/src/backend/claude/index.js +27 -121
- package/dist/src/backend/claude/index.js.map +1 -1
- package/dist/src/backend/claude/monitoring.d.ts +53 -0
- package/dist/src/backend/claude/monitoring.d.ts.map +1 -0
- package/dist/src/backend/claude/monitoring.js +139 -0
- package/dist/src/backend/claude/monitoring.js.map +1 -0
- package/dist/src/backend/claude/permission-coordinator.d.ts +43 -0
- package/dist/src/backend/claude/permission-coordinator.d.ts.map +1 -0
- package/dist/src/backend/claude/permission-coordinator.js +170 -0
- package/dist/src/backend/claude/permission-coordinator.js.map +1 -0
- package/dist/src/backend/claude/permission-coordinator.test.d.ts +2 -0
- package/dist/src/backend/claude/permission-coordinator.test.d.ts.map +1 -0
- package/dist/src/backend/claude/permission-coordinator.test.js +86 -0
- package/dist/src/backend/claude/permission-coordinator.test.js.map +1 -0
- package/dist/src/backend/claude/process.d.ts +6 -22
- package/dist/src/backend/claude/process.d.ts.map +1 -1
- package/dist/src/backend/claude/process.js +22 -118
- package/dist/src/backend/claude/process.js.map +1 -1
- package/dist/src/backend/claude/protocol-io.d.ts +47 -0
- package/dist/src/backend/claude/protocol-io.d.ts.map +1 -0
- package/dist/src/backend/claude/protocol-io.js +60 -0
- package/dist/src/backend/claude/protocol-io.js.map +1 -0
- package/dist/src/backend/claude/types.d.ts +19 -124
- package/dist/src/backend/claude/types.d.ts.map +1 -1
- package/dist/src/backend/claude/types.js.map +1 -1
- package/dist/src/backend/clients/git.client.d.ts +7 -0
- package/dist/src/backend/clients/git.client.d.ts.map +1 -1
- package/dist/src/backend/clients/git.client.js +127 -3
- package/dist/src/backend/clients/git.client.js.map +1 -1
- package/dist/src/backend/clients/git.client.test.js +52 -8
- package/dist/src/backend/clients/git.client.test.js.map +1 -1
- package/dist/src/backend/index.js +5 -4
- package/dist/src/backend/index.js.map +1 -1
- package/dist/src/backend/interceptors/conversation-rename.interceptor.d.ts.map +1 -1
- package/dist/src/backend/interceptors/conversation-rename.interceptor.js +1 -2
- package/dist/src/backend/interceptors/conversation-rename.interceptor.js.map +1 -1
- package/dist/src/backend/interceptors/git-push.interceptor.d.ts +3 -0
- package/dist/src/backend/interceptors/git-push.interceptor.d.ts.map +1 -0
- package/dist/src/backend/interceptors/git-push.interceptor.js +31 -0
- package/dist/src/backend/interceptors/git-push.interceptor.js.map +1 -0
- package/dist/src/backend/interceptors/index.d.ts.map +1 -1
- package/dist/src/backend/interceptors/index.js +2 -0
- package/dist/src/backend/interceptors/index.js.map +1 -1
- package/dist/src/backend/lib/file-helpers.d.ts +1 -0
- package/dist/src/backend/lib/file-helpers.d.ts.map +1 -1
- package/dist/src/backend/lib/file-helpers.js +10 -1
- package/dist/src/backend/lib/file-helpers.js.map +1 -1
- package/dist/src/backend/lib/file-helpers.test.js +17 -2
- package/dist/src/backend/lib/file-helpers.test.js.map +1 -1
- package/dist/src/backend/middleware/cors.middleware.d.ts +3 -1
- package/dist/src/backend/middleware/cors.middleware.d.ts.map +1 -1
- package/dist/src/backend/middleware/cors.middleware.js +18 -15
- package/dist/src/backend/middleware/cors.middleware.js.map +1 -1
- package/dist/src/backend/middleware/index.d.ts +2 -2
- package/dist/src/backend/middleware/index.d.ts.map +1 -1
- package/dist/src/backend/middleware/index.js +2 -2
- package/dist/src/backend/middleware/index.js.map +1 -1
- package/dist/src/backend/middleware/middleware.test.js +23 -21
- package/dist/src/backend/middleware/middleware.test.js.map +1 -1
- package/dist/src/backend/middleware/request-logger.middleware.d.ts +3 -1
- package/dist/src/backend/middleware/request-logger.middleware.d.ts.map +1 -1
- package/dist/src/backend/middleware/request-logger.middleware.js +19 -16
- package/dist/src/backend/middleware/request-logger.middleware.js.map +1 -1
- package/dist/src/backend/resource_accessors/project.accessor.d.ts +4 -0
- package/dist/src/backend/resource_accessors/project.accessor.d.ts.map +1 -1
- package/dist/src/backend/resource_accessors/project.accessor.js +28 -0
- package/dist/src/backend/resource_accessors/project.accessor.js.map +1 -1
- package/dist/src/backend/resource_accessors/project.accessor.test.d.ts +2 -0
- package/dist/src/backend/resource_accessors/project.accessor.test.d.ts.map +1 -0
- package/dist/src/backend/resource_accessors/project.accessor.test.js +85 -0
- package/dist/src/backend/resource_accessors/project.accessor.test.js.map +1 -0
- package/dist/src/backend/resource_accessors/user-settings.accessor.d.ts +16 -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 +18 -0
- package/dist/src/backend/resource_accessors/user-settings.accessor.js.map +1 -1
- package/dist/src/backend/resource_accessors/workspace.accessor.d.ts +34 -1
- package/dist/src/backend/resource_accessors/workspace.accessor.d.ts.map +1 -1
- package/dist/src/backend/resource_accessors/workspace.accessor.js +63 -0
- package/dist/src/backend/resource_accessors/workspace.accessor.js.map +1 -1
- package/dist/src/backend/resource_accessors/workspace.accessor.test.d.ts +2 -0
- package/dist/src/backend/resource_accessors/workspace.accessor.test.d.ts.map +1 -0
- package/dist/src/backend/resource_accessors/workspace.accessor.test.js +44 -0
- package/dist/src/backend/resource_accessors/workspace.accessor.test.js.map +1 -0
- package/dist/src/backend/routers/api/health.router.d.ts +4 -2
- package/dist/src/backend/routers/api/health.router.d.ts.map +1 -1
- package/dist/src/backend/routers/api/health.router.js +62 -59
- package/dist/src/backend/routers/api/health.router.js.map +1 -1
- package/dist/src/backend/routers/api/health.router.test.js +19 -17
- package/dist/src/backend/routers/api/health.router.test.js.map +1 -1
- package/dist/src/backend/routers/api/mcp.router.d.ts +4 -2
- package/dist/src/backend/routers/api/mcp.router.d.ts.map +1 -1
- package/dist/src/backend/routers/api/mcp.router.js +33 -30
- package/dist/src/backend/routers/api/mcp.router.js.map +1 -1
- package/dist/src/backend/routers/api/mcp.router.test.js +16 -12
- package/dist/src/backend/routers/api/mcp.router.test.js.map +1 -1
- package/dist/src/backend/routers/api/project.router.d.ts +4 -2
- package/dist/src/backend/routers/api/project.router.d.ts.map +1 -1
- package/dist/src/backend/routers/api/project.router.js +226 -219
- package/dist/src/backend/routers/api/project.router.js.map +1 -1
- package/dist/src/backend/routers/websocket/chat.handler.d.ts +3 -1
- package/dist/src/backend/routers/websocket/chat.handler.d.ts.map +1 -1
- package/dist/src/backend/routers/websocket/chat.handler.js +199 -158
- package/dist/src/backend/routers/websocket/chat.handler.js.map +1 -1
- package/dist/src/backend/routers/websocket/dev-logs.handler.d.ts +3 -1
- package/dist/src/backend/routers/websocket/dev-logs.handler.d.ts.map +1 -1
- package/dist/src/backend/routers/websocket/dev-logs.handler.js +58 -55
- package/dist/src/backend/routers/websocket/dev-logs.handler.js.map +1 -1
- package/dist/src/backend/routers/websocket/index.d.ts +3 -3
- package/dist/src/backend/routers/websocket/index.d.ts.map +1 -1
- package/dist/src/backend/routers/websocket/index.js +3 -3
- package/dist/src/backend/routers/websocket/index.js.map +1 -1
- package/dist/src/backend/routers/websocket/message-utils.d.ts +2 -0
- package/dist/src/backend/routers/websocket/message-utils.d.ts.map +1 -0
- package/dist/src/backend/routers/websocket/message-utils.js +16 -0
- package/dist/src/backend/routers/websocket/message-utils.js.map +1 -0
- package/dist/src/backend/routers/websocket/terminal.handler.d.ts +3 -1
- package/dist/src/backend/routers/websocket/terminal.handler.d.ts.map +1 -1
- package/dist/src/backend/routers/websocket/terminal.handler.js +288 -247
- package/dist/src/backend/routers/websocket/terminal.handler.js.map +1 -1
- package/dist/src/backend/schemas/websocket/index.d.ts +1 -1
- package/dist/src/backend/schemas/websocket/index.d.ts.map +1 -1
- package/dist/src/backend/schemas/websocket/index.js +1 -1
- package/dist/src/backend/schemas/websocket/index.js.map +1 -1
- package/dist/src/backend/server.d.ts +4 -8
- package/dist/src/backend/server.d.ts.map +1 -1
- package/dist/src/backend/server.js +25 -19
- package/dist/src/backend/server.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 +16 -18
- package/dist/src/backend/services/chat-event-forwarder.service.js.map +1 -1
- package/dist/src/backend/services/chat-message-handlers/attachment-utils.d.ts +5 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-utils.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-utils.js +27 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-utils.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-utils.test.d.ts +2 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-utils.test.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-utils.test.js +36 -0
- package/dist/src/backend/services/chat-message-handlers/attachment-utils.test.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/constants.d.ts +5 -0
- package/dist/src/backend/services/chat-message-handlers/constants.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/constants.js +7 -0
- package/dist/src/backend/services/chat-message-handlers/constants.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/get-history.handler.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/get-history.handler.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/get-history.handler.js +16 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/get-history.handler.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.js +13 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/get-queue.handler.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/handlers.test.d.ts +2 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/handlers.test.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/handlers.test.js +478 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/handlers.test.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/list-sessions.handler.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/list-sessions.handler.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/list-sessions.handler.js +8 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/list-sessions.handler.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.js +113 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/load-session.handler.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.js +43 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/permission-response.handler.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.js +35 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/question-response.handler.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.js +46 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/queue-message.handler.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.js +23 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/remove-queued-message.handler.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.js +49 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/rewind-files.handler.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.js +31 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/set-model.handler.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.js +34 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/set-thinking-budget.handler.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.js +27 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/start.handler.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.js +10 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/stop.handler.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.js +24 -0
- package/dist/src/backend/services/chat-message-handlers/handlers/user-input.handler.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/interactive-response.d.ts +3 -0
- package/dist/src/backend/services/chat-message-handlers/interactive-response.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/interactive-response.js +83 -0
- package/dist/src/backend/services/chat-message-handlers/interactive-response.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/registry.d.ts +5 -0
- package/dist/src/backend/services/chat-message-handlers/registry.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/registry.js +33 -0
- package/dist/src/backend/services/chat-message-handlers/registry.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/types.d.ts +22 -0
- package/dist/src/backend/services/chat-message-handlers/types.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/types.js +2 -0
- package/dist/src/backend/services/chat-message-handlers/types.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/utils.d.ts +6 -0
- package/dist/src/backend/services/chat-message-handlers/utils.d.ts.map +1 -0
- package/dist/src/backend/services/chat-message-handlers/utils.js +28 -0
- package/dist/src/backend/services/chat-message-handlers/utils.js.map +1 -0
- package/dist/src/backend/services/chat-message-handlers.service.d.ts +4 -33
- package/dist/src/backend/services/chat-message-handlers.service.d.ts.map +1 -1
- package/dist/src/backend/services/chat-message-handlers.service.js +32 -478
- package/dist/src/backend/services/chat-message-handlers.service.js.map +1 -1
- package/dist/src/backend/services/chat-transport-adapter.service.d.ts +10 -0
- package/dist/src/backend/services/chat-transport-adapter.service.d.ts.map +1 -0
- package/dist/src/backend/services/chat-transport-adapter.service.js +46 -0
- package/dist/src/backend/services/chat-transport-adapter.service.js.map +1 -0
- package/dist/src/backend/services/chat-transport-adapter.service.test.d.ts +2 -0
- package/dist/src/backend/services/chat-transport-adapter.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/chat-transport-adapter.service.test.js +67 -0
- package/dist/src/backend/services/chat-transport-adapter.service.test.js.map +1 -0
- package/dist/src/backend/services/ci-fixer.service.d.ts +42 -0
- package/dist/src/backend/services/ci-fixer.service.d.ts.map +1 -0
- package/dist/src/backend/services/ci-fixer.service.js +210 -0
- package/dist/src/backend/services/ci-fixer.service.js.map +1 -0
- package/dist/src/backend/services/ci-fixer.service.test.d.ts +2 -0
- package/dist/src/backend/services/ci-fixer.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/ci-fixer.service.test.js +561 -0
- package/dist/src/backend/services/ci-fixer.service.test.js.map +1 -0
- package/dist/src/backend/services/ci-monitor.service.d.ts +3 -0
- package/dist/src/backend/services/ci-monitor.service.d.ts.map +1 -1
- package/dist/src/backend/services/ci-monitor.service.js +103 -36
- package/dist/src/backend/services/ci-monitor.service.js.map +1 -1
- package/dist/src/backend/services/data-backup.service.d.ts +152 -0
- package/dist/src/backend/services/data-backup.service.d.ts.map +1 -0
- package/dist/src/backend/services/data-backup.service.js +421 -0
- package/dist/src/backend/services/data-backup.service.js.map +1 -0
- package/dist/src/backend/services/event-compression.service.d.ts +1 -0
- package/dist/src/backend/services/event-compression.service.d.ts.map +1 -1
- package/dist/src/backend/services/event-compression.service.js +4 -1
- package/dist/src/backend/services/event-compression.service.js.map +1 -1
- package/dist/src/backend/services/git-ops.service.d.ts +29 -0
- package/dist/src/backend/services/git-ops.service.d.ts.map +1 -0
- package/dist/src/backend/services/git-ops.service.js +127 -0
- package/dist/src/backend/services/git-ops.service.js.map +1 -0
- package/dist/src/backend/services/github-cli.service.d.ts +31 -0
- package/dist/src/backend/services/github-cli.service.d.ts.map +1 -1
- package/dist/src/backend/services/github-cli.service.js +144 -0
- package/dist/src/backend/services/github-cli.service.js.map +1 -1
- package/dist/src/backend/services/index.d.ts +5 -0
- package/dist/src/backend/services/index.d.ts.map +1 -1
- package/dist/src/backend/services/index.js +5 -0
- package/dist/src/backend/services/index.js.map +1 -1
- package/dist/src/backend/services/kanban-state.service.d.ts +2 -2
- package/dist/src/backend/services/kanban-state.service.d.ts.map +1 -1
- package/dist/src/backend/services/kanban-state.service.js +14 -19
- package/dist/src/backend/services/kanban-state.service.js.map +1 -1
- package/dist/src/backend/services/kanban-state.service.test.js +68 -55
- package/dist/src/backend/services/kanban-state.service.test.js.map +1 -1
- package/dist/src/backend/services/message-event-store.d.ts +12 -0
- package/dist/src/backend/services/message-event-store.d.ts.map +1 -0
- package/dist/src/backend/services/message-event-store.js +21 -0
- package/dist/src/backend/services/message-event-store.js.map +1 -0
- package/dist/src/backend/services/message-event-store.test.d.ts +2 -0
- package/dist/src/backend/services/message-event-store.test.d.ts.map +1 -0
- package/dist/src/backend/services/message-event-store.test.js +32 -0
- package/dist/src/backend/services/message-event-store.test.js.map +1 -0
- package/dist/src/backend/services/message-queue.service.d.ts +2 -2
- package/dist/src/backend/services/message-queue.service.d.ts.map +1 -1
- package/dist/src/backend/services/message-state-machine.d.ts +37 -0
- package/dist/src/backend/services/message-state-machine.d.ts.map +1 -0
- package/dist/src/backend/services/message-state-machine.js +262 -0
- package/dist/src/backend/services/message-state-machine.js.map +1 -0
- package/dist/src/backend/services/message-state-machine.test.d.ts +2 -0
- package/dist/src/backend/services/message-state-machine.test.d.ts.map +1 -0
- package/dist/src/backend/services/message-state-machine.test.js +67 -0
- package/dist/src/backend/services/message-state-machine.test.js.map +1 -0
- package/dist/src/backend/services/message-state.service.d.ts +41 -8
- package/dist/src/backend/services/message-state.service.d.ts.map +1 -1
- package/dist/src/backend/services/message-state.service.js +136 -251
- package/dist/src/backend/services/message-state.service.js.map +1 -1
- package/dist/src/backend/services/message-state.service.test.js +98 -54
- package/dist/src/backend/services/message-state.service.test.js.map +1 -1
- package/dist/src/backend/services/pr-review-fixer.service.d.ts +56 -0
- package/dist/src/backend/services/pr-review-fixer.service.d.ts.map +1 -0
- package/dist/src/backend/services/pr-review-fixer.service.js +247 -0
- package/dist/src/backend/services/pr-review-fixer.service.js.map +1 -0
- package/dist/src/backend/services/pr-review-monitor.service.d.ts +18 -0
- package/dist/src/backend/services/pr-review-monitor.service.d.ts.map +1 -0
- package/dist/src/backend/services/pr-review-monitor.service.js +209 -0
- package/dist/src/backend/services/pr-review-monitor.service.js.map +1 -0
- package/dist/src/backend/services/ratchet.service.d.ts +115 -0
- package/dist/src/backend/services/ratchet.service.d.ts.map +1 -0
- package/dist/src/backend/services/ratchet.service.js +587 -0
- package/dist/src/backend/services/ratchet.service.js.map +1 -0
- package/dist/src/backend/services/ratchet.service.test.d.ts +2 -0
- package/dist/src/backend/services/ratchet.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/ratchet.service.test.js +254 -0
- package/dist/src/backend/services/ratchet.service.test.js.map +1 -0
- package/dist/src/backend/services/reconciliation.service.d.ts.map +1 -1
- package/dist/src/backend/services/reconciliation.service.js +3 -1
- package/dist/src/backend/services/reconciliation.service.js.map +1 -1
- package/dist/src/backend/services/reconciliation.service.test.js +6 -2
- package/dist/src/backend/services/reconciliation.service.test.js.map +1 -1
- package/dist/src/backend/services/server-instance.service.d.ts +3 -2
- package/dist/src/backend/services/server-instance.service.d.ts.map +1 -1
- package/dist/src/backend/services/server-instance.service.js.map +1 -1
- package/dist/src/backend/services/session-file-logger.service.d.ts +1 -0
- package/dist/src/backend/services/session-file-logger.service.d.ts.map +1 -1
- package/dist/src/backend/services/session-file-logger.service.js +63 -37
- package/dist/src/backend/services/session-file-logger.service.js.map +1 -1
- package/dist/src/backend/services/session-file-logger.service.test.js +107 -1
- package/dist/src/backend/services/session-file-logger.service.test.js.map +1 -1
- package/dist/src/backend/services/session.process-manager.d.ts +47 -0
- package/dist/src/backend/services/session.process-manager.d.ts.map +1 -0
- package/dist/src/backend/services/session.process-manager.js +188 -0
- package/dist/src/backend/services/session.process-manager.js.map +1 -0
- package/dist/src/backend/services/session.process-manager.test.d.ts +2 -0
- package/dist/src/backend/services/session.process-manager.test.d.ts.map +1 -0
- package/dist/src/backend/services/session.process-manager.test.js +55 -0
- package/dist/src/backend/services/session.process-manager.test.js.map +1 -0
- package/dist/src/backend/services/session.prompt-builder.d.ts +26 -0
- package/dist/src/backend/services/session.prompt-builder.d.ts.map +1 -0
- package/dist/src/backend/services/session.prompt-builder.js +24 -0
- package/dist/src/backend/services/session.prompt-builder.js.map +1 -0
- package/dist/src/backend/services/session.prompt-builder.test.d.ts +2 -0
- package/dist/src/backend/services/session.prompt-builder.test.d.ts.map +1 -0
- package/dist/src/backend/services/session.prompt-builder.test.js +89 -0
- package/dist/src/backend/services/session.prompt-builder.test.js.map +1 -0
- package/dist/src/backend/services/session.repository.d.ts +28 -0
- package/dist/src/backend/services/session.repository.d.ts.map +1 -0
- package/dist/src/backend/services/session.repository.js +31 -0
- package/dist/src/backend/services/session.repository.js.map +1 -0
- package/dist/src/backend/services/session.service.d.ts +21 -5
- package/dist/src/backend/services/session.service.d.ts.map +1 -1
- package/dist/src/backend/services/session.service.js +180 -197
- package/dist/src/backend/services/session.service.js.map +1 -1
- package/dist/src/backend/services/session.service.test.d.ts +2 -0
- package/dist/src/backend/services/session.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/session.service.test.js +173 -0
- package/dist/src/backend/services/session.service.test.js.map +1 -0
- package/dist/src/backend/services/slash-command-cache.service.d.ts +8 -0
- package/dist/src/backend/services/slash-command-cache.service.d.ts.map +1 -0
- package/dist/src/backend/services/slash-command-cache.service.js +89 -0
- package/dist/src/backend/services/slash-command-cache.service.js.map +1 -0
- package/dist/src/backend/services/startup-script.service.d.ts +1 -0
- package/dist/src/backend/services/startup-script.service.d.ts.map +1 -1
- package/dist/src/backend/services/startup-script.service.js +42 -2
- package/dist/src/backend/services/startup-script.service.js.map +1 -1
- package/dist/src/backend/services/workspace-query.service.d.ts +140 -0
- package/dist/src/backend/services/workspace-query.service.d.ts.map +1 -0
- package/dist/src/backend/services/workspace-query.service.js +247 -0
- package/dist/src/backend/services/workspace-query.service.js.map +1 -0
- package/dist/src/backend/services/worktree-lifecycle-init.test.d.ts +2 -0
- package/dist/src/backend/services/worktree-lifecycle-init.test.d.ts.map +1 -0
- package/dist/src/backend/services/worktree-lifecycle-init.test.js +198 -0
- package/dist/src/backend/services/worktree-lifecycle-init.test.js.map +1 -0
- package/dist/src/backend/services/worktree-lifecycle.service.d.ts +68 -0
- package/dist/src/backend/services/worktree-lifecycle.service.d.ts.map +1 -0
- package/dist/src/backend/services/worktree-lifecycle.service.js +481 -0
- package/dist/src/backend/services/worktree-lifecycle.service.js.map +1 -0
- package/dist/src/backend/services/worktree-lifecycle.service.test.d.ts +2 -0
- package/dist/src/backend/services/worktree-lifecycle.service.test.d.ts.map +1 -0
- package/dist/src/backend/services/worktree-lifecycle.service.test.js +36 -0
- package/dist/src/backend/services/worktree-lifecycle.service.test.js.map +1 -0
- package/dist/src/backend/trpc/admin.trpc.d.ts +200 -5
- package/dist/src/backend/trpc/admin.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/admin.trpc.js +42 -9
- package/dist/src/backend/trpc/admin.trpc.js.map +1 -1
- package/dist/src/backend/trpc/decision-log.trpc.d.ts +4 -7
- package/dist/src/backend/trpc/decision-log.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/github.trpc.d.ts +52 -0
- package/dist/src/backend/trpc/github.trpc.d.ts.map +1 -0
- package/dist/src/backend/trpc/github.trpc.js +87 -0
- package/dist/src/backend/trpc/github.trpc.js.map +1 -0
- package/dist/src/backend/trpc/index.d.ts +660 -138
- package/dist/src/backend/trpc/index.d.ts.map +1 -1
- package/dist/src/backend/trpc/index.js +2 -0
- package/dist/src/backend/trpc/index.js.map +1 -1
- package/dist/src/backend/trpc/pr-review.trpc.d.ts +1 -4
- package/dist/src/backend/trpc/pr-review.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/pr-review.trpc.js +12 -11
- package/dist/src/backend/trpc/pr-review.trpc.js.map +1 -1
- package/dist/src/backend/trpc/procedures/project-scoped.d.ts +2 -4
- package/dist/src/backend/trpc/procedures/project-scoped.d.ts.map +1 -1
- package/dist/src/backend/trpc/project.trpc.d.ts +46 -10
- package/dist/src/backend/trpc/project.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/project.trpc.js +64 -2
- package/dist/src/backend/trpc/project.trpc.js.map +1 -1
- package/dist/src/backend/trpc/session.trpc.d.ts +98 -57
- package/dist/src/backend/trpc/session.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/session.trpc.js +12 -10
- package/dist/src/backend/trpc/session.trpc.js.map +1 -1
- package/dist/src/backend/trpc/trpc.d.ts +4 -3
- package/dist/src/backend/trpc/trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/trpc.js +2 -1
- package/dist/src/backend/trpc/trpc.js.map +1 -1
- package/dist/src/backend/trpc/user-settings.trpc.d.ts +55 -4
- package/dist/src/backend/trpc/user-settings.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/user-settings.trpc.js +39 -1
- package/dist/src/backend/trpc/user-settings.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/files.trpc.d.ts +2 -4
- package/dist/src/backend/trpc/workspace/files.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace/files.trpc.js +4 -3
- package/dist/src/backend/trpc/workspace/files.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/git.trpc.d.ts +2 -4
- package/dist/src/backend/trpc/workspace/git.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace/git.trpc.js +4 -3
- package/dist/src/backend/trpc/workspace/git.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/ide.trpc.d.ts +1 -4
- package/dist/src/backend/trpc/workspace/ide.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace/init.trpc.d.ts +27 -14
- package/dist/src/backend/trpc/workspace/init.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace/init.trpc.js +20 -106
- package/dist/src/backend/trpc/workspace/init.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/run-script.trpc.d.ts +1 -4
- package/dist/src/backend/trpc/workspace/run-script.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace/run-script.trpc.js +5 -8
- package/dist/src/backend/trpc/workspace/run-script.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace/workspace-helpers.d.ts +34 -12
- package/dist/src/backend/trpc/workspace/workspace-helpers.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace.trpc.d.ts +207 -48
- package/dist/src/backend/trpc/workspace.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace.trpc.js +93 -235
- package/dist/src/backend/trpc/workspace.trpc.js.map +1 -1
- package/dist/src/backend/types/server-instance.d.ts +8 -0
- package/dist/src/backend/types/server-instance.d.ts.map +1 -0
- package/dist/src/backend/types/server-instance.js +2 -0
- package/dist/src/backend/types/server-instance.js.map +1 -0
- package/dist/src/cli/index.js +61 -43
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/shared/claude/index.d.ts +2 -0
- package/dist/src/shared/claude/index.d.ts.map +1 -0
- package/dist/src/shared/claude/index.js +2 -0
- package/dist/src/shared/claude/index.js.map +1 -0
- package/dist/src/{lib/claude-types.d.ts → shared/claude/protocol.d.ts} +4 -87
- package/dist/src/shared/claude/protocol.d.ts.map +1 -0
- package/dist/src/shared/claude/protocol.js +32 -0
- package/dist/src/shared/claude/protocol.js.map +1 -0
- package/dist/src/shared/github-types.d.ts +1 -0
- package/dist/src/shared/github-types.d.ts.map +1 -1
- package/dist/src/{backend/schemas → shared}/websocket/chat-message.schema.d.ts +23 -0
- package/dist/src/shared/websocket/chat-message.schema.d.ts.map +1 -0
- package/dist/src/{backend/schemas → shared}/websocket/chat-message.schema.js +3 -2
- package/dist/src/shared/websocket/chat-message.schema.js.map +1 -0
- package/dist/src/shared/websocket/index.d.ts +2 -0
- package/dist/src/shared/websocket/index.d.ts.map +1 -0
- package/dist/src/shared/websocket/index.js +2 -0
- package/dist/src/shared/websocket/index.js.map +1 -0
- package/dist/src/shared/workspace-words.d.ts +4 -0
- package/dist/src/shared/workspace-words.d.ts.map +1 -0
- package/dist/src/shared/workspace-words.js +68 -0
- package/dist/src/shared/workspace-words.js.map +1 -0
- package/dist/tsconfig.backend.tsbuildinfo +1 -1
- package/package.json +24 -13
- package/prisma/migrations/20260202150527_add_notification_sound_path/migration.sql +2 -0
- package/prisma/migrations/20260202172937_add_auto_fix_ci_issues_setting/migration.sql +21 -0
- package/prisma/migrations/20260203120000_add_cached_slash_commands/migration.sql +20 -0
- package/prisma/migrations/20260203190000_add_workspace_order/migration.sql +2 -0
- package/prisma/migrations/20260204000000_add_init_output/migration.sql +2 -0
- package/prisma/migrations/20260204180116_watch_prs/migration.sql +90 -0
- package/prisma/migrations/20260204200000_simplify_kanban_columns/migration.sql +72 -0
- package/prisma/migrations/20260204210000_add_workspace_ratchet_enabled/migration.sql +2 -0
- package/prisma/migrations/20260205000000_add_is_auto_generated_branch/migration.sql +2 -0
- package/prisma/migrations/20260205012721_add_ratchet_last_push_at/migration.sql +2 -0
- package/prisma/schema.prisma +57 -13
- package/prompts/workflows/ci-fix.md +52 -0
- package/prompts/workflows/pr-review-fix.md +61 -0
- package/prompts/workflows/ratchet.md +83 -0
- package/dist/client/assets/channel-CSRLM5uf.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-Bq8cRujI.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-Bq8cRujI.js +0 -1
- package/dist/client/assets/clone-CM-lZVxH.js +0 -1
- package/dist/client/assets/index-BH_6oh9T.js +0 -389
- package/dist/client/assets/index-C0yWBGfE.css +0 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-G6JS4dBh.js +0 -1
- package/dist/src/backend/schemas/websocket/chat-message.schema.d.ts.map +0 -1
- package/dist/src/backend/schemas/websocket/chat-message.schema.js.map +0 -1
- package/dist/src/lib/claude-types.d.ts.map +0 -1
- package/dist/src/lib/claude-types.js +0 -338
- package/dist/src/lib/claude-types.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "factory-factory",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Workspace-based coding environment for running multiple Claude Code sessions in parallel",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "MIT",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"scripts": {
|
|
42
42
|
"dev": "node scripts/ensure-native-modules.mjs node && tsx src/cli/index.ts serve --dev",
|
|
43
43
|
"build": "tsc -p tsconfig.backend.json && tsc-alias -p tsconfig.backend.json --resolve-full-paths && cp -r prompts dist/ && vite build",
|
|
44
|
+
"build:storybook": "storybook build",
|
|
44
45
|
"start": "node scripts/ensure-native-modules.mjs node && tsx src/cli/index.ts serve",
|
|
45
46
|
"test": "vitest run",
|
|
46
47
|
"test:watch": "vitest",
|
|
@@ -64,6 +65,9 @@
|
|
|
64
65
|
"knip": "knip --include files,dependencies,unlisted"
|
|
65
66
|
},
|
|
66
67
|
"dependencies": {
|
|
68
|
+
"@dnd-kit/core": "^6.3.1",
|
|
69
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
70
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
67
71
|
"@hookform/resolvers": "^5.2.2",
|
|
68
72
|
"@prisma/adapter-better-sqlite3": "^7.3.0",
|
|
69
73
|
"@prisma/client": "^7.3.0",
|
|
@@ -126,10 +130,12 @@
|
|
|
126
130
|
"react-dom": "^19.2.4",
|
|
127
131
|
"react-hook-form": "^7.71.1",
|
|
128
132
|
"react-markdown": "^10.1.0",
|
|
129
|
-
"react-resizable-panels": "^4.5.
|
|
133
|
+
"react-resizable-panels": "^4.5.9",
|
|
130
134
|
"react-router": "^7.13.0",
|
|
131
135
|
"react-syntax-highlighter": "^16.1.0",
|
|
132
136
|
"recharts": "3.7.0",
|
|
137
|
+
"rehype-raw": "^7.0.0",
|
|
138
|
+
"rehype-sanitize": "^6.0.0",
|
|
133
139
|
"remark-gfm": "^4.0.1",
|
|
134
140
|
"sonner": "^2.0.7",
|
|
135
141
|
"superjson": "^2.2.6",
|
|
@@ -146,9 +152,13 @@
|
|
|
146
152
|
]
|
|
147
153
|
},
|
|
148
154
|
"pnpm": {
|
|
155
|
+
"publicHoistPattern": [
|
|
156
|
+
"@types/*"
|
|
157
|
+
],
|
|
149
158
|
"onlyBuiltDependencies": [
|
|
150
159
|
"@prisma/engines",
|
|
151
160
|
"better-sqlite3",
|
|
161
|
+
"electron",
|
|
152
162
|
"esbuild",
|
|
153
163
|
"node-pty",
|
|
154
164
|
"prisma",
|
|
@@ -156,6 +166,7 @@
|
|
|
156
166
|
"sharp"
|
|
157
167
|
],
|
|
158
168
|
"overrides": {
|
|
169
|
+
"@isaacs/brace-expansion": ">=5.0.1",
|
|
159
170
|
"braces": ">=3.0.3",
|
|
160
171
|
"micromatch": ">=4.0.8",
|
|
161
172
|
"tar": ">=7.5.0",
|
|
@@ -169,37 +180,37 @@
|
|
|
169
180
|
},
|
|
170
181
|
"devDependencies": {
|
|
171
182
|
"@biomejs/biome": "^2.3.13",
|
|
172
|
-
"@electron/rebuild": "^4.0.
|
|
173
|
-
"@storybook/addon-a11y": "10.2.
|
|
174
|
-
"@storybook/addon-docs": "10.2.
|
|
183
|
+
"@electron/rebuild": "^4.0.3",
|
|
184
|
+
"@storybook/addon-a11y": "10.2.4",
|
|
185
|
+
"@storybook/addon-docs": "10.2.4",
|
|
175
186
|
"@storybook/addon-mcp": "^0.2.2",
|
|
176
|
-
"@storybook/addon-themes": "10.2.
|
|
177
|
-
"@storybook/react": "10.2.
|
|
178
|
-
"@storybook/react-vite": "10.2.
|
|
187
|
+
"@storybook/addon-themes": "10.2.4",
|
|
188
|
+
"@storybook/react": "10.2.4",
|
|
189
|
+
"@storybook/react-vite": "10.2.4",
|
|
179
190
|
"@tailwindcss/vite": "^4.1.18",
|
|
180
191
|
"@types/better-sqlite3": "^7.6.13",
|
|
181
192
|
"@types/express": "^5.0.6",
|
|
182
|
-
"@types/node": "^25.
|
|
193
|
+
"@types/node": "^25.2.0",
|
|
183
194
|
"@types/pidusage": "^2.0.5",
|
|
184
195
|
"@types/react": "^19.2.10",
|
|
185
196
|
"@types/react-dom": "^19.2.3",
|
|
186
197
|
"@types/react-syntax-highlighter": "^15.5.13",
|
|
187
198
|
"@types/supertest": "^6.0.3",
|
|
188
199
|
"@types/ws": "^8.18.1",
|
|
189
|
-
"@vitejs/plugin-react": "^5.1.
|
|
200
|
+
"@vitejs/plugin-react": "^5.1.3",
|
|
190
201
|
"@vitest/coverage-v8": "^4.0.18",
|
|
191
202
|
"autoprefixer": "^10.4.24",
|
|
192
|
-
"concurrently": "^9.1
|
|
203
|
+
"concurrently": "^9.2.1",
|
|
193
204
|
"dependency-cruiser": "^17.3.7",
|
|
194
205
|
"electron": "^40.1.0",
|
|
195
206
|
"electron-builder": "^26.7.0",
|
|
196
207
|
"husky": "^9.1.7",
|
|
197
|
-
"knip": "^5.
|
|
208
|
+
"knip": "^5.83.0",
|
|
198
209
|
"lint-staged": "^16.2.7",
|
|
199
210
|
"next-themes": "^0.4.6",
|
|
200
211
|
"postcss": "^8.5.6",
|
|
201
212
|
"prisma": "^7.3.0",
|
|
202
|
-
"storybook": "10.2.
|
|
213
|
+
"storybook": "10.2.4",
|
|
203
214
|
"supertest": "^7.2.2",
|
|
204
215
|
"tailwindcss": "^4.1.18",
|
|
205
216
|
"tsc-alias": "^1.8.16",
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
-- RedefineTables
|
|
2
|
+
PRAGMA defer_foreign_keys=ON;
|
|
3
|
+
PRAGMA foreign_keys=OFF;
|
|
4
|
+
CREATE TABLE "new_UserSettings" (
|
|
5
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
6
|
+
"userId" TEXT NOT NULL DEFAULT 'default',
|
|
7
|
+
"preferredIde" TEXT NOT NULL DEFAULT 'cursor',
|
|
8
|
+
"customIdeCommand" TEXT,
|
|
9
|
+
"notificationSoundPath" TEXT,
|
|
10
|
+
"playSoundOnComplete" BOOLEAN NOT NULL DEFAULT true,
|
|
11
|
+
"autoFixCiIssues" BOOLEAN NOT NULL DEFAULT false,
|
|
12
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
13
|
+
"updatedAt" DATETIME NOT NULL
|
|
14
|
+
);
|
|
15
|
+
INSERT INTO "new_UserSettings" ("createdAt", "customIdeCommand", "id", "notificationSoundPath", "preferredIde", "updatedAt", "userId") SELECT "createdAt", "customIdeCommand", "id", "notificationSoundPath", "preferredIde", "updatedAt", "userId" FROM "UserSettings";
|
|
16
|
+
DROP TABLE "UserSettings";
|
|
17
|
+
ALTER TABLE "new_UserSettings" RENAME TO "UserSettings";
|
|
18
|
+
CREATE UNIQUE INDEX "UserSettings_userId_key" ON "UserSettings"("userId");
|
|
19
|
+
CREATE INDEX "UserSettings_userId_idx" ON "UserSettings"("userId");
|
|
20
|
+
PRAGMA foreign_keys=ON;
|
|
21
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
-- RedefineTables
|
|
2
|
+
PRAGMA defer_foreign_keys=ON;
|
|
3
|
+
PRAGMA foreign_keys=OFF;
|
|
4
|
+
CREATE TABLE "new_UserSettings" (
|
|
5
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
6
|
+
"userId" TEXT NOT NULL DEFAULT 'default',
|
|
7
|
+
"preferredIde" TEXT NOT NULL DEFAULT 'cursor',
|
|
8
|
+
"customIdeCommand" TEXT,
|
|
9
|
+
"playSoundOnComplete" BOOLEAN NOT NULL DEFAULT true,
|
|
10
|
+
"cachedSlashCommands" TEXT,
|
|
11
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
12
|
+
"updatedAt" DATETIME NOT NULL
|
|
13
|
+
);
|
|
14
|
+
INSERT INTO "new_UserSettings" ("createdAt", "customIdeCommand", "id", "playSoundOnComplete", "preferredIde", "updatedAt", "userId") SELECT "createdAt", "customIdeCommand", "id", "playSoundOnComplete", "preferredIde", "updatedAt", "userId" FROM "UserSettings";
|
|
15
|
+
DROP TABLE "UserSettings";
|
|
16
|
+
ALTER TABLE "new_UserSettings" RENAME TO "UserSettings";
|
|
17
|
+
CREATE UNIQUE INDEX "UserSettings_userId_key" ON "UserSettings"("userId");
|
|
18
|
+
CREATE INDEX "UserSettings_userId_idx" ON "UserSettings"("userId");
|
|
19
|
+
PRAGMA foreign_keys=ON;
|
|
20
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Warnings:
|
|
3
|
+
|
|
4
|
+
- You are about to alter the column `cachedSlashCommands` on the `UserSettings` table. The data in that column could be lost. The data in that column will be cast from `String` to `Json`.
|
|
5
|
+
- You are about to alter the column `workspaceOrder` on the `UserSettings` table. The data in that column could be lost. The data in that column will be cast from `String` to `Json`.
|
|
6
|
+
|
|
7
|
+
*/
|
|
8
|
+
-- RedefineTables
|
|
9
|
+
PRAGMA defer_foreign_keys=ON;
|
|
10
|
+
PRAGMA foreign_keys=OFF;
|
|
11
|
+
CREATE TABLE "new_UserSettings" (
|
|
12
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
13
|
+
"userId" TEXT NOT NULL DEFAULT 'default',
|
|
14
|
+
"preferredIde" TEXT NOT NULL DEFAULT 'cursor',
|
|
15
|
+
"customIdeCommand" TEXT,
|
|
16
|
+
"playSoundOnComplete" BOOLEAN NOT NULL DEFAULT true,
|
|
17
|
+
"notificationSoundPath" TEXT,
|
|
18
|
+
"workspaceOrder" JSONB,
|
|
19
|
+
"cachedSlashCommands" JSONB,
|
|
20
|
+
"autoFixCiIssues" BOOLEAN NOT NULL DEFAULT false,
|
|
21
|
+
"autoFixPrReviewComments" BOOLEAN NOT NULL DEFAULT false,
|
|
22
|
+
"prReviewFixAllowedUsers" JSONB,
|
|
23
|
+
"prReviewFixPrompt" TEXT,
|
|
24
|
+
"ratchetEnabled" BOOLEAN NOT NULL DEFAULT false,
|
|
25
|
+
"ratchetAutoFixCi" BOOLEAN NOT NULL DEFAULT true,
|
|
26
|
+
"ratchetAutoFixConflicts" BOOLEAN NOT NULL DEFAULT true,
|
|
27
|
+
"ratchetAutoFixReviews" BOOLEAN NOT NULL DEFAULT true,
|
|
28
|
+
"ratchetAutoMerge" BOOLEAN NOT NULL DEFAULT false,
|
|
29
|
+
"ratchetAllowedReviewers" JSONB,
|
|
30
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
31
|
+
"updatedAt" DATETIME NOT NULL
|
|
32
|
+
);
|
|
33
|
+
INSERT INTO "new_UserSettings" ("cachedSlashCommands", "createdAt", "customIdeCommand", "id", "playSoundOnComplete", "preferredIde", "updatedAt", "userId", "workspaceOrder") SELECT "cachedSlashCommands", "createdAt", "customIdeCommand", "id", "playSoundOnComplete", "preferredIde", "updatedAt", "userId", "workspaceOrder" FROM "UserSettings";
|
|
34
|
+
DROP TABLE "UserSettings";
|
|
35
|
+
ALTER TABLE "new_UserSettings" RENAME TO "UserSettings";
|
|
36
|
+
CREATE UNIQUE INDEX "UserSettings_userId_key" ON "UserSettings"("userId");
|
|
37
|
+
CREATE INDEX "UserSettings_userId_idx" ON "UserSettings"("userId");
|
|
38
|
+
CREATE TABLE "new_Workspace" (
|
|
39
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
40
|
+
"projectId" TEXT NOT NULL,
|
|
41
|
+
"name" TEXT NOT NULL,
|
|
42
|
+
"description" TEXT,
|
|
43
|
+
"status" TEXT NOT NULL DEFAULT 'NEW',
|
|
44
|
+
"worktreePath" TEXT,
|
|
45
|
+
"branchName" TEXT,
|
|
46
|
+
"initErrorMessage" TEXT,
|
|
47
|
+
"initOutput" TEXT,
|
|
48
|
+
"initStartedAt" DATETIME,
|
|
49
|
+
"initCompletedAt" DATETIME,
|
|
50
|
+
"initRetryCount" INTEGER NOT NULL DEFAULT 0,
|
|
51
|
+
"runScriptCommand" TEXT,
|
|
52
|
+
"runScriptCleanupCommand" TEXT,
|
|
53
|
+
"runScriptPid" INTEGER,
|
|
54
|
+
"runScriptPort" INTEGER,
|
|
55
|
+
"runScriptStartedAt" DATETIME,
|
|
56
|
+
"runScriptStatus" TEXT NOT NULL DEFAULT 'IDLE',
|
|
57
|
+
"prUrl" TEXT,
|
|
58
|
+
"githubIssueNumber" INTEGER,
|
|
59
|
+
"githubIssueUrl" TEXT,
|
|
60
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
61
|
+
"updatedAt" DATETIME NOT NULL,
|
|
62
|
+
"prNumber" INTEGER,
|
|
63
|
+
"prState" TEXT NOT NULL DEFAULT 'NONE',
|
|
64
|
+
"prReviewState" TEXT,
|
|
65
|
+
"prCiStatus" TEXT NOT NULL DEFAULT 'UNKNOWN',
|
|
66
|
+
"prUpdatedAt" DATETIME,
|
|
67
|
+
"prCiFailedAt" DATETIME,
|
|
68
|
+
"prCiLastNotifiedAt" DATETIME,
|
|
69
|
+
"prReviewLastCheckedAt" DATETIME,
|
|
70
|
+
"prReviewLastCommentId" TEXT,
|
|
71
|
+
"ratchetState" TEXT NOT NULL DEFAULT 'IDLE',
|
|
72
|
+
"ratchetLastCheckedAt" DATETIME,
|
|
73
|
+
"ratchetActiveSessionId" TEXT,
|
|
74
|
+
"ratchetLastCiRunId" TEXT,
|
|
75
|
+
"ratchetLastNotifiedState" TEXT,
|
|
76
|
+
"hasHadSessions" BOOLEAN NOT NULL DEFAULT false,
|
|
77
|
+
"cachedKanbanColumn" TEXT NOT NULL DEFAULT 'BACKLOG',
|
|
78
|
+
"stateComputedAt" DATETIME,
|
|
79
|
+
CONSTRAINT "Workspace_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
|
|
80
|
+
);
|
|
81
|
+
INSERT INTO "new_Workspace" ("branchName", "cachedKanbanColumn", "createdAt", "description", "githubIssueNumber", "githubIssueUrl", "hasHadSessions", "id", "initCompletedAt", "initErrorMessage", "initOutput", "initRetryCount", "initStartedAt", "name", "prCiFailedAt", "prCiLastNotifiedAt", "prCiStatus", "prNumber", "prReviewState", "prState", "prUpdatedAt", "prUrl", "projectId", "runScriptCleanupCommand", "runScriptCommand", "runScriptPid", "runScriptPort", "runScriptStartedAt", "runScriptStatus", "stateComputedAt", "status", "updatedAt", "worktreePath") SELECT "branchName", "cachedKanbanColumn", "createdAt", "description", "githubIssueNumber", "githubIssueUrl", "hasHadSessions", "id", "initCompletedAt", "initErrorMessage", "initOutput", "initRetryCount", "initStartedAt", "name", "prCiFailedAt", "prCiLastNotifiedAt", "prCiStatus", "prNumber", "prReviewState", "prState", "prUpdatedAt", "prUrl", "projectId", "runScriptCleanupCommand", "runScriptCommand", "runScriptPid", "runScriptPort", "runScriptStartedAt", "runScriptStatus", "stateComputedAt", "status", "updatedAt", "worktreePath" FROM "Workspace";
|
|
82
|
+
DROP TABLE "Workspace";
|
|
83
|
+
ALTER TABLE "new_Workspace" RENAME TO "Workspace";
|
|
84
|
+
CREATE INDEX "Workspace_projectId_idx" ON "Workspace"("projectId");
|
|
85
|
+
CREATE INDEX "Workspace_status_idx" ON "Workspace"("status");
|
|
86
|
+
CREATE INDEX "Workspace_cachedKanbanColumn_idx" ON "Workspace"("cachedKanbanColumn");
|
|
87
|
+
CREATE INDEX "Workspace_projectId_status_idx" ON "Workspace"("projectId", "status");
|
|
88
|
+
CREATE INDEX "Workspace_projectId_cachedKanbanColumn_idx" ON "Workspace"("projectId", "cachedKanbanColumn");
|
|
89
|
+
PRAGMA foreign_keys=ON;
|
|
90
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
-- Simplify KanbanColumn enum from 7 values to 3: WORKING, WAITING, DONE
|
|
2
|
+
-- Migration strategy:
|
|
3
|
+
-- - BACKLOG, IN_PROGRESS -> WORKING (initializing or actively working)
|
|
4
|
+
-- - PR_OPEN, WAITING, APPROVED -> WAITING (idle, waiting for input)
|
|
5
|
+
-- - MERGED, DONE -> DONE (completed)
|
|
6
|
+
|
|
7
|
+
-- Step 1: Update existing cachedKanbanColumn values to new enum values
|
|
8
|
+
UPDATE "Workspace"
|
|
9
|
+
SET "cachedKanbanColumn" = CASE
|
|
10
|
+
WHEN "cachedKanbanColumn" IN ('BACKLOG', 'IN_PROGRESS') THEN 'WORKING'
|
|
11
|
+
WHEN "cachedKanbanColumn" IN ('PR_OPEN', 'WAITING', 'APPROVED') THEN 'WAITING'
|
|
12
|
+
WHEN "cachedKanbanColumn" IN ('MERGED', 'DONE') THEN 'DONE'
|
|
13
|
+
ELSE 'WAITING'
|
|
14
|
+
END;
|
|
15
|
+
|
|
16
|
+
-- Step 2: Recreate table with new default value (WAITING instead of BACKLOG)
|
|
17
|
+
-- RedefineTables
|
|
18
|
+
PRAGMA defer_foreign_keys=ON;
|
|
19
|
+
PRAGMA foreign_keys=OFF;
|
|
20
|
+
CREATE TABLE "new_Workspace" (
|
|
21
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
22
|
+
"projectId" TEXT NOT NULL,
|
|
23
|
+
"name" TEXT NOT NULL,
|
|
24
|
+
"description" TEXT,
|
|
25
|
+
"status" TEXT NOT NULL DEFAULT 'NEW',
|
|
26
|
+
"worktreePath" TEXT,
|
|
27
|
+
"branchName" TEXT,
|
|
28
|
+
"initErrorMessage" TEXT,
|
|
29
|
+
"initOutput" TEXT,
|
|
30
|
+
"initStartedAt" DATETIME,
|
|
31
|
+
"initCompletedAt" DATETIME,
|
|
32
|
+
"initRetryCount" INTEGER NOT NULL DEFAULT 0,
|
|
33
|
+
"runScriptCommand" TEXT,
|
|
34
|
+
"runScriptCleanupCommand" TEXT,
|
|
35
|
+
"runScriptPid" INTEGER,
|
|
36
|
+
"runScriptPort" INTEGER,
|
|
37
|
+
"runScriptStartedAt" DATETIME,
|
|
38
|
+
"runScriptStatus" TEXT NOT NULL DEFAULT 'IDLE',
|
|
39
|
+
"prUrl" TEXT,
|
|
40
|
+
"githubIssueNumber" INTEGER,
|
|
41
|
+
"githubIssueUrl" TEXT,
|
|
42
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
43
|
+
"updatedAt" DATETIME NOT NULL,
|
|
44
|
+
"prNumber" INTEGER,
|
|
45
|
+
"prState" TEXT NOT NULL DEFAULT 'NONE',
|
|
46
|
+
"prReviewState" TEXT,
|
|
47
|
+
"prCiStatus" TEXT NOT NULL DEFAULT 'UNKNOWN',
|
|
48
|
+
"prUpdatedAt" DATETIME,
|
|
49
|
+
"prCiFailedAt" DATETIME,
|
|
50
|
+
"prCiLastNotifiedAt" DATETIME,
|
|
51
|
+
"prReviewLastCheckedAt" DATETIME,
|
|
52
|
+
"prReviewLastCommentId" TEXT,
|
|
53
|
+
"ratchetState" TEXT NOT NULL DEFAULT 'IDLE',
|
|
54
|
+
"ratchetLastCheckedAt" DATETIME,
|
|
55
|
+
"ratchetActiveSessionId" TEXT,
|
|
56
|
+
"ratchetLastCiRunId" TEXT,
|
|
57
|
+
"ratchetLastNotifiedState" TEXT,
|
|
58
|
+
"hasHadSessions" BOOLEAN NOT NULL DEFAULT false,
|
|
59
|
+
"cachedKanbanColumn" TEXT NOT NULL DEFAULT 'WAITING',
|
|
60
|
+
"stateComputedAt" DATETIME,
|
|
61
|
+
CONSTRAINT "Workspace_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
|
|
62
|
+
);
|
|
63
|
+
INSERT INTO "new_Workspace" ("branchName", "cachedKanbanColumn", "createdAt", "description", "githubIssueNumber", "githubIssueUrl", "hasHadSessions", "id", "initCompletedAt", "initErrorMessage", "initOutput", "initRetryCount", "initStartedAt", "name", "prCiFailedAt", "prCiLastNotifiedAt", "prCiStatus", "prNumber", "prReviewLastCheckedAt", "prReviewLastCommentId", "prReviewState", "prState", "prUpdatedAt", "prUrl", "projectId", "ratchetActiveSessionId", "ratchetLastCheckedAt", "ratchetLastCiRunId", "ratchetLastNotifiedState", "ratchetState", "runScriptCleanupCommand", "runScriptCommand", "runScriptPid", "runScriptPort", "runScriptStartedAt", "runScriptStatus", "stateComputedAt", "status", "updatedAt", "worktreePath") SELECT "branchName", "cachedKanbanColumn", "createdAt", "description", "githubIssueNumber", "githubIssueUrl", "hasHadSessions", "id", "initCompletedAt", "initErrorMessage", "initOutput", "initRetryCount", "initStartedAt", "name", "prCiFailedAt", "prCiLastNotifiedAt", "prCiStatus", "prNumber", "prReviewLastCheckedAt", "prReviewLastCommentId", "prReviewState", "prState", "prUpdatedAt", "prUrl", "projectId", "ratchetActiveSessionId", "ratchetLastCheckedAt", "ratchetLastCiRunId", "ratchetLastNotifiedState", "ratchetState", "runScriptCleanupCommand", "runScriptCommand", "runScriptPid", "runScriptPort", "runScriptStartedAt", "runScriptStatus", "stateComputedAt", "status", "updatedAt", "worktreePath" FROM "Workspace";
|
|
64
|
+
DROP TABLE "Workspace";
|
|
65
|
+
ALTER TABLE "new_Workspace" RENAME TO "Workspace";
|
|
66
|
+
CREATE INDEX "Workspace_projectId_idx" ON "Workspace"("projectId");
|
|
67
|
+
CREATE INDEX "Workspace_status_idx" ON "Workspace"("status");
|
|
68
|
+
CREATE INDEX "Workspace_cachedKanbanColumn_idx" ON "Workspace"("cachedKanbanColumn");
|
|
69
|
+
CREATE INDEX "Workspace_projectId_status_idx" ON "Workspace"("projectId", "status");
|
|
70
|
+
CREATE INDEX "Workspace_projectId_cachedKanbanColumn_idx" ON "Workspace"("projectId", "cachedKanbanColumn");
|
|
71
|
+
PRAGMA foreign_keys=ON;
|
|
72
|
+
PRAGMA defer_foreign_keys=OFF;
|
package/prisma/schema.prisma
CHANGED
|
@@ -46,15 +46,21 @@ enum CIStatus {
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
enum KanbanColumn {
|
|
49
|
-
|
|
50
|
-
IN_PROGRESS
|
|
49
|
+
WORKING
|
|
51
50
|
WAITING
|
|
52
|
-
PR_OPEN
|
|
53
|
-
APPROVED
|
|
54
|
-
MERGED
|
|
55
51
|
DONE
|
|
56
52
|
}
|
|
57
53
|
|
|
54
|
+
enum RatchetState {
|
|
55
|
+
IDLE // No PR or ratchet not active for this workspace
|
|
56
|
+
CI_RUNNING // CI checks in progress
|
|
57
|
+
CI_FAILED // CI checks failed
|
|
58
|
+
MERGE_CONFLICT // Has merge conflicts with base branch
|
|
59
|
+
REVIEW_PENDING // Has unaddressed review comments
|
|
60
|
+
READY // Ready to merge (CI green, no conflicts, no pending reviews)
|
|
61
|
+
MERGED // PR has been merged
|
|
62
|
+
}
|
|
63
|
+
|
|
58
64
|
|
|
59
65
|
// Models
|
|
60
66
|
model Project {
|
|
@@ -104,9 +110,11 @@ model Workspace {
|
|
|
104
110
|
status WorkspaceStatus @default(NEW)
|
|
105
111
|
worktreePath String?
|
|
106
112
|
branchName String?
|
|
113
|
+
isAutoGeneratedBranch Boolean @default(false) // True if branch was auto-generated at creation time
|
|
107
114
|
|
|
108
115
|
// Initialization tracking (used by NEW, PROVISIONING, FAILED states)
|
|
109
116
|
initErrorMessage String?
|
|
117
|
+
initOutput String? // Accumulated stdout/stderr from startup script
|
|
110
118
|
initStartedAt DateTime?
|
|
111
119
|
initCompletedAt DateTime?
|
|
112
120
|
initRetryCount Int @default(0)
|
|
@@ -138,11 +146,24 @@ model Workspace {
|
|
|
138
146
|
prCiFailedAt DateTime? // When CI first failed (cleared on success)
|
|
139
147
|
prCiLastNotifiedAt DateTime? // Last time we notified about CI failure
|
|
140
148
|
|
|
149
|
+
// PR Review tracking
|
|
150
|
+
prReviewLastCheckedAt DateTime? // When PR review comments were last checked
|
|
151
|
+
prReviewLastCommentId String? // ID of the last processed review comment
|
|
152
|
+
|
|
153
|
+
// Ratchet tracking (centralized PR progression)
|
|
154
|
+
ratchetEnabled Boolean @default(true) // Workspace-level ratchet toggle
|
|
155
|
+
ratchetState RatchetState @default(IDLE) // Current state in the ratchet progression
|
|
156
|
+
ratchetLastCheckedAt DateTime? // When ratchet last checked this workspace
|
|
157
|
+
ratchetLastPushAt DateTime? // When a push was last detected (for temporary ratchet animation)
|
|
158
|
+
ratchetActiveSessionId String? // ID of active fixer session (if any)
|
|
159
|
+
ratchetLastCiRunId String? // Track which CI run we processed
|
|
160
|
+
ratchetLastNotifiedState RatchetState? // Last state we notified the fixer about
|
|
161
|
+
|
|
141
162
|
// Activity tracking
|
|
142
163
|
hasHadSessions Boolean @default(false)
|
|
143
164
|
|
|
144
165
|
// Cached kanban column (for list performance)
|
|
145
|
-
cachedKanbanColumn KanbanColumn @default(
|
|
166
|
+
cachedKanbanColumn KanbanColumn @default(WAITING)
|
|
146
167
|
stateComputedAt DateTime? // Last kanban column computation
|
|
147
168
|
|
|
148
169
|
@@index([projectId])
|
|
@@ -185,18 +206,41 @@ model TerminalSession {
|
|
|
185
206
|
}
|
|
186
207
|
|
|
187
208
|
model UserSettings {
|
|
188
|
-
id
|
|
189
|
-
userId
|
|
209
|
+
id String @id @default(cuid())
|
|
210
|
+
userId String @default("default") @unique // Single user for now, expandable later
|
|
190
211
|
|
|
191
212
|
// IDE Settings
|
|
192
|
-
preferredIde
|
|
193
|
-
customIdeCommand
|
|
213
|
+
preferredIde String @default("cursor") // "cursor" | "vscode" | "custom"
|
|
214
|
+
customIdeCommand String? // For custom IDE, supports placeholders like {workspace}
|
|
194
215
|
|
|
195
216
|
// Notification Settings
|
|
196
|
-
playSoundOnComplete
|
|
217
|
+
playSoundOnComplete Boolean @default(true) // Play sound when workspace completes
|
|
218
|
+
notificationSoundPath String? // Path to custom notification sound file
|
|
219
|
+
|
|
220
|
+
// Sidebar Settings
|
|
221
|
+
workspaceOrder Json? // { [projectId]: string[] } - ordered workspace IDs per project
|
|
222
|
+
|
|
223
|
+
// Cached slash commands (from Claude CLI initialize response)
|
|
224
|
+
cachedSlashCommands Json?
|
|
225
|
+
|
|
226
|
+
// CI Settings (deprecated - use ratchet settings)
|
|
227
|
+
autoFixCiIssues Boolean @default(false) // Global toggle for CI auto-fixing
|
|
228
|
+
|
|
229
|
+
// PR Review Auto-Fix Settings (deprecated - use ratchet settings)
|
|
230
|
+
autoFixPrReviewComments Boolean @default(false) // Global toggle for PR review auto-fixing
|
|
231
|
+
prReviewFixAllowedUsers Json? // Array of GitHub usernames whose comments trigger auto-fix
|
|
232
|
+
prReviewFixPrompt String? // Custom instructions for the PR review fixing session
|
|
233
|
+
|
|
234
|
+
// Ratchet Settings (unified PR progression)
|
|
235
|
+
ratchetEnabled Boolean @default(false) // Default for new GitHub-issue-created workspaces
|
|
236
|
+
ratchetAutoFixCi Boolean @default(true) // Auto-fix CI failures
|
|
237
|
+
ratchetAutoFixConflicts Boolean @default(true) // Auto-resolve merge conflicts
|
|
238
|
+
ratchetAutoFixReviews Boolean @default(true) // Auto-address review comments
|
|
239
|
+
ratchetAutoMerge Boolean @default(false) // Auto-merge when ready
|
|
240
|
+
ratchetAllowedReviewers Json? // GitHub usernames whose reviews trigger auto-fix
|
|
197
241
|
|
|
198
|
-
createdAt
|
|
199
|
-
updatedAt
|
|
242
|
+
createdAt DateTime @default(now())
|
|
243
|
+
updatedAt DateTime @updatedAt
|
|
200
244
|
|
|
201
245
|
@@index([userId])
|
|
202
246
|
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: CI Fix
|
|
3
|
+
description: Investigate and fix CI failures
|
|
4
|
+
expectsPR: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# CI Failure Resolution
|
|
8
|
+
|
|
9
|
+
You are investigating and fixing CI failures for this workspace's pull request. Your goal is to get the CI checks passing.
|
|
10
|
+
|
|
11
|
+
## Workflow Steps
|
|
12
|
+
|
|
13
|
+
### 1. Understand the Failures
|
|
14
|
+
- Review the CI failure information provided in the initial message
|
|
15
|
+
- Use `gh pr checks <pr-number>` to see current check status
|
|
16
|
+
- Use `gh run view <run-id> --log-failed` to see detailed failure logs
|
|
17
|
+
|
|
18
|
+
### 2. Diagnose Root Cause
|
|
19
|
+
- Identify which specific tests or checks are failing
|
|
20
|
+
- Understand why each is failing (test logic, code bug, environment issue, flaky test)
|
|
21
|
+
- Prioritize fixes based on impact
|
|
22
|
+
|
|
23
|
+
### 3. Implement Fixes
|
|
24
|
+
- Fix the underlying issues causing the failures
|
|
25
|
+
- Run failing tests locally to verify your fix works: `pnpm test <test-file>`
|
|
26
|
+
- Keep changes focused on fixing CI - avoid unrelated improvements
|
|
27
|
+
|
|
28
|
+
### 4. Verify Locally
|
|
29
|
+
- Run the full test suite: `pnpm test`
|
|
30
|
+
- Run type checking: `pnpm typecheck`
|
|
31
|
+
- Run linting: `pnpm check:fix`
|
|
32
|
+
|
|
33
|
+
### 5. Commit and Push
|
|
34
|
+
- Commit your fixes with clear messages explaining what was fixed
|
|
35
|
+
- Push to the branch: `git push`
|
|
36
|
+
- The CI will automatically re-run
|
|
37
|
+
|
|
38
|
+
## Guidelines
|
|
39
|
+
|
|
40
|
+
- **Focus on CI failures only**: Don't refactor or improve unrelated code
|
|
41
|
+
- **One fix at a time**: Commit each logical fix separately for easier review
|
|
42
|
+
- **Verify locally first**: Run tests locally before pushing to avoid CI cycles
|
|
43
|
+
- **Handle flaky tests**: If a test is flaky, fix the flakiness rather than just re-running
|
|
44
|
+
- **Communicate blockers**: If you cannot determine the cause of a failure, explain what you've tried
|
|
45
|
+
|
|
46
|
+
## Common CI Failure Patterns
|
|
47
|
+
|
|
48
|
+
- **Type errors**: Run `pnpm typecheck` and fix any issues
|
|
49
|
+
- **Lint errors**: Run `pnpm check:fix` to auto-fix, then review remaining issues
|
|
50
|
+
- **Test failures**: Read the test output carefully, reproduce locally, fix the code or test
|
|
51
|
+
- **Build failures**: Check for missing dependencies or syntax errors
|
|
52
|
+
- **Timeout issues**: Look for infinite loops or very slow operations
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: PR Review Fix
|
|
3
|
+
description: Address PR review comments and feedback
|
|
4
|
+
expectsPR: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# PR Review Comment Resolution
|
|
8
|
+
|
|
9
|
+
You are addressing PR review comments for this workspace's pull request. Your goal is to implement the requested changes and satisfy the reviewers.
|
|
10
|
+
|
|
11
|
+
## Workflow Steps
|
|
12
|
+
|
|
13
|
+
### 1. Understand the Feedback
|
|
14
|
+
- Review the comments provided in the initial message carefully
|
|
15
|
+
- Pay attention to both inline code comments and general review comments
|
|
16
|
+
- Understand what changes each reviewer is requesting
|
|
17
|
+
- Note any questions or clarifications the reviewer is asking for
|
|
18
|
+
|
|
19
|
+
### 2. Plan Your Changes
|
|
20
|
+
- Identify which files need to be modified
|
|
21
|
+
- Determine the scope of changes needed
|
|
22
|
+
- Consider if the requested change impacts other parts of the codebase
|
|
23
|
+
- If a request is unclear, make a reasonable interpretation and document your assumptions
|
|
24
|
+
|
|
25
|
+
### 3. Implement the Changes
|
|
26
|
+
- Address each review comment systematically
|
|
27
|
+
- Make focused changes that directly address the feedback
|
|
28
|
+
- Avoid scope creep - only fix what was requested
|
|
29
|
+
- If you disagree with a suggestion, implement it anyway but note your reasoning in the commit message
|
|
30
|
+
|
|
31
|
+
### 4. Verify Your Changes
|
|
32
|
+
- Run the test suite: `pnpm test`
|
|
33
|
+
- Run type checking: `pnpm typecheck`
|
|
34
|
+
- Run linting: `pnpm check:fix`
|
|
35
|
+
- Test any affected functionality manually if appropriate
|
|
36
|
+
|
|
37
|
+
### 5. Commit and Push
|
|
38
|
+
- Commit your changes with clear messages referencing the review feedback
|
|
39
|
+
- Push to the branch: `git push`
|
|
40
|
+
- The reviewers will be notified of your updates
|
|
41
|
+
|
|
42
|
+
### 6. Request Re-review
|
|
43
|
+
- After pushing your changes, post a comment on the PR asking reviewers to re-review
|
|
44
|
+
- Mention the specific reviewers who left comments using @username
|
|
45
|
+
|
|
46
|
+
## Guidelines
|
|
47
|
+
|
|
48
|
+
- **Address all comments**: Don't leave any review comment unaddressed
|
|
49
|
+
- **Keep changes focused**: Only change what was requested in the reviews
|
|
50
|
+
- **Test thoroughly**: Make sure your changes don't break existing functionality
|
|
51
|
+
- **Be responsive**: Implement changes promptly to keep the PR moving
|
|
52
|
+
- **Document decisions**: If you make judgment calls, explain your reasoning
|
|
53
|
+
|
|
54
|
+
## Common Review Comment Types
|
|
55
|
+
|
|
56
|
+
- **Code style**: Follow the project's coding conventions
|
|
57
|
+
- **Bug fix requests**: Understand the bug and fix it properly
|
|
58
|
+
- **Refactoring suggestions**: Implement the cleaner code pattern suggested
|
|
59
|
+
- **Missing tests**: Add tests for the functionality as requested
|
|
60
|
+
- **Documentation**: Add or improve comments and documentation
|
|
61
|
+
- **Logic changes**: Implement the alternative approach suggested
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Ratchet
|
|
3
|
+
description: Automatically progress PR toward merge by fixing issues
|
|
4
|
+
expectsPR: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Ratchet - Automatic PR Progression
|
|
8
|
+
|
|
9
|
+
You are the Ratchet agent, responsible for automatically progressing this PR toward merge. You will receive notifications about different issues (CI failures, merge conflicts, review comments) and should address them systematically.
|
|
10
|
+
|
|
11
|
+
## Your Role
|
|
12
|
+
|
|
13
|
+
The Ratchet system monitors PRs and notifies you when action is needed. You may be asked to:
|
|
14
|
+
|
|
15
|
+
1. **Fix CI failures** - Investigate and fix broken tests, type errors, or lint issues
|
|
16
|
+
2. **Resolve merge conflicts** - Merge the base branch and resolve any conflicts
|
|
17
|
+
3. **Address review comments** - Implement changes requested by reviewers
|
|
18
|
+
|
|
19
|
+
## Handling Multiple Issues
|
|
20
|
+
|
|
21
|
+
You may receive notifications about new issues while working on something else. Follow this priority:
|
|
22
|
+
|
|
23
|
+
1. **CI failures** (highest priority) - Always address immediately
|
|
24
|
+
2. **Merge conflicts** - Address before continuing other work
|
|
25
|
+
3. **Review comments** - Address after CI is green and no conflicts
|
|
26
|
+
|
|
27
|
+
If you receive a notification about a higher-priority issue while working:
|
|
28
|
+
1. Stop your current work (don't push incomplete changes)
|
|
29
|
+
2. Address the new issue first
|
|
30
|
+
3. Resume your original task once the blocker is resolved
|
|
31
|
+
|
|
32
|
+
## Verification
|
|
33
|
+
|
|
34
|
+
Before considering any fix complete:
|
|
35
|
+
|
|
36
|
+
1. Run the test suite: `pnpm test`
|
|
37
|
+
2. Run type checking: `pnpm typecheck`
|
|
38
|
+
3. Run linting: `pnpm check:fix`
|
|
39
|
+
4. Check PR status: `gh pr checks <pr-number>`
|
|
40
|
+
|
|
41
|
+
Only push when all local checks pass.
|
|
42
|
+
|
|
43
|
+
## CI Failure Resolution
|
|
44
|
+
|
|
45
|
+
When notified of CI failures:
|
|
46
|
+
|
|
47
|
+
1. Use `gh pr checks <pr-number>` to see current status
|
|
48
|
+
2. Use `gh run view <run-id> --log-failed` to see detailed logs
|
|
49
|
+
3. Identify the root cause
|
|
50
|
+
4. Implement a fix
|
|
51
|
+
5. Verify locally before pushing
|
|
52
|
+
|
|
53
|
+
## Merge Conflict Resolution
|
|
54
|
+
|
|
55
|
+
When notified of merge conflicts:
|
|
56
|
+
|
|
57
|
+
1. Fetch latest: `git fetch origin`
|
|
58
|
+
2. Merge base branch: `git merge origin/main`
|
|
59
|
+
3. Resolve conflicts in each file:
|
|
60
|
+
- Understand both sides of the change
|
|
61
|
+
- Preserve functionality from both when possible
|
|
62
|
+
- If unsure, prefer the main branch changes
|
|
63
|
+
4. Run tests to verify the merge
|
|
64
|
+
5. Commit: `git commit -m "Merge main into feature branch"`
|
|
65
|
+
6. Push: `git push`
|
|
66
|
+
|
|
67
|
+
## Review Comment Resolution
|
|
68
|
+
|
|
69
|
+
When notified of review comments:
|
|
70
|
+
|
|
71
|
+
1. Read and understand each comment
|
|
72
|
+
2. Plan the necessary changes
|
|
73
|
+
3. Implement changes to address feedback
|
|
74
|
+
4. Verify with tests
|
|
75
|
+
5. Commit and push
|
|
76
|
+
6. Request re-review from the reviewers
|
|
77
|
+
|
|
78
|
+
## Guidelines
|
|
79
|
+
|
|
80
|
+
- **Focus on the current issue**: Don't refactor or improve unrelated code
|
|
81
|
+
- **Keep commits focused**: One logical change per commit
|
|
82
|
+
- **Test before pushing**: Always run local checks first
|
|
83
|
+
- **Communicate blockers**: If you cannot resolve an issue, explain what you've tried
|