factory-factory 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (707) hide show
  1. package/README.md +1 -1
  2. package/dist/client/assets/abnfDiagram-VRR7QNED-Bz06FkfB.js +1 -0
  3. package/dist/client/assets/arc--1iscGgN.js +1 -0
  4. package/dist/client/assets/architectureDiagram-ZJ3FMSHR-Ds-52hDI.js +36 -0
  5. package/dist/client/assets/blockDiagram-677ZJIJ3-DZwPPZmp.js +132 -0
  6. package/dist/client/assets/{c4Diagram-AAUBKEIU-CT8hJB-h.js → c4Diagram-LMCZKHZV-RQch21fC.js} +1 -1
  7. package/dist/client/assets/channel-DFzHt_cl.js +1 -0
  8. package/dist/client/assets/{chunk-QZHKN3VN-Ce3Q_vrs.js → chunk-2Q5K7J3B-Df6Q19iI.js} +1 -1
  9. package/dist/client/assets/{chunk-ND2GUHAM-Qhi4WqzZ.js → chunk-32BRIVSS-DlbaZtVC.js} +1 -1
  10. package/dist/client/assets/{chunk-FMBD7UC4-B4C3KvLe.js → chunk-5VM5RSS4-KgkMhS6k.js} +1 -1
  11. package/dist/client/assets/chunk-EX3LRPZG-DAfTWCem.js +231 -0
  12. package/dist/client/assets/{chunk-4BX2VUAB-km6NpEMz.js → chunk-JWPE2WC7-D6Y5C5Yz.js} +1 -1
  13. package/dist/client/assets/chunk-MOJQB5TN-B_P4pqPC.js +88 -0
  14. package/dist/client/assets/chunk-RYQCIY6F-CzFboHFv.js +1 -0
  15. package/dist/client/assets/{chunk-727SXJPM-Bp-ts2at.js → chunk-V7JOEXUC-8yT3lW_D.js} +5 -5
  16. package/dist/client/assets/{chunk-2J33WTMH-B0h8q8fD.js → chunk-VR4S4FIN-B_QG1di-.js} +1 -1
  17. package/dist/client/assets/{chunk-55IACEB6-COUWt3oA.js → chunk-XXDRQBXY-CzL4_omu.js} +1 -1
  18. package/dist/client/assets/classDiagram-OUVF2IWQ-IkvZ4qsF.js +1 -0
  19. package/dist/client/assets/classDiagram-v2-EOCWNBFH-IkvZ4qsF.js +1 -0
  20. package/dist/client/assets/{cose-bilkent-S5V4N54A-D6QofwFq.js → cose-bilkent-JH36ORCC-DmZLPx5-.js} +1 -1
  21. package/dist/client/assets/cynefin-VYW2F7L2-DUejQU5F.js +166 -0
  22. package/dist/client/assets/cynefinDiagram-TSTJHNR4-BjallChk.js +62 -0
  23. package/dist/client/assets/cytoscape.esm-D3_iZ_3b.js +321 -0
  24. package/dist/client/assets/dagre-VKFMJZFB-COdOy8Kp.js +4 -0
  25. package/dist/client/assets/{diagram-KO2AKTUF-B9ABz-Wk.js → diagram-FQU43EPY-C8Xk7Fyh.js} +3 -3
  26. package/dist/client/assets/diagram-G47NLZAW-B_qqKBqq.js +24 -0
  27. package/dist/client/assets/diagram-NH7WQ7WH-DS1-6fzl.js +24 -0
  28. package/dist/client/assets/diagram-OA4YK3LP-enaDU5V4.js +30 -0
  29. package/dist/client/assets/diagram-WEI45ONY-Cx6LFRuh.js +41 -0
  30. package/dist/client/assets/ebnfDiagram-CCIWWBDH-DVGMcsj6.js +1 -0
  31. package/dist/client/assets/erDiagram-Q63AITRT-DCsDfIB_.js +85 -0
  32. package/dist/client/assets/flowDiagram-23GEKE2U-C5QCjsF8.js +156 -0
  33. package/dist/client/assets/ganttDiagram-NO4QXBWP-CLvtSsZ-.js +292 -0
  34. package/dist/client/assets/gitGraphDiagram-IHSO6WYX-BS6vNDTo.js +106 -0
  35. package/dist/client/assets/{graph--OzhPTMs.js → graph-DOmOIIwC.js} +1 -1
  36. package/dist/client/assets/index-0-xpZu6O.js +689 -0
  37. package/dist/client/assets/index-CxLzpVmH.css +1 -0
  38. package/dist/client/assets/infoDiagram-FWYZ7A6U-CIuYQAoE.js +2 -0
  39. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-BLrvV5ke.js → ishikawaDiagram-FXEZZL3T-DeVUVV8X.js} +5 -5
  40. package/dist/client/assets/{journeyDiagram-JHISSGLW-B2-TMwJI.js → journeyDiagram-5HDEW3XC-BsmmwqMS.js} +3 -3
  41. package/dist/client/assets/{kanban-definition-UN3LZRKU-B5mGKgYF.js → kanban-definition-HUTT4EX6-D-mDPzR0.js} +20 -20
  42. package/dist/client/assets/katex-HP8lGamR.js +257 -0
  43. package/dist/client/assets/layout-D-LzfAck.js +1 -0
  44. package/dist/client/assets/{linear-ConE9euY.js → linear-BSdMIO3_.js} +1 -1
  45. package/dist/client/assets/map-DxJ2ADlA.js +1 -0
  46. package/dist/client/assets/{mindmap-definition-RKZ34NQL-B0BaMk8D.js → mindmap-definition-LN4V7U3C-DOuSISM2.js} +3 -3
  47. package/dist/client/assets/{mobile-baseline-DWCt7ZGJ.js → mobile-baseline-C-1Tc5b_.js} +1 -1
  48. package/dist/client/assets/pegDiagram-2B236MQR-C8CMsmVK.js +1 -0
  49. package/dist/client/assets/pieDiagram-ENE6RG2P-B1UfUhQO.js +39 -0
  50. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DDbeggF4.js → quadrantDiagram-ABIIQ3AL-DujmyYtF.js} +3 -3
  51. package/dist/client/assets/railroadDiagram-RFXS5EU6-DaF-IoiS.js +1 -0
  52. package/dist/client/assets/{requirementDiagram-4Y6WPE33-Cc3ozz7U.js → requirementDiagram-TGXJPOKE-dfpBVIPb.js} +1 -1
  53. package/dist/client/assets/sankeyDiagram-HTMAVEWB-BYCvwHlS.js +40 -0
  54. package/dist/client/assets/sequenceDiagram-DBY2YBRQ-DOdQoxUf.js +162 -0
  55. package/dist/client/assets/sizeCapture-X5ZJPWSS-9sUXw3Q8.js +1 -0
  56. package/dist/client/assets/stateDiagram-2N3HPSRC-QZszWUA_.js +1 -0
  57. package/dist/client/assets/stateDiagram-v2-6OUMAXLB-CueME36n.js +1 -0
  58. package/dist/client/assets/swimlanes-5IMT3BWC-CtEVTRNN.js +2 -0
  59. package/dist/client/assets/swimlanesDiagram-G3AALYLV-DITFxuwY.js +8 -0
  60. package/dist/client/assets/{terminal-instance-CDKJdDaO.js → terminal-instance-nU4PXHMm.js} +1 -1
  61. package/dist/client/assets/{timeline-definition-PNZ67QCA-CyxBqgqv.js → timeline-definition-FHXFAJF6-0fOfnsxU.js} +3 -3
  62. package/dist/client/assets/vennDiagram-L72KCM5P-5eWMXdkg.js +34 -0
  63. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-CjJBpd3P.js → wardleyDiagram-EHGQE667-BwNCxx2w.js} +4 -4
  64. package/dist/client/assets/xychartDiagram-FW5EYKEG-VIc8vlw6.js +7 -0
  65. package/dist/client/index.html +2 -2
  66. package/dist/prisma/generated/browser.d.ts +4 -0
  67. package/dist/prisma/generated/browser.d.ts.map +1 -1
  68. package/dist/prisma/generated/client.d.ts +4 -0
  69. package/dist/prisma/generated/client.d.ts.map +1 -1
  70. package/dist/prisma/generated/commonInputTypes.d.ts +88 -148
  71. package/dist/prisma/generated/commonInputTypes.d.ts.map +1 -1
  72. package/dist/prisma/generated/enums.d.ts +0 -6
  73. package/dist/prisma/generated/enums.d.ts.map +1 -1
  74. package/dist/prisma/generated/enums.js +0 -5
  75. package/dist/prisma/generated/enums.js.map +1 -1
  76. package/dist/prisma/generated/internal/class.d.ts +16 -2
  77. package/dist/prisma/generated/internal/class.d.ts.map +1 -1
  78. package/dist/prisma/generated/internal/class.js +6 -6
  79. package/dist/prisma/generated/internal/class.js.map +1 -1
  80. package/dist/prisma/generated/internal/prismaNamespace.d.ts +370 -47
  81. package/dist/prisma/generated/internal/prismaNamespace.d.ts.map +1 -1
  82. package/dist/prisma/generated/internal/prismaNamespace.js +51 -37
  83. package/dist/prisma/generated/internal/prismaNamespace.js.map +1 -1
  84. package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts +52 -34
  85. package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts.map +1 -1
  86. package/dist/prisma/generated/internal/prismaNamespaceBrowser.js +49 -35
  87. package/dist/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  88. package/dist/prisma/generated/models/Workspace.d.ts +1017 -2537
  89. package/dist/prisma/generated/models/Workspace.d.ts.map +1 -1
  90. package/dist/prisma/generated/models/WorkspaceAutoIteration.d.ts +524 -0
  91. package/dist/prisma/generated/models/WorkspaceAutoIteration.d.ts.map +1 -0
  92. package/dist/prisma/generated/models/WorkspaceAutoIteration.js +2 -0
  93. package/dist/prisma/generated/models/WorkspaceAutoIteration.js.map +1 -0
  94. package/dist/prisma/generated/models/WorkspacePR.d.ts +858 -0
  95. package/dist/prisma/generated/models/WorkspacePR.d.ts.map +1 -0
  96. package/dist/prisma/generated/models/WorkspacePR.js +2 -0
  97. package/dist/prisma/generated/models/WorkspacePR.js.map +1 -0
  98. package/dist/prisma/generated/models/WorkspaceRatchet.d.ts +593 -0
  99. package/dist/prisma/generated/models/WorkspaceRatchet.d.ts.map +1 -0
  100. package/dist/prisma/generated/models/WorkspaceRatchet.js +2 -0
  101. package/dist/prisma/generated/models/WorkspaceRatchet.js.map +1 -0
  102. package/dist/prisma/generated/models/WorkspaceRunScript.d.ts +631 -0
  103. package/dist/prisma/generated/models/WorkspaceRunScript.d.ts.map +1 -0
  104. package/dist/prisma/generated/models/WorkspaceRunScript.js +2 -0
  105. package/dist/prisma/generated/models/WorkspaceRunScript.js.map +1 -0
  106. package/dist/prisma/generated/models.d.ts +4 -0
  107. package/dist/prisma/generated/models.d.ts.map +1 -1
  108. package/dist/src/backend/app-context.d.ts +4 -1
  109. package/dist/src/backend/app-context.d.ts.map +1 -1
  110. package/dist/src/backend/app-context.js +8 -6
  111. package/dist/src/backend/app-context.js.map +1 -1
  112. package/dist/src/backend/interceptors/auto-branch-rename.d.ts +19 -0
  113. package/dist/src/backend/interceptors/auto-branch-rename.d.ts.map +1 -0
  114. package/dist/src/backend/interceptors/auto-branch-rename.js +76 -0
  115. package/dist/src/backend/interceptors/auto-branch-rename.js.map +1 -0
  116. package/dist/src/backend/interceptors/branch-naming.interceptor.d.ts +4 -0
  117. package/dist/src/backend/interceptors/branch-naming.interceptor.d.ts.map +1 -0
  118. package/dist/src/backend/interceptors/branch-naming.interceptor.js +391 -0
  119. package/dist/src/backend/interceptors/branch-naming.interceptor.js.map +1 -0
  120. package/dist/src/backend/interceptors/branch-naming.interceptor.test.d.ts +2 -0
  121. package/dist/src/backend/interceptors/branch-naming.interceptor.test.d.ts.map +1 -0
  122. package/dist/src/backend/interceptors/branch-naming.interceptor.test.js +780 -0
  123. package/dist/src/backend/interceptors/branch-naming.interceptor.test.js.map +1 -0
  124. package/dist/src/backend/interceptors/branch-rename.utils.d.ts +1 -1
  125. package/dist/src/backend/interceptors/branch-rename.utils.d.ts.map +1 -1
  126. package/dist/src/backend/interceptors/branch-rename.utils.js +10 -14
  127. package/dist/src/backend/interceptors/branch-rename.utils.js.map +1 -1
  128. package/dist/src/backend/interceptors/index.d.ts.map +1 -1
  129. package/dist/src/backend/interceptors/index.js +2 -6
  130. package/dist/src/backend/interceptors/index.js.map +1 -1
  131. package/dist/src/backend/orchestration/data-backup.service.d.ts.map +1 -1
  132. package/dist/src/backend/orchestration/data-backup.service.js +103 -53
  133. package/dist/src/backend/orchestration/data-backup.service.js.map +1 -1
  134. package/dist/src/backend/orchestration/data-backup.service.test.js +186 -47
  135. package/dist/src/backend/orchestration/data-backup.service.test.js.map +1 -1
  136. package/dist/src/backend/orchestration/domain-bridges.orchestrator.d.ts +7 -5
  137. package/dist/src/backend/orchestration/domain-bridges.orchestrator.d.ts.map +1 -1
  138. package/dist/src/backend/orchestration/domain-bridges.orchestrator.js +116 -60
  139. package/dist/src/backend/orchestration/domain-bridges.orchestrator.js.map +1 -1
  140. package/dist/src/backend/orchestration/domain-bridges.orchestrator.test.js +262 -104
  141. package/dist/src/backend/orchestration/domain-bridges.orchestrator.test.js.map +1 -1
  142. package/dist/src/backend/orchestration/event-collector-lifecycle.integration.test.js +2 -2
  143. package/dist/src/backend/orchestration/event-collector-lifecycle.integration.test.js.map +1 -1
  144. package/dist/src/backend/orchestration/event-collector.orchestrator.d.ts +5 -6
  145. package/dist/src/backend/orchestration/event-collector.orchestrator.d.ts.map +1 -1
  146. package/dist/src/backend/orchestration/event-collector.orchestrator.js +12 -35
  147. package/dist/src/backend/orchestration/event-collector.orchestrator.js.map +1 -1
  148. package/dist/src/backend/orchestration/event-collector.orchestrator.test.js +42 -26
  149. package/dist/src/backend/orchestration/event-collector.orchestrator.test.js.map +1 -1
  150. package/dist/src/backend/orchestration/reconciliation.service.d.ts +4 -3
  151. package/dist/src/backend/orchestration/reconciliation.service.d.ts.map +1 -1
  152. package/dist/src/backend/orchestration/reconciliation.service.js +26 -38
  153. package/dist/src/backend/orchestration/reconciliation.service.js.map +1 -1
  154. package/dist/src/backend/orchestration/reconciliation.service.test.js +3 -3
  155. package/dist/src/backend/orchestration/reconciliation.service.test.js.map +1 -1
  156. package/dist/src/backend/orchestration/scheduler.service.d.ts +4 -3
  157. package/dist/src/backend/orchestration/scheduler.service.d.ts.map +1 -1
  158. package/dist/src/backend/orchestration/scheduler.service.js +40 -43
  159. package/dist/src/backend/orchestration/scheduler.service.js.map +1 -1
  160. package/dist/src/backend/orchestration/scheduler.service.test.js +52 -10
  161. package/dist/src/backend/orchestration/scheduler.service.test.js.map +1 -1
  162. package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.d.ts +5 -5
  163. package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.d.ts.map +1 -1
  164. package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.js +20 -61
  165. package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.js.map +1 -1
  166. package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.test.js +29 -3
  167. package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.test.js.map +1 -1
  168. package/dist/src/backend/orchestration/workspace-archive.orchestrator.d.ts +3 -37
  169. package/dist/src/backend/orchestration/workspace-archive.orchestrator.d.ts.map +1 -1
  170. package/dist/src/backend/orchestration/workspace-archive.orchestrator.js +2 -2
  171. package/dist/src/backend/orchestration/workspace-archive.orchestrator.js.map +1 -1
  172. package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.js +9 -9
  173. package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.js.map +1 -1
  174. package/dist/src/backend/orchestration/workspace-init.orchestrator.js +3 -3
  175. package/dist/src/backend/orchestration/workspace-init.orchestrator.js.map +1 -1
  176. package/dist/src/backend/orchestration/workspace-init.orchestrator.test.js +18 -18
  177. package/dist/src/backend/orchestration/workspace-init.orchestrator.test.js.map +1 -1
  178. package/dist/src/backend/orchestration/workspace-notification-delivery.orchestrator.d.ts.map +1 -1
  179. package/dist/src/backend/orchestration/workspace-notification-delivery.orchestrator.js +8 -1
  180. package/dist/src/backend/orchestration/workspace-notification-delivery.orchestrator.js.map +1 -1
  181. package/dist/src/backend/orchestration/workspace-notification-delivery.orchestrator.test.js +23 -0
  182. package/dist/src/backend/orchestration/workspace-notification-delivery.orchestrator.test.js.map +1 -1
  183. package/dist/src/backend/routers/websocket/chat.handler.d.ts.map +1 -1
  184. package/dist/src/backend/routers/websocket/chat.handler.js +10 -6
  185. package/dist/src/backend/routers/websocket/chat.handler.js.map +1 -1
  186. package/dist/src/backend/routers/websocket/chat.handler.test.js +37 -11
  187. package/dist/src/backend/routers/websocket/chat.handler.test.js.map +1 -1
  188. package/dist/src/backend/routers/websocket/index.d.ts +1 -2
  189. package/dist/src/backend/routers/websocket/index.d.ts.map +1 -1
  190. package/dist/src/backend/routers/websocket/index.js +1 -2
  191. package/dist/src/backend/routers/websocket/index.js.map +1 -1
  192. package/dist/src/backend/routers/websocket/log-stream-dev.handler.test.d.ts +2 -0
  193. package/dist/src/backend/routers/websocket/log-stream-dev.handler.test.d.ts.map +1 -0
  194. package/dist/src/backend/routers/websocket/{dev-logs.handler.test.js → log-stream-dev.handler.test.js} +2 -2
  195. package/dist/src/backend/routers/websocket/log-stream-dev.handler.test.js.map +1 -0
  196. package/dist/src/backend/routers/websocket/log-stream-post-run.handler.test.d.ts +2 -0
  197. package/dist/src/backend/routers/websocket/log-stream-post-run.handler.test.d.ts.map +1 -0
  198. package/dist/src/backend/routers/websocket/{post-run-logs.handler.test.js → log-stream-post-run.handler.test.js} +2 -2
  199. package/dist/src/backend/routers/websocket/log-stream-post-run.handler.test.js.map +1 -0
  200. package/dist/src/backend/routers/websocket/log-stream.handler.d.ts +8 -0
  201. package/dist/src/backend/routers/websocket/log-stream.handler.d.ts.map +1 -0
  202. package/dist/src/backend/routers/websocket/log-stream.handler.js +35 -0
  203. package/dist/src/backend/routers/websocket/log-stream.handler.js.map +1 -0
  204. package/dist/src/backend/routers/websocket/terminal.handler.d.ts.map +1 -1
  205. package/dist/src/backend/routers/websocket/terminal.handler.js +4 -2
  206. package/dist/src/backend/routers/websocket/terminal.handler.js.map +1 -1
  207. package/dist/src/backend/routers/websocket/terminal.handler.test.js +37 -0
  208. package/dist/src/backend/routers/websocket/terminal.handler.test.js.map +1 -1
  209. package/dist/src/backend/routers/websocket/websocket.integration.test.js +6 -9
  210. package/dist/src/backend/routers/websocket/websocket.integration.test.js.map +1 -1
  211. package/dist/src/backend/server.d.ts.map +1 -1
  212. package/dist/src/backend/server.js +12 -3
  213. package/dist/src/backend/server.js.map +1 -1
  214. package/dist/src/backend/server.upgrade.test.js +35 -6
  215. package/dist/src/backend/server.upgrade.test.js.map +1 -1
  216. package/dist/src/backend/services/auto-iteration/service/auto-iteration.service.test.js +15 -0
  217. package/dist/src/backend/services/auto-iteration/service/auto-iteration.service.test.js.map +1 -1
  218. package/dist/src/backend/services/auto-iteration/service/git-ops.d.ts.map +1 -1
  219. package/dist/src/backend/services/auto-iteration/service/git-ops.integration.test.d.ts +2 -0
  220. package/dist/src/backend/services/auto-iteration/service/git-ops.integration.test.d.ts.map +1 -0
  221. package/dist/src/backend/services/auto-iteration/service/git-ops.integration.test.js +86 -0
  222. package/dist/src/backend/services/auto-iteration/service/git-ops.integration.test.js.map +1 -0
  223. package/dist/src/backend/services/auto-iteration/service/git-ops.js +37 -2
  224. package/dist/src/backend/services/auto-iteration/service/git-ops.js.map +1 -1
  225. package/dist/src/backend/services/auto-iteration/service/test-runner.service.d.ts.map +1 -1
  226. package/dist/src/backend/services/auto-iteration/service/test-runner.service.js +9 -8
  227. package/dist/src/backend/services/auto-iteration/service/test-runner.service.js.map +1 -1
  228. package/dist/src/backend/services/auto-iteration/service/test-runner.service.test.d.ts +2 -0
  229. package/dist/src/backend/services/auto-iteration/service/test-runner.service.test.d.ts.map +1 -0
  230. package/dist/src/backend/services/auto-iteration/service/test-runner.service.test.js +80 -0
  231. package/dist/src/backend/services/auto-iteration/service/test-runner.service.test.js.map +1 -0
  232. package/dist/src/backend/services/check-single-writer.test.js +303 -32
  233. package/dist/src/backend/services/check-single-writer.test.js.map +1 -1
  234. package/dist/src/backend/services/constants.d.ts +1 -0
  235. package/dist/src/backend/services/constants.d.ts.map +1 -1
  236. package/dist/src/backend/services/constants.js +1 -0
  237. package/dist/src/backend/services/constants.js.map +1 -1
  238. package/dist/src/backend/services/env-schemas.d.ts +46 -46
  239. package/dist/src/backend/services/github/service/bridges.d.ts +6 -5
  240. package/dist/src/backend/services/github/service/bridges.d.ts.map +1 -1
  241. package/dist/src/backend/services/github/service/github-cli/mappers.d.ts +5 -2
  242. package/dist/src/backend/services/github/service/github-cli/mappers.d.ts.map +1 -1
  243. package/dist/src/backend/services/github/service/github-cli/mappers.js.map +1 -1
  244. package/dist/src/backend/services/github/service/github-cli/schemas.d.ts +4 -4
  245. package/dist/src/backend/services/github/service/github-cli.service.d.ts +5 -1
  246. package/dist/src/backend/services/github/service/github-cli.service.d.ts.map +1 -1
  247. package/dist/src/backend/services/github/service/github-cli.service.js.map +1 -1
  248. package/dist/src/backend/services/github/service/index.d.ts +2 -3
  249. package/dist/src/backend/services/github/service/index.d.ts.map +1 -1
  250. package/dist/src/backend/services/github/service/index.js +2 -2
  251. package/dist/src/backend/services/github/service/index.js.map +1 -1
  252. package/dist/src/backend/services/github/service/pr-fetch-coordinator.d.ts +33 -0
  253. package/dist/src/backend/services/github/service/pr-fetch-coordinator.d.ts.map +1 -0
  254. package/dist/src/backend/services/github/service/{pr-fetch-registry.js → pr-fetch-coordinator.js} +80 -69
  255. package/dist/src/backend/services/github/service/pr-fetch-coordinator.js.map +1 -0
  256. package/dist/src/backend/services/github/service/pr-fetch-coordinator.test.d.ts +2 -0
  257. package/dist/src/backend/services/github/service/pr-fetch-coordinator.test.d.ts.map +1 -0
  258. package/dist/src/backend/services/github/service/pr-fetch-coordinator.test.js +222 -0
  259. package/dist/src/backend/services/github/service/pr-fetch-coordinator.test.js.map +1 -0
  260. package/dist/src/backend/services/github/service/pr-snapshot.service.d.ts +12 -11
  261. package/dist/src/backend/services/github/service/pr-snapshot.service.d.ts.map +1 -1
  262. package/dist/src/backend/services/github/service/pr-snapshot.service.js +23 -22
  263. package/dist/src/backend/services/github/service/pr-snapshot.service.js.map +1 -1
  264. package/dist/src/backend/services/github/service/pr-snapshot.service.test.js +134 -75
  265. package/dist/src/backend/services/github/service/pr-snapshot.service.test.js.map +1 -1
  266. package/dist/src/backend/services/job-runner.service.d.ts +24 -0
  267. package/dist/src/backend/services/job-runner.service.d.ts.map +1 -0
  268. package/dist/src/backend/services/job-runner.service.js +168 -0
  269. package/dist/src/backend/services/job-runner.service.js.map +1 -0
  270. package/dist/src/backend/services/job-runner.service.test.d.ts +2 -0
  271. package/dist/src/backend/services/job-runner.service.test.d.ts.map +1 -0
  272. package/dist/src/backend/services/job-runner.service.test.js +498 -0
  273. package/dist/src/backend/services/job-runner.service.test.js.map +1 -0
  274. package/dist/src/backend/services/periodic-task/service/periodic-task.service.d.ts +8 -11
  275. package/dist/src/backend/services/periodic-task/service/periodic-task.service.d.ts.map +1 -1
  276. package/dist/src/backend/services/periodic-task/service/periodic-task.service.js +28 -50
  277. package/dist/src/backend/services/periodic-task/service/periodic-task.service.js.map +1 -1
  278. package/dist/src/backend/services/port.service.d.ts.map +1 -1
  279. package/dist/src/backend/services/port.service.js +4 -0
  280. package/dist/src/backend/services/port.service.js.map +1 -1
  281. package/dist/src/backend/services/port.service.test.js +9 -0
  282. package/dist/src/backend/services/port.service.test.js.map +1 -1
  283. package/dist/src/backend/services/ratchet/service/bridges.d.ts +24 -7
  284. package/dist/src/backend/services/ratchet/service/bridges.d.ts.map +1 -1
  285. package/dist/src/backend/services/ratchet/service/ratchet-active-session.helpers.d.ts.map +1 -1
  286. package/dist/src/backend/services/ratchet/service/ratchet-active-session.helpers.js +11 -10
  287. package/dist/src/backend/services/ratchet/service/ratchet-active-session.helpers.js.map +1 -1
  288. package/dist/src/backend/services/ratchet/service/ratchet-decision-logging.helpers.d.ts +1 -1
  289. package/dist/src/backend/services/ratchet/service/ratchet-decision-logging.helpers.js +1 -1
  290. package/dist/src/backend/services/ratchet/service/ratchet-decision-logging.helpers.js.map +1 -1
  291. package/dist/src/backend/services/ratchet/service/ratchet-fixer-dispatch.helpers.d.ts.map +1 -1
  292. package/dist/src/backend/services/ratchet/service/ratchet-fixer-dispatch.helpers.js +8 -3
  293. package/dist/src/backend/services/ratchet/service/ratchet-fixer-dispatch.helpers.js.map +1 -1
  294. package/dist/src/backend/services/ratchet/service/ratchet-pr-state.helpers.d.ts +1 -1
  295. package/dist/src/backend/services/ratchet/service/ratchet-pr-state.helpers.d.ts.map +1 -1
  296. package/dist/src/backend/services/ratchet/service/ratchet-pr-state.helpers.js +103 -95
  297. package/dist/src/backend/services/ratchet/service/ratchet-pr-state.helpers.js.map +1 -1
  298. package/dist/src/backend/services/ratchet/service/ratchet-pr-state.helpers.test.js +36 -22
  299. package/dist/src/backend/services/ratchet/service/ratchet-pr-state.helpers.test.js.map +1 -1
  300. package/dist/src/backend/services/ratchet/service/ratchet.service.d.ts +6 -8
  301. package/dist/src/backend/services/ratchet/service/ratchet.service.d.ts.map +1 -1
  302. package/dist/src/backend/services/ratchet/service/ratchet.service.js +58 -136
  303. package/dist/src/backend/services/ratchet/service/ratchet.service.js.map +1 -1
  304. package/dist/src/backend/services/ratchet/service/ratchet.service.test.js +323 -273
  305. package/dist/src/backend/services/ratchet/service/ratchet.service.test.js.map +1 -1
  306. package/dist/src/backend/services/ratchet/service/ratchet.types.d.ts +3 -1
  307. package/dist/src/backend/services/ratchet/service/ratchet.types.d.ts.map +1 -1
  308. package/dist/src/backend/services/registry.d.ts +6 -2
  309. package/dist/src/backend/services/registry.d.ts.map +1 -1
  310. package/dist/src/backend/services/registry.js +17 -1
  311. package/dist/src/backend/services/registry.js.map +1 -1
  312. package/dist/src/backend/services/resources.integration.test.js +73 -45
  313. package/dist/src/backend/services/resources.integration.test.js.map +1 -1
  314. package/dist/src/backend/services/run-script/service/run-script-proxy.service.d.ts +1 -0
  315. package/dist/src/backend/services/run-script/service/run-script-proxy.service.d.ts.map +1 -1
  316. package/dist/src/backend/services/run-script/service/run-script-proxy.service.js +25 -2
  317. package/dist/src/backend/services/run-script/service/run-script-proxy.service.js.map +1 -1
  318. package/dist/src/backend/services/run-script/service/run-script-proxy.service.test.js +124 -6
  319. package/dist/src/backend/services/run-script/service/run-script-proxy.service.test.js.map +1 -1
  320. package/dist/src/backend/services/run-script/service/run-script-state-machine.service.d.ts.map +1 -1
  321. package/dist/src/backend/services/run-script/service/run-script-state-machine.service.js.map +1 -1
  322. package/dist/src/backend/services/run-script/service/run-script-state-machine.service.test.js +125 -125
  323. package/dist/src/backend/services/run-script/service/run-script-state-machine.service.test.js.map +1 -1
  324. package/dist/src/backend/services/run-script/service/startup-script.service.d.ts.map +1 -1
  325. package/dist/src/backend/services/run-script/service/startup-script.service.js +20 -5
  326. package/dist/src/backend/services/run-script/service/startup-script.service.js.map +1 -1
  327. package/dist/src/backend/services/run-script/service/startup-script.service.test.js +95 -1
  328. package/dist/src/backend/services/run-script/service/startup-script.service.test.js.map +1 -1
  329. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.d.ts.map +1 -1
  330. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.js +4 -4
  331. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.js.map +1 -1
  332. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.test.js +4 -2
  333. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/load-session.handler.test.js.map +1 -1
  334. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/permission-response.handler.d.ts +2 -2
  335. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/permission-response.handler.d.ts.map +1 -1
  336. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/permission-response.handler.js +2 -2
  337. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/permission-response.handler.js.map +1 -1
  338. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/permission-response.handler.test.js +10 -25
  339. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/permission-response.handler.test.js.map +1 -1
  340. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-config-option.handler.d.ts.map +1 -1
  341. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-config-option.handler.js +10 -2
  342. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-config-option.handler.js.map +1 -1
  343. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-config-option.handler.test.js +41 -2
  344. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-config-option.handler.test.js.map +1 -1
  345. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-model.handler.d.ts +2 -2
  346. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-model.handler.d.ts.map +1 -1
  347. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-model.handler.js +4 -4
  348. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-model.handler.js.map +1 -1
  349. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-model.handler.test.js +1 -4
  350. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-model.handler.test.js.map +1 -1
  351. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-thinking-budget.handler.js +2 -2
  352. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-thinking-budget.handler.js.map +1 -1
  353. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-thinking-budget.handler.test.js +2 -2
  354. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/set-thinking-budget.handler.test.js.map +1 -1
  355. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/start.handler.js +2 -2
  356. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/start.handler.js.map +1 -1
  357. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/start.handler.test.js +2 -2
  358. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/start.handler.test.js.map +1 -1
  359. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/stop.handler.js +2 -2
  360. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/stop.handler.js.map +1 -1
  361. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/stop.handler.test.js +2 -2
  362. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/stop.handler.test.js.map +1 -1
  363. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/user-input.handler.d.ts +3 -2
  364. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/user-input.handler.d.ts.map +1 -1
  365. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/user-input.handler.js +2 -2
  366. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/user-input.handler.js.map +1 -1
  367. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/user-input.handler.test.js +17 -20
  368. package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/user-input.handler.test.js.map +1 -1
  369. package/dist/src/backend/services/session/service/chat/chat-message-handlers/registry.d.ts.map +1 -1
  370. package/dist/src/backend/services/session/service/chat/chat-message-handlers/registry.js +15 -6
  371. package/dist/src/backend/services/session/service/chat/chat-message-handlers/registry.js.map +1 -1
  372. package/dist/src/backend/services/session/service/chat/chat-message-handlers/types.d.ts +12 -3
  373. package/dist/src/backend/services/session/service/chat/chat-message-handlers/types.d.ts.map +1 -1
  374. package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.d.ts.map +1 -1
  375. package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.js +18 -14
  376. package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.js.map +1 -1
  377. package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.test.js +7 -1
  378. package/dist/src/backend/services/session/service/chat/chat-message-handlers.service.test.js.map +1 -1
  379. package/dist/src/backend/services/session/service/data/session-provider-resolver.service.test.js +1 -3
  380. package/dist/src/backend/services/session/service/data/session-provider-resolver.service.test.js.map +1 -1
  381. package/dist/src/backend/services/session/service/index.d.ts +6 -1
  382. package/dist/src/backend/services/session/service/index.d.ts.map +1 -1
  383. package/dist/src/backend/services/session/service/index.js +5 -1
  384. package/dist/src/backend/services/session/service/index.js.map +1 -1
  385. package/dist/src/backend/services/session/service/interceptor.bridge.d.ts.map +1 -1
  386. package/dist/src/backend/services/session/service/interceptor.bridge.js +47 -3
  387. package/dist/src/backend/services/session/service/interceptor.bridge.js.map +1 -1
  388. package/dist/src/backend/services/session/service/interceptor.bridge.test.d.ts +2 -0
  389. package/dist/src/backend/services/session/service/interceptor.bridge.test.d.ts.map +1 -0
  390. package/dist/src/backend/services/session/service/interceptor.bridge.test.js +83 -0
  391. package/dist/src/backend/services/session/service/interceptor.bridge.test.js.map +1 -0
  392. package/dist/src/backend/services/session/service/lifecycle/session-services.d.ts +16 -0
  393. package/dist/src/backend/services/session/service/lifecycle/session-services.d.ts.map +1 -0
  394. package/dist/src/backend/services/session/service/lifecycle/session-services.js +79 -0
  395. package/dist/src/backend/services/session/service/lifecycle/session-services.js.map +1 -0
  396. package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.d.ts +4 -2
  397. package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.d.ts.map +1 -1
  398. package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.js +6 -4
  399. package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.js.map +1 -1
  400. package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.test.js +10 -11
  401. package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.test.js.map +1 -1
  402. package/dist/src/backend/services/session/service/lifecycle/session.prompt.service.test.d.ts +2 -0
  403. package/dist/src/backend/services/session/service/lifecycle/session.prompt.service.test.d.ts.map +1 -0
  404. package/dist/src/backend/services/session/service/lifecycle/session.prompt.service.test.js +142 -0
  405. package/dist/src/backend/services/session/service/lifecycle/session.prompt.service.test.js.map +1 -0
  406. package/dist/src/backend/services/session/service/lifecycle/session.repository.d.ts +5 -2
  407. package/dist/src/backend/services/session/service/lifecycle/session.repository.d.ts.map +1 -1
  408. package/dist/src/backend/services/session/service/lifecycle/session.repository.js.map +1 -1
  409. package/dist/src/backend/services/session/service/lifecycle/session.repository.test.js.map +1 -1
  410. package/dist/src/backend/services/session/service/lifecycle/session.service.d.ts +16 -76
  411. package/dist/src/backend/services/session/service/lifecycle/session.service.d.ts.map +1 -1
  412. package/dist/src/backend/services/session/service/lifecycle/session.service.js +21 -215
  413. package/dist/src/backend/services/session/service/lifecycle/session.service.js.map +1 -1
  414. package/dist/src/backend/services/session/service/lifecycle/session.service.test.js +159 -66
  415. package/dist/src/backend/services/session/service/lifecycle/session.service.test.js.map +1 -1
  416. package/dist/src/backend/services/settings/resources/data-backup.accessor.d.ts +10 -2
  417. package/dist/src/backend/services/settings/resources/data-backup.accessor.d.ts.map +1 -1
  418. package/dist/src/backend/services/settings/resources/data-backup.accessor.js +4 -1
  419. package/dist/src/backend/services/settings/resources/data-backup.accessor.js.map +1 -1
  420. package/dist/src/backend/services/settings/resources/user-settings.accessor.d.ts.map +1 -1
  421. package/dist/src/backend/services/settings/resources/user-settings.accessor.js +1 -0
  422. package/dist/src/backend/services/settings/resources/user-settings.accessor.js.map +1 -1
  423. package/dist/src/backend/services/settings/resources/user-settings.accessor.test.d.ts +2 -0
  424. package/dist/src/backend/services/settings/resources/user-settings.accessor.test.d.ts.map +1 -0
  425. package/dist/src/backend/services/settings/resources/user-settings.accessor.test.js +24 -0
  426. package/dist/src/backend/services/settings/resources/user-settings.accessor.test.js.map +1 -0
  427. package/dist/src/backend/services/terminal/service/terminal-session.service.d.ts +3 -37
  428. package/dist/src/backend/services/terminal/service/terminal-session.service.d.ts.map +1 -1
  429. package/dist/src/backend/services/workspace/resources/workspace-auto-iteration.accessor.d.ts +25 -0
  430. package/dist/src/backend/services/workspace/resources/workspace-auto-iteration.accessor.d.ts.map +1 -0
  431. package/dist/src/backend/services/workspace/resources/workspace-auto-iteration.accessor.js +73 -0
  432. package/dist/src/backend/services/workspace/resources/workspace-auto-iteration.accessor.js.map +1 -0
  433. package/dist/src/backend/services/workspace/resources/workspace-auto-iteration.accessor.test.d.ts +2 -0
  434. package/dist/src/backend/services/workspace/resources/workspace-auto-iteration.accessor.test.d.ts.map +1 -0
  435. package/dist/src/backend/services/workspace/resources/workspace-auto-iteration.accessor.test.js +155 -0
  436. package/dist/src/backend/services/workspace/resources/workspace-auto-iteration.accessor.test.js.map +1 -0
  437. package/dist/src/backend/services/workspace/resources/workspace-pr.accessor.d.ts +61 -0
  438. package/dist/src/backend/services/workspace/resources/workspace-pr.accessor.d.ts.map +1 -0
  439. package/dist/src/backend/services/workspace/resources/workspace-pr.accessor.js +265 -0
  440. package/dist/src/backend/services/workspace/resources/workspace-pr.accessor.js.map +1 -0
  441. package/dist/src/backend/services/workspace/resources/workspace-pr.accessor.test.d.ts +2 -0
  442. package/dist/src/backend/services/workspace/resources/workspace-pr.accessor.test.d.ts.map +1 -0
  443. package/dist/src/backend/services/workspace/resources/workspace-pr.accessor.test.js +398 -0
  444. package/dist/src/backend/services/workspace/resources/workspace-pr.accessor.test.js.map +1 -0
  445. package/dist/src/backend/services/workspace/resources/workspace-ratchet.accessor.d.ts +50 -0
  446. package/dist/src/backend/services/workspace/resources/workspace-ratchet.accessor.d.ts.map +1 -0
  447. package/dist/src/backend/services/workspace/resources/workspace-ratchet.accessor.js +179 -0
  448. package/dist/src/backend/services/workspace/resources/workspace-ratchet.accessor.js.map +1 -0
  449. package/dist/src/backend/services/workspace/resources/workspace-ratchet.accessor.test.d.ts +2 -0
  450. package/dist/src/backend/services/workspace/resources/workspace-ratchet.accessor.test.d.ts.map +1 -0
  451. package/dist/src/backend/services/workspace/resources/workspace-ratchet.accessor.test.js +311 -0
  452. package/dist/src/backend/services/workspace/resources/workspace-ratchet.accessor.test.js.map +1 -0
  453. package/dist/src/backend/services/workspace/resources/workspace-run-script.accessor.d.ts +33 -0
  454. package/dist/src/backend/services/workspace/resources/workspace-run-script.accessor.d.ts.map +1 -0
  455. package/dist/src/backend/services/workspace/resources/workspace-run-script.accessor.js +110 -0
  456. package/dist/src/backend/services/workspace/resources/workspace-run-script.accessor.js.map +1 -0
  457. package/dist/src/backend/services/workspace/resources/workspace-run-script.accessor.test.d.ts +2 -0
  458. package/dist/src/backend/services/workspace/resources/workspace-run-script.accessor.test.d.ts.map +1 -0
  459. package/dist/src/backend/services/workspace/resources/workspace-run-script.accessor.test.js +192 -0
  460. package/dist/src/backend/services/workspace/resources/workspace-run-script.accessor.test.js.map +1 -0
  461. package/dist/src/backend/services/workspace/resources/workspace.accessor.d.ts +61 -118
  462. package/dist/src/backend/services/workspace/resources/workspace.accessor.d.ts.map +1 -1
  463. package/dist/src/backend/services/workspace/resources/workspace.accessor.js +186 -426
  464. package/dist/src/backend/services/workspace/resources/workspace.accessor.js.map +1 -1
  465. package/dist/src/backend/services/workspace/resources/workspace.accessor.test.js +286 -623
  466. package/dist/src/backend/services/workspace/resources/workspace.accessor.test.js.map +1 -1
  467. package/dist/src/backend/services/workspace/service/bridges.d.ts +0 -1
  468. package/dist/src/backend/services/workspace/service/bridges.d.ts.map +1 -1
  469. package/dist/src/backend/services/workspace/service/index.d.ts +3 -3
  470. package/dist/src/backend/services/workspace/service/index.d.ts.map +1 -1
  471. package/dist/src/backend/services/workspace/service/index.js +2 -2
  472. package/dist/src/backend/services/workspace/service/index.js.map +1 -1
  473. package/dist/src/backend/services/workspace/service/lifecycle/creation.service.d.ts +3 -2
  474. package/dist/src/backend/services/workspace/service/lifecycle/creation.service.d.ts.map +1 -1
  475. package/dist/src/backend/services/workspace/service/lifecycle/creation.service.js +1 -1
  476. package/dist/src/backend/services/workspace/service/lifecycle/creation.service.js.map +1 -1
  477. package/dist/src/backend/services/workspace/service/lifecycle/creation.service.test.js +2 -3
  478. package/dist/src/backend/services/workspace/service/lifecycle/creation.service.test.js.map +1 -1
  479. package/dist/src/backend/services/workspace/service/lifecycle/data.service.d.ts +117 -387
  480. package/dist/src/backend/services/workspace/service/lifecycle/data.service.d.ts.map +1 -1
  481. package/dist/src/backend/services/workspace/service/lifecycle/data.service.js +7 -11
  482. package/dist/src/backend/services/workspace/service/lifecycle/data.service.js.map +1 -1
  483. package/dist/src/backend/services/workspace/service/lifecycle/data.service.test.js +13 -13
  484. package/dist/src/backend/services/workspace/service/lifecycle/data.service.test.js.map +1 -1
  485. package/dist/src/backend/services/workspace/service/lifecycle/state-machine.service.d.ts.map +1 -1
  486. package/dist/src/backend/services/workspace/service/lifecycle/state-machine.service.js +13 -30
  487. package/dist/src/backend/services/workspace/service/lifecycle/state-machine.service.js.map +1 -1
  488. package/dist/src/backend/services/workspace/service/lifecycle/state-machine.service.test.js +99 -29
  489. package/dist/src/backend/services/workspace/service/lifecycle/state-machine.service.test.js.map +1 -1
  490. package/dist/src/backend/services/workspace/service/lifecycle/workspace-auto-iteration.service.d.ts +3 -192
  491. package/dist/src/backend/services/workspace/service/lifecycle/workspace-auto-iteration.service.d.ts.map +1 -1
  492. package/dist/src/backend/services/workspace/service/lifecycle/workspace-auto-iteration.service.js +3 -3
  493. package/dist/src/backend/services/workspace/service/lifecycle/workspace-auto-iteration.service.js.map +1 -1
  494. package/dist/src/backend/services/workspace/service/lifecycle/workspace-pr-snapshot.service.d.ts +6 -66
  495. package/dist/src/backend/services/workspace/service/lifecycle/workspace-pr-snapshot.service.d.ts.map +1 -1
  496. package/dist/src/backend/services/workspace/service/lifecycle/workspace-pr-snapshot.service.js +10 -17
  497. package/dist/src/backend/services/workspace/service/lifecycle/workspace-pr-snapshot.service.js.map +1 -1
  498. package/dist/src/backend/services/workspace/service/lifecycle/workspace-pr-snapshot.service.test.js +16 -4
  499. package/dist/src/backend/services/workspace/service/lifecycle/workspace-pr-snapshot.service.test.js.map +1 -1
  500. package/dist/src/backend/services/workspace/service/lifecycle/workspace-ratchet.service.d.ts +6 -230
  501. package/dist/src/backend/services/workspace/service/lifecycle/workspace-ratchet.service.d.ts.map +1 -1
  502. package/dist/src/backend/services/workspace/service/lifecycle/workspace-ratchet.service.js +12 -22
  503. package/dist/src/backend/services/workspace/service/lifecycle/workspace-ratchet.service.js.map +1 -1
  504. package/dist/src/backend/services/workspace/service/lifecycle/workspace-relationships.service.d.ts +78 -75
  505. package/dist/src/backend/services/workspace/service/lifecycle/workspace-relationships.service.d.ts.map +1 -1
  506. package/dist/src/backend/services/workspace/service/lifecycle/workspace-run-script.service.d.ts +5 -132
  507. package/dist/src/backend/services/workspace/service/lifecycle/workspace-run-script.service.d.ts.map +1 -1
  508. package/dist/src/backend/services/workspace/service/lifecycle/workspace-run-script.service.js +3 -6
  509. package/dist/src/backend/services/workspace/service/lifecycle/workspace-run-script.service.js.map +1 -1
  510. package/dist/src/backend/services/workspace/service/lifecycle/workspace-state-capabilities.test.js +27 -4
  511. package/dist/src/backend/services/workspace/service/lifecycle/workspace-state-capabilities.test.js.map +1 -1
  512. package/dist/src/backend/services/workspace/service/query/project-management.service.d.ts +2 -70
  513. package/dist/src/backend/services/workspace/service/query/project-management.service.d.ts.map +1 -1
  514. package/dist/src/backend/services/workspace/service/query/workspace-maintenance.service.d.ts +110 -280
  515. package/dist/src/backend/services/workspace/service/query/workspace-maintenance.service.d.ts.map +1 -1
  516. package/dist/src/backend/services/workspace/service/query/workspace-maintenance.service.js +4 -3
  517. package/dist/src/backend/services/workspace/service/query/workspace-maintenance.service.js.map +1 -1
  518. package/dist/src/backend/services/workspace/service/query/workspace-maintenance.service.test.js +7 -4
  519. package/dist/src/backend/services/workspace/service/query/workspace-maintenance.service.test.js.map +1 -1
  520. package/dist/src/backend/services/workspace/service/query/workspace-notification.service.d.ts +4 -4
  521. package/dist/src/backend/services/workspace/service/query/workspace-query.service.d.ts +29 -216
  522. package/dist/src/backend/services/workspace/service/query/workspace-query.service.d.ts.map +1 -1
  523. package/dist/src/backend/services/workspace/service/query/workspace-query.service.js +91 -139
  524. package/dist/src/backend/services/workspace/service/query/workspace-query.service.js.map +1 -1
  525. package/dist/src/backend/services/workspace/service/query/workspace-query.service.test.js +113 -102
  526. package/dist/src/backend/services/workspace/service/query/workspace-query.service.test.js.map +1 -1
  527. package/dist/src/backend/services/workspace/service/snapshot/workspace-snapshot-store.service.d.ts +1 -0
  528. package/dist/src/backend/services/workspace/service/snapshot/workspace-snapshot-store.service.d.ts.map +1 -1
  529. package/dist/src/backend/services/workspace/service/snapshot/workspace-snapshot-store.service.js +1 -1
  530. package/dist/src/backend/services/workspace/service/snapshot/workspace-snapshot-store.service.js.map +1 -1
  531. package/dist/src/backend/services/workspace/service/state/kanban-state.d.ts +1 -29
  532. package/dist/src/backend/services/workspace/service/state/kanban-state.d.ts.map +1 -1
  533. package/dist/src/backend/services/workspace/service/state/kanban-state.js +0 -191
  534. package/dist/src/backend/services/workspace/service/state/kanban-state.js.map +1 -1
  535. package/dist/src/backend/services/workspace/service/state/kanban-state.test.js +2 -410
  536. package/dist/src/backend/services/workspace/service/state/kanban-state.test.js.map +1 -1
  537. package/dist/src/backend/services/workspace/service/workspace-domain-exports.test.js +1 -4
  538. package/dist/src/backend/services/workspace/service/workspace-domain-exports.test.js.map +1 -1
  539. package/dist/src/backend/services/workspace/service/worktree/worktree-init.test.js +1 -1
  540. package/dist/src/backend/services/workspace/service/worktree/worktree-init.test.js.map +1 -1
  541. package/dist/src/backend/services/workspace-depth-triggers.integration.test.d.ts +2 -0
  542. package/dist/src/backend/services/workspace-depth-triggers.integration.test.d.ts.map +1 -0
  543. package/dist/src/backend/services/workspace-depth-triggers.integration.test.js +68 -0
  544. package/dist/src/backend/services/workspace-depth-triggers.integration.test.js.map +1 -0
  545. package/dist/src/backend/testing/check-prisma-versions-script.test.d.ts +2 -0
  546. package/dist/src/backend/testing/check-prisma-versions-script.test.d.ts.map +1 -0
  547. package/dist/src/backend/testing/check-prisma-versions-script.test.js +52 -0
  548. package/dist/src/backend/testing/check-prisma-versions-script.test.js.map +1 -0
  549. package/dist/src/backend/trpc/admin.router.test.js +7 -7
  550. package/dist/src/backend/trpc/admin.router.test.js.map +1 -1
  551. package/dist/src/backend/trpc/admin.trpc.d.ts +2 -4
  552. package/dist/src/backend/trpc/admin.trpc.d.ts.map +1 -1
  553. package/dist/src/backend/trpc/admin.trpc.js +3 -3
  554. package/dist/src/backend/trpc/admin.trpc.js.map +1 -1
  555. package/dist/src/backend/trpc/closed-sessions.trpc.d.ts +1 -1
  556. package/dist/src/backend/trpc/index.d.ts +227 -804
  557. package/dist/src/backend/trpc/index.d.ts.map +1 -1
  558. package/dist/src/backend/trpc/periodic-task.trpc.d.ts +4 -4
  559. package/dist/src/backend/trpc/project.trpc.d.ts +2 -70
  560. package/dist/src/backend/trpc/project.trpc.d.ts.map +1 -1
  561. package/dist/src/backend/trpc/session.router.test.js +22 -16
  562. package/dist/src/backend/trpc/session.router.test.js.map +1 -1
  563. package/dist/src/backend/trpc/session.trpc.d.ts +11 -45
  564. package/dist/src/backend/trpc/session.trpc.d.ts.map +1 -1
  565. package/dist/src/backend/trpc/session.trpc.js +13 -13
  566. package/dist/src/backend/trpc/session.trpc.js.map +1 -1
  567. package/dist/src/backend/trpc/workspace/children.router.test.js +42 -2
  568. package/dist/src/backend/trpc/workspace/children.router.test.js.map +1 -1
  569. package/dist/src/backend/trpc/workspace/children.trpc.d.ts +3 -37
  570. package/dist/src/backend/trpc/workspace/children.trpc.d.ts.map +1 -1
  571. package/dist/src/backend/trpc/workspace/children.trpc.js +38 -14
  572. package/dist/src/backend/trpc/workspace/children.trpc.js.map +1 -1
  573. package/dist/src/backend/trpc/workspace/composition.test.js +8 -5
  574. package/dist/src/backend/trpc/workspace/composition.test.js.map +1 -1
  575. package/dist/src/backend/trpc/workspace/init.trpc.d.ts +52 -40
  576. package/dist/src/backend/trpc/workspace/init.trpc.d.ts.map +1 -1
  577. package/dist/src/backend/trpc/workspace/workspace-helpers.d.ts +80 -77
  578. package/dist/src/backend/trpc/workspace/workspace-helpers.d.ts.map +1 -1
  579. package/dist/src/backend/trpc/workspace.router.test.js +22 -25
  580. package/dist/src/backend/trpc/workspace.router.test.js.map +1 -1
  581. package/dist/src/backend/trpc/workspace.trpc.d.ts +553 -1477
  582. package/dist/src/backend/trpc/workspace.trpc.d.ts.map +1 -1
  583. package/dist/src/backend/trpc/workspace.trpc.js +13 -43
  584. package/dist/src/backend/trpc/workspace.trpc.js.map +1 -1
  585. package/dist/src/cli/runtime-utils.d.ts.map +1 -1
  586. package/dist/src/cli/runtime-utils.js +4 -0
  587. package/dist/src/cli/runtime-utils.js.map +1 -1
  588. package/dist/src/cli/runtime-utils.test.d.ts +2 -0
  589. package/dist/src/cli/runtime-utils.test.d.ts.map +1 -0
  590. package/dist/src/cli/runtime-utils.test.js +28 -0
  591. package/dist/src/cli/runtime-utils.test.js.map +1 -0
  592. package/dist/src/shared/acp-protocol/protocol/renderer-window.d.ts +1 -0
  593. package/dist/src/shared/acp-protocol/protocol/renderer-window.d.ts.map +1 -1
  594. package/dist/src/shared/acp-protocol/protocol/renderer-window.js +13 -2
  595. package/dist/src/shared/acp-protocol/protocol/renderer-window.js.map +1 -1
  596. package/dist/src/shared/core/index.d.ts +1 -0
  597. package/dist/src/shared/core/index.d.ts.map +1 -1
  598. package/dist/src/shared/core/index.js +1 -0
  599. package/dist/src/shared/core/index.js.map +1 -1
  600. package/dist/src/shared/core/ratchet-state.d.ts +10 -0
  601. package/dist/src/shared/core/ratchet-state.d.ts.map +1 -0
  602. package/dist/src/shared/core/ratchet-state.js +32 -0
  603. package/dist/src/shared/core/ratchet-state.js.map +1 -0
  604. package/dist/src/shared/schemas/export-data.schema.d.ts +2 -12
  605. package/dist/src/shared/schemas/export-data.schema.d.ts.map +1 -1
  606. package/dist/src/shared/schemas/export-data.schema.js +2 -4
  607. package/dist/src/shared/schemas/export-data.schema.js.map +1 -1
  608. package/dist/src/shared/workspace-snapshot.d.ts +1 -1
  609. package/dist/src/test-utils/application-graph.d.ts.map +1 -1
  610. package/dist/src/test-utils/application-graph.js +16 -9
  611. package/dist/src/test-utils/application-graph.js.map +1 -1
  612. package/dist/tsconfig.backend.tsbuildinfo +1 -1
  613. package/package.json +90 -150
  614. package/prisma/migrations/20260726112950_drop_cached_kanban_column/migration.sql +132 -0
  615. package/prisma/migrations/20260726135402_split_workspace_ratchet/migration.sql +149 -0
  616. package/prisma/migrations/20260726181500_split_workspace_pr/migration.sql +142 -0
  617. package/prisma/migrations/20260726200000_derive_ratchet_state/migration.sql +101 -0
  618. package/prisma/migrations/20260726220000_split_workspace_run_script/migration.sql +131 -0
  619. package/prisma/migrations/20260726230000_split_workspace_auto_iteration/migration.sql +123 -0
  620. package/prisma/schema.prisma +219 -62
  621. package/dist/client/assets/arc-lK3Ig9GV.js +0 -1
  622. package/dist/client/assets/architectureDiagram-3BPJPVTR-CeUbfBqe.js +0 -36
  623. package/dist/client/assets/blockDiagram-GPEHLZMM-DiVGPkq2.js +0 -132
  624. package/dist/client/assets/channel-CvY1mvIl.js +0 -1
  625. package/dist/client/assets/chunk-AQP2D5EJ-dyo9i4xa.js +0 -231
  626. package/dist/client/assets/classDiagram-4FO5ZUOK-Db7ZXJ6w.js +0 -1
  627. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Db7ZXJ6w.js +0 -1
  628. package/dist/client/assets/cytoscape.esm-DkOyvmE4.js +0 -321
  629. package/dist/client/assets/dagre-BM42HDAG-CDzpFdgD.js +0 -4
  630. package/dist/client/assets/diagram-2AECGRRQ-dl1_7lyq.js +0 -43
  631. package/dist/client/assets/diagram-5GNKFQAL-B0ynMwBY.js +0 -10
  632. package/dist/client/assets/diagram-LMA3HP47-DZxXcfiX.js +0 -24
  633. package/dist/client/assets/diagram-OG6HWLK6-BncGM9Gv.js +0 -24
  634. package/dist/client/assets/erDiagram-TEJ5UH35-B9hxScvO.js +0 -85
  635. package/dist/client/assets/flowDiagram-I6XJVG4X-DgZ2jwJQ.js +0 -162
  636. package/dist/client/assets/ganttDiagram-6RSMTGT7-BrnNMNRY.js +0 -292
  637. package/dist/client/assets/gitGraphDiagram-PVQCEYII-BJmed6oD.js +0 -106
  638. package/dist/client/assets/index-Btlruz7h.css +0 -1
  639. package/dist/client/assets/index-DEKuJM5_.js +0 -674
  640. package/dist/client/assets/infoDiagram-5YYISTIA-CtLzR4ip.js +0 -2
  641. package/dist/client/assets/katex-DHMw6HUq.js +0 -257
  642. package/dist/client/assets/layout-SsrduOYp.js +0 -1
  643. package/dist/client/assets/pieDiagram-4H26LBE5-DgPu3GTs.js +0 -30
  644. package/dist/client/assets/sankeyDiagram-5OEKKPKP-DmYoq588.js +0 -40
  645. package/dist/client/assets/sequenceDiagram-3UESZ5HK-EVqdDzgf.js +0 -162
  646. package/dist/client/assets/stateDiagram-AJRCARHV-BRd6IxSa.js +0 -1
  647. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-DR2vMoX5.js +0 -1
  648. package/dist/client/assets/vennDiagram-CIIHVFJN-CLslQYVi.js +0 -34
  649. package/dist/client/assets/wardley-L42UT6IY-DyEDLg3x.js +0 -161
  650. package/dist/client/assets/xychartDiagram-2RQKCTM6-DwzoT5Dl.js +0 -7
  651. package/dist/src/backend/interceptors/branch-rename.interceptor.d.ts +0 -3
  652. package/dist/src/backend/interceptors/branch-rename.interceptor.d.ts.map +0 -1
  653. package/dist/src/backend/interceptors/branch-rename.interceptor.js +0 -117
  654. package/dist/src/backend/interceptors/branch-rename.interceptor.js.map +0 -1
  655. package/dist/src/backend/interceptors/branch-rename.interceptor.test.d.ts +0 -2
  656. package/dist/src/backend/interceptors/branch-rename.interceptor.test.d.ts.map +0 -1
  657. package/dist/src/backend/interceptors/branch-rename.interceptor.test.js +0 -184
  658. package/dist/src/backend/interceptors/branch-rename.interceptor.test.js.map +0 -1
  659. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.d.ts +0 -6
  660. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.d.ts.map +0 -1
  661. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.js +0 -225
  662. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.js.map +0 -1
  663. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.test.d.ts +0 -2
  664. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.test.d.ts.map +0 -1
  665. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.test.js +0 -348
  666. package/dist/src/backend/interceptors/pre-pr-rename.interceptor.test.js.map +0 -1
  667. package/dist/src/backend/interceptors/pre-push-rename.interceptor.d.ts +0 -4
  668. package/dist/src/backend/interceptors/pre-push-rename.interceptor.d.ts.map +0 -1
  669. package/dist/src/backend/interceptors/pre-push-rename.interceptor.js +0 -136
  670. package/dist/src/backend/interceptors/pre-push-rename.interceptor.js.map +0 -1
  671. package/dist/src/backend/interceptors/pre-push-rename.interceptor.test.d.ts +0 -2
  672. package/dist/src/backend/interceptors/pre-push-rename.interceptor.test.d.ts.map +0 -1
  673. package/dist/src/backend/interceptors/pre-push-rename.interceptor.test.js +0 -260
  674. package/dist/src/backend/interceptors/pre-push-rename.interceptor.test.js.map +0 -1
  675. package/dist/src/backend/routers/websocket/dev-logs.handler.d.ts +0 -5
  676. package/dist/src/backend/routers/websocket/dev-logs.handler.d.ts.map +0 -1
  677. package/dist/src/backend/routers/websocket/dev-logs.handler.js +0 -28
  678. package/dist/src/backend/routers/websocket/dev-logs.handler.js.map +0 -1
  679. package/dist/src/backend/routers/websocket/dev-logs.handler.test.d.ts +0 -2
  680. package/dist/src/backend/routers/websocket/dev-logs.handler.test.d.ts.map +0 -1
  681. package/dist/src/backend/routers/websocket/dev-logs.handler.test.js.map +0 -1
  682. package/dist/src/backend/routers/websocket/post-run-logs.handler.d.ts +0 -5
  683. package/dist/src/backend/routers/websocket/post-run-logs.handler.d.ts.map +0 -1
  684. package/dist/src/backend/routers/websocket/post-run-logs.handler.js +0 -18
  685. package/dist/src/backend/routers/websocket/post-run-logs.handler.js.map +0 -1
  686. package/dist/src/backend/routers/websocket/post-run-logs.handler.test.d.ts +0 -2
  687. package/dist/src/backend/routers/websocket/post-run-logs.handler.test.d.ts.map +0 -1
  688. package/dist/src/backend/routers/websocket/post-run-logs.handler.test.js.map +0 -1
  689. package/dist/src/backend/services/github/service/pr-fetch-registry.d.ts +0 -20
  690. package/dist/src/backend/services/github/service/pr-fetch-registry.d.ts.map +0 -1
  691. package/dist/src/backend/services/github/service/pr-fetch-registry.js.map +0 -1
  692. package/dist/src/backend/services/github/service/pr-fetch-registry.test.d.ts +0 -2
  693. package/dist/src/backend/services/github/service/pr-fetch-registry.test.d.ts.map +0 -1
  694. package/dist/src/backend/services/github/service/pr-fetch-registry.test.js +0 -112
  695. package/dist/src/backend/services/github/service/pr-fetch-registry.test.js.map +0 -1
  696. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.d.ts +0 -11
  697. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.d.ts.map +0 -1
  698. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.js +0 -77
  699. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.js.map +0 -1
  700. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.test.d.ts +0 -2
  701. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.test.d.ts.map +0 -1
  702. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.test.js +0 -66
  703. package/dist/src/backend/services/ratchet/service/ratchet-state-machine.test.js.map +0 -1
  704. package/dist/src/backend/services/session/service/lifecycle/session.service.coverage.test.d.ts +0 -2
  705. package/dist/src/backend/services/session/service/lifecycle/session.service.coverage.test.d.ts.map +0 -1
  706. package/dist/src/backend/services/session/service/lifecycle/session.service.coverage.test.js +0 -279
  707. package/dist/src/backend/services/session/service/lifecycle/session.service.coverage.test.js.map +0 -1
