FWIW, with some tools I always run them via a wrapper (often named the same, but earlier in the search path, and explicitly calling the real one via a full pathname), so that it can do various tidying up before/after. Eg, my cash tracking application is run from a wrapper that auto-commits changes into git, if there are any, and I used to run trn via a similar wrapper.
You could probably do the same thing with tin: copy the state file out of a repository somewhere to the name it expects, run tin, let it overwrite the file, diff the resulting file against the repository, and auto-commit/push if it has changed. Aside from the last-write-wins-whole-file issue (or whatever your auto-resolve-conflicts policy becomes), it seems like it should automagically do what you want.
PS: You're still left with problems of state stuck inside always-running applications that only write state on exit, but that's baked in to the applications in question.
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds