@shepai/cli 1.152.0-pr476.cafabb8 → 1.153.0-pr477.9c7fcd0

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 (223) hide show
  1. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +37 -0
  2. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/use-cases/repositories/get-repository-commits.use-case.d.ts +18 -0
  4. package/dist/packages/core/src/application/use-cases/repositories/get-repository-commits.use-case.d.ts.map +1 -0
  5. package/dist/packages/core/src/application/use-cases/repositories/get-repository-commits.use-case.js +40 -0
  6. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  7. package/dist/packages/core/src/infrastructure/di/container.js +5 -0
  8. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +3 -1
  9. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  10. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +40 -0
  11. package/dist/src/presentation/web/app/actions/get-repository-commits.d.ts +13 -0
  12. package/dist/src/presentation/web/app/actions/get-repository-commits.d.ts.map +1 -0
  13. package/dist/src/presentation/web/app/actions/get-repository-commits.js +16 -0
  14. package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.d.ts +14 -0
  15. package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.d.ts.map +1 -0
  16. package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.js +120 -0
  17. package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.stories.d.ts +12 -0
  18. package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.stories.d.ts.map +1 -0
  19. package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.stories.js +140 -0
  20. package/dist/src/presentation/web/components/common/commit-history-tree/use-commit-history.d.ts +16 -0
  21. package/dist/src/presentation/web/components/common/commit-history-tree/use-commit-history.d.ts.map +1 -0
  22. package/dist/src/presentation/web/components/common/commit-history-tree/use-commit-history.js +33 -0
  23. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts +1 -1
  24. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts.map +1 -1
  25. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.js +11 -1
  26. package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.js +1 -1
  27. package/dist/tsconfig.build.tsbuildinfo +1 -1
  28. package/package.json +1 -1
  29. package/web/.next/BUILD_ID +1 -1
  30. package/web/.next/build-manifest.json +2 -2
  31. package/web/.next/fallback-build-manifest.json +2 -2
  32. package/web/.next/prerender-manifest.json +3 -3
  33. package/web/.next/required-server-files.js +2 -2
  34. package/web/.next/required-server-files.json +2 -2
  35. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +28 -28
  36. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  37. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  38. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +26 -26
  39. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  40. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  41. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +29 -29
  42. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  43. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  44. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
  45. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  46. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  47. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +36 -36
  48. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  49. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  50. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +67 -52
  51. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
  52. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  53. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +67 -52
  55. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  56. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  57. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +26 -26
  59. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  60. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  61. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +29 -29
  62. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  63. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
  65. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  66. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  67. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +36 -36
  68. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  69. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  70. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +26 -26
  71. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  72. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +67 -52
  74. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
  75. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  76. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  77. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +67 -52
  78. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  79. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  80. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  81. package/web/.next/server/app/_global-error.html +2 -2
  82. package/web/.next/server/app/_global-error.rsc +1 -1
  83. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  84. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  85. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  86. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  87. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  88. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +5 -5
  89. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  90. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  91. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  92. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  93. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  94. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  95. package/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
  96. package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
  97. package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  98. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  99. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  100. package/web/.next/server/app/skills/page/server-reference-manifest.json +10 -10
  101. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  102. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  103. package/web/.next/server/app/tools/page/server-reference-manifest.json +10 -10
  104. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  105. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  106. package/web/.next/server/app/version/page/server-reference-manifest.json +5 -5
  107. package/web/.next/server/app/version/page.js.nft.json +1 -1
  108. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  109. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  110. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  111. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  112. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
  113. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  114. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_refresh-cw_2796b1f0.js +3 -0
  115. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_refresh-cw_2796b1f0.js.map +1 -0
  116. package/web/.next/server/chunks/ssr/[root-of-the-server]__17ed7ed1._.js +1 -1
  117. package/web/.next/server/chunks/ssr/[root-of-the-server]__17ed7ed1._.js.map +1 -1
  118. package/web/.next/server/chunks/ssr/[root-of-the-server]__28d0d265._.js +2 -2
  119. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  120. package/web/.next/server/chunks/ssr/[root-of-the-server]__42bf1807._.js +1 -1
  121. package/web/.next/server/chunks/ssr/[root-of-the-server]__42bf1807._.js.map +1 -1
  122. package/web/.next/server/chunks/ssr/[root-of-the-server]__56b70465._.js +1 -1
  123. package/web/.next/server/chunks/ssr/[root-of-the-server]__56b70465._.js.map +1 -1
  124. package/web/.next/server/chunks/ssr/[root-of-the-server]__88f7e8e6._.js +1 -1
  125. package/web/.next/server/chunks/ssr/[root-of-the-server]__88f7e8e6._.js.map +1 -1
  126. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b0aac03._.js +1 -1
  127. package/web/.next/server/chunks/ssr/[root-of-the-server]__c30f1f82._.js +1 -1
  128. package/web/.next/server/chunks/ssr/[root-of-the-server]__c30f1f82._.js.map +1 -1
  129. package/web/.next/server/chunks/ssr/[root-of-the-server]__ce859680._.js +3 -0
  130. package/web/.next/server/chunks/ssr/{[root-of-the-server]__f8dd4422._.js.map → [root-of-the-server]__ce859680._.js.map} +1 -1
  131. package/web/.next/server/chunks/ssr/[root-of-the-server]__f80bfc75._.js +1 -1
  132. package/web/.next/server/chunks/ssr/[root-of-the-server]__f80bfc75._.js.map +1 -1
  133. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  134. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  135. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  136. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  137. package/web/.next/server/chunks/ssr/{_f5073cd1._.js → _29ca8860._.js} +2 -2
  138. package/web/.next/server/chunks/ssr/{_f5073cd1._.js.map → _29ca8860._.js.map} +1 -1
  139. package/web/.next/server/chunks/ssr/_3a0b989f._.js +2 -2
  140. package/web/.next/server/chunks/ssr/_3a0b989f._.js.map +1 -1
  141. package/web/.next/server/chunks/ssr/{_d8bedf13._.js → _48066275._.js} +2 -2
  142. package/web/.next/server/chunks/ssr/_48066275._.js.map +1 -0
  143. package/web/.next/server/chunks/ssr/{_5f69c13f._.js → _4b41246e._.js} +2 -2
  144. package/web/.next/server/chunks/ssr/_4b41246e._.js.map +1 -0
  145. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  146. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  147. package/web/.next/server/chunks/ssr/{_8219712a._.js → _5eb64260._.js} +2 -2
  148. package/web/.next/server/chunks/ssr/_5eb64260._.js.map +1 -0
  149. package/web/.next/server/chunks/ssr/{_cb5a021e._.js → _6438bf2d._.js} +2 -2
  150. package/web/.next/server/chunks/ssr/_6438bf2d._.js.map +1 -0
  151. package/web/.next/server/chunks/ssr/_7c5b97c6._.js +1 -1
  152. package/web/.next/server/chunks/ssr/_7c5b97c6._.js.map +1 -1
  153. package/web/.next/server/chunks/ssr/_82c57f10._.js +1 -1
  154. package/web/.next/server/chunks/ssr/_82c57f10._.js.map +1 -1
  155. package/web/.next/server/chunks/ssr/{_d86175ae._.js → _87761ee1._.js} +2 -2
  156. package/web/.next/server/chunks/ssr/_87761ee1._.js.map +1 -0
  157. package/web/.next/server/chunks/ssr/_9495d50b._.js +1 -1
  158. package/web/.next/server/chunks/ssr/_9495d50b._.js.map +1 -1
  159. package/web/.next/server/chunks/ssr/_a0e3f7e4._.js +1 -1
  160. package/web/.next/server/chunks/ssr/_a0e3f7e4._.js.map +1 -1
  161. package/web/.next/server/chunks/ssr/{_0454e1de._.js → _a3aa1eb6._.js} +2 -2
  162. package/web/.next/server/chunks/ssr/_a3aa1eb6._.js.map +1 -0
  163. package/web/.next/server/chunks/ssr/_ac4a3873._.js +1 -1
  164. package/web/.next/server/chunks/ssr/_ac4a3873._.js.map +1 -1
  165. package/web/.next/server/chunks/ssr/_c93c0cc6._.js +3 -0
  166. package/web/.next/server/chunks/ssr/_c93c0cc6._.js.map +1 -0
  167. package/web/.next/server/chunks/ssr/_ca0aa7f0._.js +1 -1
  168. package/web/.next/server/chunks/ssr/_ca0aa7f0._.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/{_e9a73a63._.js → _e55a0378._.js} +2 -2
  170. package/web/.next/server/chunks/ssr/{_e9a73a63._.js.map → _e55a0378._.js.map} +1 -1
  171. package/web/.next/server/chunks/ssr/_fa7efce3._.js +2 -2
  172. package/web/.next/server/chunks/ssr/_fa7efce3._.js.map +1 -1
  173. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  174. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  175. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +3 -0
  176. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -0
  177. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_cdc632e3.js +1 -1
  178. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_cdc632e3.js.map +1 -1
  179. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_39ca0924.js +1 -1
  180. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_39ca0924.js.map +1 -1
  181. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  182. package/web/.next/server/chunks/ssr/src_presentation_web_components_357e3eb0._.js +1 -1
  183. package/web/.next/server/chunks/ssr/src_presentation_web_components_357e3eb0._.js.map +1 -1
  184. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  185. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  186. package/web/.next/server/pages/500.html +2 -2
  187. package/web/.next/server/server-reference-manifest.js +1 -1
  188. package/web/.next/server/server-reference-manifest.json +185 -149
  189. package/web/.next/static/chunks/{ccb54cbadfef1316.js → 0b347558818d2628.js} +1 -1
  190. package/web/.next/static/chunks/{cd54b758f58061d0.js → 1406c2860e7fac9c.js} +1 -1
  191. package/web/.next/static/chunks/36208713ad011740.js +1 -0
  192. package/web/.next/static/chunks/3f21588c6956d5b4.css +1 -0
  193. package/web/.next/static/chunks/471bebfd8d0f0acd.js +1 -0
  194. package/web/.next/static/chunks/{035fae40bf0ed469.js → 5a585a2f6bcff4a9.js} +1 -1
  195. package/web/.next/static/chunks/{358f58043189b539.js → 65ece264fa8f6fe1.js} +2 -2
  196. package/web/.next/static/chunks/{0b75bb9e9550073c.js → 929ed61442b5e9f7.js} +1 -1
  197. package/web/.next/static/chunks/{7564b97f874a385f.js → a4ffe2d157f11ad3.js} +1 -1
  198. package/web/.next/static/chunks/{1e472a57005aa6ba.js → aaf8507271e6f018.js} +1 -1
  199. package/web/.next/static/chunks/{6dba47d604ecee1e.js → b27aae090cd67337.js} +2 -2
  200. package/web/.next/static/chunks/{4a40a849f6ba6c6f.js → b2c3da92e5d7864b.js} +3 -3
  201. package/web/.next/static/chunks/bb831852c32a9e59.js +1 -0
  202. package/web/.next/static/chunks/{735012b8a096013d.js → d13a4b544b737cbc.js} +1 -1
  203. package/web/.next/static/chunks/eef9a6b627e39d41.js +1 -0
  204. package/web/.next/static/chunks/{6bf85f5937c714b5.js → fa08611a63bb5369.js} +1 -1
  205. package/web/.next/server/chunks/ssr/[root-of-the-server]__f8dd4422._.js +0 -3
  206. package/web/.next/server/chunks/ssr/_0454e1de._.js.map +0 -1
  207. package/web/.next/server/chunks/ssr/_5f69c13f._.js.map +0 -1
  208. package/web/.next/server/chunks/ssr/_8219712a._.js.map +0 -1
  209. package/web/.next/server/chunks/ssr/_895c848c._.js +0 -3
  210. package/web/.next/server/chunks/ssr/_895c848c._.js.map +0 -1
  211. package/web/.next/server/chunks/ssr/_cb5a021e._.js.map +0 -1
  212. package/web/.next/server/chunks/ssr/_cfbd1d7e._.js +0 -3
  213. package/web/.next/server/chunks/ssr/_cfbd1d7e._.js.map +0 -1
  214. package/web/.next/server/chunks/ssr/_d86175ae._.js.map +0 -1
  215. package/web/.next/server/chunks/ssr/_d8bedf13._.js.map +0 -1
  216. package/web/.next/static/chunks/211a4b7af388252d.js +0 -1
  217. package/web/.next/static/chunks/22c459f1877b1e4f.js +0 -1
  218. package/web/.next/static/chunks/8ba1c07ef18b15a9.js +0 -1
  219. package/web/.next/static/chunks/c86594475dcb03d5.css +0 -1
  220. package/web/.next/static/chunks/cfa3f3734e78d38d.js +0 -1
  221. /package/web/.next/static/{cRfpZzgvy54tlmdKZEXb_ → -_iF1islqFSzVifHA2Zlt}/_buildManifest.js +0 -0
  222. /package/web/.next/static/{cRfpZzgvy54tlmdKZEXb_ → -_iF1islqFSzVifHA2Zlt}/_clientMiddlewareManifest.json +0 -0
  223. /package/web/.next/static/{cRfpZzgvy54tlmdKZEXb_ → -_iF1islqFSzVifHA2Zlt}/_ssgManifest.js +0 -0
