Feat/cs/business messages - #771
Merged
Merged
Conversation
ReagentX
commented
Jun 8, 2026
Owner
- Support Apple Business Message payloads
- Resolve Support Business Form messages #769
- Resolve Support Business Quick reply messages #770
There was a problem hiding this comment.
Pull request overview
Adds end-to-end support for Apple Business Chat (“Messages for Business”) interactive balloon payloads by parsing the keyed-archiver JSON shapes in imessage-database and rendering them in both TXT and HTML exporters, covering quick replies, interactive forms, and list pickers (resolves #769, #770).
Changes:
- Introduces
imessage-database::message_types::business_chatwith parsers/classification for quick replies, forms (request/response), and list pickers. - Routes
com.apple.icloud.apps.messages.business.extensionballoons through a newBalloonFormatter::format_businesspath with generic-app fallback for legacy payloads. - Adds TXT/HTML templates, CSS styling, and exporter tests for business message rendering.
Reviewed changes
Copilot reviewed 26 out of 32 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| imessage-exporter/src/exporters/txt/view_model.rs | Adds TXT view-models for business quick replies, forms, and list pickers. |
| imessage-exporter/src/exporters/txt/templates/balloons/business_quick_reply.txt | TXT template for quick reply rendering with selection marker. |
| imessage-exporter/src/exporters/txt/templates/balloons/business_list_picker.txt | TXT template for list picker items with optional subtitle + selection marker. |
| imessage-exporter/src/exporters/txt/templates/balloons/business_form_response.txt | TXT template for form response answers. |
| imessage-exporter/src/exporters/txt/templates/balloons/business_form_request.txt | TXT template for form request title/subtitle. |
| imessage-exporter/src/exporters/txt/mod.rs | Adds TXT formatting tests for business message variants. |
| imessage-exporter/src/exporters/txt/balloons.rs | Implements format_business for TXT exporter using new templates. |
| imessage-exporter/src/exporters/shared/balloon.rs | Dispatches Business balloon bundle ID to format_business, with legacy fallback. |
| imessage-exporter/src/exporters/html/view_model.rs | Adds HTML view-models for business quick replies, forms, and list pickers. |
| imessage-exporter/src/exporters/html/templates/balloons/business_quick_reply.html | HTML template for quick replies. |
| imessage-exporter/src/exporters/html/templates/balloons/business_list_picker.html | HTML template for list picker items/subtitles. |
| imessage-exporter/src/exporters/html/templates/balloons/business_form_response.html | HTML template for form response Q/A display. |
| imessage-exporter/src/exporters/html/templates/balloons/business_form_request.html | HTML template for form request title/subtitle. |
| imessage-exporter/src/exporters/html/resources/style.css | Adds CSS styling for business quick replies, forms, and list pickers. |
| imessage-exporter/src/exporters/html/mod.rs | Adds HTML formatting tests for business message variants. |
| imessage-exporter/src/exporters/html/balloons.rs | Implements format_business for HTML exporter using new templates. |
| imessage-exporter/src/exporters/formatter.rs | Extends BalloonFormatter trait with format_business. |
| imessage-database/src/tables/messages/message.rs | Maps business extension bundle ID to new CustomBalloon::Business. |
| imessage-database/src/message_types/variants.rs | Adds CustomBalloon::Business variant. |
| imessage-database/src/message_types/mod.rs | Exposes new business_chat module. |
| imessage-database/src/message_types/business_chat/mod.rs | Defines and re-exports business chat message types. |
| imessage-database/src/message_types/business_chat/business.rs | Adds classifier for detecting which business payload shape is present. |
| imessage-database/src/message_types/business_chat/quick_reply.rs | Parses quick reply business messages from archived JSON payload. |
| imessage-database/src/message_types/business_chat/list_picker.rs | Parses list picker business messages from archived JSON payload. |
| imessage-database/src/message_types/business_chat/form.rs | Parses form request/response business messages from archived JSON payload. |
| docs/features.md | Documents Business Chat message support (quick replies/forms/list pickers). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.