feat: restore attachment fetchData after queue/debounce serialization#338
Merged
feat: restore attachment fetchData after queue/debounce serialization#338
Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
b836e28 to
9250d36
Compare
9250d36 to
a219a36
Compare
a219a36 to
86b02fc
Compare
bensabic
reviewed
Apr 9, 2026
- Slack createAttachment now calls fetchSlackFile instead of duplicating fetch logic inline - Remove unnecessary IIFE wrapper in fetchSlackFile - Fix redundant optional chain in rehydrateMessage by extracting bound method
- Full JSON.stringify/parse roundtrip test for fetchMetadata in message.test.ts - Queue drain test: rehydrateAttachment called on deserialized attachments - Queue drain test: skip rehydration when fetchData already present - Queue drain test: attachments unchanged when adapter has no rehydrateAttachment
a39d7b8 to
0802094
Compare
bensabic
approved these changes
Apr 14, 2026
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.
summary
attachment
fetchDataclosures are lost when messages pass through queue/debounce concurrency strategies becauseJSON.stringifystrips functions during enqueue. after dequeue and rehydration, handlers getfetchData: undefinedand can't download filesadds
fetchMetadatafield toAttachmentfor storing platform-specific IDs that survive serialization (e.g. WhatsAppmediaId, TelegramfileId, Google ChatresourceName, SlackteamId), andrehydrateAttachmentoptional method toAdapterfor rebuildingfetchDataclosures from those IDs after deserializationslack multi-workspace: stores
teamIdinfetchMetadataand resolves the token viagetInstallation(teamId)at download time - no tokens in serialized data, handles token rotationimplemented in all five adapters that use
fetchData: slack, whatsapp, telegram, gchat, teamscloses #323
closes #299