My main question after reading everything but the source code is "how's it stored?" - I would assume it just uses a .dit or similar directory, and so is updated on pull, or does it do something more fancy inside .git?
Reading the source, the key to understanding this is at [1].
Each issue is stored as a new commit tree, and head ref stored at .git/refs/dit/${issue_hash}/head. Issue replies are stored as commits referencing the commit they are replying to and a ref in .git/refs/dit/${issue_hash}/leaves/${reply_hash}
Not sure how they are doing it, but I'd actually do it with a new root commit and branches in git. That way merging is easily doable and it doesn't pollute the files inside your current checkout. Sort of like how github pages works. It'd also let you potentially have multiple issue trackers in a repo if you needed to for some reason.
Absolutely, sorry that's what I meant by a directory really - otherwise you'd create your branch to fix the bug and have lost the issue!
(Though I suppose you could just say they're tracked on master and have the tool abstract access from other branches... but that would assign special meaning to master unnecessarily, in contrast to your scheme.)