From 279af3b0346384504d6e44d69ccc2c6473219234 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:29:07 -0400 Subject: [PATCH] refactor(database): expose domain modules as public readonly fields Changes the AppDatabaseBase module slots (tasks, agents, runs, ...) from protected to public readonly so new call sites can reach them directly as db.tasks.x / db.agents.x. The 156 pass-through methods on AppDatabase remain untouched, so all existing callers keep working; this is the first step of a two-part migration to eventually drop the pass-through layer. --- src/main/database-base.ts | 45 +++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/main/database-base.ts b/src/main/database-base.ts index 9fe20271..5cfcab4c 100644 --- a/src/main/database-base.ts +++ b/src/main/database-base.ts @@ -40,27 +40,30 @@ export class AppDatabaseBase { readonly vault: SecretVault; protected db: DatabaseSync; - protected readonly threads: ReturnType; - protected readonly company: ReturnType; - protected readonly agents: ReturnType; - protected readonly tasks: ReturnType; - protected readonly messages: ReturnType; - protected readonly runs: ReturnType; - protected readonly snap: ReturnType; - protected readonly settings: ReturnType; - protected readonly connectorsCrud: ReturnType; - protected readonly workspacesMod: ReturnType; - protected readonly approvalsMod: ReturnType; - protected readonly social: ReturnType; - protected readonly activityMod: ReturnType; - protected readonly skills: ReturnType; - protected readonly budget: ReturnType; - protected readonly entityCrud: ReturnType; - protected readonly documentsMod: ReturnType; - protected readonly automationMod: ReturnType; - protected readonly knowledgeMod: ReturnType; - protected readonly wakeup: ReturnType; - protected readonly backupMod: ReturnType; + // Domain modules. New code should prefer `db.tasks.saveTask(...)` over the + // legacy pass-through methods on AppDatabase. Pass-through remains for + // back-compat until all call sites migrate. + public readonly threads: ReturnType; + public readonly company: ReturnType; + public readonly agents: ReturnType; + public readonly tasks: ReturnType; + public readonly messages: ReturnType; + public readonly runs: ReturnType; + public readonly snap: ReturnType; + public readonly settings: ReturnType; + public readonly connectorsCrud: ReturnType; + public readonly workspacesMod: ReturnType; + public readonly approvalsMod: ReturnType; + public readonly social: ReturnType; + public readonly activityMod: ReturnType; + public readonly skills: ReturnType; + public readonly budget: ReturnType; + public readonly entityCrud: ReturnType; + public readonly documentsMod: ReturnType; + public readonly automationMod: ReturnType; + public readonly knowledgeMod: ReturnType; + public readonly wakeup: ReturnType; + public readonly backupMod: ReturnType; constructor(rootDir: string) { this.profileDir = rootDir;