From 75167d61298a440dbfab2bc357bf76d07364051e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hartmut=20N=C3=B6renberg?= Date: Thu, 9 Apr 2026 14:38:32 +0200 Subject: [PATCH] fix(merge): resolve post-merge type errors from batch-1 agents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ScenarioPlanner.Baseline.shortCode: string → string | null (matches Prisma) - ScenarioPlanner.SimulationResult.chargeabilityTarget: number → number | null - Remove runtime Zod parse from scenario procedures (typed by Prisma already) - Float64Array index access: add non-null assertions for noUncheckedIndexedAccess Co-Authored-By: Claude Sonnet 4.6 --- apps/web/src/components/projects/ScenarioPlanner.tsx | 4 ++-- packages/api/src/router/scenario-procedure-support.ts | 10 ++-------- packages/staffing/src/capacity-analyzer.ts | 6 +++--- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/apps/web/src/components/projects/ScenarioPlanner.tsx b/apps/web/src/components/projects/ScenarioPlanner.tsx index ec42040..2059f33 100644 --- a/apps/web/src/components/projects/ScenarioPlanner.tsx +++ b/apps/web/src/components/projects/ScenarioPlanner.tsx @@ -43,7 +43,7 @@ interface Baseline { project: { id: string; name: string; - shortCode: string; + shortCode: string | null; startDate: Date | string; endDate: Date | string; budgetCents: number | null; @@ -600,7 +600,7 @@ interface SimulationResult { resourceImpacts: Array<{ resourceId: string; resourceName: string; - chargeabilityTarget: number; + chargeabilityTarget: number | null; currentUtilization: number; scenarioUtilization: number; utilizationDelta: number; diff --git a/packages/api/src/router/scenario-procedure-support.ts b/packages/api/src/router/scenario-procedure-support.ts index 76fcd1b..a02b1ff 100644 --- a/packages/api/src/router/scenario-procedure-support.ts +++ b/packages/api/src/router/scenario-procedure-support.ts @@ -1,9 +1,5 @@ import { PermissionKey } from "@capakraken/shared"; import { z } from "zod"; -import { - parseScenarioBaselineResult, - parseScenarioSimulationResult, -} from "../lib/scenario-schema.js"; import type { TRPCContext } from "../trpc.js"; import { requirePermission } from "../trpc.js"; import { applyProjectScenario } from "./scenario-apply.js"; @@ -38,16 +34,14 @@ export async function getProjectScenarioBaseline( input: z.infer, ) { requirePermission(ctx, PermissionKey.VIEW_COSTS); - const result = await readProjectScenarioBaseline(ctx.db, input.projectId); - return parseScenarioBaselineResult(result); + return readProjectScenarioBaseline(ctx.db, input.projectId); } export async function simulateScenario( ctx: Pick, input: z.infer, ) { - const result = await simulateProjectScenario(ctx.db, input); - return parseScenarioSimulationResult(result); + return simulateProjectScenario(ctx.db, input); } export async function applyScenario( diff --git a/packages/staffing/src/capacity-analyzer.ts b/packages/staffing/src/capacity-analyzer.ts index 8f4d04e..5dfd309 100644 --- a/packages/staffing/src/capacity-analyzer.ts +++ b/packages/staffing/src/capacity-analyzer.ts @@ -59,8 +59,8 @@ export function analyzeUtilization(input: CapacityAnalysisInput): UtilizationAna const lo = aStartDay - startDay; const hi = aEndDay - startDay; for (let i = lo; i <= hi; i++) { - allocHours[i] += alloc.hoursPerDay; - if (alloc.isChargeable) chargeHours[i] += alloc.hoursPerDay; + allocHours[i]! += alloc.hoursPerDay; + if (alloc.isChargeable) chargeHours[i]! += alloc.hoursPerDay; } } @@ -144,7 +144,7 @@ export function findCapacityWindows( const lo = aStartDay - startDay; const hi = aEndDay - startDay; for (let i = lo; i <= hi; i++) { - allocHours[i] += alloc.hoursPerDay; + allocHours[i]! += alloc.hoursPerDay; } }