I was surprised to notice that my existing user scripts were immediately compatible with the compact personal bar, so I looked into the structure, expecting to find new IDs.
I found that instead, portlets are hijacked from within mw.util.addPortletLink
:
if (portlet !== 'p-personal') { return addPortletLinkOld.apply(mw.util,arguments); }
While I appreciate the value of reverse compatibility, my first thought with the compact personal bar was personalizing it with JS, and this interferes with that. The new mw.util.addPortletLink
function also drops the useful "nextnode" argument; it seems odd to break some functionality while providing reverse compatibility elsewhere.
I'm concerned that beta functionality too often makes the bad assumption that users won't make mild modifications to parts of the interface. Usually it's easier to update my code or add workarounds than to complain: I certainly don't want to hold up big usability improvements in the name of tweaks for power users. In this case I think it's worth complaining: why is this key function being broken like this?