Merge branch 'refs/heads/main' into cw/agent-details-conflict-1772799979862
# Conflicts: # apps/server/drizzle/meta/_journal.json
This commit is contained in:
@@ -143,7 +143,7 @@ describe('Detail Workflow E2E', () => {
|
||||
harness.setArchitectDetailComplete('detailer', [
|
||||
{ number: 1, name: 'Task 1', content: 'First task', type: 'auto', dependencies: [] },
|
||||
{ number: 2, name: 'Task 2', content: 'Second task', type: 'auto', dependencies: [1] },
|
||||
{ number: 3, name: 'Verify', content: 'Verify all', type: 'checkpoint:human-verify', dependencies: [2] },
|
||||
{ number: 3, name: 'Verify', content: 'Verify all', type: 'auto', dependencies: [2] },
|
||||
]);
|
||||
|
||||
// Resume with all answers
|
||||
@@ -261,7 +261,7 @@ describe('Detail Workflow E2E', () => {
|
||||
tasks: [
|
||||
{ number: 1, name: 'Schema', description: 'Create tables', type: 'auto', dependencies: [] },
|
||||
{ number: 2, name: 'API', description: 'Create endpoints', type: 'auto', dependencies: [1] },
|
||||
{ number: 3, name: 'Verify', description: 'Test flow', type: 'checkpoint:human-verify', dependencies: [2] },
|
||||
{ number: 3, name: 'Verify', description: 'Test flow', type: 'auto', dependencies: [2] },
|
||||
],
|
||||
});
|
||||
|
||||
@@ -271,33 +271,31 @@ describe('Detail Workflow E2E', () => {
|
||||
expect(tasks[0].name).toBe('Schema');
|
||||
expect(tasks[1].name).toBe('API');
|
||||
expect(tasks[2].name).toBe('Verify');
|
||||
expect(tasks[2].type).toBe('checkpoint:human-verify');
|
||||
expect(tasks[2].type).toBe('auto');
|
||||
});
|
||||
|
||||
it('should handle all task types', async () => {
|
||||
it('should create tasks with auto type', async () => {
|
||||
const initiative = await harness.createInitiative('Task Types Test');
|
||||
const phases = await harness.createPhasesFromPlan(initiative.id, [
|
||||
{ name: 'Phase 1' },
|
||||
]);
|
||||
const detailTask = await harness.createDetailTask(phases[0].id, 'Mixed Tasks');
|
||||
|
||||
// Create tasks with all types
|
||||
await harness.caller.createChildTasks({
|
||||
parentTaskId: detailTask.id,
|
||||
tasks: [
|
||||
{ number: 1, name: 'Auto Task', description: 'Automated work', type: 'auto' },
|
||||
{ number: 2, name: 'Human Verify', description: 'Visual check', type: 'checkpoint:human-verify', dependencies: [1] },
|
||||
{ number: 3, name: 'Decision', description: 'Choose approach', type: 'checkpoint:decision', dependencies: [2] },
|
||||
{ number: 4, name: 'Human Action', description: 'Manual step', type: 'checkpoint:human-action', dependencies: [3] },
|
||||
{ number: 2, name: 'Second Task', description: 'More work', type: 'auto', dependencies: [1] },
|
||||
{ number: 3, name: 'Third Task', description: 'Even more', type: 'auto', dependencies: [2] },
|
||||
{ number: 4, name: 'Final Task', description: 'Last step', type: 'auto', dependencies: [3] },
|
||||
],
|
||||
});
|
||||
|
||||
const tasks = await harness.getChildTasks(detailTask.id);
|
||||
expect(tasks).toHaveLength(4);
|
||||
expect(tasks[0].type).toBe('auto');
|
||||
expect(tasks[1].type).toBe('checkpoint:human-verify');
|
||||
expect(tasks[2].type).toBe('checkpoint:decision');
|
||||
expect(tasks[3].type).toBe('checkpoint:human-action');
|
||||
for (const task of tasks) {
|
||||
expect(task.type).toBe('auto');
|
||||
}
|
||||
});
|
||||
|
||||
it('should create task dependencies', async () => {
|
||||
@@ -346,7 +344,7 @@ describe('Detail Workflow E2E', () => {
|
||||
{ number: 1, name: 'Create user schema', content: 'Define User model', type: 'auto', dependencies: [] },
|
||||
{ number: 2, name: 'Implement JWT', content: 'Token generation', type: 'auto', dependencies: [1] },
|
||||
{ number: 3, name: 'Protected routes', content: 'Middleware', type: 'auto', dependencies: [2] },
|
||||
{ number: 4, name: 'Verify auth', content: 'Test login flow', type: 'checkpoint:human-verify', dependencies: [3] },
|
||||
{ number: 4, name: 'Verify auth', content: 'Test login flow', type: 'auto', dependencies: [3] },
|
||||
]);
|
||||
|
||||
await harness.caller.spawnArchitectDetail({
|
||||
@@ -367,7 +365,7 @@ describe('Detail Workflow E2E', () => {
|
||||
{ number: 1, name: 'Create user schema', description: 'Define User model', type: 'auto', dependencies: [] },
|
||||
{ number: 2, name: 'Implement JWT', description: 'Token generation', type: 'auto', dependencies: [1] },
|
||||
{ number: 3, name: 'Protected routes', description: 'Middleware', type: 'auto', dependencies: [2] },
|
||||
{ number: 4, name: 'Verify auth', description: 'Test login flow', type: 'checkpoint:human-verify', dependencies: [3] },
|
||||
{ number: 4, name: 'Verify auth', description: 'Test login flow', type: 'auto', dependencies: [3] },
|
||||
],
|
||||
});
|
||||
|
||||
@@ -375,7 +373,7 @@ describe('Detail Workflow E2E', () => {
|
||||
const tasks = await harness.getChildTasks(detailTask.id);
|
||||
expect(tasks).toHaveLength(4);
|
||||
expect(tasks[0].name).toBe('Create user schema');
|
||||
expect(tasks[3].type).toBe('checkpoint:human-verify');
|
||||
expect(tasks[3].type).toBe('auto');
|
||||
|
||||
// Agent should be idle
|
||||
const finalAgent = await harness.caller.getAgent({ name: 'detailer' });
|
||||
|
||||
Reference in New Issue
Block a user