Skip to content

chore(main): release 0.2.0#10

Open
github-actions[bot] wants to merge 1 commit intomainfrom
release-please--branches--main--components--oxidized
Open

chore(main): release 0.2.0#10
github-actions[bot] wants to merge 1 commit intomainfrom
release-please--branches--main--components--oxidized

Conversation

@github-actions
Copy link
Copy Markdown

@github-actions github-actions bot commented Mar 22, 2026

🤖 I have created a release beep boop

0.2.0 (2026-04-02)

⚠ BREAKING CHANGES

  • All cross-crate facade re-exports removed. Consumers must import from source crates directly.
  • game: WorldContext.pending_light_updates field replaced by WorldContext.lighting (Mutex).
  • protocol: indexmap workspace dep now requires serde feature
  • server: ServerContext now requires chunk_loader and chunk_serializer fields.
  • server: None — all changes are additive (tests + lib target).
  • server: PlayContext.conn field renamed to conn_handle and changed from &mut Connection to &ConnectionHandle.
  • TOML config field names now use is_/has_ prefix (e.g. hardcore → is_hardcore, online_mode → is_online_mode). Environment variable overrides follow the new names (e.g. OXIDIZED_GAMEPLAY_IS_HARDCORE).
  • server: item_name_to_id() now returns -1 for unknown items instead of a hash-based fallback. item_id_to_name() returns

