@shepai/cli 1.124.0-pr396.2dd2ae6 → 1.124.0-pr402.06ada70

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 (287) hide show
  1. package/dist/packages/core/src/application/ports/output/services/deployment-service.interface.d.ts +13 -2
  2. package/dist/packages/core/src/application/ports/output/services/deployment-service.interface.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +5 -68
  4. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
  5. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.js +4 -6
  6. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  7. package/dist/packages/core/src/infrastructure/di/container.js +2 -15
  8. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/040-create-dev-servers-table.d.ts +21 -0
  9. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/040-create-dev-servers-table.d.ts.map +1 -0
  10. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/040-create-dev-servers-table.js +32 -0
  11. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/ci-watch-fix-loop.d.ts.map +1 -1
  12. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/ci-watch-fix-loop.js +9 -0
  13. package/dist/packages/core/src/infrastructure/services/deployment/deployment.service.d.ts +24 -14
  14. package/dist/packages/core/src/infrastructure/services/deployment/deployment.service.d.ts.map +1 -1
  15. package/dist/packages/core/src/infrastructure/services/deployment/deployment.service.js +203 -31
  16. package/dist/packages/core/src/infrastructure/services/deployment/parse-port.d.ts +0 -6
  17. package/dist/packages/core/src/infrastructure/services/deployment/parse-port.d.ts.map +1 -1
  18. package/dist/packages/core/src/infrastructure/services/deployment/parse-port.js +6 -1
  19. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +0 -6
  20. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  21. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +7 -127
  22. package/dist/src/presentation/web/app/actions/deploy-feature.js +1 -1
  23. package/dist/src/presentation/web/app/actions/deploy-repository.js +1 -1
  24. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  25. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +1 -2
  26. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts.map +1 -1
  27. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.js +4 -4
  28. package/dist/src/presentation/web/components/common/feature-drawer/use-feature-actions.d.ts +0 -4
  29. package/dist/src/presentation/web/components/common/feature-drawer/use-feature-actions.d.ts.map +1 -1
  30. package/dist/src/presentation/web/components/common/feature-drawer/use-feature-actions.js +1 -32
  31. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +1 -4
  32. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  33. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +2 -2
  34. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts +1 -4
  35. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -1
  36. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +3 -8
  37. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +0 -6
  38. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +1 -1
  39. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +0 -30
  40. package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.stories.d.ts.map +1 -1
  41. package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.stories.js +0 -3
  42. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.d.ts.map +1 -1
  43. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.js +3 -3
  44. package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
  45. package/dist/src/presentation/web/components/common/repository-node/repository-node.js +8 -5
  46. package/dist/src/presentation/web/components/common/repository-node/use-repository-actions.d.ts +0 -4
  47. package/dist/src/presentation/web/components/common/repository-node/use-repository-actions.d.ts.map +1 -1
  48. package/dist/src/presentation/web/components/common/repository-node/use-repository-actions.js +0 -11
  49. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  50. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +12 -3
  51. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -1
  52. package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +4 -8
  53. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +3 -3
  54. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  55. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +12 -37
  56. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  57. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +2 -3
  58. package/dist/src/presentation/web/hooks/use-deploy-action.d.ts.map +1 -1
  59. package/dist/src/presentation/web/hooks/use-deploy-action.js +69 -10
  60. package/dist/src/presentation/web/lib/layout-with-dagre.js +3 -3
  61. package/dist/tsconfig.build.tsbuildinfo +1 -1
  62. package/package.json +1 -1
  63. package/web/.next/BUILD_ID +1 -1
  64. package/web/.next/build-manifest.json +2 -2
  65. package/web/.next/fallback-build-manifest.json +2 -2
  66. package/web/.next/prerender-manifest.json +3 -3
  67. package/web/.next/required-server-files.js +1 -1
  68. package/web/.next/required-server-files.json +1 -1
  69. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +48 -63
  70. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -2
  71. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  72. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +60 -90
  74. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
  75. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  76. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  77. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +60 -90
  78. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
  79. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  80. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  81. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +44 -59
  82. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -2
  83. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  84. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  85. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +48 -63
  86. package/web/.next/server/app/(dashboard)/create/page.js +2 -2
  87. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  88. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  89. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +60 -90
  90. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
  91. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  92. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  93. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +60 -90
  94. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
  95. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  96. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  97. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +44 -59
  98. package/web/.next/server/app/(dashboard)/page.js +2 -2
  99. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  100. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  101. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +44 -59
  102. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -2
  103. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  104. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  105. package/web/.next/server/app/_global-error.html +2 -2
  106. package/web/.next/server/app/_global-error.rsc +1 -1
  107. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  108. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  109. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  110. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  111. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  112. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  113. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  114. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  115. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  116. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  117. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  118. package/web/.next/server/app/settings/page/server-reference-manifest.json +6 -6
  119. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  120. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  121. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  122. package/web/.next/server/app/skills/page.js +1 -2
  123. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  124. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  125. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  126. package/web/.next/server/app/tools/page.js +1 -2
  127. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  128. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  129. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  130. package/web/.next/server/app/version/page.js.nft.json +1 -1
  131. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  132. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  133. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  134. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  135. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  136. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  137. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_fdfbf5cc.js +3 -0
  138. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_fdfbf5cc.js.map +1 -0
  139. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_d8fa0b5f.js +3 -0
  140. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_d8fa0b5f.js.map +1 -0
  141. package/web/.next/server/chunks/ssr/[root-of-the-server]__06fef644._.js +1 -1
  142. package/web/.next/server/chunks/ssr/[root-of-the-server]__248b9fc3._.js +3 -0
  143. package/web/.next/server/chunks/ssr/[root-of-the-server]__248b9fc3._.js.map +1 -0
  144. package/web/.next/server/chunks/ssr/[root-of-the-server]__357de47c._.js +4 -0
  145. package/web/.next/server/chunks/ssr/[root-of-the-server]__357de47c._.js.map +1 -0
  146. package/web/.next/server/chunks/ssr/[root-of-the-server]__56ecbe40._.js +3 -0
  147. package/web/.next/server/chunks/ssr/[root-of-the-server]__56ecbe40._.js.map +1 -0
  148. package/web/.next/server/chunks/ssr/[root-of-the-server]__67fe07fe._.js +4 -0
  149. package/web/.next/server/chunks/ssr/[root-of-the-server]__67fe07fe._.js.map +1 -0
  150. package/web/.next/server/chunks/ssr/[root-of-the-server]__68c2d48e._.js +3 -0
  151. package/web/.next/server/chunks/ssr/[root-of-the-server]__68c2d48e._.js.map +1 -0
  152. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  153. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  154. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
  155. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
  156. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  157. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  158. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js +2 -2
  159. package/web/.next/server/chunks/ssr/[root-of-the-server]__a50a7e39._.js +4 -0
  160. package/web/.next/server/chunks/ssr/[root-of-the-server]__a50a7e39._.js.map +1 -0
  161. package/web/.next/server/chunks/ssr/[root-of-the-server]__dfc367f2._.js +3 -0
  162. package/web/.next/server/chunks/ssr/{[root-of-the-server]__7a715c73._.js.map → [root-of-the-server]__dfc367f2._.js.map} +1 -1
  163. package/web/.next/server/chunks/ssr/[root-of-the-server]__e7f61cc6._.js +3 -0
  164. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a32640a5._.js.map → [root-of-the-server]__e7f61cc6._.js.map} +1 -1
  165. package/web/.next/server/chunks/ssr/[root-of-the-server]__fe48d2dc._.js +3 -0
  166. package/web/.next/server/chunks/ssr/[root-of-the-server]__fe48d2dc._.js.map +1 -0
  167. package/web/.next/server/chunks/ssr/_2f6f48b8._.js +1 -1
  168. package/web/.next/server/chunks/ssr/_2f6f48b8._.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/_7dca1882._.js +3 -0
  170. package/web/.next/server/chunks/ssr/_7dca1882._.js.map +1 -0
  171. package/web/.next/server/chunks/ssr/{_0e506641._.js → _918887c5._.js} +2 -2
  172. package/web/.next/server/chunks/ssr/_918887c5._.js.map +1 -0
  173. package/web/.next/server/chunks/ssr/_a2eff93a._.js +3 -0
  174. package/web/.next/server/chunks/ssr/_a2eff93a._.js.map +1 -0
  175. package/web/.next/server/chunks/ssr/{_1bb131c4._.js → _d4b20e29._.js} +2 -2
  176. package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +1 -0
  177. package/web/.next/server/chunks/ssr/{_e2638d5f._.js → _d7f927ec._.js} +2 -2
  178. package/web/.next/server/chunks/ssr/{_e2638d5f._.js.map → _d7f927ec._.js.map} +1 -1
  179. package/web/.next/server/chunks/ssr/_e9703421._.js +1 -1
  180. package/web/.next/server/chunks/ssr/_e9703421._.js.map +1 -1
  181. package/web/.next/server/chunks/ssr/_f39a1adb._.js +3 -0
  182. package/web/.next/server/chunks/ssr/{_135edb9c._.js.map → _f39a1adb._.js.map} +1 -1
  183. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  184. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  185. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  186. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  187. package/web/.next/server/chunks/ssr/src_presentation_web_073917db._.js +3 -0
  188. package/web/.next/server/chunks/ssr/src_presentation_web_073917db._.js.map +1 -0
  189. package/web/.next/server/chunks/ssr/src_presentation_web_9db47db7._.js +5 -0
  190. package/web/.next/server/chunks/ssr/{src_presentation_web_e4e3c09b._.js.map → src_presentation_web_9db47db7._.js.map} +1 -1
  191. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f66cd328.js +3 -0
  192. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f66cd328.js.map +1 -0
  193. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  194. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  195. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  196. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js.map +1 -1
  197. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  198. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js.map +1 -1
  199. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  200. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  201. package/web/.next/server/chunks/ssr/src_presentation_web_ede4a227._.js +5 -0
  202. package/web/.next/server/chunks/ssr/{src_presentation_web_d1d40a09._.js.map → src_presentation_web_ede4a227._.js.map} +1 -1
  203. package/web/.next/server/pages/500.html +2 -2
  204. package/web/.next/server/server-reference-manifest.js +1 -1
  205. package/web/.next/server/server-reference-manifest.json +285 -392
  206. package/web/.next/static/chunks/01ba448cf76c6014.js +1 -0
  207. package/web/.next/static/chunks/{80f9e0cade7d717b.js → 04f47be1504521fc.js} +1 -1
  208. package/web/.next/static/chunks/0a514695ca5fabc3.js +2 -0
  209. package/web/.next/static/chunks/1be7ac7a24009333.css +1 -0
  210. package/web/.next/static/chunks/28f1dddebda55af2.js +1 -0
  211. package/web/.next/static/chunks/2ee4a1a94f6001ea.js +1 -0
  212. package/web/.next/static/chunks/{8b87caa5e8e72539.js → 33d7958650742d27.js} +1 -1
  213. package/web/.next/static/chunks/37ada233462bcaec.js +11 -0
  214. package/web/.next/static/chunks/469f49ae02e8a1f6.js +1 -0
  215. package/web/.next/static/chunks/54481c140fd8761a.js +1 -0
  216. package/web/.next/static/chunks/{0a25d970e4abd189.js → b609272225ffb749.js} +1 -1
  217. package/web/.next/static/chunks/b70dd4985a814b27.js +1 -0
  218. package/web/.next/static/chunks/e651e1ec05e5a806.js +1 -0
  219. package/web/.next/static/chunks/eb9841ec4d80af01.js +1 -0
  220. package/web/.next/static/chunks/f2c96db74a878fa1.js +1 -0
  221. package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.d.ts +0 -28
  222. package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.d.ts.map +0 -1
  223. package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.js +0 -81
  224. package/dist/packages/core/src/application/use-cases/repositories/sync-repository-main.use-case.d.ts +0 -16
  225. package/dist/packages/core/src/application/use-cases/repositories/sync-repository-main.use-case.d.ts.map +0 -1
  226. package/dist/packages/core/src/application/use-cases/repositories/sync-repository-main.use-case.js +0 -43
  227. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.d.ts +0 -35
  228. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.d.ts.map +0 -1
  229. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.js +0 -66
  230. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.d.ts +0 -42
  231. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.d.ts.map +0 -1
  232. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.js +0 -169
  233. package/dist/src/presentation/web/app/actions/rebase-feature.d.ts +0 -5
  234. package/dist/src/presentation/web/app/actions/rebase-feature.d.ts.map +0 -1
  235. package/dist/src/presentation/web/app/actions/rebase-feature.js +0 -16
  236. package/dist/src/presentation/web/app/actions/sync-repository.d.ts +0 -5
  237. package/dist/src/presentation/web/app/actions/sync-repository.d.ts.map +0 -1
  238. package/dist/src/presentation/web/app/actions/sync-repository.js +0 -16
  239. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_9efdd752.js +0 -3
  240. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_9efdd752.js.map +0 -1
  241. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6ce19942.js +0 -3
  242. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6ce19942.js.map +0 -1
  243. package/web/.next/server/chunks/ssr/[root-of-the-server]__14664e9b._.js +0 -4
  244. package/web/.next/server/chunks/ssr/[root-of-the-server]__14664e9b._.js.map +0 -1
  245. package/web/.next/server/chunks/ssr/[root-of-the-server]__16a547fc._.js +0 -3
  246. package/web/.next/server/chunks/ssr/[root-of-the-server]__16a547fc._.js.map +0 -1
  247. package/web/.next/server/chunks/ssr/[root-of-the-server]__4993a47c._.js +0 -3
  248. package/web/.next/server/chunks/ssr/[root-of-the-server]__4993a47c._.js.map +0 -1
  249. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js +0 -3
  250. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js.map +0 -1
  251. package/web/.next/server/chunks/ssr/[root-of-the-server]__7a715c73._.js +0 -3
  252. package/web/.next/server/chunks/ssr/[root-of-the-server]__a32640a5._.js +0 -3
  253. package/web/.next/server/chunks/ssr/[root-of-the-server]__a7de2711._.js +0 -4
  254. package/web/.next/server/chunks/ssr/[root-of-the-server]__a7de2711._.js.map +0 -1
  255. package/web/.next/server/chunks/ssr/[root-of-the-server]__c94704d6._.js +0 -3
  256. package/web/.next/server/chunks/ssr/[root-of-the-server]__c94704d6._.js.map +0 -1
  257. package/web/.next/server/chunks/ssr/_0e506641._.js.map +0 -1
  258. package/web/.next/server/chunks/ssr/_135edb9c._.js +0 -3
  259. package/web/.next/server/chunks/ssr/_1bb131c4._.js.map +0 -1
  260. package/web/.next/server/chunks/ssr/_966c4532._.js +0 -3
  261. package/web/.next/server/chunks/ssr/_966c4532._.js.map +0 -1
  262. package/web/.next/server/chunks/ssr/_cc77a143._.js +0 -3
  263. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +0 -1
  264. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_883074bc.js +0 -3
  265. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_883074bc.js.map +0 -1
  266. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +0 -3
  267. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +0 -1
  268. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +0 -3
  269. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +0 -1
  270. package/web/.next/server/chunks/ssr/src_presentation_web_d1d40a09._.js +0 -5
  271. package/web/.next/server/chunks/ssr/src_presentation_web_e4e3c09b._.js +0 -5
  272. package/web/.next/server/chunks/ssr/src_presentation_web_f6b57368._.js +0 -3
  273. package/web/.next/server/chunks/ssr/src_presentation_web_f6b57368._.js.map +0 -1
  274. package/web/.next/static/chunks/11fbcb908d07e234.js +0 -1
  275. package/web/.next/static/chunks/3925626b99dcd57a.css +0 -1
  276. package/web/.next/static/chunks/4b51f8f4e49665b8.js +0 -1
  277. package/web/.next/static/chunks/513b719e49ca003a.js +0 -11
  278. package/web/.next/static/chunks/77304c4f9c5bb158.js +0 -1
  279. package/web/.next/static/chunks/9b7dbb75030aac3e.js +0 -1
  280. package/web/.next/static/chunks/ac7251026c1e2cdf.js +0 -1
  281. package/web/.next/static/chunks/cd008e10baaeae9a.js +0 -1
  282. package/web/.next/static/chunks/d71ce7044ed5a85a.js +0 -2
  283. package/web/.next/static/chunks/db8d50abcf46d8b3.js +0 -1
  284. package/web/.next/static/chunks/e2ef95d904c360f3.js +0 -1
  285. /package/web/.next/static/{MpP2wa-zjPqcZxmpuDBjj → FXJ9jqgleHlSoq4JKo32G}/_buildManifest.js +0 -0
  286. /package/web/.next/static/{MpP2wa-zjPqcZxmpuDBjj → FXJ9jqgleHlSoq4JKo32G}/_clientMiddlewareManifest.json +0 -0
  287. /package/web/.next/static/{MpP2wa-zjPqcZxmpuDBjj → FXJ9jqgleHlSoq4JKo32G}/_ssgManifest.js +0 -0
