Releases: Terkwood/BUGOUT
🤯 The Aftermath
💑 Multiplayer Micro-Stack
v0.9.0
This release provides multiplayer functionality using a memory-efficient design: Redis and Rust. (#174)
- Clean up admin scripts to account for reduced footprint (#404, #403, #399, #398, #397, #396)
- Remove Kafka-related functionalities (#375, #373, #372)
- Add docker buildkit support (#369, #389)
- Match micro-sync make move payload to system (#352, #364)
- Alter log statements (#356, #414)
- Gateway: coordinate multiplayer events using redis streams (#332, #349, #350, #351, #353, #354, #355, #388, #394, #405)
- Create shared model crates (#342, #339, #343, #344, #345, #346, #347, #348, #379, #380, #381, #382, #383, #384, #385, #386, #387, #407)
- Create micro-sync (history provider) service (#331, #335, #337, #338, #410)
- Include session-disconnected stream in game-lobby reads (#359)
- Fix memory leak in micro-changelog (#336)
- Create micro-color-chooser (#334, #365, #366, #367, #371, #377)
- Use XREADGROUP in micro-game-lobby (#358)
🏤 Simplify Redis Streams Reads
- Removes unnecessary storage of message IDs in favor of
XREADGROUP
(#312, #318, #319) - Adds a resource-efficient implementation of the game lobby protocol written in Rust, using Redis Streams 🦀 🍬 (#184)
- Adds a few system administration scripts (#311, #309, #308, #307, #303) and update image choices
- Adds a code of conduct and contribution note
- Create CHANGELOG.md
- Parameterize tinybrain model input (#328)
🔩 Maintenance Minima
This release minimizes some of the code related to Redis Streams processing (#232).
We duplicated the MIT License used in the upstream Sabaki project into our local "browser" folder.
🧠 the stickybrain
the stickybrain
This release makes the tinybrain
sticky: if its botlink
counterpart goes offline, tinybrain
will faithfully attempt to reconnect, for as long as necessary (#247). Using a small systemd
script, tinybrain
will also start-up automatically whenever its home location has power (#234)
maintenance log
This release also cleans up some redis streams code (#294), optimizes Dockerfiles to use fewer build caches (#296), and makes a fix to the packer scripts (#295).
🦟 Bugfix Friday
🧯Prevent idle player from passing
You can no longer hang the game by passing when it isn't your turn (#277).
📥 Sync browser with service layer
Description
This release solves a difficult-to-reproduce deadlock state reported in #136. It fixes favicon.ico rendering in (at least) Firefox mobile/android (#169).
Sync Flow
We introduce a REQSYNC / SYNCREPLY flow which allows the client to reconcile its state with the service layer under the following circumstances:
- client is ahead of the service layer by one move (in which case the service layer issues a MAKEMOVE command on behalf of the client)
- service layer is ahead of the client by one move (in which case the client accepts the missed move from the service layer)
Miscellany
This release adds several system administration scripts (advancing #176).
⛑️ Fix multiplayer crash
This release resolves a multiplayer crash condition uncovered in #228, and touches up various documentation.
💈 Remove connection pool clones
This is a maintenance release which removes unnecessary clones of Redis connection pools across various services (#209).