Releases: ItsLimeNade/Beetroot
Release list
v1.0.0 | ...one giant leap for diabetics
What's new?
- Improved the docker files cfdf914
- Added code of conduct.
- Added contributing guidelines.
- Added custom emojis for prettier results
- Moved the sticker generation to the bonbon library
- Removed all dashboard code
- Added settings commands:
/settingsplus dedicated/privacy,/allow,/block,/ephemeral,/image-mode,/microbolusand/fingerprick-expiry - Updated duration parser
- Added tips
- Added
/themeto create, edit, import and apply custom color themes to your graphs - Themes now style
/graph,/tirand image-mode/bg - Added
/tirTime in Range card over the last 7, 14, 30 or 90 days - Added
/nutritionto look up calories, carbs and macros for any food - Added
/stickersto view and remove the stickers on your graphs - Added image mode for
/bg(a clean card image instead of an embed) - Added an
atoption to/bgand/graphto look back in time (e.g.2h,1d,1w,1h30m) - Added
/treatment-modeto choose how carbs and insulin are drawn on/graph(Contextual or Timeline) - Added
/graph-stickersto choose how many stickers appear on your graph (up to 30) /bgcards now show a short, actionable hint (like "verify reading" or "monitor") instead of just restating your status- Stickers now appear only on
/graph; the/bgcard and/tirare kept clean - Added
/delete-accountto wipe all of your stored data - Added
/infowith source code, credits and support links - Added an in-bot changelog that shows what's new since your last use
Fixes
- Token encryption now fails closed instead of falling back to a public hard-coded key, so a leaked database can no longer be decrypted with the source code.
ENCRYPTION_SALTwas renamed toENCRYPTION_KEY(existing values still work) - Added SSRF protection to Nightscout and sticker fetching: private, loopback and cloud-metadata addresses are blocked, redirects are re-checked, and outbound requests now have timeouts
- Stopped dumping glucose, treatments and profiles to the logs. The new logging system never records medical data or Discord IDs unless you opt in with
LOG_SENSITIVE=true /blockis now actually enforced. A blocked user can no longer read your data, even on a public profile or if they were on your allowed listforce_ephemeralis now honored. With it on,/bg,/graph,/tir,/a1cand/nutritionreply only to you instead of broadcasting your glucose to the channel- Connection and fetch errors now show a generic message instead of the raw backend error, so internal hostnames and IPs are no longer leaked to users
- Every outbound request now has a connect and request timeout, so a slow or hostile site can no longer hang the bot, and oversized sticker images are rejected before decoding to stop them eating memory
/delete-accountnow also wipes your command history and tip records, not just your profile and stickers, so nothing tied to your Discord ID remains.- The bot now reports one consistent version (1.0.0) everywhere, instead of the version, the changelog and the config disagreeing
- The Docker image now runs as a non-root user, and leftover web-dashboard config and database tables were removed
- Polish: unexpected errors now show a proper embed instead of plain text,
/bgno longer shows a broken thumbnail for users without an avatar, and an unused internal sticker-delete path was removed - Added a clear "not medical advice" disclaimer to
/infoand/setup - Added per-user cooldowns to
/graph,/tirand/a1cso heavy renders and large queries can't be spammed - The bot now shuts down cleanly on stop, an extreme
atvalue can no longer crash a command, and account-list updates are now atomic - Custom emojis now resolve from whichever bot application is running (with an
EMOJI_SETfallback), so one build works for both beta and production
v1.0.0-pre1 | One small step for Beetroot...
What's new?
- Introduces the
atparameter on the/graphand/bgcommands to look back in time and fetch old data. - Makes the
hoursparameter mandatory in/graphfor autocompletion to work due to user demand. - Introduces the start of the poise refactor.
- Adds the
/a1ccommand. - Adds a dashboard, used to change the user settings for the bot.
- Changed the internal structure of the bot.
- Removed most settings commands in favour of the dashboard.
- Started bug hunting in cinnamon & bonbon dependencies.
What's next?
- Implementing nutrition commands with and without NLP (Natural Language Processing).
- Improving Docker files.
- Improving sticker placements in the
/graphcommand. - Improving performance in the
/graphcommand. - Improving the visuals in the
/graphcommand. - Bring back
/allow&/disallowcommands - Bring back
/infocommand. - Bring back
/helpcommand.
v0.2.1 | Threshold Hotfix
v0.2.0 | Enhancements Update
What's Changed
- Fixed error caused by saving wrong components as stickers. By @RansomTime in #12
- Doubled graph resolution for bigger and clearer images by @ItsLimeNade in #19
- Added warning in
/bgif data is older than 15 min by @ItsLimeNade in #23 - Added contextual stickers that generate based on your blood glucose value by @ItsLimeNade in #24
- Updated
/stickerscommand to work with contextual stickers by @ItsLimeNade in #24 - Added
/set-token,/set-nightscout-url,/get-nightscout-urland/set-visibilitycommands by @ItsLimeNade in #26 - MBG (meter blood glucose) entries now displayed as fingerprick readings on graphs by @ItsLimeNade in #27
- Target ranges now dynamically fetched from your Nightscout profile by @ItsLimeNade in #27
- Added faint striped lines at target high/low ranges on graphs by @ItsLimeNade in #27
/bgnow uses custom title from Nightscout status settings by @ItsLimeNade in #27/bgdisplays fingerprick values from past 30 min in both mg/dL and mmol/L by @ItsLimeNade in #27
New Contributors
- @RansomTime made their first contribution in #12
Full Changelog: v0.1.2...v0.2.0
v0.1.2 | Sticker invasion
There has been quite a few changes in this version.
New features
You can now add stickers to your graph!
When a sticker is sent in a discord chat (any chat), right click it and go in the Applications context menu and click the Add Sticker command, it will instantly add your sticker to your graph. (Up to 3 stickers)
If you want to remove a sticker:
- Added
/stickerscommand, allows you to manage your current stickers - Now for every update, an ephemeral update message containing a changelog will appear once to notify the user of the update.
- IOB and COB are now visible on the
/bgcommand ! - Added
/convertcommand for unit conversion - Added
Analyze Unitscontext menu (same steps as adding a sticker but with text a message) that will extract all blood glucose values in the text and convert them
QoL features
- Allows AAPS users to not have to set a threshold to get a readable graph by labelling SMB boluses as micro-boluses automatically.
Huge thanks to @p5nbTgip0r for #8
Bug fixes:
- Fixed delta not showing up for some users
- Fixed graph hours being on the wrong timezone
- Fixed day separation line on the graph being added twice.
- Fixed
/setupbuttons not getting removed after the setup was finished #8 (thanks @p5nbTgip0r) - Fixed help message not being ephemeral
Anyways thanks for using Beetroot, next update should be a little less user-oriented but rather fixing redundant and poorly written code.
However I have some big plans for the next 1-2 weeks :)
v0.1.1 | Quality of life improvements & Bug fixes
New features:
/allow [user] [action]command
Lets people add or remove people from their authorized list, so that even if their Nightscout is set to private people manually authorized can still access your BG and graph./helpcommand to view all available commands and how to use them/infocommand for general information about the bot (and a link to this repo)/set-threshold [value] [display]command
Allows the user to set a threshold that marks any insulin treatment who's units count is below that threshold as a "microbolus", either hiding it completely from the graph making it way more readable for closed loop user or marking it with a tiny marker without the amount of units displayed on the graph.
QoL features:
/graphnow also takes an optional[user]parameter to display the graph of an other user.- Made all information embeds ephemeral to not flood channels with useless informations.
- Tweaked graph treatment positionnement, size and shape to make it more readable.
Bug fixes
- Fixed graph not displaying correct timestamps and timestamps overlapping
- Fixed graph not displaying round values for primary unit
- Fixed graph having an extra y-axis label that is completely useless
- Fixed treatments overlapping with each other
Thanks for using Beetroot, and there are more features to come soon so stay tuned :)
Base functionalities
The first release of the bot, containing the core features such as retrieving your blood glucose using /bg or viewing your current graph with treatments using /graph.
Includes token encryption and a database for secure storage. Basic error handling is implemented.
Features
/bg @user— Get the blood glucose level of a user./graph {hours}— View a graph of the past X hours./setup— Configure the bot to work with your nightscout./token— Update your nightscout token.