feat(attachments): data layer for task file attachments

TaskAttachmentEntity (+config, cascade FK), TaskAttachmentRepository, and an
AttachmentStore that writes files under ~/.todo-app/attachments/<taskId>/ with
a path-traversal guard and a 5 MB cap. TaskPromptComposer gains an optional
read-only 'Reference files' section. Migration AddTaskAttachments.
This commit is contained in:
Mika Kuns
2026-06-22 17:10:51 +02:00
parent 5231ad6b86
commit 3f9f047955
12 changed files with 1249 additions and 1 deletions

View File

@@ -0,0 +1,13 @@
namespace ClaudeDo.Data.Models;
public sealed class TaskAttachmentEntity
{
public required string Id { get; init; }
public required string TaskId { get; init; }
public required string FileName { get; set; }
public long ByteSize { get; set; }
public required DateTime CreatedAt { get; init; }
// Navigation property
public TaskEntity Task { get; set; } = null!;
}