Conversation
Get help now covers both chatting with the AI Assistant and replying to a ticket, so the old email-only entry isn't needed. This deletes the screens it reached — the conversation list, the conversation and reply views, the new ticket form, the screenshot picker and the attachment list — along with their models, the SupportConversationDataProvider and SupportFormDataProvider protocols, the ticket tracking actions, and the wordpress-rs mappings behind them. The application log picker and the video player move out of that directory, since the new flow uses both. The AI Assistant chat loses its "Open a Support Ticket" button, which pushed the deleted form.
The reply form could only reach the photo library, so a crash report, an exported log or a PDF had no way in. Photos and videos still come from the photo library; a second button opens the file browser for everything else, and both end up in the same list and the same size budget. A browsed file is read through its security scope and through a file coordinator, so a document that lives in iCloud Drive and isn't on the device yet gets fetched instead of failing. The copy runs off the main actor: one the size of a video would otherwise freeze the form. The browser is opened for `data` rather than `item`, which leaves out the one thing there's no sending — a folder. Whether to re-encode a file is now read off the file itself instead of being passed in by the caller, so a PNG browsed from Files is scaled down like one from the photo library. That also leaves animated images alone, which were being flattened to their first frame — usually the very thing the user attached them to show. Documents QuickLook can't draw now show their name rather than an anonymous icon, and backing out of the file browser no longer reports a failure.
Collaborator
Generated by 🚫 Danger |
Contributor
Author
|
Superseded by #26109 — the branch was renamed from |
Contributor
|
| App Name | Jetpack | |
| Configuration | Release-Alpha | |
| Build Number | 34805 | |
| Version | PR #26108 | |
| Bundle ID | com.jetpack.alpha | |
| Commit | c67d482 | |
| Installation URL | 4ngkcuvh0ft7g |
Contributor
|
| App Name | WordPress | |
| Configuration | Release-Alpha | |
| Build Number | 34805 | |
| Version | PR #26108 | |
| Bundle ID | org.wordpress.alpha | |
| Commit | c67d482 | |
| Installation URL | 76ri2ia0jr3t0 |
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.


Description
Two follow-ups to the unified support work, now that replying to a ticket is wired up (#26097).
Remove the "Ask the Happiness Engineers" entry
"Get help" now covers both chatting with the AI Assistant and replying to a ticket, so the old email-only entry isn't needed. #26063 removed the "Ask the Bots" entry and noted that this one would stay "until replying to a ticket works in the new flow" — it does now.
This deletes the screens it reached (the conversation list, the conversation and reply views, the new ticket form, the screenshot picker, the attachment list) along with their models, the
SupportConversationDataProviderandSupportFormDataProviderprotocols, the ticket tracking actions, and the wordpress-rs mappings behind them. The application log picker and the video player move out of that directory, since the new flow uses both.The AI Assistant chat loses its "Open a Support Ticket" button, which pushed the deleted form.
Attach documents and other files to a reply
The reply form could only reach the photo library, so a crash report, an exported log or a PDF had no way in. Videos already worked; documents didn't. Photos and videos still come from the photo library, and a second button opens the file browser for everything else. Both feed the same list and the same 20 MB budget.
NSFileCoordinator, so a document in iCloud Drive that isn't on the device yet gets fetched instead of failing. The copy runs off the main actor — one the size of a video would otherwise freeze the form.datarather thanitem, which leaves out the one thing there's no sending: a folder.Nothing changed on the upload side: the data provider already just passes file paths to wordpress-rs.
Testing instructions
All of this is behind the New Support experimental feature flag (
Me → App Settings → Experimental Features), and the attachment work is Jetpack-only, since "Get help" is gated to the Jetpack brand..txt, a.zip. Tiles show the filename when there's no preview.What I could not verify
I have no WP.com credentials for this environment, so the reply form was never exercised on a simulator. The import logic is unit-tested, but the picker presentation and the new two-button layout are build-verified only — worth a look when testing.
Known behaviour
Re-picking the same document from the file browser attaches it twice. The photo path dedupes because
PhotosPickerremembers its selection; the file browser remembers nothing. Both copies are visible and removable.Checks
xcodebuild -scheme Supportand-scheme WordPressboth build.SupportTestspasses (108 tests), including new cases for non-image passthrough acrossmov/pdf/txt/zip/log, animated GIFs keeping their frames, security-scoped stores, and the new cancellation case.rake lintclean onModules/Sources/Support,Modules/Tests/SupportTestsandWordPress/Classes/ViewRelated/NewSupport.🤖 Generated with Claude Code