well, I have noticed that after a bunch of changes, I will need to call :reset to reinitialize the user, because it will get really buggy, sometimes it will not even work after a sprint of changes.
:reset is an easy way to fix this. Too easy. I am doing it after every build at this point. I am not surprised it will become buggy without the reset.
Doing a hard reset is not something that would be really advisable once the bot is live.
I can do a ^reset(TOPIC *) to reset all topics and not lose the other user data.
And for topics I do not want to repeat, I can defensively look for the existence of specific $ user variables that are set from these topics. Or have a bunch of special $flags set after the topic reset. Or I can maybe manually mark some topics as read after the reset.
Will this fix most of the issues? What issues would I expect to face in this situation, that I can defensively code for? Are there other challenges I should watch out for?
If you could share any strategies for avoiding the need to do a reset, and what you have done when faced with this, it would be helpful from a planning point of view. And what you do defensively to avoid rebuild issues without a reset, that would be helpful.
In the event of a reset, I am guessing this would be very complicated. There is a complicated way to do this with json, but it would be time-consuming to create.
cheers