Please sign in to access this page
A slack bot to make the lives of plural systems easier, similar to PluralKit. Check the README for the (little) AI usage, A demo video, and more.
No followers yet
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
Bug fixes galore. Time to tell a short story:
I was recording a demo video for this devlog, showing features, commands, etc. And then plura just, didn't overwrite the message sent. I was rather confused, since this was working since forever and the code wasn't touched (which also means I didn't ever test it after initial impl. This is called foreshadowing).
So, down the tracing rabbit hole we go. I opened up my logs and... They were useless. I didn't add info logs when the bot would attempt to update a message, so I had no idea where I was in the process. Debug logs were there though. I tried turning them on. That for some reason failed, since systemd is weird. The conclusion? use systemd's native logging framework. I am now able to query the logs with precision, like so:
journalctl -f -xeu plura --user -o json FSENDERID=Some(SlackUserId(\U07958J0JJU\)) SPAN_TARGET=plura::events | jq
This allows me to see all logs for myself, for all events that are sent that are related to me. If I wanted to do fuzzy finding and other things, I could do that through jq. Through this, I figured out that I was returning early if the message content didn't match a trigger. Awesome stuff honestly. Whodathunk good observability in production helps debug issues?
Anyways, here's the demo video of everything working as intended. Since the last devlog, I also added:
MVP is done! Since the last devlog I added:
- message deletion
- member disabling/re-enabling
- getting information from a message
- renamed to plura
I think I'll be shipping soon. I'm pretty happy with how the bot has turned out so far and I think it is genuinely pretty useful :D
I added much better documentation for all commands and also documented some internals so it's a bit easier to understand what's going on.
Fun fact about the internals: The bot treats slash commands like a CLI. This means I can use clap and get a load of nice features for free, such as this nice formatting for help commands and nice errors in case of a user input error
I added the ability to reproxy already sent messages! On the first test I accidentally swapped a check to see if the user requesting to reproxy sent the message. Oops. After fixing that and a couple other issues it worked!
I added the ability to edit messages! My slack API library currently doesn't support rich text right now which is a bit sad, but it should eventually. So for now, you can edit plain text message.
I reworked triggers to update entirely through commands rather than a modal. This also revealed an issue where prefix were not working correctly. Oops.
I added member aliasing! The bulk of these 3 hours was actually refactoring and updating code to be more refactorable and usable. I also have much better debugging logs, and errors look pretty now when I get them. I've only shown the user-facing feature in the video, but the main work happened behind the scenes