- CommentAttachment link table (comment <-> file) + migration
- fileIds in create/update comment; update replaces the whole set,
synced in one transaction with the comment
- CommentDto.attachments; empty for deleted comments
- Soft delete drops attachments so GC can collect the files
- Max 10 files per comment, ordered by upload time (uuid v7)
- Registers comments as a file owner
- Rename CommentAuthorExpanderService -> CommentExpanderService
(expands authors and files)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>