diff --git a/apps/todo/apps/web/src/lib/components/kanban/KanbanTaskCard.svelte b/apps/todo/apps/web/src/lib/components/kanban/KanbanTaskCard.svelte
index b7dfcae4d..6225efec2 100644
--- a/apps/todo/apps/web/src/lib/components/kanban/KanbanTaskCard.svelte
+++ b/apps/todo/apps/web/src/lib/components/kanban/KanbanTaskCard.svelte
@@ -150,6 +150,20 @@
onDelete?.();
showModal = false;
}
+
+ function toggleSubtask(subtaskId: string) {
+ if (!onSave) return;
+ const updated = (task.subtasks ?? []).map((s) =>
+ s.id === subtaskId
+ ? {
+ ...s,
+ isCompleted: !s.isCompleted,
+ completedAt: !s.isCompleted ? new Date().toISOString() : null,
+ }
+ : s
+ );
+ onSave({ subtasks: updated });
+ }