I have implemented my own open-source (https://github.com/brettkromkamp/contextualise) topic maps-based personal knowledge management system: Contextualise: https://contextualise.dev/. However, I think Contextualise is missing quite a few of the features that you are looking for.
You can check out an exhaustive list of (personal) knowledge management applications, here: https://github.com/brettkromkamp/awesome-knowledge-managemen...