diff --git a/src/services/command.ts b/src/services/command.ts index 360cb66..1ffafef 100644 --- a/src/services/command.ts +++ b/src/services/command.ts @@ -167,24 +167,16 @@ export class CommandService { const responses: CommandResponse[] = []; - // 1) Ack al creador, salvo que él sea el único asignado - const creatorIsOnlyAssignee = assignmentUserIds.length === 1 && assignmentUserIds[0] === createdBy; - if (!creatorIsOnlyAssignee) { - responses.push({ - recipient: createdBy, - message: - `✅ Tarea ${taskId} creada:\n` + - `• ${description || '(sin descripción)'}\n` + - (dueDate ? `• Vence: ${dueDate}\n` : '') + - (assignmentUserIds.length - ? `• Asignados: ${assignmentUserIds.map((uid, idx) => `${assignedDisplayNames[idx] || uid} (@${uid})`).join(', ')}` - : ''), - mentions: mentionsForSending.length > 0 ? mentionsForSending : undefined - }); - } - - // 2) DM a cada asignado + // 1) Ack al creador siempre, en una sola línea con id y descripción + responses.push({ + recipient: createdBy, + message: `✅ Tarea ${taskId} creada: "${description || '(sin descripción)'}"`, + mentions: mentionsForSending.length > 0 ? mentionsForSending : undefined + }); + + // 2) DM a cada asignado (excluyendo al creador para evitar duplicados) for (const uid of assignmentUserIds) { + if (uid === createdBy) continue; responses.push({ recipient: uid, message: diff --git a/tests/unit/db.test.ts b/tests/unit/db.test.ts index 0f3180f..759f807 100644 --- a/tests/unit/db.test.ts +++ b/tests/unit/db.test.ts @@ -88,7 +88,7 @@ describe('Database', () => { .query("PRAGMA table_info(response_queue)") .all() .map((c: any) => c.name); - expect(columns).toEqual(['id', 'recipient', 'message', 'status', 'attempts', 'last_error', 'created_at', 'updated_at']); + expect(columns).toEqual(['id', 'recipient', 'message', 'status', 'attempts', 'last_error', 'metadata', 'created_at', 'updated_at']); }); });