🚀 Features

  • add proptest as a dev dependency and implement various improvements and error handling in server commands (f2e6475)
  • ci: add ARM (linux/arm64) support to Docker builds (ac4521a)
  • ci: add automated release pipeline with cross-platform binaries (56b6ddc)
  • ci: add Docker image builds to GHCR (ce64a3c)
  • game: add event system and plugin-readiness hooks (f4e3efd)
  • game: add lighting engine scaffolding (R3.9) (f7bc903)
  • game: add VoxelShape face occlusion for directional light blocking (750e11e)
  • game: add worldgen scheduler scaffolding (R3.8, ADR-016) (bf5aeef)
  • game: complete R5.17 entity selector completeness (351a7f7)
  • game: entity selectors, console commands, and all vanilla command stubs (0b45503)
  • game: extend command framework with description, pagination, and player suggestions (e9fca0f)
  • game: implement /gamemode command functionality (37f710c)
  • game: implement basic physics engine (Phase 16) (70b7e95)
  • game: implement Brigadier command framework (phase 18) (d32cb23)
  • game: implement chunk sending pipeline (phase 13) (1919879)
  • game: implement entity framework and tracking (phase 15) (91d6508)
  • game: implement entity selector parsing and resolution (@a, @e, @p, @r, @s, @n) (b4d4de7)
  • game: implement flat world generation (Phase 23) (4be465a)
  • game: implement inventory system (phase 21) (35ca896)
  • game: implement lighting engine (Phase 23a) (85a63cc)
  • game: implement phase 23b ECS runtime integration (27fc451)
  • game: implement player join and play-state login sequence (phase 12) (8e1157d)
  • game: implement player movement handling (77461b3)
  • game: implement server level + block access (Phase 11) (8f0f317)
  • game: improve command system vanilla parity (753807d)
  • game: improve command system with translatable messages, dynamic help, and autocomplete (cb28ed6)
  • game: persistent LightEngine per world (23a.11) (0ca8a55)
  • game: scaffold ECS entity system (R3.10, ADR-018) (50b67f2)
  • game: wire cross-chunk light propagation into production (23a.10) (574c8e5)
  • game: wire physics lookups to block registry + slime bounce (f0bc921)
  • handshake and status protocol (Phase 3) (75288af)
  • implement phase 1 bootstrap — constants, config, CLI, logging (c34328f)
  • login authentication, encryption, and compression (Phase 4) (b647eed)
  • nbt: complete NBT library — binary codec, SNBT, serde (Phase 5) (4b84917)
  • protocol: add channel types, connection handle, and connection split (R4.1 + R4.2) (e0a2cfb)
  • protocol: add decode + Packet impl for ClientboundCommandsPacket (7440a9d)
  • protocol: add decode + Packet impl for ClientboundLevelChunkWithLightPacket (be15cf2)
  • protocol: add generic send_packet/decode_packet to Connection (019ce58)
  • protocol: add Packet trait and PacketDecodeError (R2 SP1) (bb579af)
  • protocol: add swing, player abilities, and client info play packets (68e92d8)
  • protocol: add tag data for configuration state (c195b7a)
  • protocol: implement chat system — Component, packets, rate limiting (764109e)
  • protocol: implement Configuration state (Phase 6) (5dcfd8f)
  • protocol: implement core data types (Phase 7) (2a2c6af)
  • protocol: implement Packet trait for 56 packet structs (19fe8cd)
  • protocol: implement ServerboundClientInformationPacket (Phase 6.6) (1e72d22)
  • protocol: update to Minecraft 26.1 release (df6ebe0)
  • server: add block interaction validation for build height, spawn protection, and replacement (d1a31e8)
  • server: add console tab-completion and fix /stop shutdown (21b0a2a)
  • server: add environment variable configuration overrides (R3.4) (c1e0ac0)
  • server: complete R4 hardening — compliance tests and memory budget tests (R4.9 + R4.10) (6fc3c1b)
  • server: implement block interaction (Phase 22) (dac4899)
  • server: implement keepalive and configurable color codes (200f281)
  • server: implement Phase 19 — world ticking (d33d3fe)
  • server: implement reader task with rate limiting (R4.4) (dfade49)
  • server: implement writer task with batch flushing (R4.3) (69cfda6)
  • server: integrate PLAY-state login sequence (Phase 12) (4d0ef5a)
  • server: migrate play state to reader/writer task pair (R4.5-R4.8) (782fa5a)
  • server: per-player operator permissions via ops.json (R5.15) (12cebdf)
  • TCP listener and raw packet framing (Phase 2) (c567963)
  • world,protocol: complete R5.16 safety hardening & cleanup (dc74ae2)
  • world: add shape occlusion check to light trigger (23a.15) (3373ac0)
  • world: Enrich BlockStateEntry with physics properties (R5.2) (18608a4)
  • world: implement Anvil world loading (Phase 10) (da5e78c)
  • world: implement block and item registries (Phase 8) (af98793)
  • world: implement block tag loading from vanilla data (R5.3) (f5a5eac)
  • world: implement chunk data structures (Phase 9) (5bc0bc5)
  • world: implement ChunkSkyLightSources heightmap system (23a.13) (413cced)
  • world: implement world saving (phase 20) (4279dd7)

