Releases: caunt/Void
Releases ยท caunt/Void
v0.5.13
0.5.13 (2026-04-10)
Features
- api: โจ expose proxy interface and port properties (67122a4)
- content: โจ sort releases by published date (dd05667)
- core: โป๏ธ added async disposal for run results (d46d76a)
- events: โจ improve handling of player redirects (0620a4e)
- integration: โจ centralize display logic, improve scripts (655981b)
- integration: โจ improve container log and screenshot handling (01e1db2)
- platform: โจ improve port detection logic (357580d)
- protocol: โจ added support metadata for Minecraft 26.1.2 (90f8060)
- protocol: โจ implemented ReleaseVersion (3ddc05d)
Bug Fixes
- ci: ๐ copy script files into docker build context and guard empty window id (6873da2)
- client: ๐ improve options reset and chat reliability (2d4c5ec)
- core: โจ do not print lazy exit code property (68e3656)
- deps: update dependency starlight-links-validator to ^0.22.0 (9a34a1c)
- docker: ๐ณ preserve image layers for caching (8eeaa7c)
- platform: ๐ improve background task error handling (d0688d4)
- protocol: โป๏ธ simplify version ordering logic (31c2e03)
- sitemap: ๐ prevent error if commit date missing (e2d101b)
- tests: โฌ๏ธ downgraded Microsoft.CodeAnalysis.CSharp from 5.3.0 to 4.14.0 (0ad3ce4)
- voidentrypoint: โจ return run result with completion task (441ad40)
v0.5.12
0.5.12 (2026-04-04)
Features
- protocol: โจ added support for Minecraft 26.1 and 26.1.1 (08104bf)
- tests: ๐จ add support for testing multiple protocol versions in
PortableMinecraftClient(3c1364c)
Bug Fixes
- api: ๐ corrected player name fallback wording (f2a985a)
- dependencies: ๐ corrected NuGet logging option casing (3898183)
- deps: update astro monorepo (dd5944f)
- deps: update dependency @astrojs/starlight to ^0.38.0 (98577a9)
- deps: update dependency astro to v6 (cfa603a)
- deps: update dependency astro to v6 (7f8b6ca)
- deps: update dependency sharp to ^0.34.0 (66fb4c5)
- deps: update dependency starlight-links-validator to ^0.21.0 (b07517b)
- essentials: ๐ corrected override redirection typo (34350b9)
- extensions: โจ improved input arrays parsing (d803d90)
- link: ๐ improved handshake error handling (b406702)
- logging: ๐ update server args and improve output (32fbf61)
- minecraft: ๐ corrected NbtFile XML documentation typos (1af9811)
- minecraft: ๐ corrected TagType XML remark typo (c8f17f5)
- minecraft: ๐ updated
ReadComponentto defaultreadNametofalsefor consistency (6694f94) - mods-support: ๐ corrected handshake error message grammar (53c3b90)
- nbt: ๐ corrected langword XML doc typos in TagReader (9af7969)
- nbt: ๐ corrected typo in FormatOptions remarks (7f383a0)
- nbt: ๐ default
readNameflag totrueacross Nbt APIs (e24ee13) - nbt: ๐ฉน corrected typo in TagReader XML comment (b5595a2)
- nuget: ๐ removed Void package exclusion logic (82be530)
- platform: ๐ ignore early disconnects when kicking players (9c7b54d)
- platform: ๐ฉน corrected MIME type typos in resources metadata (213bb94)
- registries: ๐ก๏ธ added thread safety to packet id plugins registry (07eb228)
- tests: ๐ add platform-specific base images in
PortableMinecraftClientDockerfile (15c6cdc) - tests: ๐ added environment check to DisposeAsync in integration tests (e588aa7)
- tests: ๐ fix --jvm-args argparse failure by using = syntax (b1b132f)
- tests: ๐ fixed image build platform and switched to System.Threading.Lock (63b1bd5)
- tests: ๐ fixed thread-safety, UTF-8 decoding and pipe completion in LogConsumer (77e1d06)
- tests: ๐ fixed unsynchronized Logs/ClearLogs access and silent exception swallowing (06d5558)
- tests: ๐ improved
PortableMinecraftClientDocker setup and test timeout (59e1721) - tests: ๐ improved Dockerfile setup and streamlined
RemoveImageAsyncprocess (65be435) - tests: ๐ monkey-patch portablemc to emit --quickPlayPath for MC 1.21 auto-connect (8ba7dad)
- tests: ๐ refactored PortableMinecraftClient to use EndPoint and improved Docker argument handling (d5499eb)
- tests: ๐ removed redundant debug logging in
IntegrationSideBase(6b1b297) - tests: ๐ simplify Dockerfile base image definitions in
PortableMinecraftClient(5d5f7cd) - tests: ๐ standardized timeout variable names in integration tests (be1da5f)
- tests: ๐ track log timestamps and wait for silence in
PortableMinecraftClient(6834a3e) - tests: ๐ updated integration tests for consistency and removed unused attributes (046194c)
- tests: ๐ง add --quickPlayPath game arg and fix JRE CA cert import (708d599)
- tests: ๐ง fix Python portablemc CLI args and remove pre-bake dry-run step (3866eea)
- tests: ๐ง import system CA certs into JRE truststore to fix SSL on proxy-intercepted environments (caa62a3)
- tests: ๐ง move client start and connection wait into fixture setup to fix cold-run timeout (319e8fa)
- tests: ๐ง replace cargo install with GitHub release download for portablemc (d88ffde)
- tests: ๐ง replace portablemc with node-minecraft-protocol to eliminate asset download bottleneck (8534b9b)
- tests: ๐ง restore portablemc client and fix Docker SSL trust for mkcert CA (15a16a2)
- tests: ๐ง use PaperPlugins.None for real client test to avoid Via plugin downloads (bfcd609)
- tests: ๐ง use Python portablemc via pip and pre-bake MC download in image (bf942fe)
Reverts
- tests: โช restore original Rust portablemc-cli Docker approach (f789cde)
v0.5.11
v0.5.10
v0.5.9
0.5.9 (2026-02-05)
Features
- brigadier: โจ added support for mod and registry key args (071bb9a)
- buffer: โจ added buffer copying and scoped write (b46878c)
- buffer: โจ added support for byte array read/write (b17bddf)
- buffer: โจ added support for int array read/write (3bff132)
- buffer: โจ added VarInt array support (c649278)
- buffer: โจ allow copying with reading buffer data to the end (f43281c)
- buffers: โจ enforce full buffer consumption on dispose (7613b0b)
- commands: โป๏ธ added argument parser definitions (5d1781e)
- commands: โจ added argument property serializers (dabcdcb)
- commands: โจ added bool argument serializer (36649f7)
- commands: โจ added packet / event support for available commands message (5099a01)
- commands: โจ added registry key arg serializers (47bfd55)
- commands: โจ moved cross stitch argument type support (e66a869)
- commands: โจ remade brigadier arguments system to be non-generic (5c108ff)
- demo: โฑ๏ธ increased default session TTL to 2 hours (10bd696)
- demo: โป๏ธ refactored to use shared itzg server across all sessions (83c8c7b)
- demo: โจ added error handling to dashboard entrypoint (45b4d6f)
- demo: โจ added multi-container dashboard demo (5244859)
- demo: โจ added REDIRECT_LOGS environment variable support (89313d2)
- demo: ๐ enhanced logging for debugging session startup issues (63f5f98)
- demo: added session management (47cc5b1)
- essentials: โจ added hostname-based server overrides (be0a78d)
- events: โจ added server address to handshake events (955f65a)
- events: โจ support player redirect in join event (a7cc409)
- logging: ๐ changed logging levels to debug for plugin and listener startup messages (c0a6155)
- network: โจ added argument identifier mapping (fb61421)
- network: โจ updated identifier type and interface implementation (c225072)
- nuget: โจ added update checking for offline assemblies (850231e)
- plugin: โจ added ProxyCompatibleForge plugin (7b24e31)
- plugins: โจ added CrossStitch support plugin (7efbc6b)
- protocol: โจ added ClientboundCommands packet mapping (2d280a4)
- proxy: โจ added support for CommandsPacket handling (e002094)
- proxy: โจ implemented chat command node graph structure serialization (47402ff)
- server: โจ support per-server hostname overrides in file configuration (36eef85)
- servers: โจ added server lookup by name methods (845d0da)
Bug Fixes
- buffer: ๐ use DumpBytes for BufferSpan creation (a77e427)
- buffer: ๐ก๏ธ enforced span lifetime safety (f4a0872)
- buffer: ๐ก๏ธ improved int array reading safety (eac39db)
- demo: โจ added more optimization default options (eaa342a)
- demo: ๐ added health check before connecting dashboard to network (be214f3)
- demo: ๐ corrected "still not ready" log spam prevention logic (5ebdd91)
- demo: ๐ corrected nginx environment variable syntax (b9f7365)
- demo: ๐ deferred DNS resolution for client container in nginx (751b2e7)
- demo: ๐ fixed dashboard container startup race condition (120774a)
- demo: ๐ fixed nginx hostname resolution for void proxy (c8e06f4)
- demo: ๐ prevent network leak on session startup failure (6513c83)
- demo: ๐ removed --rm flag to enable log retrieval on container failure (dcb8051)
- demo: ๐ updated page title to 'Void Demo' for clarity (765b6d6)
- demo: ๐ updated portablemc arguments for server joining and adjusted display resolution (97c6a15)
- demo: ๐ง build all images for linux/amd64 platform (8622383)
- demo: ๐ survive page refreshes (72ffda5)
- demo: ๐ง made void ttyd writeable (d7f32b9)
- demo: ๐ช fix Windows line ending issue in start.sh (4fd0250)
- deps: ๐ fixed PackageReader resource leak in NuGetDependencyResolver (c65ca26)
- docker: ๐ enhance tmux session command to handle Ctrl+C and ensure continuous execution (84a2789)
- docker: ๐ escape EOF in entrypoint script to prevent variable expansion (26a07be)
- docker: ๐ removed 'latest' tag from ttyd image for consistency & tmux'ed itzg container (8528edd)
- forge: ๐ ๏ธ include server address in handshake result (6e27897)
- forwarding: ๐ improved empty key disconnection message (79999be)
- lifecycle: ๐ ignore StreamClosedException on keepalive (5e027d3)
- logging: ๐ clarify Velocity forwarding key message (3bc9161)
- logging: ๐ improved CommandsPacket logging output (aa78fa9)
- logging: ๐ improved repository option docs and logging (0be1d06)
- logging: ๐ log disconnect reason without legacy format (cc68514)
- mods: โจ share header size mapping across instances (1bc94c9)
...
v0.5.8
v0.5.7
0.5.7 (2026-01-27)
Features
- auth: โจ handle early disconnects for status queries (37a1839)
- link: โจ improved player reconnection on failed connection requests (cacd51a)
- nuget: โจ added NuGet repository probing functionality (c355700)
- protocol: โจ expanded SetHeldItem packet definitions from 1.7.2 to latest (9e9f2b4)
- resolver: โจ improved assembly path resolution (a2b0bed)
- server: โจ allow --server option without port, default to 25565 (0eb44d9)
- server: allow --server option without port, default to 25565 (8c6cc88)
Bug Fixes
- common: ๐ corrected cancellation log spelling (5612838)
- essentials: ๐ corrected log message grammar (742aa15)
- keepalive: ๐ reset tracker on server redirection (6d73acd)
- kicks: โจ allowed changing phase to login without a link to kick players early (b8df337)
- lifecycle: โ added IsMinecraft check in OnPlayerDisconnected (6fecca8)
- links: ๐ allow multi-server retry on connection failure (7f13515)
- links: ๐ corrected timeout log wording (5e2a687)
- minecraft: ๐ correct XML doc langword typo (0d40cf8)
- nbt: ๐ corrected network format description (6ec23d3)
- nuget: โจ improved custom repository handling and error logging (61a70c5)
- nuget: ๐ declare sanitizedUrl once and assign appropriately (0b87567)
- nuget: ๐ initialize sanitizedUrl once, reassign only for valid URIs (2147d98)
- nuget: ๐ removed duplicate sanitizedUrl reassignment (7d725fe)
- nuget: ๐ keep credentials in HTTP probe requests (280e8eb)
- nuget: ๐ added sanitized URI to invalid repository logging (72a47d0)
- nuget: log error status code instead of general failure (4e622c3)
- player-service: ๐ updated error messages for server connection failures (0a6a5ef)
- player: ๐ unwrap player before kick operations (1ce1b16)
- plugins: ๐ honor remote plugin URLs (525a456)
- plugins: ๐ set HttpClient log level to Warning to suppress verbose logs (2c62348)
- plugins: ๐ suppress verbose HttpClient logs and show full URI in errors (9b4db14)
- protocol: ๐ logged actual player instance instead of TcpClient (9780a94)
- resolver: ๐ ๏ธ handle missing plugins directory safely (d8af77e)
Reverts
- remove last two rebase-related commits (e317f8e)
v0.5.6
0.5.6 (2026-01-12)
Features
- api: โจ added player name property (361cb9b)
- buffer: โจ added text components json serialization support for network buffers (0edb11f)
- buffer: โจ unified component (de)serialization API (c840c21)
- buffers: โจ added support for large buffer indices (2a96fb5)
- components: โจ added more control over tag name serialization (058f8e0)
- components: โจ added support for literal content type (8518d28)
- core: โจ migrate some APIs to extension properties (51ee50d)
- events: โจ added PlayerJoinedServerEvent when both sides in Play phase (4528dae)
- extensions: โจ added flexible packet transformation API (cd8cb6a)
- lifecycle: โจ added keep alive tracking and timeouts (1be6f6f)
- nbt: โจ added TryGetValue method to NbtCompound (bceed05)
- nbt: โจ integrated archived Eric Freed's project SharpNBT (91356b3)
- network: โป๏ธ centralized packet transformation registration (8ff8dcd)
- network: โจ centralized packet id definitions (682db46)
- network: โจ implemented stream timeouts (ad0253f)
- properties: โจ added more parsing capabilities (f1bd643)
- properties: โจ improved JSON serialization flexibility (48ad114)
- serializer: โจ improved NBT tag type safety (8e77609)
Bug Fixes
- api: ๐ improved error handling and logging (5bf37e9)
- auth: ๐ improved error handling for early closing connections (873550e)
- buffer: ๐ changed default value of writeName parameter to false for components (756d97e)
- buffers: ๐ standardize buffer exception parameter order (989a9e1)
- buffers: ๐ improved end-of-buffer error throwing (da0ec0e)
- command: ๐ improved unknown command handling (0512629)
- command: ๐ prevented deadlock by not awaiting task from itself (af68f35)
- commands: ๐ ignore StreamClosedException in execution (11ca15d)
- components: โป๏ธ updated components to latest vanilla implementation (8683da5)
- dependency: ๐ use cached player hash for lookups (c88a0ac)
- exceptions: โจ improve exception messages with better context (a2d2d98)
- lifecycle: ๐ improved keep-alive handling and logging (44958dc)
- links: ๐ improved error handling in authentication (74f118f)
- logging: ๐ improved error handling for command executions (aadae16)
- minecraft: โ๏ธ correct tag parsing comment typo (9552d8b)
- nbt: ๐ allowed empty tag names like vanilla does (cdf2a88)
- nbt: ๐ use Fields property instead of Values (533908b)
- nbt: ๐งน removed unsigned type support from public API (ce8402f)
- network: โป๏ธ unified disconnect packet definition (faea054)
- network: ๐ reduced mods logging (c2f235c)
- network: ๐ ๏ธ improved packet decoder method lookup (17c788b)
- platform: โป๏ธ renamed entry point for clarity (b281541)
- platform: โ๏ธ correct suppression comment (3a8d387)
- player: ๐ improved disconnect handling and logging (6043c95)
- player: ๐ improved player disconnect event handling (84c7db8)
- player: ๐ ๏ธ simplified player kick logic (9c3887a)
- protocol: โจ added keep-alive packet id mappings for all versions (3d77afb)
- protocolsupport: โ๏ธ clarify login disconnect comment (ceeafe8)
- protocolsupport: ๐ correct authentication comment typo (566b312)
- registry: ๐ ๏ธ skip empty packet transformation mappings (87a434c)
- services: ๐ ๏ธ improved error handling for disposed players context (de974c8)
- transformations: ๐ ๏ธ register on server play phase only (9bee10b)
Reverts
- brigadier: โช revert exception improvements in CommandContext (5d5536a)
v0.5.5
0.5.5 (2025-12-18)
Features
- api: โจ introduce run options interface and configuration (0738af7)
- auth: โจ improve authentication result feedback (5ec8677)
- authentication: โจ added login plugin message handling (4cd1c2f)
- buffer: โจ added more dump methods (201bc51)
- channels: โจ added Channels property to ILink to simplify enumeration over channels (7e19e20)
- config: โ๏ธ added read-only mode to disable saving changes to configuration files (3018667)
- console: โจ allow passing command-line options to plugins (36944b5)
- console: โจ manual command-line option discovery (2e5124a)
- debug: โจ support forge servers in debug harness (c28ceac)
- events: โจ added event waiting functionality (edea1a9)
- events: โจ added side to handshake event (e61321b)
- forge: โจ added handling of forge handshake (0661c26)
- forge: โจ handle markers in handshake (3bfee5d)
- forge: โจ listen to handshake packet (b1e8d84)
- forge: โจ reuse cached client mods to allow fml servers redirections (2d93c16)
- forwarding: โจ allow passing modern forwarding key by command-line option (19257cc)
- inventory: โจ add example support for 1.20/1.20.1 versions (f93dc9c)
- logging: โจ introduce dynamic logging level control (53c6805)
- logging: ๐ง added logger to player scoped context (45ee246)
- options: โจ use working directory from run options (4e40d25)
- packets: โจ added play phase plugin message codec (25c1d9e)
- player: โจ added ConnectedAt property (c7268a8)
- players: โจ added traffic pause/resume api for players (c8dc96f)
- protocol: โจ add support for 1.21.11 protocol version (e0fddca)
- protocol: โจ add support for version 1.21.10 (0ad76fd)
- registries: โจ add direction-based clearing (4cfc442)
- version: โจ support 1.21.9 minecraft (7570d3a)
Bug Fixes
- auth: ๐ correct typo in server authentication comment (18eb4e1)
- auth: ๐ ensure non-null auth result default (603453b)
- auth: ๐ correct response wording (bff47aa)
- auth: ๐ ๏ธ only finalize server login on successful auth (22e908c)
- auth: ๐ก๏ธ finish login after login is completed on server (502c319)
- auth: ๐ก๏ธ separate player and server auth results (7ae7b2b)
- authentication: โจ allow more types of packets at authentication (5c2d07b)
- channels: ๐ง throw channel created event after player context channel property is set (048f474)
- chat: ๐ง compare plugin with example plugin (377e799)
- commands: ๐ improved command execution tracking (3f3ce1f)
- common: ๐ correct channel registry comment (bca0f9f)
- components: ๐ improve JSON deserialization logic (2477dfe)
- config: ๐งน ensure all plugin configurations are removed (fdf5974)
- console: โป๏ธ remove setup method and update buffer for each read (c9b4dd7)
- console: โจ check for options implicity (0d42b15)
- console: โจ simplify command-line option detection (969f0a1)
- console: ๐ remove unreachable null check (12b5e7d)
- dependencies: โจ reimplement file dependency resolver to escape deps.json requirement (6c96a28)
- dependencies: ๐ ๏ธ improved assembly resolver path selection (8f12339)
- dependency-injection: โจ discover repository option early (b6368b8)
- di: ๐ง use adapter for DryIoc DI rules (80e67f3)
- entry-point: โป๏ธ optimize working directory handling (f0c2c33)
- entry-point: ๐ do not pass cancelled token (b01225b)
- essentials: โจ simplify server redirections (78fd87b)
- events: ๐ enumerate all channels when rethrowing system packets (0de8bbf)
- example-plugin: ๐ add missing article in comment (235a79e)
- example-plugin: ๐ correct plugin load comment typos (abc094b)
- forwarding: ๐ง ensure forwarding option is discovered early (4075c50)
- forwarding: ๐ง use selected secret key (563b5ac)
- inventory: ๐ ๏ธ update packet mappings to 1.21.9 (c10af19)
- listener: ๐ง change message processing order (a1a57b1)
- logging: ๐ improve error handling and logging (7cc423c)
- logging: ๐ improve log detail and direction enum usability (2a29797)
- logging: ๐ improve timeout error messages (9dd5469)
- logging: ๐ improved server redirection logging (1755d14)
- logging: ๐ include direction in error logs (c083ed7)
- logging: ๐ streamline logging configuration (8ac0937)
- logging: ๐ง add default case for packet logging (33d8679)
- logging: ๐ง add trace for link stopping reason (150d48f)
- logging: ๐ง enhance log message with direction ([b7f6c4d](b7f6c4d...
v0.5.4
0.5.4 (2025-08-01)
Features
- add cancellation support to entry point (e68e37b)
- add test project reference to solution (9774e0b)
- add TryParse for Uuid (caf19c6)
- allow specifying custom log writer (7a77295)
- auth: โจ add offline mode (6c856fc)
- encryption: โจ add support for offline mode (c1afcd6)
- platform: โจ add interface CLI option (10746b5)
- platform: โจ add logging level option (032b3f8)
- platform: โจ add port CLI option (2ff4089)
- platform: โจ add server CLI option (1901aff)
- platform: โจ name CLI servers sequentially (b852e5e)
- platform: add ignore-file-servers option (3aa41c2)
- protocol: โจ add new protocol versions (e1a76ec)
- protocol: โจ improve string representation of names (3bedd1a)
- registry: โจ update mappings for new protocol versions (9776ccb)
- servers: โจ validate server arguments (2690724)
- tests: โป๏ธ reset integration logs before each run (563a2da)
- tests: use JRE 21 for Minecraft integration (e165115)
Bug Fixes
- add to RunAsync cancellation support (db1fc77)
- benchmarks: ๐ remove null-forgiving operator (8dd5cb7)
- buffers: ๐ correct memory stream length comparison (4a631b1)
- ci: set GitHub token for test steps (5d62062)
- common-network: ๐ handle disposed stream (4503d70)
- common: ๐ correct invalid cast message (bbe7748)
- common: ๐ ๏ธ remove null-forgiving operator (2ca845e)
- components: โป๏ธ write nbt as unnamed after 1.21.5 (aead5bf)
- correct error message formatting (0d4a8eb)
- correct java binaries variable name (ba487cd)
- correct typos in code (1559b90)
- correct VarLong and UUID int array handling (c4d6e83)
- dependencies: ๐ง update dependencies (470135e)
- docs: ๐ separate distribution header (06a1ff0)
- docs: ๐ authenticate release fetch (1fe57ab)
- docs: correct grammar in features guide (c2253de)
- encapsulate entry point logic in EntryPoint class (850971c)
- errors: ๐ clarify packet registration error message (0425a60)
- events: ๐ remove null forgiving operator (9761b49)
- improve console input/output handling (61d2219)
- links: ๐ correct comment typo (9e8e34f)
- logging: ๐ง enhance connection log details (661c9bf)
- logging: ๐ง improve logging level assignment (2ad7cfb)
- minecraft: ๐ correct float array color precision (4ba0d4a)
- minecraft: ๐ correct grammar in slice exception message (8b1f1d0)
- mojang: ๐ง update offline status handling (825ebca)
- nuget: ๐ select newer versions correctly (e7fc187)
- packets: ๐ temporary disable SystemChatMessagePacket transformations (e86db88)
- platform: โป๏ธ reinitialize logger for each run (47e2a0b)
- platform: โป๏ธ update offline mode configuration (3acbd40)
- platform: ๐ง use offline mode CLI option value (0fb47cf)
- platform: ๐จ avoid null-forgiving operator (8b1ba03)
- plugin: ๐ make linq callback async (1bbbdfc)
- plugins: ๐ remove braces for single-line lock (8eec7ef)
- plugins: ๐ฉน remove null-forgiving operator usage (fff0888)
- plugins: use injected HttpClient directly (841d677)
- prioritize env var setting over in-file configuration (15fa575)
- protocol: โจ update string representation of versions (41a4d71)
- protocol: ๐ง update signature data handling (ac953bc)
- protocolsupport: remove null forgiving operator from login packet \U0001F4DD (cc7135c)
- registry: ๐ correct varlong property encoding (111f1bf)
- servers: ๐ง fix --ignore-file-servers option usage (9b5d814)
- settings: ๐ง update Offline property for runtime use (07be838)
- simplify hash computation in GuidHelper (1ea7f98)
- terminal: ๐ฉน remove unsupported constructor (c81855c)
- tests: โป๏ธ use interactive HeadlessMC (4e446b1)
- tests: cancel process reads in PaperMC test (1621686)
- tests: correct paper working directory variable (3311808)
- tests: import MITM certificate for portable JRE (5790d36)
- transformers: โจ update hoverEvent processing to support Minecraft Console Client behavior (304ce72)
- wait readiness first (9c6e52c)
Performance Improvements
- buffers: โป๏ธ use stackalloc for primitive writes (b313cd3)