d
ab5a82372c
feat: content-addressable dedup storage + limits + block shredding
Attachment deduplication (SHA-256 content-addressable storage):
- Identical files stored once globally (m8sh/sha256/<hash>)
- Reference-counted deletion: blob removed only when last ref deleted
- StoreAttachmentDedup, DeleteAttachmentDedup, StoreAttachmentFromReader
Comprehensive safety limits:
- USER_QUOTA: 5 GB default (admins unlimited, 0 = unlimited)
- MAX_ATTACHMENT_SIZE: 100 MB per file
- MAX_ATTACHMENTS_PER_MESSAGE: 50 files
- MAX_MESSAGE_SIZE: 1 MB body
- MAX_CONVERSATIONS: 1000 per user
- MAX_MESSAGES_PER_CONVERSATION: 10000
Block-domain shredding:
- ShredAttachmentsForDomain deletes all blobs + metadata for domain
- Dedup-aware: only removes blobs with no remaining references
Assisted-By: Cline:anthropic-claude-sonnet-4-20250514
2026-07-21 23:40:12 +03:00
..
2026-06-08 17:16:22 +00:00
2026-07-19 20:40:20 +03:00
2026-07-19 20:40:20 +03:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2023-04-12 18:16:45 +08:00
2023-04-12 18:16:45 +08:00
2025-03-31 01:53:48 -04:00
2026-02-22 08:01:43 +01:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2025-06-27 21:48:03 +08:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2026-02-20 22:49:02 +00:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2026-02-22 20:26:46 +00:00
2025-08-12 05:38:17 +00:00
2023-07-04 18:36:08 +00:00
2026-05-26 05:06:54 +00:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2025-03-31 01:53:48 -04:00
2024-06-15 11:43:57 +08:00
2023-02-20 00:12:01 +08:00
2024-12-21 04:56:08 +00:00
2026-05-26 15:49:31 -07:00
2025-10-23 08:35:48 +00:00
2026-05-26 15:49:31 -07:00
2025-03-31 01:53:48 -04:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2026-07-21 23:40:12 +03:00
2026-05-26 15:49:31 -07:00
2026-07-18 19:36:17 +00:00
2025-04-05 11:56:48 +08:00
2026-06-12 08:36:05 +08:00
2023-02-20 00:12:01 +08:00
2023-02-20 00:12:01 +08:00
2023-02-20 00:12:01 +08:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2025-03-31 01:53:48 -04:00
2026-04-06 13:41:17 -07:00
2023-06-21 13:50:26 +08:00
2026-05-26 15:49:31 -07:00
2026-02-27 16:39:26 +00:00
2023-02-20 00:12:01 +08:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2025-03-31 01:53:48 -04:00
2023-06-14 11:42:38 +08:00
2026-05-28 19:29:32 +02:00
2026-07-19 20:40:20 +03:00
2026-07-19 20:40:20 +03:00
2026-07-19 20:40:20 +03:00
2026-05-26 15:49:31 -07:00
2026-07-19 20:40:20 +03:00
2026-07-19 20:40:20 +03:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2026-06-08 18:18:58 +00:00
2025-03-31 01:53:48 -04:00
2026-01-22 01:17:06 +00:00
2023-02-20 16:18:26 -06:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2026-05-26 15:49:31 -07:00
2026-07-19 20:40:20 +03:00