fix: Resolve CI typecheck failures and improve type safety

Fixes CI pipeline failures caused by missing Prisma Client generation and TypeScript type safety issues. Added Prisma generation step to CI pipeline, installed missing type dependencies, and resolved 40+ exactOptionalPropertyTypes violations across service layer.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
This commit is contained in:
2026-01-30 20:39:03 -06:00
co-authored by Claude Sonnet 4.5
parent 82b36e1d66
commit c221b63d14
19 changed files with 256 additions and 115 deletions
@@ -1,4 +1,5 @@
import { Injectable } from "@nestjs/common";
import { Prisma } from "@prisma/client";
import { PrismaService } from "../../prisma/prisma.service";
import { LinkResolutionService } from "./link-resolution.service";
import { parseWikiLinks } from "../utils/wiki-link-parser";
@@ -81,29 +82,24 @@ export class LinkSyncService {
});
// Resolve all parsed links
const linkCreations: {
sourceId: string;
targetId: string | null;
linkText: string;
displayText: string;
positionStart: number;
positionEnd: number;
resolved: boolean;
}[] = [];
const linkCreations: Prisma.KnowledgeLinkUncheckedCreateInput[] = [];
for (const link of parsedLinks) {
const targetId = await this.linkResolver.resolveLink(workspaceId, link.target);
// Create link record (resolved or unresolved)
linkCreations.push({
sourceId: entryId,
targetId: targetId ?? null,
linkText: link.target,
displayText: link.displayText,
positionStart: link.start,
positionEnd: link.end,
resolved: targetId !== null,
});
// Only create link record if targetId was resolved
// (Schema requires targetId to be non-null)
if (targetId) {
linkCreations.push({
sourceId: entryId,
targetId,
linkText: link.target,
displayText: link.displayText,
positionStart: link.start,
positionEnd: link.end,
resolved: true,
});
}
}
// Determine which existing links to keep/delete