Skip to content

DL-480

Comms attachment bytes go through the existing ObjectStore seam under the content-addressed key blobs/<sha256>, indexed by a new tenant-RLS comms_attachments table (server-minted id, uploader, nullable bound message_id, sha256, size, content type, filename, partial index on unbound rows), because agent_session_blobs is keyed by session and a UI or CLI upload has none; a new directory-backed DirObjectStore (--object-dir, defaulted by compass-stack to <StateDir>/objects when S3 is absent and by devenv to its state directory) gives local stacks the seam; with no object store at all, upload is FailedPrecondition (the DL-426 rule)

Status: Active (proposed, pending Matt, 2026-10-11)

Record: ../../agent/compass-comms-file-sharing/design.md#d1-storage-reuses-the-objectstore-seam