From 1adfea55b09b7dec377b1bfaeb12bdd9a1063d59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Thu, 16 Apr 2026 23:08:06 -0400 Subject: [PATCH] chore(meetings): log skipped invalid action items; use requireParam for meetingId (P2-42, P3-48) --- src/main/api-server/routes-meetings.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/api-server/routes-meetings.ts b/src/main/api-server/routes-meetings.ts index 0f6bdeeb..affa15dc 100644 --- a/src/main/api-server/routes-meetings.ts +++ b/src/main/api-server/routes-meetings.ts @@ -1,6 +1,7 @@ +import log from "electron-log/main.js"; import { z } from "zod"; import { validateTaskCreation } from "../task-quality-gates"; -import type { AgentApiServer } from "./server-core"; +import { requireParam, type AgentApiServer } from "./server-core"; export function registerMeetingRoutes(server: AgentApiServer) { const db = server.db; @@ -66,11 +67,7 @@ export function registerMeetingRoutes(server: AgentApiServer) { }); server.addRoute("PATCH", "/api/meetings/:meetingId", (_req, res, params, token, body) => { - const meetingId = params.meetingId; - if (!meetingId) { - server.json(res, 400, { error: "Missing meetingId" }); - return; - } + const meetingId = requireParam(params, "meetingId"); const existing = db.getMeeting(meetingId, token.companyId); if (!existing) { server.json(res, 404, { error: "Meeting not found" }); @@ -130,7 +127,9 @@ export function registerMeetingRoutes(server: AgentApiServer) { false, ); if (!meetingTaskValidation.valid) { - // Log but skip invalid meeting action items rather than failing the whole request + log.warn( + `[meetings] Skipped invalid action item from meeting ${existing.id}: ${meetingTaskValidation.errors.join("; ")}`, + ); continue; } db.saveTask({