🐛 Bug Fixes

  • add CFR fallback for VineFlower decompilation failures (3f4e7e5)
  • add missing crate dependencies and bootstrap server binary (205db42)
  • chore: contain setup-ref output under mc-server-ref/<version>/ (f7cab85)
  • ci: add permissions to release-please caller (ba6d5a9)
  • ci: make oxidized.toml copy optional in release packaging (410076b)
  • ci: remove extra-files from release-please config (156cca6)
  • ci: resolve all CI pipeline failures (5e17f3e)
  • ci: switch release-please to simple type for workspace compat (3aedb07)
  • ci: use explicit generic updater for Cargo.toml version (86edc42)
  • clippy (8748b24)
  • deny: use allow-org for git source allowlist (daed6b8)
  • game,world: replace panic! with unreachable! in test assertions (29a1a37)
  • game,world: resolve clippy warnings in test code (6f95035)
  • game: correct entity tracking ranges and harden entity safety (86a64f5)
  • game: correct Phase 11 against vanilla 26.1 reference (8f6b7d0)
  • game: correct SNEAK_SPEED constant to match vanilla (ffb92e4)
  • game: darken sky column below when opaque block placed (ed15270)
  • game: discard decrease boundary entries to prevent phantom light injection (f991ed3)
  • game: fix autocomplete ranges and entity arg suggestion flags (685ac12)
  • game: implement destroy/keep/replace modes for /setblock command (0d04540)
  • game: improve lighting engine vanilla compliance (dc92309)
  • game: improve Phase 21 inventory implementation (db4f7ce)
  • game: include MotionBlockingNoLeaves in client heightmaps (103857f)
  • game: persist player NBT data to prevent data loss (4aa4907)
  • game: reject NaN/Infinity in creative mode movement validation (2f731ed)
  • game: send hashed world seed and difficulty lock in login packets (d0a5fdb)
  • game: unify pick block logic for creative and survival modes (65f9950)
  • game: update stale chat::style:: imports after R3-B split (1bcb768)
  • game: vanilla compliance fixes for lighting engine (6082ccd)
  • nbt: add depth limits to SNBT parser/writer and length validation (6ffaa6c)
  • nbt: add network NBT format for protocol packets (7dd5169)
  • nbt: replace hardcoded float literal with std::f32::consts::PI in roundtrip tests (d010f0d)
  • nbt: resolve clippy same_item_push in depth limit test (82fdde2)
  • nbt: use std::f64::consts::E instead of approximate literal (dad11a1)
  • protocol: allow clippy::panic in registry tests (13bdf3c)
  • protocol: correct chat wire formats and command packet types (a5c71ee)
  • protocol: correct ClientboundKeepAlivePacket ID from 0x16 to 0x2C (19cd891)
  • protocol: correct configuration state packet IDs (6ebfd53)
  • protocol: correct SetEquipment packet ID from 0x68 to 0x66 (79b65ee)
  • protocol: encode display name in PlayerInfoUpdate packets (b8a8550)
  • protocol: preserve registry entry order with IndexMap (db8c9c7)
  • protocol: resolve clippy and formatting issues (5408ce5)
  • protocol: send tag registries with empty entry lists (8eb081d)
  • protocol: update packet IDs for chat and motion packets (d6b10f7)
  • protocol: use action-specific field names for ClickEvent serialization (c5ecf49)
  • protocol: use holder encoding for dimension type in Login packet (a155977)
  • protocol: use snake_case field names for chat component serialization (332cd8f)
  • protocol: validate compressed packet size against 2 MiB limit (61452ff)
  • resolve all cargo clippy warnings (c2ecabe)
  • resolve all cargo clippy warnings and errors (d83f2c7)
  • resolve all CI failures (advisories, licenses, Windows tests) (8af3e9f)
  • resolve all clippy warnings across workspace (3193b02)
  • resolve broken relative links and stale references (d6abd15)
  • resolve clippy warnings across workspace (0024842)
  • resolve dead link and align lint rules with copilot instructions (14164dd)
  • server: 11 vanilla compliance bugs across movement, protocol, login, and blocks (bb757cc)
  • server: accept custom payload packets during configuration (0492cad)
  • server: add 10s graceful shutdown timeout (12bcb5b)
  • server: add config timeout, teleport resend, and time broadcast clock (9c85b1b)
  • server: add vanilla-compliant chat input validation and suggestion cap (03df964)
  • server: cap player view distance to server config maximum (5277cd8)
  • server: check spawn protection on clicked block, resync both positions (1f4641d)
  • server: chunk persistence, block states, and double-block placement (a88ba3b)
  • server: clean up log format — remove redundant metadata (3a9b6a0)
  • server: clear is_fall_flying when player lands (a85e1c6)
  • server: complete R2 SP4 handler migration — fix decode_packet calls and send_raw patterns (2ee22dc)
  • server: consult gamerules for movement validation (50ed402)
  • server: correct 4 movement handler bugs for vanilla compliance (fe45b39)
  • server: correct eye height for sneaking and game-mode reach distance (ed4075a)
  • server: correct light serialization, tick loop, block interaction, and setblock bugs (7525ecf)
  • server: correct player skin metadata index and spawn centering (f3f7a0a)
  • server: derive hat visibility from model_customisation, broadcast UPDATE_HAT (f03723a)
  • server: duplicate login prevention and chat spam disconnect (a6a6ea4)
  • server: fix 6 block interaction and world persistence bugs (05c4393)
  • server: handle signed commands, per-player feedback, dynamic status, tab list broadcasts (1e673ff)
  • server: multiplayer visibility, item registry, player persistence, and login (94b9feb)
  • server: persist world seed and fix biome deserialization (3499055)
  • server: remove [patch] overrides that break CI (38390be)
  • server: replace expect() with proper error propagation for console thread spawn (d5ab48e)
  • server: resolve 15 vanilla compliance bugs across all subsystems (8883342)
  • server: resolve 6 gameplay bugs from playtesting (b405638)
  • server: resolve 7 gameplay bugs (21c01e6)
  • server: send LEVEL_CHUNKS_LOAD_START after initial chunk batch (f9e3306)
  • server: send player's own entity data for skin parts on join (35bc430)
  • server: vanilla compliance — 10 behavior bugs fixed (2cb905e)
  • server: vanilla compliance — 8 behavioral bugs fixed (acf5110)
  • server: vanilla compliance audit — 12 behavior bugs fixed (a5abfc1)
  • server: vanilla compliance audit — 7 protocol and behavior fixes (e9bcafc)
  • server: vanilla compliance fixes for 10 gameplay bugs (3d8aff5)
  • update repository URLs to reflect new project location (5a9e16a)
  • world: allow unwrap_used in DataLayer proptests (489a625)
  • world: complete R5.2 — add map_color, light_opacity extraction and property tests (ce34ae3)
  • world: correct global palette bit width and improve chunk data structures (f97b34e)
  • world: remove VarInt length prefix from PalettedContainer wire format (fe0f721)
  • world: resolve clippy warnings for CI (b0c3522)
  • world: use checked integer conversions in registry loading (9c65421)
  • world: use vanilla registration order for item and block registries (cee405b)
  • world: validate region file header entries and payload bounds (5f27f3a)

