Hi!
I recently learned (thanks @skochinsky ) that on IDA, typing D or A on a global variable to create a BYTE/WORD/DWORD/QWORD or a string, does not actually store type information. So changing a global variable's "type" this way is not actually recorded by libbs, since it does not trigger the IDB_Hooks.ti_changed hook.
This make #126 incomplete in that regard.
However (thanks again @skochinsky), there is the IDB_Hooks.make_data hook that should be able to monitor these events; maybe libbs could monitor these events, and actually apply the according type information to the target global variable in a way that the ti_changed hook would be triggered afterwards and actually record the information in binsync's database.
Not sure I'll have time to test this soon, but I wanted to share the info so that it's logged somewhere :)
Have a great day