@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.
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +37 -0
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/repositories/get-repository-commits.use-case.d.ts +18 -0
- package/dist/packages/core/src/application/use-cases/repositories/get-repository-commits.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/repositories/get-repository-commits.use-case.js +40 -0
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +5 -0
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +3 -1
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +40 -0
- package/dist/src/presentation/web/app/actions/get-repository-commits.d.ts +13 -0
- package/dist/src/presentation/web/app/actions/get-repository-commits.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/get-repository-commits.js +16 -0
- package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.d.ts +14 -0
- package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.js +120 -0
- package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.stories.d.ts +12 -0
- package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.stories.js +140 -0
- package/dist/src/presentation/web/components/common/commit-history-tree/use-commit-history.d.ts +16 -0
- package/dist/src/presentation/web/components/common/commit-history-tree/use-commit-history.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/commit-history-tree/use-commit-history.js +33 -0
- package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.js +11 -1
- package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.js +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +2 -2
- package/web/.next/required-server-files.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +26 -26
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +29 -29
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +67 -52
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +67 -52
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +26 -26
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +29 -29
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +26 -26
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +67 -52
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +67 -52
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +5 -5
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
- package/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +5 -5
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_refresh-cw_2796b1f0.js +3 -0
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_refresh-cw_2796b1f0.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17ed7ed1._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17ed7ed1._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__28d0d265._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__42bf1807._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__42bf1807._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__56b70465._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__56b70465._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__88f7e8e6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__88f7e8e6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8b0aac03._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c30f1f82._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c30f1f82._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ce859680._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__f8dd4422._.js.map → [root-of-the-server]__ce859680._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f80bfc75._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f80bfc75._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
- package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
- package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_f5073cd1._.js → _29ca8860._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_f5073cd1._.js.map → _29ca8860._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_3a0b989f._.js +2 -2
- package/web/.next/server/chunks/ssr/_3a0b989f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_d8bedf13._.js → _48066275._.js} +2 -2
- package/web/.next/server/chunks/ssr/_48066275._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_5f69c13f._.js → _4b41246e._.js} +2 -2
- package/web/.next/server/chunks/ssr/_4b41246e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_8219712a._.js → _5eb64260._.js} +2 -2
- package/web/.next/server/chunks/ssr/_5eb64260._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_cb5a021e._.js → _6438bf2d._.js} +2 -2
- package/web/.next/server/chunks/ssr/_6438bf2d._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_7c5b97c6._.js +1 -1
- package/web/.next/server/chunks/ssr/_7c5b97c6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_82c57f10._.js +1 -1
- package/web/.next/server/chunks/ssr/_82c57f10._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_d86175ae._.js → _87761ee1._.js} +2 -2
- package/web/.next/server/chunks/ssr/_87761ee1._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_9495d50b._.js +1 -1
- package/web/.next/server/chunks/ssr/_9495d50b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_a0e3f7e4._.js +1 -1
- package/web/.next/server/chunks/ssr/_a0e3f7e4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0454e1de._.js → _a3aa1eb6._.js} +2 -2
- package/web/.next/server/chunks/ssr/_a3aa1eb6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_ac4a3873._.js +1 -1
- package/web/.next/server/chunks/ssr/_ac4a3873._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_c93c0cc6._.js +3 -0
- package/web/.next/server/chunks/ssr/_c93c0cc6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_ca0aa7f0._.js +1 -1
- package/web/.next/server/chunks/ssr/_ca0aa7f0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_e9a73a63._.js → _e55a0378._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_e9a73a63._.js.map → _e55a0378._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_fa7efce3._.js +2 -2
- package/web/.next/server/chunks/ssr/_fa7efce3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +3 -0
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_cdc632e3.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_cdc632e3.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_39ca0924.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_39ca0924.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_357e3eb0._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_357e3eb0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +185 -149
- package/web/.next/static/chunks/{ccb54cbadfef1316.js → 0b347558818d2628.js} +1 -1
- package/web/.next/static/chunks/{cd54b758f58061d0.js → 1406c2860e7fac9c.js} +1 -1
- package/web/.next/static/chunks/36208713ad011740.js +1 -0
- package/web/.next/static/chunks/3f21588c6956d5b4.css +1 -0
- package/web/.next/static/chunks/471bebfd8d0f0acd.js +1 -0
- package/web/.next/static/chunks/{035fae40bf0ed469.js → 5a585a2f6bcff4a9.js} +1 -1
- package/web/.next/static/chunks/{358f58043189b539.js → 65ece264fa8f6fe1.js} +2 -2
- package/web/.next/static/chunks/{0b75bb9e9550073c.js → 929ed61442b5e9f7.js} +1 -1
- package/web/.next/static/chunks/{7564b97f874a385f.js → a4ffe2d157f11ad3.js} +1 -1
- package/web/.next/static/chunks/{1e472a57005aa6ba.js → aaf8507271e6f018.js} +1 -1
- package/web/.next/static/chunks/{6dba47d604ecee1e.js → b27aae090cd67337.js} +2 -2
- package/web/.next/static/chunks/{4a40a849f6ba6c6f.js → b2c3da92e5d7864b.js} +3 -3
- package/web/.next/static/chunks/bb831852c32a9e59.js +1 -0
- package/web/.next/static/chunks/{735012b8a096013d.js → d13a4b544b737cbc.js} +1 -1
- package/web/.next/static/chunks/eef9a6b627e39d41.js +1 -0
- package/web/.next/static/chunks/{6bf85f5937c714b5.js → fa08611a63bb5369.js} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f8dd4422._.js +0 -3
- package/web/.next/server/chunks/ssr/_0454e1de._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_5f69c13f._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_8219712a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_895c848c._.js +0 -3
- package/web/.next/server/chunks/ssr/_895c848c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_cb5a021e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_cfbd1d7e._.js +0 -3
- package/web/.next/server/chunks/ssr/_cfbd1d7e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_d86175ae._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_d8bedf13._.js.map +0 -1
- package/web/.next/static/chunks/211a4b7af388252d.js +0 -1
- package/web/.next/static/chunks/22c459f1877b1e4f.js +0 -1
- package/web/.next/static/chunks/8ba1c07ef18b15a9.js +0 -1
- package/web/.next/static/chunks/c86594475dcb03d5.css +0 -1
- package/web/.next/static/chunks/cfa3f3734e78d38d.js +0 -1
- /package/web/.next/static/{cRfpZzgvy54tlmdKZEXb_ → -_iF1islqFSzVifHA2Zlt}/_buildManifest.js +0 -0
- /package/web/.next/static/{cRfpZzgvy54tlmdKZEXb_ → -_iF1islqFSzVifHA2Zlt}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{cRfpZzgvy54tlmdKZEXb_ → -_iF1islqFSzVifHA2Zlt}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
3
|
+
import { getRepositoryCommits } from '../../../app/actions/get-repository-commits.js';
|
|
4
|
+
export function useCommitHistory({ repositoryPath, branch, limit = 50, enabled = true, }) {
|
|
5
|
+
const [data, setData] = useState(null);
|
|
6
|
+
const [loading, setLoading] = useState(false);
|
|
7
|
+
const [error, setError] = useState(null);
|
|
8
|
+
const fetch = useCallback(async () => {
|
|
9
|
+
if (!repositoryPath || !enabled)
|
|
10
|
+
return;
|
|
11
|
+
setLoading(true);
|
|
12
|
+
setError(null);
|
|
13
|
+
try {
|
|
14
|
+
const result = await getRepositoryCommits(repositoryPath, branch, limit);
|
|
15
|
+
if (result.success && result.data) {
|
|
16
|
+
setData(result.data);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
setError(result.error ?? 'Failed to load commit history');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
setError(err instanceof Error ? err.message : 'Failed to load commit history');
|
|
24
|
+
}
|
|
25
|
+
finally {
|
|
26
|
+
setLoading(false);
|
|
27
|
+
}
|
|
28
|
+
}, [repositoryPath, branch, limit, enabled]);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
void fetch();
|
|
31
|
+
}, [fetch]);
|
|
32
|
+
return { data, loading, error, refresh: fetch };
|
|
33
|
+
}
|
|
@@ -2,7 +2,7 @@ import type { RepositoryNodeData } from '../../common/repository-node/index.js';
|
|
|
2
2
|
export interface RepositoryDrawerClientProps {
|
|
3
3
|
data: RepositoryNodeData;
|
|
4
4
|
/** Initial tab key from URL (e.g. 'chat'). */
|
|
5
|
-
initialTab?: 'overview' | 'chat';
|
|
5
|
+
initialTab?: 'overview' | 'chat' | 'commits';
|
|
6
6
|
}
|
|
7
7
|
export declare function RepositoryDrawerClient({ data, initialTab }: RepositoryDrawerClientProps): import("react/jsx-runtime").JSX.Element;
|
|
8
8
|
//# sourceMappingURL=repository-drawer-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-drawer-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/repository-drawer-client.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"repository-drawer-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/repository-drawer-client.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAK9E,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,kBAAkB,CAAC;IACzB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;CAC9C;AAED,wBAAgB,sBAAsB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,2BAA2B,2CA2MvF"}
|
|
@@ -13,12 +13,15 @@ import { useRepositoryActions } from '../../common/repository-node/use-repositor
|
|
|
13
13
|
import { useDeployAction } from '../../../hooks/use-deploy-action.js';
|
|
14
14
|
import { useFeatureFlags } from '../../../hooks/feature-flags-context.js';
|
|
15
15
|
import { ChatTab } from '../../features/chat/ChatTab.js';
|
|
16
|
+
import { CommitHistoryTree } from '../../common/commit-history-tree/commit-history-tree.js';
|
|
17
|
+
import { useCommitHistory } from '../../common/commit-history-tree/use-commit-history.js';
|
|
16
18
|
export function RepositoryDrawerClient({ data, initialTab }) {
|
|
17
19
|
const featureFlags = useFeatureFlags();
|
|
18
20
|
const router = useRouter();
|
|
19
21
|
const pathname = usePathname();
|
|
20
22
|
const isOpen = pathname.startsWith('/repository/');
|
|
21
23
|
const [activeTab, setActiveTab] = useState(initialTab ?? 'overview');
|
|
24
|
+
const [commitBranch, setCommitBranch] = useState(undefined);
|
|
22
25
|
const repoActions = useRepositoryActions(data.repositoryPath ? { repositoryId: data.id, repositoryPath: data.repositoryPath } : null);
|
|
23
26
|
const onClose = useCallback(() => {
|
|
24
27
|
router.push('/');
|
|
@@ -33,5 +36,12 @@ export function RepositoryDrawerClient({ data, initialTab }) {
|
|
|
33
36
|
const isDeployActive = deployAction.status === 'Booting' || deployAction.status === 'Ready';
|
|
34
37
|
// Session ID for repo chat — deterministic per repo
|
|
35
38
|
const repoSessionId = data.id ? `repo-${data.id}` : `repo-${data.name}`;
|
|
36
|
-
|
|
39
|
+
const commitHistory = useCommitHistory({
|
|
40
|
+
repositoryPath: data.repositoryPath,
|
|
41
|
+
branch: commitBranch,
|
|
42
|
+
enabled: activeTab === 'commits' && !!data.repositoryPath,
|
|
43
|
+
});
|
|
44
|
+
return (_jsx(BaseDrawer, { open: isOpen, onClose: onClose, size: "lg", modal: false, "data-testid": "repository-drawer", children: _jsxs(Tabs, { value: activeTab, onValueChange: setActiveTab, className: "flex min-h-0 flex-1 flex-col", children: [_jsxs("div", { className: "shrink-0 px-4 pt-4 pb-3", "data-testid": "repository-drawer-header", children: [_jsxs("div", { className: "flex items-baseline gap-4 pr-6", children: [_jsx("h2", { className: "text-foreground min-w-0 shrink truncate text-base font-semibold tracking-tight", children: data.name }), _jsxs(TabsList, { className: "h-auto shrink-0 gap-0.5 rounded-none border-0 bg-transparent p-0", children: [_jsx(TabsTrigger, { value: "overview", className: "text-muted-foreground hover:text-foreground data-[state=active]:text-foreground data-[state=active]:border-primary h-auto rounded-none border-b-2 border-transparent bg-transparent px-2 py-0.5 text-[12px] font-medium shadow-none transition-colors data-[state=active]:bg-transparent data-[state=active]:shadow-none", children: "Overview" }), _jsx(TabsTrigger, { value: "chat", className: "text-muted-foreground hover:text-foreground data-[state=active]:text-foreground data-[state=active]:border-primary h-auto rounded-none border-b-2 border-transparent bg-transparent px-2 py-0.5 text-[12px] font-medium shadow-none transition-colors data-[state=active]:bg-transparent data-[state=active]:shadow-none", children: "Chat" }), data.repositoryPath ? (_jsx(TabsTrigger, { value: "commits", className: "text-muted-foreground hover:text-foreground data-[state=active]:text-foreground data-[state=active]:border-primary h-auto rounded-none border-b-2 border-transparent bg-transparent px-2 py-0.5 text-[12px] font-medium shadow-none transition-colors data-[state=active]:bg-transparent data-[state=active]:shadow-none", children: "Commits" })) : null] })] }), _jsxs("div", { className: "mt-1 flex items-center gap-2", children: [data.repositoryPath ? (_jsx("p", { className: "text-muted-foreground min-w-0 truncate font-mono text-xs", children: data.repositoryPath })) : null, featureFlags.envDeploy && data.repositoryPath ? (_jsxs("div", { className: "ml-auto flex shrink-0 items-center gap-2", children: [_jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { children: _jsx(ActionButton, { label: isDeployActive ? 'Stop Dev Server' : 'Start Dev Server', onClick: isDeployActive ? deployAction.stop : deployAction.deploy, loading: deployAction.deployLoading || deployAction.stopLoading, error: !!deployAction.deployError, icon: isDeployActive ? Square : Play, iconOnly: true, variant: "outline", size: "icon-sm" }) }) }), _jsx(TooltipContent, { children: isDeployActive ? 'Stop Dev Server' : 'Start Dev Server' })] }) }), isDeployActive ? (_jsx(DeploymentStatusBadge, { status: deployAction.status, url: deployAction.url, targetId: data.repositoryPath })) : null] })) : null] })] }), _jsx(Separator, {}), _jsx(TabsContent, { value: "overview", className: "mt-0 flex-1 overflow-y-auto", children: data.repositoryPath ? (_jsxs("div", { className: "flex-1 overflow-y-auto", children: [_jsxs("div", { className: "flex flex-col gap-3 p-4", children: [_jsx("div", { className: "text-muted-foreground text-xs font-semibold tracking-wider", children: "OPEN WITH" }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(ActionButton, { label: "Open in IDE", onClick: repoActions.openInIde, loading: repoActions.ideLoading, error: !!repoActions.ideError, icon: Code2, variant: "outline", size: "sm" }), _jsx(ActionButton, { label: "Open in Shell", onClick: repoActions.openInShell, loading: repoActions.shellLoading, error: !!repoActions.shellError, icon: Terminal, variant: "outline", size: "sm" }), _jsx(ActionButton, { label: "Open Folder", onClick: repoActions.openFolder, loading: repoActions.folderLoading, error: !!repoActions.folderError, icon: FolderOpen, variant: "outline", size: "sm" })] })] }), data.id && featureFlags.gitRebaseSync ? (_jsxs(_Fragment, { children: [_jsx(Separator, {}), _jsxs("div", { className: "flex flex-col gap-3 p-4", children: [_jsx("div", { className: "text-muted-foreground text-xs font-semibold tracking-wider", children: "GIT OPERATIONS" }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(ActionButton, { label: "Sync Main", onClick: repoActions.syncMain, loading: repoActions.syncLoading, error: !!repoActions.syncError, icon: RefreshCw, variant: "outline", size: "sm" }), repoActions.syncError ? (_jsx("p", { className: "text-destructive text-xs", children: repoActions.syncError })) : null] })] })] })) : null] })) : null }), _jsx(TabsContent, { value: "chat", className: "mt-0 flex min-h-0 flex-1 flex-col overflow-hidden", children: _jsx(ChatTab, { featureId: repoSessionId, worktreePath: data.repositoryPath }) }), _jsx(TabsContent, { value: "commits", className: "mt-0 flex-1 overflow-y-auto", children: _jsx(CommitHistoryTree, { commits: commitHistory.data?.commits ?? null, loading: commitHistory.loading, error: commitHistory.error, currentBranch: commitHistory.data?.currentBranch ?? '', defaultBranch: commitHistory.data?.defaultBranch ?? '', activeBranch: commitBranch ?? commitHistory.data?.currentBranch ?? '', onBranchChange: (branch) => {
|
|
45
|
+
setCommitBranch(branch);
|
|
46
|
+
} }) })] }) }));
|
|
37
47
|
}
|
|
@@ -21,7 +21,7 @@ export function CanvasToolbar({ showArchived, onToggleArchived, onResetViewport,
|
|
|
21
21
|
setViewport(viewport, { duration: 400 });
|
|
22
22
|
}
|
|
23
23
|
}, [onResetViewport, setViewport]);
|
|
24
|
-
return (_jsxs("div", { className: "bg-background flex items-center gap-1 rounded-xl border px-2 py-1.5 shadow-md dark:bg-neutral-900", children: [_jsx(ToolbarButton, { onClick: onToggleArchived, title: showArchived ? 'Hide archived' : 'Show archived', active: showArchived, label: showArchived ? 'Hide' : 'Show', children: showArchived ? _jsx(Eye, { className: "h-4 w-4" }) : _jsx(EyeOff, { className: "h-4 w-4" }) }), _jsx("div", { className: "bg-border mx-1 h-5 w-px" }), _jsx(ToolbarButton, { onClick: handleZoomOut, title: "Zoom out", children: _jsx(ZoomOut, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: handleZoomIn, title: "Zoom in", children: _jsx(ZoomIn, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: handleFitView, title: "Fit view", children: _jsx(Maximize, { className: "h-4 w-4" }) }), onResetViewport ? (_jsx(ToolbarButton, { onClick: handleReset, title: "Reset view", children: _jsx(RotateCcw, { className: "h-4 w-4" }) })) : null] }));
|
|
24
|
+
return (_jsxs("div", { className: "bg-background flex items-center gap-1 rounded-xl border px-2 py-1.5 shadow-md dark:bg-neutral-900", children: [_jsx(ToolbarButton, { onClick: onToggleArchived, title: showArchived ? 'Hide archived' : 'Show archived', active: showArchived, label: showArchived ? 'Hide Archived' : 'Show Archived', children: showArchived ? _jsx(Eye, { className: "h-4 w-4" }) : _jsx(EyeOff, { className: "h-4 w-4" }) }), _jsx("div", { className: "bg-border mx-1 h-5 w-px" }), _jsx(ToolbarButton, { onClick: handleZoomOut, title: "Zoom out", children: _jsx(ZoomOut, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: handleZoomIn, title: "Zoom in", children: _jsx(ZoomIn, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: handleFitView, title: "Fit view", children: _jsx(Maximize, { className: "h-4 w-4" }) }), onResetViewport ? (_jsx(ToolbarButton, { onClick: handleReset, title: "Reset view", children: _jsx(RotateCcw, { className: "h-4 w-4" }) })) : null] }));
|
|
25
25
|
}
|
|
26
26
|
// ── Internal button ──────────────────────────────────────────────────────
|
|
27
27
|
function ToolbarButton({ children, onClick, title, label, active, }) {
|