diff --git a/CHANGELOG.md b/CHANGELOG.md
index 52310b711..4a84b330e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+### Fixed
+- Fixed commit and branch hyperlinks not rendering for Gerrit repos. [#581](https://github.com/sourcebot-dev/sourcebot/pull/581)
+- Fixed visual bug when a repository does not have a image. [#581](https://github.com/sourcebot-dev/sourcebot/pull/581)
+- Fixed issue where the Ask homepage was not scrollable. [#581](https://github.com/sourcebot-dev/sourcebot/pull/581)
+
## [4.8.0] - 2025-10-28
### Added
diff --git a/packages/web/src/app/[domain]/chat/[id]/page.tsx b/packages/web/src/app/[domain]/chat/[id]/page.tsx
index 4929589ba..24cd94e91 100644
--- a/packages/web/src/app/[domain]/chat/[id]/page.tsx
+++ b/packages/web/src/app/[domain]/chat/[id]/page.tsx
@@ -53,7 +53,7 @@ export default async function Page(props: PageProps) {
const indexedRepos = repos.filter((repo) => repo.indexedAt !== undefined);
return (
- <>
+
- >
+
)
}
\ No newline at end of file
diff --git a/packages/web/src/app/[domain]/chat/layout.tsx b/packages/web/src/app/[domain]/chat/layout.tsx
index 2968c7481..6f2094209 100644
--- a/packages/web/src/app/[domain]/chat/layout.tsx
+++ b/packages/web/src/app/[domain]/chat/layout.tsx
@@ -14,9 +14,7 @@ export default async function Layout({ children }: LayoutProps) {
// @note: we use a navigation guard here since we don't support resuming streams yet.
// @see: https://ai-sdk.dev/docs/ai-sdk-ui/chatbot-message-persistence#resuming-ongoing-streams
-
- {children}
-
+ {children}
)
diff --git a/packages/web/src/app/[domain]/repos/components/reposTable.tsx b/packages/web/src/app/[domain]/repos/components/reposTable.tsx
index 5074c3fd2..c767acbcc 100644
--- a/packages/web/src/app/[domain]/repos/components/reposTable.tsx
+++ b/packages/web/src/app/[domain]/repos/components/reposTable.tsx
@@ -14,7 +14,7 @@ import { Input } from "@/components/ui/input"
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
import { SINGLE_TENANT_ORG_DOMAIN } from "@/lib/constants"
-import { CodeHostType, getCodeHostCommitUrl, getCodeHostInfoForRepo, getRepoImageSrc } from "@/lib/utils"
+import { cn, CodeHostType, getCodeHostCommitUrl, getCodeHostIcon, getCodeHostInfoForRepo, getRepoImageSrc } from "@/lib/utils"
import {
type ColumnDef,
type ColumnFiltersState,
@@ -96,22 +96,29 @@ export const columns: ColumnDef[] = [
)
},
cell: ({ row }) => {
- const repo = row.original
+ const repo = row.original;
+ const codeHostIcon = getCodeHostIcon(repo.codeHostType as CodeHostType);
+ const repoImageSrc = repo.imageUrl ? getRepoImageSrc(repo.imageUrl, repo.id) : undefined;
+
return (
- {repo.imageUrl ? (
-
+ ) :
- ) : (
-
- {repo.displayName?.charAt(0) ?? repo.name.charAt(0)}
-
- )}
+ }
{/* Link to the details page (instead of browse) when the repo is indexing
as the code will not be available yet */}
@@ -124,7 +131,7 @@ export const columns: ColumnDef
[] = [
})}
className="font-medium hover:underline"
>
- {repo.displayName || repo.name}
+ {repo.displayName || repo.name}
{repo.isFirstTimeIndex && (
diff --git a/packages/web/src/lib/utils.ts b/packages/web/src/lib/utils.ts
index bc4850f0c..d3b450a0e 100644
--- a/packages/web/src/lib/utils.ts
+++ b/packages/web/src/lib/utils.ts
@@ -345,6 +345,7 @@ export const getCodeHostCommitUrl = ({
case 'bitbucket-server':
return `${webUrl}/commits/${commitHash}`;
case 'gerrit':
+ return `${webUrl}/+/${commitHash}`;
case 'generic-git-host':
return undefined;
}
@@ -377,6 +378,7 @@ export const getCodeHostBrowseAtBranchUrl = ({
case 'bitbucket-server':
return `${webUrl}?at=${branchName}`;
case 'gerrit':
+ return `${webUrl}/+/${branchName}`;
case 'generic-git-host':
return undefined;
}