Files
AgentCompany/src/main/ipc-domain-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

35 lines
1.6 KiB
TypeScript

import type { RegisterDomainHandlersDependencies } from "./ipc-domain-common";
import { registerAgentCoordinationHandlers } from "./ipc-agent-coordination-handlers";
import { registerAutomationOperationsHandlers } from "./ipc-automation-operations-handlers";
import { registerBrowserHandlers } from "./ipc-browser-handlers";
import { registerContentOperationsHandlers } from "./ipc-content-operations-handlers";
import { registerOnboardingHandlers } from "./ipc-onboarding-handlers";
import { registerRecoveryHandlers } from "./ipc-recovery-handlers";
import { registerSkillHandlers } from "./ipc-skill-handlers";
import { registerBudgetHandlers } from "./ipc-budget-handlers";
export function registerDomainHandlers(dependencies: RegisterDomainHandlersDependencies) {
registerOnboardingHandlers(dependencies);
registerBrowserHandlers(dependencies);
registerContentOperationsHandlers(dependencies);
registerAutomationOperationsHandlers(dependencies);
registerAgentCoordinationHandlers(dependencies);
registerRecoveryHandlers(dependencies);
registerSkillHandlers({
registerHandle: dependencies.registerHandle,
ensureCompanyExists: dependencies.ensureCompanyExists,
publishDomainChanged: dependencies.publishDomainChanged,
skillService: dependencies.skillService,
db: dependencies.db,
logger: dependencies.logger,
});
registerBudgetHandlers({
registerHandle: dependencies.registerHandle,
ensureCompanyExists: dependencies.ensureCompanyExists,
publishDomainChanged: dependencies.publishDomainChanged,
budgetService: dependencies.budgetService,
db: dependencies.db,
logger: dependencies.logger,
});
}