Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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<String, Object>` 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
Expand All @@ -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
Expand All @@ -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

Expand Down
Loading