⚡ Performance

  • ci: use native ARM runner instead of QEMU for Docker builds (afbffc7)
  • game: add direction bitmask to BFS light propagation (23a.14) (90f0822)
  • nbt: avoid cloning NbtCompound in from_compound() (c88e19e)
  • world: lazy DataLayer allocation + bulk sky light fill (23a.16) (cb36d39)

🔨 Refactor

  • add architectural review gate and #[non_exhaustive] to error enums (2c61f32)
  • align architecture docs with ADR decisions (4a9894e)
  • apply is_/has_/can_ prefix to all public boolean fields (R3.6) (cdf5f3b)
  • docs: add R5.18 phase for config cleanup and server-tunable constants (b1801b0)
  • docs: update phase document for R5.14–R5.17 planning and verification (475e61e)
  • eliminate duplicate code with macros and generics (d0df1ba)
  • enforce strict lint levels and fix ADR-002/004 violations (R3.1) (86a0611)
  • extract oxidized-types and oxidized-nbt to standalone repos (34fef6c)
  • game,protocol: fix fmt, clippy, and decode correctness (eed9238)
  • game,server: rewrite Phase 19 world ticking for vanilla 26.1 parity (2002b14)
  • game: consolidate AABB into oxidized-protocol (fdeb62e)
  • game: declarative op permission on commands, console bypasses (9e8cfcb)
  • game: deduplicate command types and split context module (2a4c35b)
  • game: extract argument dispatch helpers in command context (af196c8)
  • game: extract command registration helpers (R5.9) (d876400)
  • game: improve Phase 23 flat world generation (917e939)
  • game: move command implementations to commands/impls/ (86291c6)
  • game: replace embedded command engine with oxidized-commands dependency (214728a)
  • game: replace embedded inventory types with oxidized-inventory dependency (808d586)
  • game: replace hardcoded physics properties with registry data (R5.5) (5d51801)
  • game: split context.rs into string_reader, argument_parser, argument_access (2f854b3)
  • game: use lighting engine for flat world sky light (ce751e7)
  • implement architectural refactoring for ADR compliance and code quality (fb14043)
  • nbt,world,game: R6 small wins — eliminate localized duplication (bc19739)
  • nbt: complete Phase R3 — split serde.rs, rename should_authenticate (040391f)
  • phase 1 lifecycle retrofit — structured logging, unknown key preservation, 22 new tests (232be1f)
  • phases: update R5 milestones and unify data extraction architecture (18cc885)
  • prompt: rename vanilla-compliance-fix to vanilla-compliance-audit (da6f070)
  • protocol: eliminate type/codec boilerplate with declarative macros (b189308)
  • protocol: extract packet codec helpers & roundtrip test macro (R5.8) (d9770da)
  • protocol: extract TextColor, ClickEvent, HoverEvent from style.rs (bf55a64)
  • protocol: fix clippy warnings and fmt in chat module (06e3f2d)
  • protocol: group connection, compression, crypto into transport/ (49eef4f)
  • protocol: remove per-packet error types and inherent methods (R2-SP5) (0a24748)
  • protocol: replace extracted modules with re-exports (5993dc6)
  • protocol: split component.rs into JSON and NBT serialization modules (4fa1487)
  • protocol: split serverbound_move_player into 4 Packet impls (4ff1536)
  • protocol: standardize packet decoder error handling (R5.10) (1e4f306)
  • remove facade re-exports, switch to crates.io deps (a8b6b17)
  • remove phase references from test section comments (00481fc)
  • replace magic numbers with named constants (R5.13) (ac3baf0)
  • replace server.properties with TOML configuration (d962f09)
  • server,world,game: break down long functions & reduce nesting (d559c23)
  • server: config cleanup — remove Java leftovers & extract hardcoded values (b490ee5)
  • server: decompose oversized structs (R5.11) (9a677f2)
  • server: enrich logs across all severity levels (e859800)
  • server: group cli, logging, console into app/ module (c038113)
  • server: harden Phase 22 block interaction (9053864)
  • server: move tick loop to dedicated OS thread (ADR-019) (0d0f7c1)
  • server: replace manual encode/decode with send_packet and decode_packet (00db68b)
  • server: replace NoopServerHandle with Weak<Self> self-ref (251462f)
  • server: replace string-based block categorization with flags/tags (R5.4) (e4a69db)
  • server: split config.rs into config/ module directory (3a8dc9a)
  • server: split network.rs into network/ module tree (3854ea1)
  • server: split oversized play/mod.rs and block_interaction.rs (R3.5) (845bc21)
  • types: deduplicate ChunkPos into oxidized-types crate (dad5201)
  • world,server: improve Phase 20 world saving implementation (a8463cd)
  • world: compile-time item ID codegen (R5.7) (e215b14)
  • world: enrich BlockStateFlags with data-driven block properties (R5.1) (e5c9ee2)
  • world: extract palette wire-format helpers to palette_codec module (0507a9d)
  • world: replace embedded registry with oxidized-registry dependency (9c7a1de)
  • world: replace hardcoded biome resolution with registry lookup (R5.6) (37bd2d0)
  • world: replace runtime block registry with build.rs codegen (becabb7)

This PR was generated with Release Please. See documentation.

@github-actions github-actions bot requested a review from dodoflix as a code owner March 22, 2026 20:01
@github-actions github-actions bot force-pushed the release-please--branches--main--components--oxidized branch 19 times, most recently from c4598ca to 766e84e Compare March 26, 2026 21:38
@github-actions github-actions bot force-pushed the release-please--branches--main--components--oxidized branch 8 times, most recently from 928afe9 to ab185f2 Compare April 2, 2026 17:18
@github-actions github-actions bot force-pushed the release-please--branches--main--components--oxidized branch from ab185f2 to ab704df Compare April 2, 2026 22:58
@github-actions github-actions bot force-pushed the release-please--branches--main--components--oxidized branch from ab704df to eef9d52 Compare April 2, 2026 23:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants