diff --git a/CHANGELOG.md b/CHANGELOG.md index f00d183..06134b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,11 +10,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Modrinth auto-publish via CI with alpha-aware update checking - `HeldItemChange` event for instant hand swap and slot change recording -- Comprehensive test suite (251 tests across 5 phases) +- Comprehensive test suite (279 tests across 5 phases) - Sealed `TimelineEvent` records replacing raw `Map` for type-safe timeline events - Source organization plan executed (Tier 1 + Tier 2 package restructure) -- Enum-based config settings model with centralized, typed config keys (pending merge in #36) -- Versioned config migration with one-time comment backfill for legacy config files (pending merge in #36) +- Enum-based config settings model with centralized, typed config keys +- Versioned config migration with one-time comment backfill for legacy config files +- Frame-by-frame step controls during paused replay; step backward or forward one tick at a time via `⏮`/`⏭` inventory buttons (slots 6–7) +- Variable playback speed controls during active replay; adjust with `⏪ Slower`/`⏩ Faster` inventory buttons (slots 6–7) using configurable step increments +- Current playback speed displayed in the action bar as `[X.Xx]` during playback +- New config keys `Playback.Speed-Step` (default `0.2`) and `Playback.Max-Speed` (default `1.0`) to control speed increment and upper bound - Binary replay storage now uses finalized `.br` archives with crash-safe append-log recording, lazy indexed loading, file/MySQL backend support, filtered export tooling, hidden benchmark/debug diagnostics, preserved recording start timestamps, startup recovery of orphaned temp logs, and temporary legacy JSON compatibility during migration - Replay protection metadata and admin commands for protecting and unprotecting saved replays from manual deletion and retention cleanup - Config-driven replay retention cleanup with duration parsing, scheduled scans, and protection-aware deletion skipping @@ -27,7 +31,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Replay controls getting stuck after replay ends (#27) - Static `Replay.getInstance()` NPEs in test environments (#32) - Deprecation warnings and unused imports cleaned up -- Config migration comment placement and header ordering for generated configs (pending merge in #36) +- Config migration comment placement and header ordering for generated configs - Wrapped YAML pseudo-comment values now load correctly during idempotent config initialization (prevents parse failure on long comment lines) - Config rewrite now deduplicates managed header text and keeps `Config-Version` at the top for cleaner layout - Config migration no longer accumulates extra blank lines between `Config-Version` and subsequent root sections @@ -37,10 +41,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `RecordingStopEvent` now fires synchronously to fix async AntiCheatReplay compatibility - All `printStackTrace()` calls replaced with proper logger calls - CI actions bumped to v4 for Node.js 24 compatibility -- Config settings ownership moved out of `Replay` into a dedicated comment-preserving config manager (pending merge in #36) +- Config settings ownership moved out of `Replay` into a dedicated comment-preserving config manager - Replay sessions now always start at `1.0x` speed; `Playback.Max-Speed` is enforced to a minimum of `1.0` - Generated config output now inserts blank lines between root-level keys/sections for readability - `ReplayManager.deleteSavedReplay` now returns `ReplayDeleteResult`, and the public API also exposes `listSavedReplaySummaries`, `protectSavedReplay`, and `unprotectSavedReplay` +- Config keys for list settings renamed from `list-page-size`/`list-protected-highlight-color` to `List.Page-Size`/`List.Protected-Highlight-Color`; values are auto-migrated on startup +- Updated to Java 26 runtime, Paper 26.1.2, and PacketEvents 2.12.1 +- Expanded Modrinth publishing to include Purpur, Spigot, and Bukkit loaders +- Expanded supported Minecraft game versions in Modrinth publishing (1.21 through 26.1.2) ## [1.4.0] - 2026-04-10