WIP: Split OMEMO plugin into view and headless components (second attempt)
Opening a new pull request as I'm coming back to this after a while. This PR supersedes and continues the work of #3117. The first commit here is basically a squash-and-rebase of the earlier PR.
This PR replaces src/omemo with plugins/omemo-views and headless/plugins/omemo. The way I'm working on this is to keep everything on omemo-views for now, and then gradually move whatever possible out to the headless omemo.
Files to be tackled (more will be added as events warrant):
- [x] util
- [x] copy the functions whole
- [x] break up the functions which have UI and non-UI parts to them
- [x] index
- [x] create and register the headless
omemoplugin separately - [x] move headless event handlers to headless version
- [x] move over other headless dependency files as appropriate
- [x] create and register the headless
- [x] miscellaneous small files which can mostly be copied over directly
Standard steps to finish before completing pull request:
- [ ] Add a changelog entry for your change in
CHANGES.md - [x] When adding a configuration variable, please make sure to
document it in
docs/source/configuration.rst - [ ] Please add a test for your change. Tests can be run in the commandline
with
make checkor you can run them in the browser by runningmake serveand then openinghttp://localhost:8000/tests.html.
Wait I rebased against the wrong thing sorry! Will be back.
Please do not touch this yet as I will be force-pushing something soon.
Hi, I am trying to use OMEMO encryption in the headless version of Converse, I tried many things, but couldn't succeed. I just now came across this PR, so is there any way to use OMEMO encryption in the headless version yet, or do we need to wait for this PR to be merged? I use Converse with Angular v19 in the frontend and have ejabberd as an XMPP server. Thank you.
Hi! OMEMO encryption is not yet supported in headless. You need to wait till the PR is complete. Actually, it starts off some work I did quite a while ago at #3117. I need rebase to the latest master and handle all the merge conflicts, then make a few more changes to make it work.
@badrihippo: Any progress on it?
@Neustradamus I don't want to promise anything because I've done that multiple times in the past :grimacing: but thanks in part to your nudge I have started on rebasing this entire thing to the new master! I'll update on my progress next Monday.
Thanks a lot, looking forward to
Hi @badrihippo, did you get time to finish up things?
Hi @MirwaisAkrami, I am still working on the rebase as quite a few things have changed (at to be honest I've only managed to put in about 2-3 hours the past week due to being busy with client work).
The good news is that I just got awarded a grant from NLnet to develop Convo! The details are yet to be finalised but this PR is likely to be on top of the priority list to get OMEMO working. In terms of timelines: I am keeping January 2026 free to work on Convo so the worst case is to have this completed my mid-January. I feel a bit silly saying this because that's a long way away and this is not such a large task but it's mainly about my ability to set aside the time; I'm already balancing two client projects at the moment.
I am going home this week to spend time with family, let's see if I can work on this as well during that time :crossed_fingers:
Would you like to join the chatroom [email protected]? I will be posting more regular updates there. It's mainly centred around Convo but this is one of the pending tasks there and I'm also interested to hear what you were planning to use this feature for, so you can tell me about it there!
Closing this because it was completed in #3789. Thanks @jcbrand!!