> Why you should never suspend a thread in your own process.
This sounds like a good general princple but suspending threads in your own process is kind of necessary for e.g. many GC algorithms. Now imagine multiple of those runtimes running in the same process.
And as long as you only want to search all messages, not a single conversation.
Let me give an example: I know a person sent me an image in imessage about one year ago. How do I search "from:user has:attachment date:2024-07-*"?
In gmail that's easy, in discord, that's easy. Does imessage search have literally any of those filters?
Searching within one chat seems especially like it's table-stakes for any chat app's search
Second way would be to open that conversation view, click on the contact icon at the top of the view, which should then bring you to a details page that lists a bunch of metadata and settings about the conversation (e.g. participants, hide alerts, ...). One of the sections shows all photos from that conversation. Browse that until you find the one you care about.