feat(06-01): add coordination domain events for merge lifecycle

- MergeQueuedEvent: completed task queued for merge
- MergeStartedEvent: merge attempt begins
- MergeCompletedEvent: merge succeeds
- MergeConflictedEvent: merge has conflicts (triggers bounce-back)
This commit is contained in:
Lukas May
2026-01-30 21:03:02 +01:00
parent 22572f410f
commit 94130a6661
2 changed files with 54 additions and 1 deletions

View File

@@ -29,6 +29,10 @@ export type {
TaskDispatchedEvent, TaskDispatchedEvent,
TaskCompletedEvent, TaskCompletedEvent,
TaskBlockedEvent, TaskBlockedEvent,
MergeQueuedEvent,
MergeStartedEvent,
MergeCompletedEvent,
MergeConflictedEvent,
DomainEventMap, DomainEventMap,
DomainEventType, DomainEventType,
} from './types.js'; } from './types.js';

View File

@@ -228,6 +228,51 @@ export interface TaskBlockedEvent extends DomainEvent {
}; };
} }
/**
* Merge Coordination Events
*/
export interface MergeQueuedEvent extends DomainEvent {
type: 'merge:queued';
payload: {
taskId: string;
agentId: string;
worktreeId: string;
priority: 'low' | 'medium' | 'high';
};
}
export interface MergeStartedEvent extends DomainEvent {
type: 'merge:started';
payload: {
taskId: string;
agentId: string;
worktreeId: string;
targetBranch: string;
};
}
export interface MergeCompletedEvent extends DomainEvent {
type: 'merge:completed';
payload: {
taskId: string;
agentId: string;
worktreeId: string;
targetBranch: string;
};
}
export interface MergeConflictedEvent extends DomainEvent {
type: 'merge:conflicted';
payload: {
taskId: string;
agentId: string;
worktreeId: string;
targetBranch: string;
conflictingFiles: string[];
};
}
/** /**
* Union of all domain events - enables type-safe event handling * Union of all domain events - enables type-safe event handling
*/ */
@@ -250,7 +295,11 @@ export type DomainEventMap =
| TaskQueuedEvent | TaskQueuedEvent
| TaskDispatchedEvent | TaskDispatchedEvent
| TaskCompletedEvent | TaskCompletedEvent
| TaskBlockedEvent; | TaskBlockedEvent
| MergeQueuedEvent
| MergeStartedEvent
| MergeCompletedEvent
| MergeConflictedEvent;
/** /**
* Event type literal union for type checking * Event type literal union for type checking