@@ -407,5 +407,42 @@ export interface IGitPrService {
407
407
  ahead: number;
408
408
  behind: number;
409
409
  }>;
410
+ /**
411
+ * Get the current branch name.
412
+ * Returns 'HEAD' if the repository is in detached HEAD state.
413
+ *
414
+ * @param cwd - Working directory path
415
+ * @returns The current branch name
416
+ */
417
+ getCurrentBranch(cwd: string): Promise<string>;
418
+ /**
419
+ * Get the commit history for a branch.
420
+ *
421
+ * @param cwd - Working directory path
422
+ * @param branch - Branch name to get history for
423
+ * @param limit - Maximum number of commits to return (default 50)
424
+ * @returns Array of commit info objects ordered newest first
425
+ * @throws GitPrError with GIT_ERROR code on failure
426
+ */
427
+ getCommitHistory(cwd: string, branch: string, limit?: number): Promise<CommitInfo[]>;
428
+ }
429
+ /**
430
+ * Information about a single git commit.
431
+ */
432
+ export interface CommitInfo {
433
+ /** Full 40-character SHA hash */
434
+ hash: string;
435
+ /** Short 7-character SHA hash */
436
+ shortHash: string;
437
+ /** Commit subject line (first line of commit message) */
438
+ subject: string;
439
+ /** Author display name */
440
+ authorName: string;
441
+ /** Author email address */
442
+ authorEmail: string;
443
+ /** Author date in ISO 8601 format */
444
+ date: string;
445
+ /** Ref names (e.g. ["HEAD -> main", "origin/main", "v1.0.0"]) */
446
+ refs: string[];
410
447
  }
