Checking the fast-export dump ... Meh. This has lots of commits with that annotation ...

Still, there is

vs

so there has to be some difference inside of git between the branch and tag symbols.

Even so, you are right, with the annotation on the commit command you know the tag, but not the branch it is on. On the other hand, do have to know ? There is the regular parent link (from) to the previous commit. That should be good enough to link the history together, and then we should be able use the heads/tags difference to decide on the branch/tag difference in fossil, no ?

The one problem I see is that apparently after a commit was tagged (like with its children are tagged the same until another tag overrides this, or the whole line gets merged into a different branch.

In essence the import code would have to ignore a annotation of a commit if the parent commit was also tagged with i.e. an anti-propagation of tags.

I hope I am making sense. I have a feeling any work on that should experimented with in a branch first, i.e. not developed in trunk. Makes it easier to abandon if its not working out.