@@ -0,0 +1,142 @@
1
+ -- Split the PR cache off Workspace into its own 1:1 table.
2
+ --
3
+ -- Every column moved here is a cache of GitHub state or a cursor into it, so a
4
+ -- lossy migration would cost one refresh rather than real data -- but the
5
+ -- discovery backoff and the review-comment cursor would replay work, so the
6
+ -- backfill below copies all thirteen.
7
+ --
8
+ -- `prUpdatedAt` becomes `syncedAt`: every caller wrote its own observation time
9
+ -- into it, never GitHub's PR `updated_at`.
10
+
11
+ -- CreateTable
12
+ CREATE TABLE "WorkspacePR" (
13
+ "workspaceId" TEXT NOT NULL PRIMARY KEY,
14
+ "url" TEXT,
15
+ "number" INTEGER,
16
+ "state" TEXT NOT NULL DEFAULT 'NONE',
17
+ "reviewState" TEXT,
18
+ "ciStatus" TEXT NOT NULL DEFAULT 'UNKNOWN',
19
+ "syncedAt" DATETIME,
20
+ "discoveryLastCheckedAt" DATETIME,
21
+ "discoveryRetryCount" INTEGER NOT NULL DEFAULT 0,
22
+ "discoveryNextCheckAt" DATETIME,
23
+ "ciFailedAt" DATETIME,
24
+ "ciLastNotifiedAt" DATETIME,
25
+ "reviewLastCheckedAt" DATETIME,
26
+ "reviewLastCommentId" TEXT,
27
+ CONSTRAINT "WorkspacePR_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "Workspace" ("id") ON DELETE CASCADE ON UPDATE CASCADE
28
+ );
29
+
30
+ -- Backfill one row per existing workspace before the columns go away. Every
31
+ -- workspace gets a row, including those with no PR, because PR discovery claims
32
+ -- its backoff on this row before any PR exists.
33
+ INSERT INTO "WorkspacePR" ("workspaceId", "url", "number", "state", "reviewState", "ciStatus", "syncedAt", "discoveryLastCheckedAt", "discoveryRetryCount", "discoveryNextCheckAt", "ciFailedAt", "ciLastNotifiedAt", "reviewLastCheckedAt", "reviewLastCommentId")
34
+ SELECT "id", "prUrl", "prNumber", "prState", "prReviewState", "prCiStatus", "prUpdatedAt", "prDiscoveryLastCheckedAt", "prDiscoveryRetryCount", "prDiscoveryNextCheckAt", "prCiFailedAt", "prCiLastNotifiedAt", "prReviewLastCheckedAt", "prReviewLastCommentId"
35
+ FROM "Workspace";
36
+
37
+ -- RedefineTables
38
+ PRAGMA defer_foreign_keys=ON;
39
+ PRAGMA foreign_keys=OFF;
40
+ CREATE TABLE "new_Workspace" (
41
+ "id" TEXT NOT NULL PRIMARY KEY,
42
+ "projectId" TEXT NOT NULL,
43
+ "name" TEXT NOT NULL,
44
+ "description" TEXT,
45
+ "status" TEXT NOT NULL DEFAULT 'NEW',
46
+ "worktreePath" TEXT,
47
+ "branchName" TEXT,
48
+ "isAutoGeneratedBranch" BOOLEAN NOT NULL DEFAULT false,
49
+ "creationSource" TEXT NOT NULL DEFAULT 'MANUAL',
50
+ "creationMetadata" JSONB,
51
+ "initErrorMessage" TEXT,
52
+ "initOutput" TEXT,
53
+ "initStartedAt" DATETIME,
54
+ "initCompletedAt" DATETIME,
55
+ "initScriptPid" INTEGER,
56
+ "initRetryCount" INTEGER NOT NULL DEFAULT 0,
57
+ "runScriptCommand" TEXT,
58
+ "runScriptPostRunCommand" TEXT,
59
+ "runScriptCleanupCommand" TEXT,
60
+ "runScriptPid" INTEGER,
61
+ "runScriptPort" INTEGER,
62
+ "runScriptStartedAt" DATETIME,
63
+ "runScriptStatus" TEXT NOT NULL DEFAULT 'IDLE',
64
+ "githubIssueNumber" INTEGER,
65
+ "githubIssueUrl" TEXT,
66
+ "linearIssueId" TEXT,
67
+ "linearIssueIdentifier" TEXT,
68
+ "linearIssueUrl" TEXT,
69
+ "defaultSessionProvider" TEXT NOT NULL DEFAULT 'WORKSPACE_DEFAULT',
70
+ "ratchetSessionProvider" TEXT NOT NULL DEFAULT 'WORKSPACE_DEFAULT',
71
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
72
+ "updatedAt" DATETIME NOT NULL,
73
+ "mode" TEXT NOT NULL DEFAULT 'STANDARD',
74
+ "autoIterationStatus" TEXT,
75
+ "autoIterationConfig" JSONB,
76
+ "autoIterationProgress" JSONB,
77
+ "autoIterationSessionId" TEXT,
78
+ "periodicTaskId" TEXT,
79
+ "parent_workspace_id" TEXT,
80
+ "hasHadSessions" BOOLEAN NOT NULL DEFAULT false,
81
+ CONSTRAINT "Workspace_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
82
+ CONSTRAINT "Workspace_periodicTaskId_fkey" FOREIGN KEY ("periodicTaskId") REFERENCES "PeriodicTask" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
83
+ CONSTRAINT "Workspace_parent_workspace_id_fkey" FOREIGN KEY ("parent_workspace_id") REFERENCES "Workspace" ("id") ON DELETE SET NULL ON UPDATE CASCADE
84
+ );
85
+ INSERT INTO "new_Workspace" ("autoIterationConfig", "autoIterationProgress", "autoIterationSessionId", "autoIterationStatus", "branchName", "createdAt", "creationMetadata", "creationSource", "defaultSessionProvider", "description", "githubIssueNumber", "githubIssueUrl", "hasHadSessions", "id", "initCompletedAt", "initErrorMessage", "initOutput", "initRetryCount", "initScriptPid", "initStartedAt", "isAutoGeneratedBranch", "linearIssueId", "linearIssueIdentifier", "linearIssueUrl", "mode", "name", "parent_workspace_id", "periodicTaskId", "projectId", "ratchetSessionProvider", "runScriptCleanupCommand", "runScriptCommand", "runScriptPid", "runScriptPort", "runScriptPostRunCommand", "runScriptStartedAt", "runScriptStatus", "status", "updatedAt", "worktreePath") SELECT "autoIterationConfig", "autoIterationProgress", "autoIterationSessionId", "autoIterationStatus", "branchName", "createdAt", "creationMetadata", "creationSource", "defaultSessionProvider", "description", "githubIssueNumber", "githubIssueUrl", "hasHadSessions", "id", "initCompletedAt", "initErrorMessage", "initOutput", "initRetryCount", "initScriptPid", "initStartedAt", "isAutoGeneratedBranch", "linearIssueId", "linearIssueIdentifier", "linearIssueUrl", "mode", "name", "parent_workspace_id", "periodicTaskId", "projectId", "ratchetSessionProvider", "runScriptCleanupCommand", "runScriptCommand", "runScriptPid", "runScriptPort", "runScriptPostRunCommand", "runScriptStartedAt", "runScriptStatus", "status", "updatedAt", "worktreePath" FROM "Workspace";
86
+ DROP TABLE "Workspace";
87
+ ALTER TABLE "new_Workspace" RENAME TO "Workspace";
88
+ CREATE INDEX "Workspace_projectId_idx" ON "Workspace"("projectId");
89
+ CREATE INDEX "Workspace_status_idx" ON "Workspace"("status");
90
+ CREATE INDEX "Workspace_parent_workspace_id_idx" ON "Workspace"("parent_workspace_id");
91
+ CREATE INDEX "Workspace_projectId_status_idx" ON "Workspace"("projectId", "status");
92
+ CREATE INDEX "Workspace_projectId_updatedAt_idx" ON "Workspace"("projectId", "updatedAt");
93
+ CREATE INDEX "Workspace_projectId_createdAt_idx" ON "Workspace"("projectId", "createdAt");
94
+ PRAGMA foreign_keys=ON;
95
+ PRAGMA defer_foreign_keys=OFF;
96
+
97
+ -- CreateIndex
98
+ CREATE INDEX "WorkspacePR_url_discoveryNextCheckAt_idx" ON "WorkspacePR"("url", "discoveryNextCheckAt");
99
+
100
+ -- CreateIndex
101
+ CREATE INDEX "WorkspacePR_syncedAt_idx" ON "WorkspacePR"("syncedAt");
102
+
103
+ -- SQLite's RedefineTables above dropped and recreated "Workspace", which drops
104
+ -- every trigger attached to it. Recreate the depth-1 guards verbatim; any future
105
+ -- migration that redefines this table has to do the same.
106
+ CREATE TRIGGER enforce_workspace_depth_1
107
+ BEFORE INSERT ON "Workspace"
108
+ WHEN NEW."parent_workspace_id" IS NOT NULL
109
+ BEGIN
110
+ -- Block self-parenting
111
+ SELECT RAISE(ABORT, 'A workspace cannot be its own parent')
112
+ WHERE NEW."id" = NEW."parent_workspace_id";
113
+ -- Block grandchild chains: proposed parent must not already have a parent
114
+ SELECT RAISE(ABORT, 'Child workspaces cannot have children (max depth 1)')
115
+ WHERE EXISTS (
116
+ SELECT 1 FROM "Workspace"
117
+ WHERE "id" = NEW."parent_workspace_id"
118
+ AND "parent_workspace_id" IS NOT NULL
119
+ );
120
+ END;
121
+
122
+ CREATE TRIGGER enforce_workspace_depth_1_update
123
+ BEFORE UPDATE ON "Workspace"
124
+ WHEN NEW."parent_workspace_id" IS NOT NULL
125
+ BEGIN
126
+ -- Block self-parenting
127
+ SELECT RAISE(ABORT, 'A workspace cannot be its own parent')
128
+ WHERE NEW."id" = NEW."parent_workspace_id";
129
+ -- Block grandchild chains: proposed parent must not already have a parent
130
+ SELECT RAISE(ABORT, 'Child workspaces cannot have children (max depth 1)')
131
+ WHERE EXISTS (
132
+ SELECT 1 FROM "Workspace"
133
+ WHERE "id" = NEW."parent_workspace_id"
134
+ AND "parent_workspace_id" IS NOT NULL
135
+ );
136
+ -- Block re-parenting a workspace that already has children
137
+ SELECT RAISE(ABORT, 'Cannot re-parent a workspace that already has children (max depth 1)')
138
+ WHERE EXISTS (
139
+ SELECT 1 FROM "Workspace"
140
+ WHERE "parent_workspace_id" = NEW."id"
141
+ );
142
+ END;
@@ -0,0 +1,101 @@
1
+ -- `RatchetState` stops being stored and becomes a projection of the PR
2
+ -- observation (see `deriveRatchetState`): `WorkspaceRatchet.state` is dropped and
3
+ -- `WorkspacePR.hasMergeConflict` takes its place as the one observed fact the
4
+ -- state needed that was not already cached.
5
+ --
6
+ -- Conflicts were never persisted as a fact -- the ratchet folded them straight
7
+ -- into `state = 'MERGE_CONFLICT'` -- so that value is the only thing to backfill
8
+ -- from, and it has to be read before the column goes.
9
+
10
+
11
+ -- RedefineTables
12
+ PRAGMA defer_foreign_keys=ON;
13
+ PRAGMA foreign_keys=OFF;
14
+ CREATE TABLE "new_WorkspacePR" (
15
+ "workspaceId" TEXT NOT NULL PRIMARY KEY,
16
+ "url" TEXT,
17
+ "number" INTEGER,
18
+ "state" TEXT NOT NULL DEFAULT 'NONE',
19
+ "reviewState" TEXT,
20
+ "ciStatus" TEXT NOT NULL DEFAULT 'UNKNOWN',
21
+ "hasMergeConflict" BOOLEAN NOT NULL DEFAULT false,
22
+ "syncedAt" DATETIME,
23
+ "discoveryLastCheckedAt" DATETIME,
24
+ "discoveryRetryCount" INTEGER NOT NULL DEFAULT 0,
25
+ "discoveryNextCheckAt" DATETIME,
26
+ "ciFailedAt" DATETIME,
27
+ "ciLastNotifiedAt" DATETIME,
28
+ "reviewLastCheckedAt" DATETIME,
29
+ "reviewLastCommentId" TEXT,
30
+ CONSTRAINT "WorkspacePR_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "Workspace" ("id") ON DELETE CASCADE ON UPDATE CASCADE
31
+ );
32
+ INSERT INTO "new_WorkspacePR" ("ciFailedAt", "ciLastNotifiedAt", "ciStatus", "discoveryLastCheckedAt", "discoveryNextCheckAt", "discoveryRetryCount", "number", "reviewLastCheckedAt", "reviewLastCommentId", "reviewState", "state", "syncedAt", "url", "workspaceId") SELECT "ciFailedAt", "ciLastNotifiedAt", "ciStatus", "discoveryLastCheckedAt", "discoveryNextCheckAt", "discoveryRetryCount", "number", "reviewLastCheckedAt", "reviewLastCommentId", "reviewState", "state", "syncedAt", "url", "workspaceId" FROM "WorkspacePR";
33
+ DROP TABLE "WorkspacePR";
34
+ ALTER TABLE "new_WorkspacePR" RENAME TO "WorkspacePR";
35
+ CREATE INDEX "WorkspacePR_url_discoveryNextCheckAt_idx" ON "WorkspacePR"("url", "discoveryNextCheckAt");
36
+ CREATE INDEX "WorkspacePR_syncedAt_idx" ON "WorkspacePR"("syncedAt");
37
+ -- Backfill: recover the conflict flag from the state that encoded it. Runs after
38
+ -- WorkspacePR has been rebuilt with the new column and before WorkspaceRatchet
39
+ -- loses `state`.
40
+ --
41
+ -- `state` is the only contemporaneous record of a conflict, and it under-reports:
42
+ -- a failing build outranked a conflict in the derivation, so a PR with both was
43
+ -- stored as CI_FAILED and migrates as clean.
44
+ --
45
+ -- That is accepted rather than patched. The dispatch snapshot key also carries a
46
+ -- conflict (`|merge:conflict`), but it records whenever the last fixer was
47
+ -- dispatched, not the last observation -- a conflict resolved after its dispatch
48
+ -- leaves the suffix behind, and a later CI failure puts the row back in CI_FAILED,
49
+ -- so even restricting the recovery to that state cannot tell a live conflict from
50
+ -- a stale one.
51
+ --
52
+ -- Under-reporting costs nothing observable: while CI is failing the derivation
53
+ -- returns CI_FAILED and never consults the flag, and the first ratchet check after
54
+ -- CI turns green writes the true flag in the same statement that turns it green
55
+ -- (`recordPrObservation` writes all four projection inputs together). Over-
56
+ -- reporting would be visible -- a spurious conflict badge, and a conflict fixer
57
+ -- dispatched against a clean PR -- so the ambiguous source is left out.
58
+ UPDATE "WorkspacePR"
59
+ SET "hasMergeConflict" = true
60
+ WHERE "workspaceId" IN (
61
+ SELECT "workspaceId" FROM "WorkspaceRatchet" WHERE "state" = 'MERGE_CONFLICT'
62
+ );
63
+
64
+ -- The under-reported rows are handed to the ratchet first instead of guessed at.
65
+ --
66
+ -- CI_FAILED is the only state that could have masked a conflict, so an open PR in
67
+ -- it migrates with an unestablished flag. Left alone, the flag would be correct
68
+ -- once the ratchet re-observed the PR -- but the PR-sync poller writes `ciStatus`
69
+ -- without touching `hasMergeConflict`, so if it saw green CI first the derivation
70
+ -- would report READY for a PR GitHub still calls DIRTY, until the next ratchet
71
+ -- check came round.
72
+ --
73
+ -- Nulling `lastCheckedAt` puts these rows at the front of the ratchet poll, which
74
+ -- orders by it ascending and sorts NULLs first. That establishes the flag from a
75
+ -- live observation on the first cycle after the migration, without this migration
76
+ -- having to guess at a value it cannot know.
77
+ UPDATE "WorkspaceRatchet"
78
+ SET "lastCheckedAt" = NULL
79
+ WHERE "state" = 'CI_FAILED'
80
+ AND "workspaceId" IN (
81
+ SELECT "workspaceId" FROM "WorkspacePR"
82
+ WHERE "state" IN ('OPEN', 'DRAFT', 'CHANGES_REQUESTED', 'APPROVED')
83
+ );
84
+
85
+ CREATE TABLE "new_WorkspaceRatchet" (
86
+ "workspaceId" TEXT NOT NULL PRIMARY KEY,
87
+ "enabled" BOOLEAN NOT NULL DEFAULT true,
88
+ "lastCheckedAt" DATETIME,
89
+ "activeSessionId" TEXT,
90
+ "dispatchSnapshotKey" TEXT,
91
+ "dispatchOutcome" TEXT,
92
+ "dispatchRetryCount" INTEGER NOT NULL DEFAULT 0,
93
+ CONSTRAINT "WorkspaceRatchet_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "Workspace" ("id") ON DELETE CASCADE ON UPDATE CASCADE
94
+ );
95
+ INSERT INTO "new_WorkspaceRatchet" ("activeSessionId", "dispatchOutcome", "dispatchRetryCount", "dispatchSnapshotKey", "enabled", "lastCheckedAt", "workspaceId") SELECT "activeSessionId", "dispatchOutcome", "dispatchRetryCount", "dispatchSnapshotKey", "enabled", "lastCheckedAt", "workspaceId" FROM "WorkspaceRatchet";
96
+ DROP TABLE "WorkspaceRatchet";
97
+ ALTER TABLE "new_WorkspaceRatchet" RENAME TO "WorkspaceRatchet";
98
+ CREATE INDEX "WorkspaceRatchet_lastCheckedAt_idx" ON "WorkspaceRatchet"("lastCheckedAt");
99
+ PRAGMA foreign_keys=ON;
100
+ PRAGMA defer_foreign_keys=OFF;
101
+
@@ -0,0 +1,131 @@
1
+ -- Split the run-script group off Workspace into its own 1:1 table.
2
+ --
3
+ -- Seven columns, two concerns, one row -- see the model docblock for why they
4
+ -- share it. Nothing here is derived, so the backfill copies all seven verbatim;
5
+ -- unlike the ratchet and PR splits there is no misnamed column to correct, only
6
+ -- the `runScript` prefix to drop now that the table name carries it.
7
+ --
8
+ -- `pid`/`port`/`startedAt` look like state a restart makes meaningless, and for
9
+ -- the process they describe they are. They are copied anyway because a SIGKILL
10
+ -- or crash orphans a run script -- it spawns with `detached: false`, so it
11
+ -- normally dies with the server -- and the pid is the only handle on the orphan.
12
+ -- Dropping these would leak one process per workspace that was running at the
13
+ -- moment of the upgrade.
14
+ --
15
+ -- `status` is copied for a narrower reason: STARTING and STOPPING are cleared at
16
+ -- the next startup by `resetStaleTransientStatuses` (it always was -- the column
17
+ -- moving does not change that), but RUNNING, COMPLETED and FAILED are not, and
18
+ -- they are what the kanban card and the sidebar read.
19
+
20
+ CREATE TABLE "WorkspaceRunScript" (
21
+ "workspaceId" TEXT NOT NULL PRIMARY KEY,
22
+ "command" TEXT,
23
+ "postRunCommand" TEXT,
24
+ "cleanupCommand" TEXT,
25
+ "pid" INTEGER,
26
+ "port" INTEGER,
27
+ "startedAt" DATETIME,
28
+ "status" TEXT NOT NULL DEFAULT 'IDLE',
29
+ CONSTRAINT "WorkspaceRunScript_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "Workspace" ("id") ON DELETE CASCADE ON UPDATE CASCADE
30
+ );
31
+
32
+ -- Backfill one row per existing workspace before the columns go away. Every
33
+ -- workspace gets a row, including those that have never had a run script, so the
34
+ -- compare-and-swap on `status` always has a row to guard.
35
+ INSERT INTO "WorkspaceRunScript" ("workspaceId", "command", "postRunCommand", "cleanupCommand", "pid", "port", "startedAt", "status")
36
+ SELECT "id", "runScriptCommand", "runScriptPostRunCommand", "runScriptCleanupCommand", "runScriptPid", "runScriptPort", "runScriptStartedAt", "runScriptStatus"
37
+ FROM "Workspace";
38
+
39
+ -- RedefineTables
40
+ PRAGMA defer_foreign_keys=ON;
41
+ PRAGMA foreign_keys=OFF;
42
+ CREATE TABLE "new_Workspace" (
43
+ "id" TEXT NOT NULL PRIMARY KEY,
44
+ "projectId" TEXT NOT NULL,
45
+ "name" TEXT NOT NULL,
46
+ "description" TEXT,
47
+ "status" TEXT NOT NULL DEFAULT 'NEW',
48
+ "worktreePath" TEXT,
49
+ "branchName" TEXT,
50
+ "isAutoGeneratedBranch" BOOLEAN NOT NULL DEFAULT false,
51
+ "creationSource" TEXT NOT NULL DEFAULT 'MANUAL',
52
+ "creationMetadata" JSONB,
53
+ "initErrorMessage" TEXT,
54
+ "initOutput" TEXT,
55
+ "initStartedAt" DATETIME,
56
+ "initCompletedAt" DATETIME,
57
+ "initScriptPid" INTEGER,
58
+ "initRetryCount" INTEGER NOT NULL DEFAULT 0,
59
+ "githubIssueNumber" INTEGER,
60
+ "githubIssueUrl" TEXT,
61
+ "linearIssueId" TEXT,
62
+ "linearIssueIdentifier" TEXT,
63
+ "linearIssueUrl" TEXT,
64
+ "defaultSessionProvider" TEXT NOT NULL DEFAULT 'WORKSPACE_DEFAULT',
65
+ "ratchetSessionProvider" TEXT NOT NULL DEFAULT 'WORKSPACE_DEFAULT',
66
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
67
+ "updatedAt" DATETIME NOT NULL,
68
+ "mode" TEXT NOT NULL DEFAULT 'STANDARD',
69
+ "autoIterationStatus" TEXT,
70
+ "autoIterationConfig" JSONB,
71
+ "autoIterationProgress" JSONB,
72
+ "autoIterationSessionId" TEXT,
73
+ "periodicTaskId" TEXT,
74
+ "parent_workspace_id" TEXT,
75
+ "hasHadSessions" BOOLEAN NOT NULL DEFAULT false,
76
+ CONSTRAINT "Workspace_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
77
+ CONSTRAINT "Workspace_periodicTaskId_fkey" FOREIGN KEY ("periodicTaskId") REFERENCES "PeriodicTask" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
78
+ CONSTRAINT "Workspace_parent_workspace_id_fkey" FOREIGN KEY ("parent_workspace_id") REFERENCES "Workspace" ("id") ON DELETE SET NULL ON UPDATE CASCADE
79
+ );
80
+ INSERT INTO "new_Workspace" ("autoIterationConfig", "autoIterationProgress", "autoIterationSessionId", "autoIterationStatus", "branchName", "createdAt", "creationMetadata", "creationSource", "defaultSessionProvider", "description", "githubIssueNumber", "githubIssueUrl", "hasHadSessions", "id", "initCompletedAt", "initErrorMessage", "initOutput", "initRetryCount", "initScriptPid", "initStartedAt", "isAutoGeneratedBranch", "linearIssueId", "linearIssueIdentifier", "linearIssueUrl", "mode", "name", "parent_workspace_id", "periodicTaskId", "projectId", "ratchetSessionProvider", "status", "updatedAt", "worktreePath") SELECT "autoIterationConfig", "autoIterationProgress", "autoIterationSessionId", "autoIterationStatus", "branchName", "createdAt", "creationMetadata", "creationSource", "defaultSessionProvider", "description", "githubIssueNumber", "githubIssueUrl", "hasHadSessions", "id", "initCompletedAt", "initErrorMessage", "initOutput", "initRetryCount", "initScriptPid", "initStartedAt", "isAutoGeneratedBranch", "linearIssueId", "linearIssueIdentifier", "linearIssueUrl", "mode", "name", "parent_workspace_id", "periodicTaskId", "projectId", "ratchetSessionProvider", "status", "updatedAt", "worktreePath" FROM "Workspace";
81
+ DROP TABLE "Workspace";
82
+ ALTER TABLE "new_Workspace" RENAME TO "Workspace";
83
+ CREATE INDEX "Workspace_projectId_idx" ON "Workspace"("projectId");
84
+ CREATE INDEX "Workspace_status_idx" ON "Workspace"("status");
85
+ CREATE INDEX "Workspace_parent_workspace_id_idx" ON "Workspace"("parent_workspace_id");
86
+ CREATE INDEX "Workspace_projectId_status_idx" ON "Workspace"("projectId", "status");
87
+ CREATE INDEX "Workspace_projectId_updatedAt_idx" ON "Workspace"("projectId", "updatedAt");
88
+ CREATE INDEX "Workspace_projectId_createdAt_idx" ON "Workspace"("projectId", "createdAt");
89
+ PRAGMA foreign_keys=ON;
90
+ PRAGMA defer_foreign_keys=OFF;
91
+
92
+ -- SQLite's RedefineTables above dropped and recreated "Workspace", which drops
93
+ -- every trigger attached to it. Recreate the depth-1 guards verbatim; any future
94
+ -- migration that redefines this table has to do the same.
95
+ CREATE TRIGGER enforce_workspace_depth_1
96
+ BEFORE INSERT ON "Workspace"
97
+ WHEN NEW."parent_workspace_id" IS NOT NULL
98
+ BEGIN
99
+ -- Block self-parenting
100
+ SELECT RAISE(ABORT, 'A workspace cannot be its own parent')
101
+ WHERE NEW."id" = NEW."parent_workspace_id";
102
+ -- Block grandchild chains: proposed parent must not already have a parent
103
+ SELECT RAISE(ABORT, 'Child workspaces cannot have children (max depth 1)')
104
+ WHERE EXISTS (
105
+ SELECT 1 FROM "Workspace"
106
+ WHERE "id" = NEW."parent_workspace_id"
107
+ AND "parent_workspace_id" IS NOT NULL
108
+ );
109
+ END;
110
+
111
+ CREATE TRIGGER enforce_workspace_depth_1_update
112
+ BEFORE UPDATE ON "Workspace"
113
+ WHEN NEW."parent_workspace_id" IS NOT NULL
114
+ BEGIN
115
+ -- Block self-parenting
116
+ SELECT RAISE(ABORT, 'A workspace cannot be its own parent')
117
+ WHERE NEW."id" = NEW."parent_workspace_id";
118
+ -- Block grandchild chains: proposed parent must not already have a parent
119
+ SELECT RAISE(ABORT, 'Child workspaces cannot have children (max depth 1)')
120
+ WHERE EXISTS (
121
+ SELECT 1 FROM "Workspace"
122
+ WHERE "id" = NEW."parent_workspace_id"
123
+ AND "parent_workspace_id" IS NOT NULL
124
+ );
125
+ -- Block re-parenting a workspace that already has children
126
+ SELECT RAISE(ABORT, 'Cannot re-parent a workspace that already has children (max depth 1)')
127
+ WHERE EXISTS (
128
+ SELECT 1 FROM "Workspace"
129
+ WHERE "parent_workspace_id" = NEW."id"
130
+ );
131
+ END;
@@ -0,0 +1,123 @@
1
+ -- Split the auto-iteration group off Workspace into its own 1:1 table.
2
+ --
3
+ -- The last of the four concerns the model carried. Five columns, one concern,
4
+ -- copied verbatim -- there is no derived value here and no misnamed column to
5
+ -- correct, only the `autoIteration` prefix to drop now that the table name
6
+ -- carries it.
7
+ --
8
+ -- `mode` moves with them. It reads like a general workspace attribute, but every
9
+ -- consumer is an auto-iteration consumer, so it is this group's discriminant --
10
+ -- the same call the ratchet split made for `ratchetEnabled`. Its NOT NULL
11
+ -- default carries over, so a workspace that never used the feature backfills to
12
+ -- exactly what it had: STANDARD and four nulls.
13
+ --
14
+ -- `status` is copied rather than reset even though `resetStaleAutoIterationStatuses`
15
+ -- clears RUNNING at the next startup: COMPLETED and FAILED are results the user
16
+ -- has not seen yet, and PAUSED is a state the user chose.
17
+
18
+ CREATE TABLE "WorkspaceAutoIteration" (
19
+ "workspaceId" TEXT NOT NULL PRIMARY KEY,
20
+ "mode" TEXT NOT NULL DEFAULT 'STANDARD',
21
+ "status" TEXT,
22
+ "config" JSONB,
23
+ "progress" JSONB,
24
+ "sessionId" TEXT,
25
+ CONSTRAINT "WorkspaceAutoIteration_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "Workspace" ("id") ON DELETE CASCADE ON UPDATE CASCADE
26
+ );
27
+
28
+ -- Backfill one row per existing workspace before the columns go away. Every
29
+ -- workspace gets a row, including the STANDARD ones that have never touched the
30
+ -- feature, so the compare-and-swaps on `sessionId` and `status` always have a
31
+ -- row to guard.
32
+ INSERT INTO "WorkspaceAutoIteration" ("workspaceId", "mode", "status", "config", "progress", "sessionId")
33
+ SELECT "id", "mode", "autoIterationStatus", "autoIterationConfig", "autoIterationProgress", "autoIterationSessionId"
34
+ FROM "Workspace";
35
+
36
+ -- RedefineTables
37
+ PRAGMA defer_foreign_keys=ON;
38
+ PRAGMA foreign_keys=OFF;
39
+ CREATE TABLE "new_Workspace" (
40
+ "id" TEXT NOT NULL PRIMARY KEY,
41
+ "projectId" TEXT NOT NULL,
42
+ "name" TEXT NOT NULL,
43
+ "description" TEXT,
44
+ "status" TEXT NOT NULL DEFAULT 'NEW',
45
+ "worktreePath" TEXT,
46
+ "branchName" TEXT,
47
+ "isAutoGeneratedBranch" BOOLEAN NOT NULL DEFAULT false,
48
+ "creationSource" TEXT NOT NULL DEFAULT 'MANUAL',
49
+ "creationMetadata" JSONB,
50
+ "initErrorMessage" TEXT,
51
+ "initOutput" TEXT,
52
+ "initStartedAt" DATETIME,
53
+ "initCompletedAt" DATETIME,
54
+ "initScriptPid" INTEGER,
55
+ "initRetryCount" INTEGER NOT NULL DEFAULT 0,
56
+ "githubIssueNumber" INTEGER,
57
+ "githubIssueUrl" TEXT,
58
+ "linearIssueId" TEXT,
59
+ "linearIssueIdentifier" TEXT,
60
+ "linearIssueUrl" TEXT,
61
+ "defaultSessionProvider" TEXT NOT NULL DEFAULT 'WORKSPACE_DEFAULT',
62
+ "ratchetSessionProvider" TEXT NOT NULL DEFAULT 'WORKSPACE_DEFAULT',
63
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
64
+ "updatedAt" DATETIME NOT NULL,
65
+ "periodicTaskId" TEXT,
66
+ "parent_workspace_id" TEXT,
67
+ "hasHadSessions" BOOLEAN NOT NULL DEFAULT false,
68
+ CONSTRAINT "Workspace_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
69
+ CONSTRAINT "Workspace_periodicTaskId_fkey" FOREIGN KEY ("periodicTaskId") REFERENCES "PeriodicTask" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
70
+ CONSTRAINT "Workspace_parent_workspace_id_fkey" FOREIGN KEY ("parent_workspace_id") REFERENCES "Workspace" ("id") ON DELETE SET NULL ON UPDATE CASCADE
71
+ );
72
+ INSERT INTO "new_Workspace" ("branchName", "createdAt", "creationMetadata", "creationSource", "defaultSessionProvider", "description", "githubIssueNumber", "githubIssueUrl", "hasHadSessions", "id", "initCompletedAt", "initErrorMessage", "initOutput", "initRetryCount", "initScriptPid", "initStartedAt", "isAutoGeneratedBranch", "linearIssueId", "linearIssueIdentifier", "linearIssueUrl", "name", "parent_workspace_id", "periodicTaskId", "projectId", "ratchetSessionProvider", "status", "updatedAt", "worktreePath") SELECT "branchName", "createdAt", "creationMetadata", "creationSource", "defaultSessionProvider", "description", "githubIssueNumber", "githubIssueUrl", "hasHadSessions", "id", "initCompletedAt", "initErrorMessage", "initOutput", "initRetryCount", "initScriptPid", "initStartedAt", "isAutoGeneratedBranch", "linearIssueId", "linearIssueIdentifier", "linearIssueUrl", "name", "parent_workspace_id", "periodicTaskId", "projectId", "ratchetSessionProvider", "status", "updatedAt", "worktreePath" FROM "Workspace";
73
+ DROP TABLE "Workspace";
74
+ ALTER TABLE "new_Workspace" RENAME TO "Workspace";
75
+ CREATE INDEX "Workspace_projectId_idx" ON "Workspace"("projectId");
76
+ CREATE INDEX "Workspace_status_idx" ON "Workspace"("status");
77
+ CREATE INDEX "Workspace_parent_workspace_id_idx" ON "Workspace"("parent_workspace_id");
78
+ CREATE INDEX "Workspace_projectId_status_idx" ON "Workspace"("projectId", "status");
79
+ CREATE INDEX "Workspace_projectId_updatedAt_idx" ON "Workspace"("projectId", "updatedAt");
80
+ CREATE INDEX "Workspace_projectId_createdAt_idx" ON "Workspace"("projectId", "createdAt");
81
+ PRAGMA foreign_keys=ON;
82
+ PRAGMA defer_foreign_keys=OFF;
83
+
84
+ -- SQLite's RedefineTables above dropped and recreated "Workspace", which drops
85
+ -- every trigger attached to it. Recreate the depth-1 guards verbatim; any future
86
+ -- migration that redefines this table has to do the same.
87
+ CREATE TRIGGER enforce_workspace_depth_1
88
+ BEFORE INSERT ON "Workspace"
89
+ WHEN NEW."parent_workspace_id" IS NOT NULL
90
+ BEGIN
91
+ -- Block self-parenting
92
+ SELECT RAISE(ABORT, 'A workspace cannot be its own parent')
93
+ WHERE NEW."id" = NEW."parent_workspace_id";
94
+ -- Block grandchild chains: proposed parent must not already have a parent
95
+ SELECT RAISE(ABORT, 'Child workspaces cannot have children (max depth 1)')
96
+ WHERE EXISTS (
97
+ SELECT 1 FROM "Workspace"
98
+ WHERE "id" = NEW."parent_workspace_id"
99
+ AND "parent_workspace_id" IS NOT NULL
100
+ );
101
+ END;
102
+
103
+ CREATE TRIGGER enforce_workspace_depth_1_update
104
+ BEFORE UPDATE ON "Workspace"
105
+ WHEN NEW."parent_workspace_id" IS NOT NULL
106
+ BEGIN
107
+ -- Block self-parenting
108
+ SELECT RAISE(ABORT, 'A workspace cannot be its own parent')
109
+ WHERE NEW."id" = NEW."parent_workspace_id";
110
+ -- Block grandchild chains: proposed parent must not already have a parent
111
+ SELECT RAISE(ABORT, 'Child workspaces cannot have children (max depth 1)')
112
+ WHERE EXISTS (
113
+ SELECT 1 FROM "Workspace"
114
+ WHERE "id" = NEW."parent_workspace_id"
115
+ AND "parent_workspace_id" IS NOT NULL
116
+ );
117
+ -- Block re-parenting a workspace that already has children
118
+ SELECT RAISE(ABORT, 'Cannot re-parent a workspace that already has children (max depth 1)')
119
+ WHERE EXISTS (
120
+ SELECT 1 FROM "Workspace"
121
+ WHERE "parent_workspace_id" = NEW."id"
122
+ );
123
+ END;