@@ -9,6 +9,7 @@
9
9
  * - Application layer depends on this interface
10
10
  * - Infrastructure layer provides concrete implementations
11
11
  */
12
+ import type Database from 'better-sqlite3';
12
13
  import type { DeploymentState } from '../../../../domain/generated/output.js';
13
14
  /** A single log line captured from a deployment's stdout or stderr. */
14
15
  export interface LogEntry {
@@ -39,16 +40,26 @@ export interface DeploymentStatus {
39
40
  * - Support graceful shutdown (SIGTERM → SIGKILL) for individual and bulk stops
40
41
  */
41
42
  export interface IDeploymentService {
43
+ /**
44
+ * Inject the database connection for persistence.
45
+ * Must be called before start/stop/getStatus to enable DB persistence.
46
+ */
47
+ setDatabase(db: Database.Database): void;
48
+ /**
49
+ * Recover dev servers from the database on startup.
50
+ * Validates each PID is still alive; removes dead rows.
51
+ */
52
+ recoverAll(): void;
42
53
  /**
43
54
  * Start a dev server deployment for the given target.
44
55
  * If a deployment already exists for this targetId, it is stopped first.
45
56
  *
46
57
  * @param targetId - Unique identifier for the deployment target (featureId or repositoryId)
47
58
  * @param targetPath - Absolute filesystem path to the directory to run the dev server in
48
- * @returns The initial deployment state (always Booting on success)
59
+ * @param targetType - Type of target ('feature' or 'repository')
49
60
  * @throws Error if no dev script is found in package.json or the process fails to spawn
50
61
  */
51
- start(targetId: string, targetPath: string): void;
62
+ start(targetId: string, targetPath: string, targetType?: string): void;
52
63
  /**
53
64
  * Stop a running deployment gracefully.
54
65
  * Sends SIGTERM to the process group, then SIGKILL after a timeout.
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/deployment-service.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,uEAAuE;AACvE,MAAM,WAAW,QAAQ;IACvB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,KAAK,EAAE,eAAe,CAAC;IACvB,qEAAqE;IACrE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAElD;;;;;;OAMG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAErD;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAC;IAIhB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;IAE7C;;;;;OAKG;IACH,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAC;IAE3D;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAC;CAC7D"}
1
+ {"version":3,"file":"deployment-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/deployment-service.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,uEAAuE;AACvE,MAAM,WAAW,QAAQ;IACvB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,KAAK,EAAE,eAAe,CAAC;IACvB,qEAAqE;IACrE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;IAEzC;;;OAGG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvE;;;;;;OAMG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAErD;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAC;IAIhB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;IAE7C;;;;;OAKG;IACH,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAC;IAE3D;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAC;CAC7D"}
@@ -9,17 +9,15 @@ import type { PrStatus } from '../../../../domain/generated/output.js';
9
9
  * Error codes for git PR operations.
10
10
  */
11
11
  export declare enum GitPrErrorCode {
12
+ MERGE_CONFLICT = "MERGE_CONFLICT",
12
13
  AUTH_FAILURE = "AUTH_FAILURE",
13
- BRANCH_NOT_FOUND = "BRANCH_NOT_FOUND",
14
- CI_TIMEOUT = "CI_TIMEOUT",
15
14
  GH_NOT_FOUND = "GH_NOT_FOUND",
15
+ NETWORK_ERROR = "NETWORK_ERROR",
16
+ CI_TIMEOUT = "CI_TIMEOUT",
17
+ BRANCH_NOT_FOUND = "BRANCH_NOT_FOUND",
16
18
  GIT_ERROR = "GIT_ERROR",
17
- MERGE_CONFLICT = "MERGE_CONFLICT",
18
19
  MERGE_FAILED = "MERGE_FAILED",
19
- NETWORK_ERROR = "NETWORK_ERROR",
20
- PR_NOT_FOUND = "PR_NOT_FOUND",
21
- REBASE_CONFLICT = "REBASE_CONFLICT",
22
- SYNC_FAILED = "SYNC_FAILED"
20
+ PR_NOT_FOUND = "PR_NOT_FOUND"
23
21
  }
24
22
  /**
25
23
  * Typed error for git PR operations.
@@ -320,66 +318,5 @@ export interface IGitPrService {
320
318
  * @throws GitPrError with GH_NOT_FOUND or GIT_ERROR code on failure
321
319
  */
322
320
  getFailureLogs(cwd: string, runId: string, branch: string, logMaxChars?: number): Promise<string>;
323
- /**
324
- * Fast-forward the local base branch to match its remote counterpart.
325
- * If currently on the base branch, uses `git pull --ff-only`.
326
- * If on a different branch, uses `git fetch origin <baseBranch>:<baseBranch>`.
327
- *
328
- * @param cwd - Working directory path
329
- * @param baseBranch - The base branch to sync (e.g. "main")
330
- * @throws GitPrError with SYNC_FAILED code if the branch has diverged and cannot fast-forward
331
- * @throws GitPrError with GIT_ERROR code on other git failures
332
- */
333
- syncMain(cwd: string, baseBranch: string): Promise<void>;
334
- /**
335
- * Rebase the feature branch onto the latest base branch.
336
- * Checks for dirty worktree before starting. Detects conflict state
337
- * from git exit code and stderr — throws REBASE_CONFLICT if conflicts
338
- * are encountered (caller is responsible for resolution or abort).
339
- *
340
- * @param cwd - Working directory path
341
- * @param featureBranch - The feature branch to rebase
342
- * @param baseBranch - The base branch to rebase onto
343
- * @throws GitPrError with GIT_ERROR code if the worktree is dirty
344
- * @throws GitPrError with REBASE_CONFLICT code if conflicts are detected
345
- * @throws GitPrError with BRANCH_NOT_FOUND code if a branch does not exist
346
- */
347
- rebaseOnMain(cwd: string, featureBranch: string, baseBranch: string): Promise<void>;
348
- /**
349
- * Get the list of files with unresolved conflicts (unmerged paths).
350
- * Uses `git diff --name-only --diff-filter=U` to identify conflicted files.
351
- *
352
- * @param cwd - Working directory path
353
- * @returns Array of file paths with unresolved conflicts
354
- * @throws GitPrError with GIT_ERROR code on failure
355
- */
356
- getConflictedFiles(cwd: string): Promise<string[]>;
357
- /**
358
- * Stage specific files in the working directory.
359
- * Uses `git add` for the specified file paths.
360
- *
361
- * @param cwd - Working directory path
362
- * @param files - Array of file paths to stage
363
- * @throws GitPrError with GIT_ERROR code on failure
364
- */
365
- stageFiles(cwd: string, files: string[]): Promise<void>;
366
- /**
367
- * Continue an in-progress rebase after conflicts have been resolved.
368
- * Runs `git rebase --continue`. May throw REBASE_CONFLICT if the next
369
- * commit in the rebase also has conflicts.
370
- *
371
- * @param cwd - Working directory path
372
- * @throws GitPrError with REBASE_CONFLICT code if new conflicts are detected
373
- * @throws GitPrError with GIT_ERROR code on other git failures
374
- */
375
- rebaseContinue(cwd: string): Promise<void>;
376
- /**
377
- * Abort an in-progress rebase, restoring the branch to its pre-rebase state.
378
- * Runs `git rebase --abort`.
379
- *
380
- * @param cwd - Working directory path
381
- * @throws GitPrError with GIT_ERROR code on failure
382
- */
383
- rebaseAbort(cwd: string): Promise<void>;
384
321
  }
385
322
  //# sourceMappingURL=git-pr-service.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-pr-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/git-pr-service.interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-pr-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/git-pr-service.interface.ts"],"names":[],"mappings":"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"}
@@ -9,17 +9,15 @@
9
9
  */
10
10
  export var GitPrErrorCode;
11
11
  (function (GitPrErrorCode) {
12
+ GitPrErrorCode["MERGE_CONFLICT"] = "MERGE_CONFLICT";
12
13
  GitPrErrorCode["AUTH_FAILURE"] = "AUTH_FAILURE";
13
- GitPrErrorCode["BRANCH_NOT_FOUND"] = "BRANCH_NOT_FOUND";
14
- GitPrErrorCode["CI_TIMEOUT"] = "CI_TIMEOUT";
15
14
  GitPrErrorCode["GH_NOT_FOUND"] = "GH_NOT_FOUND";
15
+ GitPrErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
16
+ GitPrErrorCode["CI_TIMEOUT"] = "CI_TIMEOUT";
17
+ GitPrErrorCode["BRANCH_NOT_FOUND"] = "BRANCH_NOT_FOUND";
16
18
  GitPrErrorCode["GIT_ERROR"] = "GIT_ERROR";
17
- GitPrErrorCode["MERGE_CONFLICT"] = "MERGE_CONFLICT";
18
19
  GitPrErrorCode["MERGE_FAILED"] = "MERGE_FAILED";
19
- GitPrErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
20
20
  GitPrErrorCode["PR_NOT_FOUND"] = "PR_NOT_FOUND";
21
- GitPrErrorCode["REBASE_CONFLICT"] = "REBASE_CONFLICT";
22
- GitPrErrorCode["SYNC_FAILED"] = "SYNC_FAILED";
23
21
  })(GitPrErrorCode || (GitPrErrorCode = {}));
24
22
  /**
25
23
  * Typed error for git PR operations.
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAuHrC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,CA6UrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAoHrC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,CAmUrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -80,9 +80,6 @@ import { CheckAndUnblockFeaturesUseCase } from '../../application/use-cases/feat
80
80
  import { UpdateFeatureLifecycleUseCase } from '../../application/use-cases/features/update/update-feature-lifecycle.use-case.js';
81
81
  import { CleanupFeatureWorktreeUseCase } from '../../application/use-cases/features/cleanup-feature-worktree.use-case.js';
82
82
  import { UpgradeCliUseCase } from '../../application/use-cases/upgrade/upgrade-cli.use-case.js';
83
- import { SyncRepositoryMainUseCase } from '../../application/use-cases/repositories/sync-repository-main.use-case.js';
84
- import { RebaseFeatureOnMainUseCase } from '../../application/use-cases/features/rebase-feature-on-main.use-case.js';
85
- import { ConflictResolutionService } from '../services/agents/conflict-resolution/conflict-resolution.service.js';
86
83
  // Session listing
87
84
  import { ClaudeCodeSessionRepository } from '../services/agents/sessions/claude-code-session.repository.js';
88
85
  import { StubSessionRepository } from '../services/agents/sessions/stub-session.repository.js';
@@ -172,6 +169,8 @@ export async function initializeContainer() {
172
169
  container.registerSingleton(AttachmentStorageService);
173
170
  container.register('AttachmentStorageService', { useToken: AttachmentStorageService });
174
171
  const deploymentService = new DeploymentService();
172
+ deploymentService.setDatabase(db);
173
+ deploymentService.recoverAll();
175
174
  container.registerInstance('IDeploymentService', deploymentService);
176
175
  // Register agent infrastructure
177
176
  container.register('IAgentRunRepository', {
@@ -298,12 +297,6 @@ export async function initializeContainer() {
298
297
  container.registerSingleton(UpdateFeatureLifecycleUseCase);
299
298
  container.registerSingleton(CleanupFeatureWorktreeUseCase);
300
299
  container.registerSingleton(UpgradeCliUseCase);
301
- container.registerSingleton(ConflictResolutionService);
302
- container.register('ConflictResolutionService', {
303
- useFactory: (c) => c.resolve(ConflictResolutionService),
304
- });
305
- container.registerSingleton(SyncRepositoryMainUseCase);
306
- container.registerSingleton(RebaseFeatureOnMainUseCase);
307
300
  // Session repositories (per-AgentType string tokens)
308
301
  container.register(`IAgentSessionRepository:${AgentType.ClaudeCode}`, {
309
302
  useFactory: () => new ClaudeCodeSessionRepository(),
@@ -394,12 +387,6 @@ export async function initializeContainer() {
394
387
  container.register('UpgradeCliUseCase', {
395
388
  useFactory: (c) => c.resolve(UpgradeCliUseCase),
396
389
  });
397
- container.register('SyncRepositoryMainUseCase', {
398
- useFactory: (c) => c.resolve(SyncRepositoryMainUseCase),
399
- });
400
- container.register('RebaseFeatureOnMainUseCase', {
401
- useFactory: (c) => c.resolve(RebaseFeatureOnMainUseCase),
402
- });
403
390
  _initialized = true;
404
391
  return container;
405
392
  }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Migration 040: Create dev_servers table.
3
+ *
4
+ * Persists running dev server deployments so they survive page reloads
5
+ * and server restarts. The DeploymentService reconciles on startup by
6
+ * checking PID liveness and cleaning up stale rows.
7
+ *
8
+ * Columns:
9
+ * - target_id TEXT PRIMARY KEY — featureId or repositoryPath
10
+ * - target_type TEXT NOT NULL — 'feature' | 'repository'
11
+ * - pid INTEGER NOT NULL — OS process ID
12
+ * - state TEXT NOT NULL — DeploymentState enum value
13
+ * - url TEXT — detected dev server URL (null while Booting)
14
+ * - target_path TEXT NOT NULL — filesystem path where the dev server runs
15
+ * - started_at INTEGER NOT NULL — unix milliseconds
16
+ */
17
+ import type { MigrationParams } from 'umzug';
18
+ import type Database from 'better-sqlite3';
19
+ export declare function up({ context: db }: MigrationParams<Database.Database>): Promise<void>;
20
+ export declare function down({ context: db }: MigrationParams<Database.Database>): Promise<void>;
21
+ //# sourceMappingURL=040-create-dev-servers-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"040-create-dev-servers-table.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/migrations/040-create-dev-servers-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,wBAAsB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3F;AAED,wBAAsB,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7F"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Migration 040: Create dev_servers table.
3
+ *
4
+ * Persists running dev server deployments so they survive page reloads
5
+ * and server restarts. The DeploymentService reconciles on startup by
6
+ * checking PID liveness and cleaning up stale rows.
7
+ *
8
+ * Columns:
9
+ * - target_id TEXT PRIMARY KEY — featureId or repositoryPath
10
+ * - target_type TEXT NOT NULL — 'feature' | 'repository'
11
+ * - pid INTEGER NOT NULL — OS process ID
12
+ * - state TEXT NOT NULL — DeploymentState enum value
13
+ * - url TEXT — detected dev server URL (null while Booting)
14
+ * - target_path TEXT NOT NULL — filesystem path where the dev server runs
15
+ * - started_at INTEGER NOT NULL — unix milliseconds
16
+ */
17
+ export async function up({ context: db }) {
18
+ db.exec(`
19
+ CREATE TABLE IF NOT EXISTS dev_servers (
20
+ target_id TEXT PRIMARY KEY,
21
+ target_type TEXT NOT NULL,
22
+ pid INTEGER NOT NULL,
23
+ state TEXT NOT NULL DEFAULT 'Booting',
24
+ url TEXT,
25
+ target_path TEXT NOT NULL,
26
+ started_at INTEGER NOT NULL
27
+ )
28
+ `);
29
+ }
30
+ export async function down({ context: db }) {
31
+ db.exec('DROP TABLE IF EXISTS dev_servers');
32
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"ci-watch-fix-loop.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/ci-watch-fix-loop.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yEAAyE,CAAC;AAClH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iEAAiE,CAAC;AAKrG,OAAO,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+DAA+D,CAAC;AAK3G,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,EAAE,aAAa,CAAC;IAC5B,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,qBAAqB,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,EAAE,UAAU,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAEpG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,gBAAgB,CAAC,CA8I3B"}
1
+ {"version":3,"file":"ci-watch-fix-loop.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/ci-watch-fix-loop.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yEAAyE,CAAC;AAClH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iEAAiE,CAAC;AAKrG,OAAO,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+DAA+D,CAAC;AAK3G,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,EAAE,aAAa,CAAC;IAC5B,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,qBAAqB,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,EAAE,UAAU,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAEpG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAuJ3B"}
@@ -84,6 +84,11 @@ export async function runCiWatchFixLoop(deps, params) {
84
84
  }
85
85
  throw err;
86
86
  }
87
+ // Use the run URL from watchCi — it reflects the actual run watched,
88
+ // which may differ from the initial getCiStatus() result when multiple
89
+ // workflow runs exist for the same branch.
90
+ if (watchResult.runUrl)
91
+ runUrl = watchResult.runUrl;
87
92
  if (watchResult.status === 'success') {
88
93
  log.info('CI passed on first watch');
89
94
  return { ciStatus: CiStatus.Success, ciFixAttempts, ciFixHistory, ciFixStatus: 'success' };
@@ -128,6 +133,10 @@ export async function runCiWatchFixLoop(deps, params) {
128
133
  }
129
134
  throw err;
130
135
  }
136
+ // Update runUrl to the run that was actually watched (avoids mismatch
137
+ // when multiple workflow runs exist for the same branch).
138
+ if (fixWatchResult.runUrl)
139
+ runUrl = fixWatchResult.runUrl;
131
140
  const outcome = fixWatchResult.status === 'success' ? 'fixed' : 'failed';
132
141
  ciFixHistory.push({
133
142
  attempt: ciFixAttempts,
@@ -2,11 +2,15 @@
2
2
  * Deployment Service
3
3
  *
4
4
  * Infrastructure service that manages local dev server deployments.
5
- * Holds an in-memory Map of active deployments keyed by targetId.
6
- * Handles process spawning, stdout-based port detection, and graceful
7
- * shutdown (SIGTERM poll SIGKILL).
5
+ * Holds an in-memory Map of active deployments keyed by targetId AND
6
+ * persists deployment records to the `dev_servers` SQLite table so that
7
+ * running dev servers survive page reloads and server restarts.
8
+ *
9
+ * On startup, call `recoverAll()` to reconcile the DB with actual
10
+ * process state (clean up dead PIDs, re-adopt live ones).
8
11
  */
9
12
  import { spawn } from 'node:child_process';
13
+ import type Database from 'better-sqlite3';
10
14
  import type { IDeploymentService, DeploymentStatus, LogEntry } from '../../../application/ports/output/services/deployment-service.interface.js';
11
15
  import { detectDevScript } from './detect-dev-script.js';
12
16
  export interface DeploymentServiceDeps {
@@ -19,15 +23,26 @@ export declare class DeploymentService implements IDeploymentService {
19
23
  private readonly deployments;
20
24
  private readonly deps;
21
25
  private readonly emitter;
26
+ private db;
22
27
  constructor(deps?: Partial<DeploymentServiceDeps>);
28
+ /**
29
+ * Inject the database connection. Called from DI container after DB is ready.
30
+ */
31
+ setDatabase(db: Database.Database): void;
32
+ /**
33
+ * Recover dev servers from the database on startup.
34
+ * Validates each PID is still alive; removes dead rows.
35
+ */
36
+ recoverAll(): void;
23
37
  /**
24
38
  * Start a deployment for the given target.
25
39
  * If a deployment already exists for this target, it is stopped first.
26
40
  */
27
- start(targetId: string, targetPath: string): void;
41
+ start(targetId: string, targetPath: string, targetType?: string): void;
28
42
  /**
29
43
  * Get the current deployment status for a target.
30
- * Returns null if no deployment exists for this target.
44
+ * Checks in-memory Map first, then falls back to DB for recovered deployments.
45
+ * Validates PID liveness — cleans up if dead.
31
46
  */
32
47
  getStatus(targetId: string): DeploymentStatus | null;
33
48
  /**
@@ -50,22 +65,17 @@ export declare class DeploymentService implements IDeploymentService {
50
65
  * Unsubscribe from real-time log events.
51
66
  */
52
67
  off(event: 'log', handler: (entry: LogEntry) => void): void;
53
- /**
54
- * Send SIGKILL to a process tree.
55
- */
68
+ private dbUpsert;
69
+ private dbUpdateState;
70
+ private dbDelete;
71
+ private dbFind;
56
72
  private killProcess;
57
73
  /**
58
74
  * Attach a line-buffered listener on stdout or stderr that calls parsePort
59
75
  * and accumulates log entries.
60
76
  */
61
77
  private attachOutputListener;
62
- /**
63
- * Poll until a process is dead or timeout expires.
64
- */
65
78
  private pollUntilDead;
66
- /**
67
- * Wait for a child process to emit 'exit', with a short timeout.
68
- */
69
79
  private waitForExit;
70
80
  }
71
81
  //# sourceMappingURL=deployment.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/deployment/deployment.service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAI9D,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACT,MAAM,qEAAqE,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAoBzD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7D,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CACnC;AAgBD,qBAAa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;gBAElC,IAAI,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAIrD;;;OAGG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IA+EjD;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAYpD;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC3C;;OAEG;IACH,OAAO,IAAI,IAAI;IAOf;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,IAAI;IAM5C;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAI1D;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAI3D;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA+D5B;;OAEG;YACW,aAAa;IAW3B;;OAEG;IACH,OAAO,CAAC,WAAW;CASpB"}
1
+ {"version":3,"file":"deployment.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/deployment/deployment.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAO3C,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACT,MAAM,qEAAqE,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAgCzD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7D,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CACnC;AA6BD,qBAAa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,EAAE,CAAkC;gBAEhC,IAAI,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAIrD;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI;IAIxC;;;OAGG;IACH,UAAU,IAAI,IAAI;IA4ClB;;;OAGG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,SAAe,GAAG,IAAI;IAqF5E;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IA4CpD;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0D3C;;OAEG;IACH,OAAO,IAAI,IAAI;IAef;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,IAAI;IAM5C;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAI1D;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAM3D,OAAO,CAAC,QAAQ;IAuBhB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,MAAM;IAed,OAAO,CAAC,WAAW;IAQnB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;YA4Dd,aAAa;IAW3B,OAAO,CAAC,WAAW;CASpB"}