-
Notifications
You must be signed in to change notification settings - Fork 158
Coalesce Apple URL-preview split-sends into a single notification #141
Copy link
Copy link
Closed
Labels
P2Normal priority bug or improvement with limited blast radius.Normal priority bug or improvement with limited blast radius.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:message-lossThis issue is about lost, duplicated, misrouted, or suppressed channel messages.This issue is about lost, duplicated, misrouted, or suppressed channel messages.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.
Metadata
Metadata
Assignees
Labels
P2Normal priority bug or improvement with limited blast radius.Normal priority bug or improvement with limited blast radius.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:message-lossThis issue is about lost, duplicated, misrouted, or suppressed channel messages.This issue is about lost, duplicated, misrouted, or suppressed channel messages.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Summary
Apple delivers a URL-preview "split-send" as two
chat.dbrows: the user's text row (e.g.Dump https://example.com) and a separateURLBalloonProviderpreview row, arriving ~0.8–2.0s apart. Consumers that want this as one logical message (e.g. OpenClaw) currently have to debounce and merge client-side, which is imprecise (you can't structurally tell a split-send from two separate sends without the balloon marker) and adds latency to every DM.Now that imsg exposes
balloon_bundle_id(#137), imsg has the structural signal to coalesce these rows at the source and emit a single logical message — removing the need for any client-side debounce/merge.Proposal
When imsg surfaces messages (watch notifications and history/search reads), coalesce an Apple URL-preview balloon row into its originating text row so consumers receive one message instead of two:
com.apple.messages.URLBalloonProviderballoon row.watch,messages, andsearchMessagesso all read paths agree.Why imsg, not the client
balloon_bundle_idplus GUID/threading context — it's the natural owner of "un-splitting" Apple's split-send.Context / related
balloon_bundle_id(the metadata this builds on)Acceptance criteria
Dump https://example.comsplit-send is emitted as one message across watch / history / search.