Files
AgentCompany/src/main/ipc-core-work-graph-handlers.ts
T
ZacharyZhang-NY 40040b3dd2 refactor(errors): surface 57 deferred catch-and-swallow sites via logger
The earlier sweep cleaned the hot path (worker/runtime/automation/api-
server/ipc core — 59 sites). This pass finishes the deferred long tail:
main/* services, database/* CRUD modules, api-server/* routes, ipc-*
handlers, thread-integration, automation helpers, browser, skills.

Default strategy: catch (error) { logger.warn("[module] context:", ...) }
— preserve current behavior, make the failure visible instead of
silently hidden. Widened 3 logger interface signatures to include warn
where callers only passed info/error previously (thread-helpers,
host-environment-service, ipc-domain-common).

Legitimate boundaries left intact: JSON.parse on untrusted input, DNS
resolver no-records paths, explicit safe* helpers (safeJson, parseJson,
parseTriggerDetail), URL-parse predicates, and `<unserialisable>`
fallbacks inside the prompt-builder summarisers. Each kept catch now
either has a reason in context or is a documented safe* helper.

Tests adjusted only where test-constructed no-op loggers needed a warn
stub (message-dispatch, company-mode-switch, ipc-agent-graph-handlers).

With the earlier pass, AgentCompany no longer has silently-swallowing
catch blocks in main-process or renderer business code.
2026-04-17 15:25:13 -04:00

43 lines
1.4 KiB
TypeScript

import type { RegisterCoreHandlersDependencies } from "./ipc-core-common";
import { registerCoreAgentGraphHandlers } from "./ipc-core-agent-graph-handlers";
import { registerCoreTaskGraphHandlers } from "./ipc-core-task-graph-handlers";
export function registerCoreWorkGraphHandlers(
deps: Pick<
RegisterCoreHandlersDependencies,
| "registerHandle"
| "db"
| "ensureCompanyExists"
| "findInvalidReference"
| "publishDomainChanged"
| "emitEvent"
| "wakeAgentIfPossible"
| "handleApprovalResolved"
| "handleTaskCreated"
| "handleTaskStatusChange"
| "logger"
>,
) {
registerCoreAgentGraphHandlers({
registerHandle: deps.registerHandle,
db: deps.db,
ensureCompanyExists: deps.ensureCompanyExists,
findInvalidReference: deps.findInvalidReference,
publishDomainChanged: deps.publishDomainChanged,
handleApprovalResolved: deps.handleApprovalResolved,
logger: deps.logger,
});
registerCoreTaskGraphHandlers({
registerHandle: deps.registerHandle,
db: deps.db,
ensureCompanyExists: deps.ensureCompanyExists,
findInvalidReference: deps.findInvalidReference,
publishDomainChanged: deps.publishDomainChanged,
emitEvent: deps.emitEvent,
wakeAgentIfPossible: deps.wakeAgentIfPossible,
handleTaskCreated: deps.handleTaskCreated,
handleTaskStatusChange: deps.handleTaskStatusChange,
logger: deps.logger,
});
}