Skip to content

Unified support: retire the Ask the HE entry and accept any file type in a reply - #26108

Closed
adalpari wants to merge 2 commits into
trunkfrom
adalpari/xono2
Closed

adalpari wants to merge 2 commits into
trunkfrom
adalpari/xono2

Conversation

@adalpari

@adalpari adalpari commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

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 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.

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.

  • A browsed file is read through its security scope and through an 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.
  • 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 rather than passed in, 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 instead of an anonymous icon, and backing out of the file browser no longer reports a failure.

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.

  1. Enable New Support, then open Me → Help & Support.
  2. Confirm the only rows are Help Center, Get help, and the two under Diagnostics — "Ask the Happiness Engineers" is gone.
  3. Open Get help and a conversation that has been escalated to a ticket, then tap Reply.
  4. Under Attachments, check both buttons:
    • Photo Library — pick photos and videos, as before. Deselecting in the picker still takes the file off the list.
    • Browse Files — pick a PDF, a .txt, a .zip. Tiles show the filename when there's no preview.
  5. Try an iCloud Drive document that isn't downloaded, and a file large enough to exceed the 20 MB budget (the overflow message should name how many fit).
  6. Back out of the file browser without picking anything — no error should appear.
  7. Send the reply and confirm the attachments arrive on the ticket.

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 PhotosPicker remembers its selection; the file browser remembers nothing. Both copies are visible and removable.

Checks

  • xcodebuild -scheme Support and -scheme WordPress both build.
  • SupportTests passes (108 tests), including new cases for non-image passthrough across mov/pdf/txt/zip/log, animated GIFs keeping their frames, security-scoped stores, and the new cancellation case.
  • rake lint clean on Modules/Sources/Support, Modules/Tests/SupportTests and WordPress/Classes/ViewRelated/NewSupport.

🤖 Generated with Claude Code

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.
@dangermattic

Copy link
Copy Markdown
Collaborator
2 Warnings
⚠️ View files have been modified, but no screenshot or video is included in the pull request. Consider adding some for clarity.
⚠️ This PR is larger than 500 lines of changes. Please consider splitting it into smaller PRs for easier and faster reviews.
1 Message
📖 This PR is still a Draft: some checks will be skipped.

Generated by 🚫 Danger

@adalpari adalpari closed this Oct 1, 2026
@adalpari
adalpari deleted the adalpari/xono2 branch October 1, 2026 08:43
@adalpari

adalpari commented Oct 1, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #26109 — the branch was renamed from adalpari/xono2 to adalpari/unified-support-reply-attachments, which closed this PR instead of retargeting it. Same commits, same description.

@wpmobilebot

Copy link
Copy Markdown
Contributor
App Icon📲 You can test the changes from this Pull Request in Jetpack by scanning the QR code below to install the corresponding build.
App NameJetpack
ConfigurationRelease-Alpha
Build Number34805
VersionPR #26108
Bundle IDcom.jetpack.alpha
Commitc67d482
Installation URL4ngkcuvh0ft7g
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@wpmobilebot

Copy link
Copy Markdown
Contributor
App Icon📲 You can test the changes from this Pull Request in WordPress by scanning the QR code below to install the corresponding build.
App NameWordPress
ConfigurationRelease-Alpha
Build Number34805
VersionPR #26108
Bundle IDorg.wordpress.alpha
Commitc67d482
Installation URL76ri2ia0jr3t0
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants