Conversation
dokterdok
force-pushed
the
feat/group-chat-attachment-surfaces-20260828
branch
from
August 28, 2026 00:36
a7eddf1 to
cd808f8
Compare
This was referenced Aug 28, 2026
Author
|
Closing this cumulative prototype now that #97681 captures the user contract, safety boundaries, and phased landing plan against the rebuilt Bot Mode tree. Its useful layer can be re-cut as a narrow current-main contribution after the foundation direction is agreed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The user problem
Sharing a file with a Bot Group Chat should feel like sharing one in any normal
chat. It should not matter whether the chat is hosted by a gateway, still run by
Desktop, or reached from Signal, Telegram, WhatsApp, Slack, or another Hermes
messaging adapter.
Today those paths do not share one complete lifecycle. This draft connects the
existing Desktop attachment UX to the durable gateway layer from the parent PR.
Important
This draft is stacked on the attachment runtime PR. Review
57962642d7..a7eddf11a3.What users can do
From Desktop
Use the existing picker, paste, or drag and drop in a Group Chat. Images, PDFs,
Office files, archives, and other files are uploaded before the durable room
command is accepted.
From a messaging app
Attach a file to the normal Group Chat command:
The attachment may be sent with text or by itself. Hermes localizes it through
the adapter's authenticated media cache, stores it once, and reports the same
Group Chat status and recent activity as a text message.
In history
History keeps the file name, type, size, opaque ID, and source gateway, never
the raw bytes or a machine path. Images can load a preview on demand; files can
be downloaded on demand. The local cache is bounded.
What users can rely on
enqueue succeed.
removing only the files that were actually sent.
adapter's temporary file has disappeared.
older file, and an unavailable original Bot keeps the command safely pending.
Bot turn.
URLs, bytes, or provider details.
Compatibility
This reuses the attachment controls and per-session image/PDF/file RPCs merged
in #89486 and #89540. It preserves opaque IDs so the open chip interaction in
#89758 can compose with gateway-backed history; if #89758 lands first, this
draft should rebase onto its final chip implementation rather than duplicate it.
Boundaries
flows.
which is the existing
MessageEvent.media_urlscontract. Remote URLs andsymlinks fail closed.
Validation at
a7eddf11a3git diff --checkCoverage includes image-only and attachment-only sends, PDF and generic files,
adapter redelivery, upload interruption, lease loss, priority Stop, send-time
recipient freeze, restart/replay, lazy history reads, tampering, MIME mismatch,
path traversal, symlinks, quotas, abandoned-upload cleanup, and composer edits
during upload.
Exact-head live UAT and screenshots will be added before this stack leaves
draft.
Related work
Type of change