Hi, I had some trouble with completing tags, where the already set tags were wrongly identified. I have dug this down to a problem with caching.
with org-element-use-cache=t and org-use-tag-inheritance=t --- Org * headline 1 :tag1: ** headline 2 :tag2: --- end org When invoking org-set-tags-command (and quitting), on headline 1, then headline 2, then headline 1 again, "tag1" is no longer shown as one of the existing tags in the minibuffer. This is because it has erronously been assigned an :inherited property in the cache-representation for headline 1 when inherited tags were calculated for headline 2. This happens in org-get-tags, where inherited tags are parsed from the cache and given the :inherited property, but unfortunately this is done to the same string objects, so that this property is added in the cache tree both for the taglist of headline 1 and headline 2. (cl-copy-list cached-tags) is used there, but only copies the list and not the string objects. A solution that seems to work for me was to change (cl-copy-list cached-tags) to (mapcar #'copy-sequence cached-tags) (found it here: https://stackoverflow.com/a/47794586) I don’t know if this is the best solution though. Perhaps this is needed also in org--get-local-tags where a similar thing is done? (but only the fontification seems to matter there) Best, Anders Johansson (who is otherwise as mentioned in an earlier discussion very appreciative of org-element-cache)