- A new part of the dashboard will now inform the user if any configuration problems have been detected.
### Changed
- The required set of permissions has changed. Existing users must re-authenticate their users to the app connected to strimertül.
- The `twitch/ev/eventsub-event` and `twitch/eventsub-history` keys have been replaced by a set of keys in the format `twitch/ev/eventsub-event/<event-id>` and `twitch/eventsub-history/<event-id>`. Users of the old system will have to adjust their logic. A simple trick is to change from get/subscribing from a single key to the entire prefix. The data structure is the same.
- Custom chat commands can now be sent as replies, whispers and announcements. Due to some API shenanigans yet to be solved, the latter two will always be sent from your main account, not the bot account (if they are different)
- A new error page will appear if strimertul encounters a fatal error (previously this used to just crash). The error page contains both a way to send an error report with app logs and a way to restore the database to an earlier saved copy.
- The UPDATE AVAILABLE banner in prerelease builds now works properly by only appearing when a newer prerelease (or stable) version is available to download.
- A new log file called `strimertul-panic.log` is now created for panic information. Please attach this (as well as `strimertul.log`) when reporting crashes!
### Fixed
- Fixed changing chat history breaking the database
UPGRADE NOTE: If upgrading from an earlier version, please re-authenticate your user to make sure it has a necessary new permission for event notifications to work (even from 3.1.0).
UPGRADE NOTE: If upgrading from an earlier version, please re-authenticate your user to make sure it has a necessary new permission for the loyalty system to work.
- Added recent event list in the dashboard, please be aware that this list only refers to events that have happened while strimertul was open and is mostly for development/troubleshooting
- When closing the app a quick dialog will ask you if you are really sure (it's not a trick I just keep doing it by mistake). Sometimes it does it twice, it's a known issue.
- Added support for EventSub Websocket subscriptions on Twitch, making Twitch integration fully in-app without having to rely on third party servers. Check the "Events" tab in Twitch configuration for setting it up. The new keys for redeems are `twitch/ev/eventsub-event` and `twitch/eventsub-history`. History has been reduced to 50 to alleviate memory concerns.
- A new onboarding procedure will walk first time users through setting up Twitch integration, including bot credentials (by default, the same user is used as bot).
- The UI has been more tightly integrated with the underlying service meaning the kilovolt password will never be asked again
- Database operations (import/export/restore) are now done through a much nicer CLI interface rather than random flags, check `strimertul --help` for more info on usage.
- Many parts of the app should now react to configuration changes without requiring a full application restart.
- The cursor in redeem/goal ID fields will now keep its position when sanitizing names (e.g. turning a whitespace to a dash) instead of jumping to the end
- The scrollbar does not overlap the copy button in the log window
- [pprof](https://github.com/google/pprof) endpoints have been added for taking CPU/memory snapshots at `/debug/pprof`
### Changed
- Updated dependencies, most notably the Twitch IRC bot has been bumped to v3 and now includes emoji positions for easier embedding of them in chat overlays.
- **Pebble driver**: You can now use [Pebble](https://github.com/cockroachdb/pebble) as a database. Just use `-driver=pebble`
- **Auto driver detection**: The `-driver` option now defaults to `auto`, which will try to identify which database is in use. This means the `-driver` argument is realistically only needed when you first start strimertul. `auto` defaults to BadgerDB if no database is found (to preserve compatibility)
### Fixed
- Fixed nasty sync bug that would make strimertul unresponsive when it would detect streaming on Twitch.
- **Multiple database options**: Strimertul now supports multiple databases drivers. BadgerDB will remain as default (and currently the only option) for the time being but other databases are coming in the future.
- **Database backups**: The database will periodically save optimized copies of itself in a backup directory. Backup directory, intervals and how many to keep at once are all configurable via new command line flags (Defaults: "backup" directory in the current working directory, taken every hour, up to 20 backups).
- **Exposed internal metrics via keys**: `twitch/chat-activity` and `twitch/stream-status` now expose previously internal-only info about the current stream.
- A lot of the command line parameters have changed syntax (eg. from -noheader to -no-header), please check the new formats using `-h` if you rely on them.
- Loyalty point migration from v1.2.0 and earlier has been removed. If you are somehow running such an old version of strimertul and using loyalty points, run any version of strimertul between v1.3.0 and v1.7.0 first to make sure all points are migrated to the new format.
- **Chat alerts based on webhooks**: You can now add follow/sub/cheer/raid messages in chat. Basic messages are fully functional, advanced features are still in works (such as variations for certain thresholds, e.g. a different raid message if the raid has more than X viewers coming in).
- Strimertul now prints its own version when starting up, useful for troubleshooting.
### Changed
- Timers do not have a "enabled" toggle anymore, they are always enabled (just non-functional if you have none).
- KV Authentication using Kilovolt v6, check out [the authentication documentation](https://git.sr.ht/~ashkeel/kilovolt/tree/main/item/PROTOCOL.md#authentication) for more info.