Repository navigation
docs(agent): design comms file sharing (RIG-2669) - #2153
rigel-mintaka wants to merge 5 commits into
Conversation
Attachments on the comms surface: bytes through the Server ObjectStore under blobs/<sha256>, a comms_attachments index table, upload-then-bind onto a new attachment block, read access equal to the message read check, a size cap, agent attach/read tools, and UI/CLI download. Rows DL-480..485, proposed pending Matt. Co-authored-by: Matt Wilkinson <matt@rigel.build>
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
|
Compass engineering docs preview: https://compass-comms-rig-2669-file.compass-eng-docs.pages.dev Deployed from Changed pages: |
Fill-insert-bind order for idempotent replays, unbound-upload bound, read via the topic-participant probe, directory ObjectStore as T0, socket read cap, content-type and filename hardening, Go-side native save, fenced agent marker, ordering against the cost gate and stale-post check. Co-authored-by: Matt Wilkinson <matt@rigel.build>
Embedded-mode bridge target for native save, a launcher table with the devenv object dir, a size-scaled body deadline for uploads, fill and bind inside AppendMessage, and the caption block layout. Co-authored-by: Matt Wilkinson <matt@rigel.build>
…IG-2669) Add stack.Config.NoObjectStore and a WithoutObjectStore fixture option so the existing no-store resume test and the T7 no-store leg still run; give RelaySessionBlob the same size-scaled deadline; share the runner read cap. Co-authored-by: Matt Wilkinson <matt@rigel.build>
…ame (RIG-2669) Co-authored-by: Matt Wilkinson <matt@rigel.build>
|
Review at head |
|
Moved to RigelBuild/docs#25 under Matt's directive that design records live in the docs repo, not code repos. Review continues there. |
Moved from RigelBuild/compass#2153 under the design-records-to-docs-repo directive. Co-authored-by: Matt Wilkinson <matt@rigel.build>
Summary
Design record for RIG-2669: file sharing on the comms surface. Agents and the operator can attach a file to a channel, topic or DM message, and anyone who can read that message can read the file. Agents get attach and read tools; the operator downloads from the UI and the CLI.
Record:
docs/designs/agent/compass-comms-file-sharing/design.md. Ledger rows: DL-480 to DL-485, allActive (proposed, pending Matt, 2026-10-11).Decisions (proposed)
ObjectStoreunderblobs/<sha256>, as session blobs do (DL-426). A new tenant-RLScomms_attachmentstable indexes them.UploadAttachment/GetAttachmentRPCs on CommsService; newMessageBlockarm 4. Upload first, then a post binds the attachment to one message. Agent call arms 16 and 17.IsTopicChannelMember, the probe that already gatesMessagePosted. The uploader can also read it until it is posted. Every refusal is NotFound.comms_attach_fileandcomms_read_file.application/octet-stream);compass message attach/get.ObjectStore(--object-dir, default<StateDir>/objects) so local stacks have storage (OQ-1).Open questions for Matt
OQ-1 (load-bearing: a directory-backed object store for local stacks, recommended) is with Matt in RIG-5148. OQ-2 to OQ-4 are deferrals: retention and GC as one follow-up, no UI upload, no files over 15 MiB. The Plan builds each recommendation and lists the delta for the other options.
Review
An adversarial design critic and three review-correctness rounds; every finding is folded in. Review at head
4a65014d: 0 high, 0 medium, 0 low, 0 nit (see the PR comment).Spec-impact: none
Ledger-impact: DL-480..485 added (proposed)
Refs RIG-2669
Co-authored-by: Matt Wilkinson matt@rigel.build