Now the headsCache of the node contains several heads with the same key (1 per endpoint ws2p). But I don't see 2 heads of the same pukkey in duniter-ui, I think there's still a problem in duniter-ui.
You don't need a release for that. Let met explain the trick:
go into duniter core, and run yarn link
go into duniter-ui, and run yarn link duniter
Now in duniter-ui, the duniter module is exactly the code you have in the duniter core of your development environment!
Also, your tests are probably not conclusive because you miss a command in duniter-ui that generates the app.js:
./node_modules/brunch/bin/brunch build
This command actually gathers all the web sources (*.jade, *.html, *.css, .js, ...) and compiles them to "app.js", "templates.js", "libraries.js", ".css", ...).
You need to run this command every time you touch to a UI file. Or you can use the watching version:
./node_modules/brunch/bin/brunch watch
Anyway, before commiting, please run again the build and commit all the files. This is very specific to UI, this is a bad practice to commit the compiled files, but for now I get duniter-ui working this way.