411
448
  //# 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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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Get Repository Commits Use Case
3
+ *
4
+ * Returns the commit history for a branch in a repository.
5
+ * Automatically detects the current branch and default branch.
6
+ */
7
+ import type { IGitPrService, CommitInfo } from '../../ports/output/services/git-pr-service.interface.js';
8
+ export interface RepositoryCommitsResult {
9
+ commits: CommitInfo[];
10
+ currentBranch: string;
11
+ defaultBranch: string;
12
+ }
13
+ export declare class GetRepositoryCommitsUseCase {
14
+ private readonly gitPrService;
15
+ constructor(gitPrService: IGitPrService);
16
+ execute(repositoryPath: string, branch?: string, limit?: number): Promise<RepositoryCommitsResult>;
17
+ }
18
+ //# sourceMappingURL=get-repository-commits.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-repository-commits.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/repositories/get-repository-commits.use-case.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACX,MAAM,yDAAyD,CAAC;AAEjE,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBACa,2BAA2B;IAGpC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,aAAa;IAGxC,OAAO,CACX,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,SAAK,GACT,OAAO,CAAC,uBAAuB,CAAC;CAWpC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Get Repository Commits Use Case
3
+ *
4
+ * Returns the commit history for a branch in a repository.
5
+ * Automatically detects the current branch and default branch.
6
+ */
7
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
8
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
11
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
12
+ };
13
+ var __metadata = (this && this.__metadata) || function (k, v) {
14
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
15
+ };
16
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
17
+ return function (target, key) { decorator(target, key, paramIndex); }
18
+ };
19
+ import { injectable, inject } from 'tsyringe';
20
+ let GetRepositoryCommitsUseCase = class GetRepositoryCommitsUseCase {
21
+ gitPrService;
22
+ constructor(gitPrService) {
23
+ this.gitPrService = gitPrService;
24
+ }
25
+ async execute(repositoryPath, branch, limit = 50) {
26
+ const [currentBranch, defaultBranch] = await Promise.all([
27
+ this.gitPrService.getCurrentBranch(repositoryPath),
28
+ this.gitPrService.getDefaultBranch(repositoryPath).catch(() => 'main'),
29
+ ]);
30
+ const targetBranch = branch ?? currentBranch;
31
+ const commits = await this.gitPrService.getCommitHistory(repositoryPath, targetBranch, limit);
32
+ return { commits, currentBranch, defaultBranch };
33
+ }
34
+ };
35
+ GetRepositoryCommitsUseCase = __decorate([
36
+ injectable(),
37
+ __param(0, inject('IGitPrService')),
38
+ __metadata("design:paramtypes", [Object])
39
+ ], GetRepositoryCommitsUseCase);
40
+ export { GetRepositoryCommitsUseCase };
@@ -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;AAgJrC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,CAqarE;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;AAiJrC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,CAyarE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -88,6 +88,7 @@ import { ArchiveFeatureUseCase } from '../../application/use-cases/features/arch
88
88
  import { UnarchiveFeatureUseCase } from '../../application/use-cases/features/unarchive-feature.use-case.js';
