Releases: Strawberry-Foundations/strawberry-chat
Strawberry Chat v1.13.0
Strawberry Chat - v1.13.0 Stable
Hey everyone. Tonight (at least in Europe) I am releasing v1.13.0 of Strawberry Chat.
This release includes some important bug fixes and quality of life improvements.
Changelog
- Added list-badges subcommand for /admin-settings
- Added automatic addition of the Strawberry badge when the user connects to the Strawberry ID
- Remove unused config flags
- Updated logging
- Add
max_message_length
for Rust-rewrite - Revamped database system (Support for MySQL, SQLite & PostgreSQL - more coming soon!)
- Lots of optimization for the database system
- Use the configuration
database_table
to use the correct table (#147) - Check if the given table in the configuration exists - If not create one
- Update core to v1.04
- Fixed a panic occurred by /admin-settings
- Fixed a panic occurred by /kick
- Fixed use of deprecated type alias std::panic::PanicInfo
- Code optimizations
- Fixed custom database port not working (#150)
- General code optimizations
- Improved logging
- Internal database optimizations
- Several dependency updates
- Moved cryptographic functions to separate module
Pull requests
- ENHANCEMENT: Database System Revamp (Milestone) by @Juliandev02 in #152
Issues / Milestone
TL;DR
With v1.13 we have implemented a new multifunctional database system which will support MySQL, SQLite and in future also PostgreSQL.
The new system simplifies the implementation of new or other database systems.
There are some bug fixes regarding commands, a few functions from the legacy Python version have been taken over and some things have been optimized.
Next release?
See https://github.com/Strawberry-Foundations/strawberry-chat#release-cycle
Full Changelog: v1.12.0...v1.13.0
Strawberry Chat v1.12.0
Strawberry Chat - v1.12.0 Stable
Hey! v1.12.0 of Strawberry Chat is released with a "little" delay.
This version is rather smaller, due to the enormous size of v1.11.x.
Unfortunately, I am running out of ideas for further updates, which is why it is difficult for me to program new features.
Changelog
-
Added block & unblock command (#140)
What's Changed
New Contributors
TL;DR
- You can now block users to prevent them from sending you a private message and from mentioning you
- Admins can now kick other users
- Improved stability
Next release?
As I have already mentioned, it will be difficult with future function updates for Strawberry Chat. Therefore, I cannot say a release date. But hopefully it will be this year (2024)
Full Changelog: v1.11.1...v1.12.0
Released by @Juliandev02
Strawberry Chat v1.11.1
Strawberry Chat - v1.11.1 Stable
Hey! v1.11.1 of Strawberry Chat is released with a little delay.
This version is a minor version and contains small changes.
Changelog
-
Added user status system (#139)
-
Added a minimum of required args to command system (#144)
-
Added remaining admin commands (role, badge, ...) (#143)
-
Added remaining user settings subcommands (#142)
TL;DR
- Ported some commands from the legacy python version
- Some improvements to the code base
Next release?
v1.12 will probably be released in June - August.
Full Changelog: v1.11.0...v1.11.1
Thanks to @Paddyk45 and @matteodev8
Released by @Juliandev02
Strawberry Chat v1.11.0
Strawberry Chat - v1.11.0 Stable
Hey! Today we are releasing v1.11.0 of Strawberry Chat, which is the result of 5 months of development.
Version 1.11.0 brings many changes - including a completely new codebase written in Rust, and much more.
We have also published version 3 of our Communication Standard.
Now server and client communicate bidirectionally with JSON data.
Due to a spontaneous decision at the end of December 2023, we had to stop the development of v1.10 early,
as we had already started with this version. We were therefore unable to make a Rust release from this version,
as we had started writing v1.10 in Python. So don't be surprised if there is no 'official' v1.10 but this changelog still
contains changes from v1.10.
Changelog - v1.10
- Added config file error when using an outdated config file (#106)
- Added IP-Banning (#111)
- Added Windows/Mac/Linux System Notification when getting pinged (configurable) (#114)
- Added error handling if address is already in use
- Added system notification when receiving a dm (#116)
- Added specific restrictions for username (only lowercase, a - z, 0 - 9, dots, underscore) (#122)
- Added username length checking
- Added max_username_length & max_password_length config + moved some values to config yml
- Added rate limiting (#129)
- Added configuration for ratelimit (Enabling or disabling ratelimit + ratelimit timeout)
Changelog - v1.11 (Rusty)
-
Changed code base language to Rust (see #135)
-
We changed our Communication Standard to v3 (German documentation for v3)
-
MySQL Database as main database (#99)
-
New rust-based clients for rust-based Strawberry Chat (CLI and TUI)
-
Added login verification (check if you're really logged in) (Security)
-
Custom Strawberry Chat rust library for accessing Strawberry Chat's packets
-
Sometimes you cannot write after mentioning a user (#125) (fixed by Rust-rewrite)
-
Fixed add automatic command for invalid session removal (#130) (fixed by Rust-rewrite)
-
Improve performance by not accessing the database every time when writing something (instead use caching) (#98) (fixed by Rust-rewrite)
Pull requests
- [Snyk] Security upgrade werkzeug from 2.2.3 to 2.3.8 by @Paddyk45 in #104
- Strawberry Chat: Rust Rewrite by @Juliandev02 in #136
- small event hooking system by @Paddyk45 in #141
TL;DR
- Rewrite in the Rust programming language
- New communication standard (v3), now the client also sends JSON data to the server
- No backwards compatibility with old v2 clients
- More stability, fewer bugs, safer
Next release?
v1.12 will probably be released in June - July, in the period from April - May v1.11.1 will be released at most.
I don't have time for another 'big' release due to some personal things that are more important, so June at the earliest
Full Changelog: v1.9.0...v1.11.0
A big thank you to @Paddyk45 for helping with the development for v1.11.0 - without you none of this would have been possible.
Released by @Juliandev02
Strawberry Chat v1.8.3
Strawberry Chat - v1.8.3 Stable/Legacy
Hey. This is probably the last release of the v1.8.x era.
This update contains some bugfixes and a few changes from v1.9.0 & v1.10.0!
-
Fixed Connection refused when starting Strawberry Chat v1.8.2 (#119)
-
Moved userNickname, isMuted, isAccountEnabled to src.functions
Released by @Juliandev02
Full Changelog: https://github.com/Strawberry-Foundations/strawberry-chat/blob/main/server/changelogs/CHANGELOG_1.8.3.txt
Git Changelog: v1.8.2...v1.8.3
Strawberry Chat v1.9.0
Strawberry Chat - v1.9.0 Stable
Hey, today after exactly 2 months we are releasing the next major version of Strawberry Chat, v1.9.0. This update includes many new features, bug fixes, security fixes and much more!
With v1.9.0 we have introduced a new system of communication. This is called json-communication or stbmv2.
You can read our documentation to learn more about it.
But now we should start with the long changelog :-)
Changelog
-
New communication system (json) (See https://developers.strawberryfoundations.xyz/json-communication/introduction)
-
Added ClientSender Object Class for more Python OOP & better Server message handling
-
Added Stopwatch Class for counting how long you're in the queue
-
Added maximal user feature (configurable) (#71)
-
Added queue so users can wait until a "slot" is free (#75)
-
Added some basic maximal user counts for online command, memberlist command, ... (#76)
-
Added experimental user avatars for chat to chat bridges (e.g. Discord) & Strawberry ID (#66)
-
Added server settings command (start with serversettings show command) (#77)
-
Added function to set max_users value to -1 for no max_users (#82)
-
Added 2 new configuration variables to configure if admins/bots have to wait in the queue
-
Added max. registered user feature (#87)
-
dded Pinging user should not be case-sensitive (#95)
-
Removed case-sensitive username for dm command (#96)
-
General removal of case-sensitive things (#97)
-
More Object Oriented Programming (Queue Class, Stopwatch Class, ...)
-
Fixed console logger prints static time instead of the real time (#63)
-
Fixed a color formatting bug that occurrs when using htpf (client-side fix)
-
Fixed deleting any kind of system message if it is the same as the message before (client-side fix)
-
Fixed CRITICAL: Chat Hashtag Placeholder Format Colors wont be sent correctly (for more look issue description) (#81)
-
Fixed TypeError: a bytes-like object is required, not 'str' when using /dm (#83)
-
Fixed UnboundLocalError: cannot access local variable 'has_dm_enabled' (#84)
-
Fixed registration (check for used usernames is not working) (#85)
-
Fixed IndexError: list index out of range when just typing / into chat (#72)
-
Fixed table_query is not correctly according to the newest database (#91)
-
Fixed cannot change nickname to an nickname with whitespaces (#90)
-
Fixed when no user entry in database, you cannot register (#89)
-
Fixed When using --regen-database; UnboundLocalError: cannot access local variable 'input' where it is not associated with a value (#92)
-
Fixed stbexceptions::client_error (004) -> 'NoneType' object is not subscriptable (#93)
-
Fixed database will not be correctly generated when starting server without user db (#88)
-
Fully fixed When using Ctrl + C in client, the server will crash (BrokenPipe) (#1)
-
Merged welcome message to one message to fix the extra line bug (Fixed #70)
-
Added reset_color argument to replace_htpf to fix not resetting the color correctly
-
Added function to use the old Strawberry Communication System (stbmv1)
-
Added direct messages (#79) + exit command
-
Added correct logic of logging messages if log_recv_msg is enabled + changed flag names when starting scapi bot
-
Added a new way for scapi message events (replacement for old legacy "commands" method) (#64)
-
Added a config do enable/disable check on capital letters in message for new on_message method (#78)
-
Added real prefix recognition in scapi (#80)
Pull Requests
- Merging the base source of v1.8.1 by @Juliandev02 in #52
- Slightly adjusted the docs by @Juliandev02 in #53
- Fix for README by @Juliandev02 in #56
- Added new line after scapi version releases by @Juliandev02 in #57
- Added JSON Communication notice to README by @Juliandev02 in #58
- MERGE: JSON Communication by @Juliandev02 in #94
Full Commit Changelog: v1.8.2...v1.9.0
See you again for v1.10.0 in January or February :-) (or maybe for v1.8.3 this month ;))
And a big thanks to @matteodev8 and @Paddyk45 for helping
Released by @Juliandev02
Strawberry Chat v1.8.2
Strawberry Chat - v1.8.2 Stable
Hey, time for an update!
Strawberry Chat has been updated. There are only a few small corrections to (eventually) complete the v1.8.x series and make the Legacy series official.
As mentioned in the last release, we have documentation. This has now been significantly expanded and now offers good documentation for Scapi: https://developers.strawberryfoundations.xyz/
- Fixed Console Logger prints static time instead of the real time (#63)"
- Full update of Scapi for the legacy release of Scapi 1.0.0 (stbmv1)
- Code optimizations for legacy release
Released by @Juliandev02
Full Changelog: https://github.com/Strawberry-Foundations/strawberry-chat/blob/main/server/changelogs/CHANGELOG_1.8.2.txt
Git Changelog: v1.8.1...v1.8.2
Strawberry Chat v1.8.1
Strawberry Chat - v1.8.1 Stable
Hey, time for an update!
Strawberry Chat has been updated. We worked on it and fixed many known bugs and improved the user experience.
We have now fully ported all commands to the new system. Please report any issues you find.
Oh and by the way we now have documentation for our products. It's not quite ready yet, but you can access it at http://developers.strawberryfoundations.xyz/ or https://strawberryfoundations.mintlify.app/introduction!
-
Bug #1 has been partially fixed. (BrokenPipe)
-
Added memberListBadge and hasBadge function, fixing #47
-
Added prevention of sending messages with just whitespaces, fixing #50
-
Removed sql_error() + replaced it with normal log.error & debug_logger
-
Removed unnessecary init variables, e.g. address in main file
-
Ported /kick command to new command system + added leave message when kicking someone
-
Ported /nickname command + added function to remove other's nickname as an admin
-
Ported /role command + added role and color checking if role/color exists
-
Fixed showing "None" as main badge in Memberlist when no main badge is set (#47)
-
Fixed Bad File Descriptor when logging out (#49)
-
Fixed "Sometimes logs get spammed with empty messages after a user connected/disconnected" (#39)
-
Completly (hopefully) fixed broken formatting of log messages in console (#45)
-
Fixed kick and exit command, will now log when user leaves the chat
-
Replaced long if-clause with match-case pattern, fixing #44
-
Renamed src.commands.admin.broadcast to src.commands.admin.broadcast_cmd to get not confused by the broadcast function
-
Renamed src.commands.default.exit to src.commands.default.exit to get not confused by python's exit function
-
Renamed thread creation vars according to python's standards
-
Renamed serverSocket to server_socket according to python's standards
Known Issues
- #63 (Fixed in Canary Release v1.9.0)
Released by @Juliandev02
Full Changelog: https://github.com/Strawberry-Foundations/strawberry-chat/blob/main/server/changelogs/CHANGELOG_1.8.1.txt
Git Changelog: v1.8.0...v1.8.1
Strawberry Chat v1.8.0
Strawberry Chat - v1.8.0 Stable
Hello. Today I will release Strawberry Chat v1.8.
After a long development period and many rewrites of code pieces, it's time for the official release.
There are many new changes and fixes that greatly improve the user experience.
Lets start with the changelog!
Changelog
-
Added a complete new login system, which fixed security issue #42
-
Added memberlist command with beatiful representation of registered members and their roles
-
Added direct messages to send private/direct messages to members, instead sending it to everyone
-
Added user mentioning (If you mention a user (e.g. @ someuser), it will be highlighted)
-
Added Hashtag Placeholder Format Support (HTPF) for chat messages and broadcast command, to send colorized messages or the current time (e.g. #today or #red)
-
Added that bots will no longer be affected of stripping new lines
-
Added settings command for easier management of user flags (#27)
-
Added server command input, for example updating the server or getting information about the server
-
Updated /user command so it can now be used without argument to show your user profile
-
The response url for getting versions from the stbapi will now be the url from src.vars
-
Added repl_htpf to replace placeholders from the Hashtag Placeholders Format
-
Removed regen database code "procedure" and created function for database regeneration in functions source file
-
Moved "some" online mode functions so separate file (src/online.py)
-
Added broadcast_all function to functions.py for using the broadcast function in commands
-
Separated clientRegister function from the clientLogin function
-
Fixed wrong formatting with carriage return usage in custom clients
-
sqlite3.ProgrammingError: Recursive use of cursors not allowed + fixed illegal rule of multiple reusing c
-
Removed duplicated cursor creation and db variable assignment
-
re-definition of global db variable now at the top of the clientThread function
-
Forgot to add to_kick.close() to close the connection between server and client (from kicked client)
-
Fixed not escaping ansi + stripping \n when logging messages to console
-
Fixed correct arrangement of log messages when leaving the chat
-
Fixed wrong user id allocation (allocated new user id to message count)
-
Fixed showing badges when you dont have badges in user command (displays buggy "None")
-
Fixed not saving log file to server directory when executing server from another directory
-
Fixed printing "Message could not be sent" when exiting/stopping the bot
-
Removed example database, because the server will now create the database when the database does not exist
-
Moved table_query to top, added new sys argument to regenerate the database
-
Created separate variables for help messages at the top of the code
-
Test mode will now only be 10 seconds (better for GitHub Actions)
-
Registration updated; will now set msg_count to 0 when registering
Known Issues
- When using Ctrl + C in client, the server will crash (BrokenPipe) #1
Feature Requests & Ideas
- Strawberry Chat+ #21
- Documentation for d...