diff --git a/src/db/schema.ts b/src/db/schema.ts index 17fdfcd..65dfd75 100644 --- a/src/db/schema.ts +++ b/src/db/schema.ts @@ -47,7 +47,7 @@ export const phases = sqliteTable('phases', { number: integer('number').notNull(), name: text('name').notNull(), description: text('description'), - status: text('status', { enum: ['pending', 'in_progress', 'completed'] }) + status: text('status', { enum: ['pending', 'in_progress', 'completed', 'blocked'] }) .notNull() .default('pending'), createdAt: integer('created_at', { mode: 'timestamp' }).notNull(), diff --git a/src/trpc/context.ts b/src/trpc/context.ts index c6f7f02..c0645b3 100644 --- a/src/trpc/context.ts +++ b/src/trpc/context.ts @@ -12,7 +12,7 @@ import type { MessageRepository } from '../db/repositories/message-repository.js import type { InitiativeRepository } from '../db/repositories/initiative-repository.js'; import type { PhaseRepository } from '../db/repositories/phase-repository.js'; import type { PlanRepository } from '../db/repositories/plan-repository.js'; -import type { DispatchManager } from '../dispatch/types.js'; +import type { DispatchManager, PhaseDispatchManager } from '../dispatch/types.js'; import type { CoordinationManager } from '../coordination/types.js'; // Re-export for convenience @@ -44,6 +44,8 @@ export interface TRPCContext { phaseRepository?: PhaseRepository; /** Plan repository for plan CRUD operations (optional until server wiring complete) */ planRepository?: PlanRepository; + /** Phase dispatch manager for phase queue operations (optional until server wiring complete) */ + phaseDispatchManager?: PhaseDispatchManager; } /** @@ -61,6 +63,7 @@ export interface CreateContextOptions { initiativeRepository?: InitiativeRepository; phaseRepository?: PhaseRepository; planRepository?: PlanRepository; + phaseDispatchManager?: PhaseDispatchManager; } /** @@ -82,5 +85,6 @@ export function createContext(options: CreateContextOptions): TRPCContext { initiativeRepository: options.initiativeRepository, phaseRepository: options.phaseRepository, planRepository: options.planRepository, + phaseDispatchManager: options.phaseDispatchManager, }; } diff --git a/src/trpc/router.ts b/src/trpc/router.ts index 10fc278..127c097 100644 --- a/src/trpc/router.ts +++ b/src/trpc/router.ts @@ -818,7 +818,7 @@ export const appRouter = router({ id: z.string().min(1), name: z.string().min(1).optional(), description: z.string().optional(), - status: z.enum(['pending', 'in_progress', 'completed']).optional(), + status: z.enum(['pending', 'in_progress', 'completed', 'blocked']).optional(), })) .mutation(async ({ ctx, input }) => { const repo = requirePhaseRepository(ctx);