From 0a5e624b8b5b648d89b0d923e7eaa79c1e280306 Mon Sep 17 00:00:00 2001 From: Ayush8923 <80516839+Ayush8923@users.noreply.github.com> Date: Tue, 5 May 2026 18:12:19 +0530 Subject: [PATCH 1/6] fix(api): remove traling slashes --- app/api/collections/route.ts | 4 ++-- app/api/configs/route.ts | 4 ++-- app/api/credentials/route.ts | 6 +++--- app/api/document/route.ts | 4 ++-- app/api/guardrails/route.ts | 2 +- app/api/organization/route.ts | 2 +- app/api/projects/route.ts | 2 +- app/api/user-projects/route.ts | 14 +++++--------- 8 files changed, 17 insertions(+), 21 deletions(-) diff --git a/app/api/collections/route.ts b/app/api/collections/route.ts index 0c40145d..20ee2cff 100644 --- a/app/api/collections/route.ts +++ b/app/api/collections/route.ts @@ -3,7 +3,7 @@ import { apiClient } from "@/app/lib/apiClient"; export async function GET(request: Request) { try { - const { status, data } = await apiClient(request, "/api/v1/collections/"); + const { status, data } = await apiClient(request, "/api/v1/collections"); return NextResponse.json(data, { status }); } catch (error: unknown) { return NextResponse.json( @@ -22,7 +22,7 @@ export async function POST(request: NextRequest) { // Get the JSON body from the request const body = await request.json(); - const { status, data } = await apiClient(request, "/api/v1/collections/", { + const { status, data } = await apiClient(request, "/api/v1/collections", { method: "POST", body: JSON.stringify(body), }); diff --git a/app/api/configs/route.ts b/app/api/configs/route.ts index d0f6016d..3fda9fa3 100644 --- a/app/api/configs/route.ts +++ b/app/api/configs/route.ts @@ -5,7 +5,7 @@ export async function GET(request: Request) { try { const { searchParams } = new URL(request.url); const queryString = searchParams.toString(); - const endpoint = `/api/v1/configs/${queryString ? `?${queryString}` : ""}`; + const endpoint = `/api/v1/configs${queryString ? `?${queryString}` : ""}`; const { status, data } = await apiClient(request, endpoint); return NextResponse.json(data, { status }); } catch (error) { @@ -24,7 +24,7 @@ export async function POST(request: Request) { try { const body = await request.json(); - const { status, data } = await apiClient(request, "/api/v1/configs/", { + const { status, data } = await apiClient(request, "/api/v1/configs", { method: "POST", body: JSON.stringify(body), }); diff --git a/app/api/credentials/route.ts b/app/api/credentials/route.ts index 627f2b2a..06c76646 100644 --- a/app/api/credentials/route.ts +++ b/app/api/credentials/route.ts @@ -3,7 +3,7 @@ import { NextResponse, NextRequest } from "next/server"; export async function GET(request: NextRequest) { try { - const { status, data } = await apiClient(request, "/api/v1/credentials/"); + const { status, data } = await apiClient(request, "/api/v1/credentials"); return NextResponse.json(data, { status }); } catch (e: unknown) { return NextResponse.json( @@ -16,7 +16,7 @@ export async function GET(request: NextRequest) { export async function POST(request: NextRequest) { try { const body = await request.json(); - const { status, data } = await apiClient(request, "/api/v1/credentials/", { + const { status, data } = await apiClient(request, "/api/v1/credentials", { method: "POST", body: JSON.stringify(body), }); @@ -32,7 +32,7 @@ export async function POST(request: NextRequest) { export async function PATCH(request: NextRequest) { try { const body = await request.json(); - const { status, data } = await apiClient(request, "/api/v1/credentials/", { + const { status, data } = await apiClient(request, "/api/v1/credentials", { method: "PATCH", body: JSON.stringify(body), }); diff --git a/app/api/document/route.ts b/app/api/document/route.ts index fc4291ca..3eac9795 100644 --- a/app/api/document/route.ts +++ b/app/api/document/route.ts @@ -5,7 +5,7 @@ export async function GET(request: Request) { try { const { searchParams } = new URL(request.url); const queryString = searchParams.toString(); - const endpoint = `/api/v1/documents/${queryString ? `?${queryString}` : ""}`; + const endpoint = `/api/v1/documents${queryString ? `?${queryString}` : ""}`; const { status, data } = await apiClient(request, endpoint); return NextResponse.json(data, { status }); } catch (error: unknown) { @@ -78,7 +78,7 @@ export async function POST(request: NextRequest) { }, }); - const { status, data } = await apiClient(request, "/api/v1/documents/", { + const { status, data } = await apiClient(request, "/api/v1/documents", { method: "POST", body: uploadBody, headers: { "Content-Type": contentType }, diff --git a/app/api/guardrails/route.ts b/app/api/guardrails/route.ts index 1323e0a4..694aefc6 100644 --- a/app/api/guardrails/route.ts +++ b/app/api/guardrails/route.ts @@ -5,7 +5,7 @@ export async function GET(request: NextRequest) { try { const { status, data } = await guardrailsClient( request, - "/api/v1/guardrails/", + "/api/v1/guardrails", ); return NextResponse.json(data, { status }); } catch (e: unknown) { diff --git a/app/api/organization/route.ts b/app/api/organization/route.ts index f04430d7..1a155321 100644 --- a/app/api/organization/route.ts +++ b/app/api/organization/route.ts @@ -8,7 +8,7 @@ export async function GET(request: NextRequest) { const { status, data } = await apiClient( request, - `/api/v1/organizations/${queryString ? `?${queryString}` : ""}`, + `/api/v1/organizations${queryString ? `?${queryString}` : ""}`, ); return NextResponse.json(data, { status }); } catch { diff --git a/app/api/projects/route.ts b/app/api/projects/route.ts index ae734776..406a0c67 100644 --- a/app/api/projects/route.ts +++ b/app/api/projects/route.ts @@ -4,7 +4,7 @@ import { apiClient } from "@/app/lib/apiClient"; export async function POST(request: NextRequest) { try { const body = await request.json(); - const { status, data } = await apiClient(request, "/api/v1/projects/", { + const { status, data } = await apiClient(request, "/api/v1/projects", { method: "POST", body: JSON.stringify(body), }); diff --git a/app/api/user-projects/route.ts b/app/api/user-projects/route.ts index cfff7e03..937ee1ae 100644 --- a/app/api/user-projects/route.ts +++ b/app/api/user-projects/route.ts @@ -8,7 +8,7 @@ export async function GET(request: NextRequest) { const { status, data } = await apiClient( request, - `/api/v1/user-projects/${queryString ? `?${queryString}` : ""}`, + `/api/v1/user-projects${queryString ? `?${queryString}` : ""}`, ); return NextResponse.json(data, { status }); } catch { @@ -22,14 +22,10 @@ export async function GET(request: NextRequest) { export async function POST(request: NextRequest) { try { const body = await request.json(); - const { status, data } = await apiClient( - request, - "/api/v1/user-projects/", - { - method: "POST", - body: JSON.stringify(body), - }, - ); + const { status, data } = await apiClient(request, "/api/v1/user-projects", { + method: "POST", + body: JSON.stringify(body), + }); return NextResponse.json(data, { status }); } catch { return NextResponse.json( From 7916e265004d608825533e3ae365ed3022456c26 Mon Sep 17 00:00:00 2001 From: Ayush8923 <80516839+Ayush8923@users.noreply.github.com> Date: Thu, 7 May 2026 12:17:46 +0530 Subject: [PATCH 2/6] fix(favicon): update the favicon --- app/favicon.ico | Bin 15406 -> 15086 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/app/favicon.ico b/app/favicon.ico index 03f3370a57549ef95b750266257292edd9f0eb5a..f68b42568eacd3c992dcb35f2c6b02b346acdafb 100644 GIT binary patch literal 15086 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 Date: Thu, 7 May 2026 12:20:29 +0530 Subject: [PATCH 3/6] fix(review): add the coderabbit configuration file --- .coderabbit.yaml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .coderabbit.yaml diff --git a/.coderabbit.yaml b/.coderabbit.yaml new file mode 100644 index 00000000..30880212 --- /dev/null +++ b/.coderabbit.yaml @@ -0,0 +1,7 @@ +reviews: + auto_review: + enabled: true + labels: + - "ready-for-review" + base_branches: + - ".*" # allows all branches \ No newline at end of file From 666d51d951a9804db67c91ce96c94b10329cf1d4 Mon Sep 17 00:00:00 2001 From: Ayush8923 <80516839+Ayush8923@users.noreply.github.com> Date: Thu, 7 May 2026 12:33:37 +0530 Subject: [PATCH 4/6] fix(*): formatting --- .coderabbit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.coderabbit.yaml b/.coderabbit.yaml index 30880212..c9c0c1e8 100644 --- a/.coderabbit.yaml +++ b/.coderabbit.yaml @@ -4,4 +4,4 @@ reviews: labels: - "ready-for-review" base_branches: - - ".*" # allows all branches \ No newline at end of file + - ".*" # allows all branches From 5d5922eeb84a7c77ea412cdbbf9046a0d2539897 Mon Sep 17 00:00:00 2001 From: Ayush8923 <80516839+Ayush8923@users.noreply.github.com> Date: Thu, 7 May 2026 23:01:37 +0530 Subject: [PATCH 5/6] fix(api): rever the trailing slash related chanegs in guardrails --- app/api/guardrails/route.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/api/guardrails/route.ts b/app/api/guardrails/route.ts index 694aefc6..1323e0a4 100644 --- a/app/api/guardrails/route.ts +++ b/app/api/guardrails/route.ts @@ -5,7 +5,7 @@ export async function GET(request: NextRequest) { try { const { status, data } = await guardrailsClient( request, - "/api/v1/guardrails", + "/api/v1/guardrails/", ); return NextResponse.json(data, { status }); } catch (e: unknown) { From a8064dae35c87fe54b68177121b7cd9eeeac06d0 Mon Sep 17 00:00:00 2001 From: Ayush8923 <80516839+Ayush8923@users.noreply.github.com> Date: Mon, 11 May 2026 22:44:52 +0530 Subject: [PATCH 6/6] fix(document): few UI tweaks --- app/(main)/knowledge-base/page.tsx | 22 +++-- .../knowledge-base/CollectionDetail.tsx | 16 ++-- .../knowledge-base/DocumentPreviewModal.tsx | 83 ++++++++++++++----- 3 files changed, 90 insertions(+), 31 deletions(-) diff --git a/app/(main)/knowledge-base/page.tsx b/app/(main)/knowledge-base/page.tsx index a30a30da..5e0ab1e8 100644 --- a/app/(main)/knowledge-base/page.tsx +++ b/app/(main)/knowledge-base/page.tsx @@ -37,6 +37,7 @@ export default function KnowledgeBasePage() { ); const [showDocPreviewModal, setShowDocPreviewModal] = useState(false); const [previewDoc, setPreviewDoc] = useState(null); + const [isPreviewLoading, setIsPreviewLoading] = useState(false); const [collectionName, setCollectionName] = useState(""); const [collectionDescription, setCollectionDescription] = useState(""); @@ -103,14 +104,24 @@ export default function KnowledgeBasePage() { const handlePreviewDocument = async (firstDocument: Document) => { setShowDocPreviewModal(true); setPreviewDoc(firstDocument); - const enriched = await fetchAndPreviewDoc(firstDocument); - setPreviewDoc(enriched); + setIsPreviewLoading(true); + try { + const enriched = await fetchAndPreviewDoc(firstDocument); + setPreviewDoc(enriched); + } finally { + setIsPreviewLoading(false); + } }; const handleSelectPreviewDoc = async (doc: Document) => { setPreviewDoc(doc); - const enriched = await fetchAndPreviewDoc(doc); - setPreviewDoc(enriched); + setIsPreviewLoading(true); + try { + const enriched = await fetchAndPreviewDoc(doc); + setPreviewDoc(enriched); + } finally { + setIsPreviewLoading(false); + } }; return ( @@ -153,7 +164,7 @@ export default function KnowledgeBasePage() { ) : selectedCollection ? ( -
+
diff --git a/app/components/knowledge-base/CollectionDetail.tsx b/app/components/knowledge-base/CollectionDetail.tsx index bb5601e8..05231148 100644 --- a/app/components/knowledge-base/CollectionDetail.tsx +++ b/app/components/knowledge-base/CollectionDetail.tsx @@ -109,8 +109,8 @@ export default function CollectionDetail({
-
-
+
+

Documents Present ({documents.length})

@@ -126,8 +126,8 @@ export default function CollectionDetail({
{documents.length > 0 ? ( -
-
+
+

Name @@ -140,7 +140,11 @@ export default function CollectionDetail({

-
+
{visibleDocs.map((doc) => (
{documents.length > 3 && ( -
+
- ))} + {doc.inserted_at && ( +

+ {formatDate(doc.inserted_at)} +

+ )} + + ); + })}
-
+
{previewDoc?.signed_url ? (