You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,9 @@
2
2
3
3
## 0.12.2 - Unreleased
4
4
5
+
### Native Polls
6
+
- fix: restore native poll vote delivery on macOS 26.4 by persisting the Polls balloon and payload across the responding message objects (#150, thanks @omarshahine).
Copy file name to clipboardExpand all lines: Sources/IMsgHelper/IMsgInjected.m
+14-17Lines changed: 14 additions & 17 deletions
Original file line number
Diff line number
Diff line change
@@ -2815,15 +2815,9 @@ static id buildPollVoteIMMessage(NSAttributedString *body,
2815
2815
Class messageClass = NSClassFromString(@"IMMessage");
2816
2816
if (!messageClass) returnnil;
2817
2817
2818
-
// No macOS 26 IMMessage initializer carries balloon + payload AND
2819
-
// association together (verified by selector probe). Reactions prove the
2820
-
// associated-message initializer persists association atomically, and
2821
-
// balloon/payload set on the backing IMMessageItem persist (verified: an
2822
-
// earlier item-first vote landed with the balloon intact, only the
2823
-
// association — set via the wrap — was lost). So: init with association
2824
-
// atomically, then stamp balloonBundleID + payloadData onto the message's
2825
-
// own backing item (a real item from a direct init, not the transient one
2826
-
// the messageFromIMMessageItem: wrap returns).
2818
+
// No macOS 26 initializer carries the payload and association together.
2819
+
// Build the association atomically, then stamp payload metadata across the
2820
+
// message and backing item; macOS 26.4 splits the setters between them.
2827
2821
SEL sel = @selector(initWithSender:time:text:messageSubject:fileTransferGUIDs:flags:error:guid:subject:associatedMessageGUID:associatedMessageType:associatedMessageRange:messageSummaryInfo:);
2828
2822
if (![messageClass instancesRespondToSelector:sel]) returnnil;
2829
2823
@@ -2857,8 +2851,6 @@ static id buildPollVoteIMMessage(NSAttributedString *body,
2857
2851
id result = invokeReturningObject(inv);
2858
2852
if (!result) returnnil;
2859
2853
2860
-
// Both values must land on one object. A partial stamp can emit an
2861
-
// associated message that Messages cannot decode as a poll vote.
0 commit comments