Repository navigation
Validate Unicode Tapbacks against the active helper capability - #870
Draft
chrisbutler wants to merge 5 commits into
Draft
chrisbutler wants to merge 5 commits into
chrisbutler wants to merge 5 commits into
Conversation
…liable Dock-hiding on Tahoe + previous macOS"
…lper dylib load failure
This was referenced Oct 19, 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.
Unicode reactions need a verified helper capability and a single validation/serialization contract across REST, Socket.IO, and the private API. Without that, a server can accept a reaction its running helper cannot send, or serialize an unrelated classic reaction incorrectly when an emoji field is present.
This is a draft follow-up stacked on #839 (head
68b72b9897c574c44bd41bf79556c99695407ec7). Zach Garcia's original advanced-Tapbacks commits remain the foundation and retain their authorship. Merge/rebase #839 first; the incremental contribution to review here is commit6c16e45relative to that head. GitHub's full development comparison currently includes #839's changes and its existing helper resources; this follow-up adds source/tests only and does not replace helper binaries.Validation:
node --test tests/emoji-reactions.test.cjspasses all eight tests. These run production TypeScript with explicit boundary mocks, covering classic/Unicode add/remove, invalid payloads, exact helper dispatch, disconnect/legacy-helper capability behavior, REST and Socket.IO/direct-call rejection, and metadata. Tests do not launch Electron, connect to Messages, or use a live database.The full TS check with the installed compiler and
--ignoreDeprecations 5.0remains blocked by the existingScheduledService.tsNodeJS.Timer/clearInterval type mismatch outside this diff. This is the same baseline limitation documented in the contact PRs.Depends on the companion helper capability PR: BlueBubblesApp/bluebubbles-helper#78 . Older helpers omit the flag and retain classic reactions; Unicode requests fail closed. Draft review items include agreement on the metadata contract, full server/client integration with #839, and cross-macOS runtime testing. The deployed predecessor stack has user-confirmed Unicode delivery, but these isolated review branches have not been installed over it.
ChatKit delayed loading remains an alternative review branch outside this PR's incremental diff: https://github.com/chrisbutler/bluebubbles-server/tree/review/delayed-helper-loader . Implementation and tests were developed with Codex assistance. No personal messages, contacts, room selections, credentials, or deployment version bumps are added.
Bridge companion: mautrix/imessage#241 . Integration requires rebuilding the helper from #78 and coordinating the bundled helper resource/MD5 refresh through the normal release process; the resources currently inherited from #839 do not advertise the new capability.