89
89
  import { UpgradeCliUseCase } from '../../application/use-cases/upgrade/upgrade-cli.use-case.js';
90
90
  import { SyncRepositoryMainUseCase } from '../../application/use-cases/repositories/sync-repository-main.use-case.js';
91
+ import { GetRepositoryCommitsUseCase } from '../../application/use-cases/repositories/get-repository-commits.use-case.js';
91
92
  import { RebaseFeatureOnMainUseCase } from '../../application/use-cases/features/rebase-feature-on-main.use-case.js';
92
93
  import { GetBranchSyncStatusUseCase } from '../../application/use-cases/features/get-branch-sync-status.use-case.js';
93
94
  import { ConflictResolutionService } from '../services/agents/conflict-resolution/conflict-resolution.service.js';
@@ -331,6 +332,7 @@ export async function initializeContainer() {
331
332
  container.registerSingleton(SyncRepositoryMainUseCase);
332
333
  container.registerSingleton(RebaseFeatureOnMainUseCase);
333
334
  container.registerSingleton(GetBranchSyncStatusUseCase);
335
+ container.registerSingleton(GetRepositoryCommitsUseCase);
334
336
  // Session repositories (per-AgentType string tokens)
335
337
  container.register(`IAgentSessionRepository:${AgentType.ClaudeCode}`, {
336
338
  useFactory: () => new ClaudeCodeSessionRepository(),
@@ -445,6 +447,9 @@ export async function initializeContainer() {
445
447
  container.register('GetBranchSyncStatusUseCase', {
446
448
  useFactory: (c) => c.resolve(GetBranchSyncStatusUseCase),
447
449
  });
450
+ container.register('GetRepositoryCommitsUseCase', {
451
+ useFactory: (c) => c.resolve(GetRepositoryCommitsUseCase),
452
+ });
448
453
  // Register interactive session infrastructure
449
454
  container.register('IInteractiveSessionRepository', {
450
455
  useFactory: (c) => {
@@ -5,7 +5,7 @@
5
5
  * Uses constructor dependency injection for the command executor.
6
6
  */
7
7
  import type { IGitPrService } from '../../../application/ports/output/services/git-pr-service.interface.js';
8
- import type { CiStatusResult, DiffSummary, FileDiff, MergeStrategy, PrCreateResult, PrStatusInfo } from '../../../application/ports/output/services/git-pr-service.interface.js';
8
+ import type { CiStatusResult, CommitInfo, DiffSummary, FileDiff, MergeStrategy, PrCreateResult, PrStatusInfo } from '../../../application/ports/output/services/git-pr-service.interface.js';
9
9
  import type { ExecFunction } from './worktree.service.js';
10
10
  export declare class GitPrService implements IGitPrService {
11
11
  private readonly execFile;
@@ -55,5 +55,7 @@ export declare class GitPrService implements IGitPrService {
55
55
  ahead: number;
56
56
  behind: number;
57
57
  }>;
58
+ getCurrentBranch(cwd: string): Promise<string>;
59
+ getCommitHistory(cwd: string, branch: string, limit?: number): Promise<CommitInfo[]>;
58
60
  }
59
61
  //# sourceMappingURL=git-pr.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-pr.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/git/git-pr.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-pr.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/git/git-pr.service.ts"],"names":[],"mappings":"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"}
@@ -807,6 +807,46 @@ let GitPrService = class GitPrService {
807
807
  throw this.parseGitError(error);
808
808
  }
809
809
  }
810
+ async getCurrentBranch(cwd) {
811
+ try {
812
+ const { stdout } = await this.execFile('git', ['symbolic-ref', '--short', 'HEAD'], { cwd });
813
+ return stdout.trim();
814
+ }
815
+ catch {
816
+ return 'HEAD';
817
+ }
818
+ }
819
+ async getCommitHistory(cwd, branch, limit = 50) {
820
+ // Use NUL (\x00) as field separator to safely handle subjects with pipes
821
+ const format = '%H%x00%h%x00%s%x00%an%x00%ae%x00%aI%x00%D';
822
+ try {
823
+ const { stdout } = await this.execFile('git', ['log', `--pretty=format:${format}`, '--max-count', String(limit), branch], { cwd });
824
+ const raw = stdout.trim();
825
+ if (!raw)
826
+ return [];
827
+ return raw.split('\n').map((line) => {
828
+ const [hash, shortHash, subject, authorName, authorEmail, date, refsRaw] = line.split('\x00');
829
+ const refs = refsRaw
830
+ ? refsRaw
831
+ .split(', ')
832
+ .map((r) => r.trim())
833
+ .filter(Boolean)
834
+ : [];
835
+ return {
836
+ hash: hash ?? '',
837
+ shortHash: shortHash ?? '',
838
+ subject: subject ?? '',
839
+ authorName: authorName ?? '',
840
+ authorEmail: authorEmail ?? '',
841
+ date: date ?? '',
842
+ refs,
843
+ };
844
+ });
845
+ }
846
+ catch (error) {
847
+ throw this.parseGitError(error);
848
+ }
849
+ }
810
850
  };
811
851
  GitPrService = __decorate([
812
852
  injectable(),
@@ -0,0 +1,13 @@
1
+ import type { CommitInfo } from '../../../../../packages/core/src/application/ports/output/services/git-pr-service.interface.js';
2
+ export type { CommitInfo };
3
+ export interface RepositoryCommitsData {
4
+ commits: CommitInfo[];
5
+ currentBranch: string;
6
+ defaultBranch: string;
7
+ }
8
+ export declare function getRepositoryCommits(repositoryPath: string, branch?: string, limit?: number): Promise<{
9
+ success: boolean;
10
+ data?: RepositoryCommitsData;
11
+ error?: string;
12
+ }>;
13
+ //# sourceMappingURL=get-repository-commits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-repository-commits.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/get-repository-commits.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yEAAyE,CAAC;AAE1G,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,SAAK,GACT,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAa7E"}
@@ -0,0 +1,16 @@
1
+ 'use server';
2
+ import { resolve } from '../../lib/server-container.js';
3
+ export async function getRepositoryCommits(repositoryPath, branch, limit = 50) {
4
+ if (!repositoryPath?.trim()) {
5
+ return { success: false, error: 'Repository path is required' };
6
+ }
7
+ try {
8
+ const useCase = resolve('GetRepositoryCommitsUseCase');
9
+ const result = await useCase.execute(repositoryPath, branch, limit);
10
+ return { success: true, data: result };
11
+ }
12
+ catch (error) {
13
+ const message = error instanceof Error ? error.message : 'Failed to get commit history';
14
+ return { success: false, error: message };
15
+ }
16
+ }
@@ -0,0 +1,14 @@
1
+ import type { CommitInfo } from '../../../app/actions/get-repository-commits.js';
2
+ export interface CommitHistoryTreeProps {
3
+ commits: CommitInfo[] | null;
4
+ loading: boolean;
5
+ error: string | null;
6
+ currentBranch: string;
7
+ defaultBranch: string;
8
+ /** Currently selected branch in the tree view */
9
+ activeBranch: string;
10
+ /** Called when the user switches between branches */
11
+ onBranchChange: (branch: string) => void;
12
+ }
13
+ export declare function CommitHistoryTree({ commits, loading, error, currentBranch, defaultBranch, activeBranch, onBranchChange, }: CommitHistoryTreeProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=commit-history-tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-history-tree.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/commit-history-tree/commit-history-tree.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAMvE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAsND,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,EACP,KAAK,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,cAAc,GACf,EAAE,sBAAsB,2CA0CxB"}
@@ -0,0 +1,120 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState, useCallback } from 'react';
4
+ import { GitCommit, AlertCircle, GitBranch, Copy, Check, Loader2 } from 'lucide-react';
5
+ /* ---------------------------------------------------------------------------
6
+ * Helpers
7
+ * ------------------------------------------------------------------------- */
8
+ function formatRelativeDate(iso) {
9
+ if (!iso)
10
+ return '';
11
+ const date = new Date(iso);
12
+ if (Number.isNaN(date.getTime()))
13
+ return '';
14
+ const diffMs = Date.now() - date.getTime();
15
+ const diffSeconds = Math.floor(diffMs / 1000);
16
+ if (diffSeconds < 60)
17
+ return 'just now';
18
+ const diffMinutes = Math.floor(diffSeconds / 60);
19
+ if (diffMinutes < 60)
20
+ return `${diffMinutes}m ago`;
21
+ const diffHours = Math.floor(diffMinutes / 60);
22
+ if (diffHours < 24)
23
+ return `${diffHours}h ago`;
24
+ const diffDays = Math.floor(diffHours / 24);
25
+ if (diffDays < 30)
26
+ return `${diffDays}d ago`;
27
+ const diffMonths = Math.floor(diffDays / 30);
28
+ if (diffMonths < 12)
29
+ return `${diffMonths}mo ago`;
30
+ return `${Math.floor(diffMonths / 12)}y ago`;
31
+ }
32
+ /** Generate a deterministic color from a string (e.g. author email). */
33
+ function getAvatarColor(seed) {
34
+ let hash = 0;
35
+ for (let i = 0; i < seed.length; i++) {
36
+ hash = seed.charCodeAt(i) + ((hash << 5) - hash);
37
+ }
38
+ const hue = Math.abs(hash) % 360;
39
+ return `hsl(${hue}, 60%, 45%)`;
40
+ }
41
+ function getInitials(name) {
42
+ const parts = name.trim().split(/\s+/);
43
+ if (parts.length === 1)
44
+ return parts[0].slice(0, 2).toUpperCase();
45
+ return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();
46
+ }
47
+ /** Parse refs into branch and tag labels, stripping remote prefixes. */
48
+ function parseRefs(refs) {
49
+ const branches = [];
50
+ const tags = [];
51
+ for (const ref of refs) {
52
+ if (ref.startsWith('tag: ')) {
53
+ tags.push(ref.slice(5));
54
+ }
55
+ else if (ref.startsWith('HEAD -> ')) {
56
+ branches.push(ref.slice(8));
57
+ }
58
+ else if (!ref.startsWith('origin/') && !ref.startsWith('upstream/')) {
59
+ branches.push(ref);
60
+ }
61
+ }
62
+ return { branches, tags };
63
+ }
64
+ /* ---------------------------------------------------------------------------
65
+ * Sub-components
66
+ * ------------------------------------------------------------------------- */
67
+ function AuthorAvatar({ name, email }) {
68
+ const initials = getInitials(name || email || '?');
69
+ const color = getAvatarColor(email || name);
70
+ return (_jsx("span", { title: name || email, style: { backgroundColor: color }, className: "flex h-5 w-5 shrink-0 items-center justify-center rounded-full text-[9px] font-semibold text-white", children: initials }));
71
+ }
72
+ function RefBadge({ label, variant }) {
73
+ const classes = variant === 'head'
74
+ ? 'bg-violet-100 text-violet-700 dark:bg-violet-950/50 dark:text-violet-300'
75
+ : variant === 'branch'
76
+ ? 'bg-emerald-100 text-emerald-700 dark:bg-emerald-950/50 dark:text-emerald-300'
77
+ : 'bg-amber-100 text-amber-700 dark:bg-amber-950/50 dark:text-amber-300';
78
+ return (_jsxs("span", { className: `inline-flex items-center gap-0.5 rounded px-1 py-0.5 text-[10px] font-medium ${classes}`, children: [variant !== 'tag' && _jsx(GitBranch, { className: "h-2.5 w-2.5" }), label] }));
79
+ }
80
+ function CopyHashButton({ hash }) {
81
+ const [copied, setCopied] = useState(false);
82
+ const handleCopy = useCallback(() => {
83
+ navigator.clipboard.writeText(hash).then(() => {
84
+ setCopied(true);
85
+ setTimeout(() => setCopied(false), 1500);
86
+ });
87
+ }, [hash]);
88
+ return (_jsx("button", { type: "button", onClick: handleCopy, title: "Copy full commit hash", className: "text-muted-foreground/40 hover:text-muted-foreground ml-0.5 opacity-0 transition-opacity group-hover/commit:opacity-100", children: copied ? _jsx(Check, { className: "h-3 w-3 text-emerald-500" }) : _jsx(Copy, { className: "h-3 w-3" }) }));
89
+ }
90
+ function BranchSelector({ currentBranch, defaultBranch, activeBranch, onBranchChange, }) {
91
+ const branches = Array.from(new Set([currentBranch, defaultBranch].filter(Boolean)));
92
+ if (branches.length <= 1)
93
+ return null;
94
+ return (_jsx("div", { className: "flex items-center gap-1 px-4 py-2", children: branches.map((branch) => (_jsxs("button", { type: "button", onClick: () => onBranchChange(branch), className: `flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium transition-colors ${activeBranch === branch
95
+ ? 'bg-primary/10 text-primary'
96
+ : 'text-muted-foreground hover:text-foreground hover:bg-muted/50'}`, children: [_jsx(GitBranch, { className: "h-3 w-3" }), branch, branch === currentBranch && branch === activeBranch && (_jsx("span", { className: "bg-primary/20 text-primary rounded px-1 text-[9px]", children: "current" })), branch === defaultBranch && (_jsx("span", { className: "bg-muted text-muted-foreground rounded px-1 text-[9px]", children: "default" }))] }, branch))) }));
97
+ }
98
+ function CommitRow({ commit, isLast }) {
99
+ const { branches, tags } = parseRefs(commit.refs);
100
+ const headRef = commit.refs.find((r) => r.startsWith('HEAD -> '));
101
+ const headBranch = headRef ? headRef.slice(8) : null;
102
+ return (_jsxs("div", { className: "group/commit relative flex gap-3 px-4 py-2", children: [_jsxs("div", { className: "relative flex flex-col items-center", children: [_jsx("div", { className: "bg-primary relative z-10 mt-1.5 h-3 w-3 shrink-0 rounded-full border-2 border-white shadow-sm dark:border-gray-900" }), !isLast && (_jsx("div", { className: "bg-border/60 mt-0.5 w-px flex-1", style: { minHeight: '16px' } }))] }), _jsxs("div", { className: "min-w-0 flex-1 pb-1", children: [headBranch || branches.length > 0 || tags.length > 0 ? (_jsxs("div", { className: "mb-1 flex flex-wrap gap-1", children: [headBranch ? _jsx(RefBadge, { label: headBranch, variant: "head" }) : null, branches
103
+ .filter((b) => b !== headBranch)
104
+ .map((b) => (_jsx(RefBadge, { label: b, variant: "branch" }, b))), tags.map((t) => (_jsx(RefBadge, { label: t, variant: "tag" }, t)))] })) : null, _jsx("p", { className: "text-foreground/90 truncate text-sm leading-snug", title: commit.subject, children: commit.subject }), _jsxs("div", { className: "mt-1 flex items-center gap-2", children: [_jsx(AuthorAvatar, { name: commit.authorName, email: commit.authorEmail }), _jsx("span", { className: "text-muted-foreground min-w-0 truncate text-xs", children: commit.authorName || commit.authorEmail }), _jsx("span", { className: "text-muted-foreground/60 shrink-0 font-mono text-xs", children: commit.shortHash }), _jsx(CopyHashButton, { hash: commit.hash }), _jsx("span", { className: "text-muted-foreground/50 ml-auto shrink-0 text-xs tabular-nums", children: formatRelativeDate(commit.date) })] })] })] }));
105
+ }
106
+ /* ---------------------------------------------------------------------------
107
+ * Main component
108
+ * ------------------------------------------------------------------------- */
109
+ export function CommitHistoryTree({ commits, loading, error, currentBranch, defaultBranch, activeBranch, onBranchChange, }) {
110
+ if (loading) {
111
+ return (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) }));
112
+ }
113
+ if (error) {
114
+ return (_jsxs("div", { className: "flex items-center gap-2 p-4 text-sm text-red-600", children: [_jsx(AlertCircle, { className: "h-4 w-4 shrink-0" }), _jsx("span", { children: error })] }));
115
+ }
116
+ if (!commits || commits.length === 0) {
117
+ return (_jsxs("div", { className: "flex flex-col items-center justify-center gap-2 p-8", children: [_jsx(GitCommit, { className: "text-muted-foreground h-8 w-8" }), _jsx("p", { className: "text-muted-foreground text-sm", children: "No commits found" })] }));
118
+ }
119
+ return (_jsxs("div", { className: "flex flex-col", children: [_jsx(BranchSelector, { currentBranch: currentBranch, defaultBranch: defaultBranch, activeBranch: activeBranch, onBranchChange: onBranchChange }), _jsx("div", { className: "flex flex-col", children: commits.map((commit, index) => (_jsx(CommitRow, { commit: commit, isLast: index === commits.length - 1 }, commit.hash))) })] }));
120
+ }
@@ -0,0 +1,12 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { CommitHistoryTree } from './commit-history-tree.js';
3
+ declare const meta: Meta<typeof CommitHistoryTree>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof CommitHistoryTree>;
6
+ export declare const Default: Story;
7
+ export declare const OnDefaultBranch: Story;
8
+ export declare const Loading: Story;
9
+ export declare const Error: Story;
10
+ export declare const Empty: Story;
11
+ export declare const LongSubjects: Story;
12
+ //# sourceMappingURL=commit-history-tree.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-history-tree.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/commit-history-tree/commit-history-tree.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG1D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,iBAAiB,CAcxC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAsFhD,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAI7B,CAAC;AAKF,eAAO,MAAM,OAAO,EAAE,KAUrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAUnB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAUnB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KA4B1B,CAAC"}
@@ -0,0 +1,140 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { CommitHistoryTree } from './commit-history-tree.js';
4
+ const meta = {
5
+ title: 'Common/CommitHistoryTree',
6
+ component: CommitHistoryTree,
7
+ tags: ['autodocs'],
8
+ parameters: {
9
+ layout: 'padded',
10
+ },
11
+ decorators: [
12
+ (Story) => (_jsx("div", { className: "border-border bg-background w-[380px] overflow-y-auto rounded-lg border", children: _jsx(Story, {}) })),
13
+ ],
14
+ };
15
+ export default meta;
16
+ const now = new Date();
17
+ const daysAgo = (n) => new Date(now.getTime() - n * 86400000).toISOString();
18
+ const sampleCommits = [
19
+ {
20
+ hash: 'a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2',
21
+ shortHash: 'a1b2c3d',
22
+ subject: 'feat(web): add commit history tree component',
23
+ authorName: 'Alex Dev',
24
+ authorEmail: 'alex@example.com',
25
+ date: daysAgo(0),
26
+ refs: ['HEAD -> feat/commit-history-tree'],
27
+ },
28
+ {
29
+ hash: 'b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6b2c3d4',
30
+ shortHash: 'b2c3d4e',
31
+ subject: 'fix(web): resolve chat concurrency issue in polling',
32
+ authorName: 'Alex Dev',
33
+ authorEmail: 'alex@example.com',
34
+ date: daysAgo(1),
35
+ refs: [],
36
+ },
37
+ {
38
+ hash: 'c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6c3d4e5f6',
39
+ shortHash: 'c3d4e5f',
40
+ subject: 'chore(release): 1.152.0 [skip ci]',
41
+ authorName: 'Release Bot',
42
+ authorEmail: 'bot@example.com',
43
+ date: daysAgo(2),
44
+ refs: ['origin/main', 'main', 'v1.152.0'],
45
+ },
46
+ {
47
+ hash: 'd4e5f6a1b2c3d4e5f6a1b2c3d4e5f6d4e5f6a1b2',
48
+ shortHash: 'd4e5f6a',
49
+ subject: 'feat(agents): interactive feature agent with claude agent sdk',
50
+ authorName: 'Sam Engineer',
51
+ authorEmail: 'sam@example.com',
52
+ date: daysAgo(3),
53
+ refs: [],
54
+ },
55
+ {
56
+ hash: 'e5f6a1b2c3d4e5f6a1b2c3d4e5f6e5f6a1b2c3d4',
57
+ shortHash: 'e5f6a1b',
58
+ subject: 'fix(agents): deduplicate evidence across retry attempts',
59
+ authorName: 'Sam Engineer',
60
+ authorEmail: 'sam@example.com',
61
+ date: daysAgo(4),
62
+ refs: [],
63
+ },
64
+ {
65
+ hash: 'f6a1b2c3d4e5f6a1b2c3d4e5f6f6a1b2c3d4e5f6',
66
+ shortHash: 'f6a1b2c',
67
+ subject: 'refactor(web): reorganize sidebar layout with improved component structure',
68
+ authorName: 'Alex Dev',
69
+ authorEmail: 'alex@example.com',
70
+ date: daysAgo(5),
71
+ refs: [],
72
+ },
73
+ ];
74
+ function InteractiveTemplate({ commits, currentBranch, defaultBranch, }) {
75
+ const [activeBranch, setActiveBranch] = useState(currentBranch);
76
+ return (_jsx(CommitHistoryTree, { commits: commits, loading: false, error: null, currentBranch: currentBranch, defaultBranch: defaultBranch, activeBranch: activeBranch, onBranchChange: setActiveBranch }));
77
+ }
78
+ export const Default = {
79
+ render: () => (_jsx(InteractiveTemplate, { commits: sampleCommits, currentBranch: "feat/commit-history-tree", defaultBranch: "main" })),
80
+ };
81
+ export const OnDefaultBranch = {
82
+ render: () => (_jsx(InteractiveTemplate, { commits: sampleCommits, currentBranch: "main", defaultBranch: "main" })),
83
+ };
84
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
85
+ const noop = (_branch) => { };
86
+ export const Loading = {
87
+ args: {
88
+ commits: null,
89
+ loading: true,
90
+ error: null,
91
+ currentBranch: 'main',
92
+ defaultBranch: 'main',
93
+ activeBranch: 'main',
94
+ onBranchChange: noop,
95
+ },
96
+ };
97
+ export const Error = {
98
+ args: {
99
+ commits: null,
100
+ loading: false,
101
+ error: 'Unable to determine default branch for repository. No remote HEAD configured.',
102
+ currentBranch: 'main',
103
+ defaultBranch: 'main',
104
+ activeBranch: 'main',
105
+ onBranchChange: noop,
106
+ },
107
+ };
108
+ export const Empty = {
109
+ args: {
110
+ commits: [],
111
+ loading: false,
112
+ error: null,
113
+ currentBranch: 'main',
114
+ defaultBranch: 'main',
115
+ activeBranch: 'main',
116
+ onBranchChange: noop,
117
+ },
118
+ };
119
+ export const LongSubjects = {
120
+ render: () => (_jsx(InteractiveTemplate, { commits: [
121
+ {
122
+ hash: 'a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2',
123
+ shortHash: 'a1b2c3d',
124
+ subject: 'feat(web): implement comprehensive commit history tree with branch selector, author avatars, ref badges, and copy hash functionality',
125
+ authorName: 'Very Long Author Name Indeed',
126
+ authorEmail: 'verylongname@example.com',
127
+ date: daysAgo(0),
128
+ refs: ['HEAD -> feat/very-long-branch-name-for-testing'],
129
+ },
130
+ {
131
+ hash: 'b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6b2c3d4',
132
+ shortHash: 'b2c3d4e',
133
+ subject: 'fix: short fix',
134
+ authorName: 'Al',
135
+ authorEmail: 'al@x.com',
136
+ date: daysAgo(7),
137
+ refs: ['origin/main', 'main', 'tag: v1.0.0'],
138
+ },
139
+ ], currentBranch: "feat/very-long-branch-name-for-testing", defaultBranch: "main" })),
140
+ };
@@ -0,0 +1,16 @@
1
+ import type { RepositoryCommitsData } from '../../../app/actions/get-repository-commits.js';
2
+ export interface UseCommitHistoryOptions {
3
+ repositoryPath: string | undefined;
4
+ branch?: string;
5
+ limit?: number;
6
+ /** Only fetch when enabled (e.g. when the tab is active) */
7
+ enabled?: boolean;
8
+ }
9
+ export interface UseCommitHistoryState {
10
+ data: RepositoryCommitsData | null;
11
+ loading: boolean;
12
+ error: string | null;
13
+ refresh: () => void;
14
+ }
15
+ export declare function useCommitHistory({ repositoryPath, branch, limit, enabled, }: UseCommitHistoryOptions): UseCommitHistoryState;
16
+ //# sourceMappingURL=use-commit-history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-commit-history.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/commit-history-tree/use-commit-history.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAElF,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,cAAc,EACd,MAAM,EACN,KAAU,EACV,OAAc,GACf,EAAE,uBAAuB,GAAG,qBAAqB,CA4BjD"}