WE ARE REWRITING TS 🔥
First - implemented protection through send permissions. This is vastly more effective than kicking them (race condition) and also looks cooler! Downside: it’s a little more to manage, because there’s no easy way to just say “gib permission” and “no gib permission” - you have to set the entirety of the permissions (which are stored in such a weird way lol). There’s so many new things unlocked here, so I’ll detail those later as well.
After a bit of work on the send permissions thing, I made a whitelist. Simple. Whitelist a user from IDV blocks. Or perhaps whitelist a bunch of people. Simple.
There was one big problem though. The means by which I accomplished this essentially meant scattering logic in a ton of different places. I’d have logic in leave/join handlers, and honestly, the entire codebase was a mess.
I took the decision to instead rework the entire codebase, with a new strategy. I’d keep all user info stored in the SQLite database, and all commands would interface with that database. Then, that database would be synced with Slack. This way, the logic ends up being separated out.
This was enough of a shift that warranted the creation of a new repo. New deployment issues, new failures, a bunch of nonsense with token rotation and app creation, and there we go!