compile and test with Java 25 against Purpur API 26.3 build 2651
add a checksum-pinned clean Purpur server lifecycle test for packaged load, enable, persisted role/game/captured-entity state, command handling, and disable
retain the api-version: 1.20 floor and existing runtime/persistence contracts
strengthen packaged JAR exclusions and document the verification boundary
canonical wiki validation: zero errors, one unrelated pre-existing unknown-field warning
Release effect
The conventional fix commit will trigger a patch release after merge to main. Exact merged-source CI, tag, published release, and downloadable JAR remain required before ticket completion. No GitOps or deployment change is included.
## Summary
- compile and test with Java 25 against Purpur API 26.3 build 2651
- add a checksum-pinned clean Purpur server lifecycle test for packaged load, enable, persisted role/game/captured-entity state, command handling, and disable
- retain the `api-version: 1.20` floor and existing runtime/persistence contracts
- strengthen packaged JAR exclusions and document the verification boundary
OpenProject: https://project.dmg.games/work_packages/418
## Verification
- meaningful RED: old-platform distribution assertion failed 1/3 before the update
- `./gradlew clean check jar`: 300 tests (299 ordinary + 1 real-server native lifecycle), zero failures/errors/skips
- tested commit: `755b9e8d03b0d1320fc85b5932541deb6be8e75a`
- tested tree: `cee18f2e67748f862b4d21e9a473ce3142106f2e`
- target base: `8cfee3ce39d1d3b372c06ab75995a74140a30d3c`
- 215 tracked inputs; aggregate SHA-256 `043f6c15d33f9739b370e9463be136e6cb7ec8470f9d2988208f4f1d64fee3a2`
- snapshot JAR: 159 entries / 152 Java 25 classes, no forbidden API/server/ProtocolLib/test payload
- canonical wiki validation: zero errors, one unrelated pre-existing unknown-field warning
## Release effect
The conventional `fix` commit will trigger a patch release after merge to `main`. Exact merged-source CI, tag, published release, and downloadable JAR remain required before ticket completion. No GitOps or deployment change is included.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
api-version: 1.20floor and existing runtime/persistence contractsOpenProject: https://project.dmg.games/work_packages/418
Verification
./gradlew clean check jar: 300 tests (299 ordinary + 1 real-server native lifecycle), zero failures/errors/skips755b9e8d03b0d1320fc85b5932541deb6be8e75acee18f2e67748f862b4d21e9a473ce3142106f2e8cfee3ce39d1d3b372c06ab75995a74140a30d3c043f6c15d33f9739b370e9463be136e6cb7ec8470f9d2988208f4f1d64fee3a2Release effect
The conventional
fixcommit will trigger a patch release after merge tomain. Exact merged-source CI, tag, published release, and downloadable JAR remain required before ticket completion. No GitOps or deployment change is included.