diff --git a/packages/core/src/db/adapters/sqlite.ts b/packages/core/src/db/adapters/sqlite.ts index 485706d0..09e7b17b 100644 --- a/packages/core/src/db/adapters/sqlite.ts +++ b/packages/core/src/db/adapters/sqlite.ts @@ -215,6 +215,20 @@ export class SqliteAdapter implements IDatabase { } catch (e: unknown) { getLog().warn({ err: e as Error }, 'db.sqlite_migration_session_columns_failed'); } + + // Codebases columns + try { + const codebaseCols = this.db.prepare("PRAGMA table_info('remote_agent_codebases')").all() as { + name: string; + }[]; + const codebaseColNames = new Set(codebaseCols.map(c => c.name)); + + if (!codebaseColNames.has('default_branch')) { + this.db.run('ALTER TABLE remote_agent_codebases ADD COLUMN default_branch TEXT'); + } + } catch (e: unknown) { + getLog().warn({ err: e as Error }, 'db.sqlite_migration_codebases_columns_failed'); + } } /** diff --git a/packages/core/src/orchestrator/orchestrator.test.ts b/packages/core/src/orchestrator/orchestrator.test.ts index 9a923817..d01f5716 100644 --- a/packages/core/src/orchestrator/orchestrator.test.ts +++ b/packages/core/src/orchestrator/orchestrator.test.ts @@ -5,6 +5,7 @@ import { makeTestWorkflow, makeTestWorkflowList } from '@archon/workflows/test-u import type { Conversation, Codebase, Session } from '../types'; import { ConversationNotFoundError } from '../types'; import type { WorkflowDefinition } from '@archon/workflows/schemas/workflow'; +import type { BranchName } from '@archon/git'; // ─── Mock setup (BEFORE importing module under test) ───────────────────────── @@ -127,7 +128,15 @@ mock.module('../utils/worktree-sync', () => ({ })); // Git workspace sync mock -const mockSyncWorkspace = mock(() => Promise.resolve({ fetched: true, reset: false })); +const mockSyncWorkspace = mock(() => + Promise.resolve({ + branch: 'main' as BranchName, + synced: true, + previousHead: 'abc12345', + newHead: 'abc12345', + updated: false, + }) +); const mockToRepoPath = mock((p: string) => p); const mockToBranchName = mock((b: string) => b);