# MineIndex Minecraft compatibility — 2026-10-01

The previous 2026-09-23 matrix executed only PandaSpigot 1.8.8 ownership ping/startup and the OpenJ9 shared core. Paper, Bungee and Velocity were explicitly untested.

Only the exact PASS rows below are executed runtime claims. The three final JARs reproduce byte-for-byte after a clean build. All 42 Gradle tests pass.

| Platform | Exact JVM | Collector | Status |
|---|---|---|---|
| PandaSpigot git-174, Minecraft 1.8.8 | Temurin HotSpot 8u452-b09 | Bukkit | PASS |
| Paper 26.2 build 129, git 9240f58 | Temurin HotSpot 25.0.4.1+1 | Bukkit | PASS |
| BungeeCord 26.1-R0.1-SNAPSHOT build 2100, git 5430e4a | Temurin HotSpot 21.0.12.1+1 | Bungee | PASS |
| Velocity 3.4.0-SNAPSHOT build 563, git 30227934 | Temurin HotSpot 21.0.12.1+1 | Velocity | PASS |
| IBM Semeru 17.0.20.15, OpenJ9 0.61.0 | OpenJ9 17.0.20.1+1 | Shared Java 8 core | PASS; no full server claim |
| Other Bukkit/Spigot versions or forks, newer Paper versions | Not executed | Bukkit | UNTESTED |
| Folia | No support descriptor; no runtime attempt | Bukkit | UNSUPPORTED |

Every game-server/proxy PASS row covers genuine process startup, status ping containing the configured MI2 proof, real network play login, leave, reconnect merging, a 503 receiver outage, exactly two durable queued events, graceful stop/restart replay and exit 0. Proxy tests use two real PandaSpigot 1.8.8 backends with legacy player forwarding, switch lobby → backup → lobby via the proxy command, and verify one logical proxy session. Neither backend runs a collector. Ownership-only configurations with missing analytics credentials separately pass real Paper/Bungee/Velocity pings; unpatched Bungee failed the same test.

The final Java collectors reached the actual canonical Next player-events route in an isolated schema 16 fixture through an exact-body forwarding recorder: 16 accepted reports, 8 closed sessions, 2 fictitious players, 0 foreign-key violations. UUID/nickname storage is encrypted, owner summary totals 23 connected seconds and cross-owner access is denied. No production database or production game endpoint was used. The receiver loaded the final canonical route, including authenticated attempt/work quotas and bounded hourly expansion. Backend tests additionally prove Floodgate-style version-zero UUID and dot-prefixed nickname acceptance, conflict rejection, compact long-session totals and rejection before transactions when aggregate work exceeds budget.

## Final artifacts

| Artifact | Bytes | SHA-256 |
|---|---:|---|
| [mineindex-bukkit.jar](mineindex-bukkit.jar) | 53062 | 29b02406ebb40112782c267423b4440c09d5e262256fb4b5ab87feac29aa4419 |
| [mineindex-bungee.jar](mineindex-bungee.jar) | 53816 | 8c62ac6515b3c277a5ad84afe466ac791ad32d45e96651d6bc73aa8bde6defef |
| [mineindex-velocity.jar](mineindex-velocity.jar) | 54312 | 8ddb4db48bef6c0424c1e9de4a7f3a3c9e1eec66a5654ec6cfd5743ca625ab48 |

Bukkit and Bungee contain 32 classes at class-file major 52. Velocity contains 31 shared-core classes at major 52 and one adapter at major 61.

## Fixed regressions

- The Bukkit/Bungee ownership ping listener is registered before analytics credential validation, allowing the verified-owner setup sequence to obtain its first ownership grant.
- Connected time excludes reconnect downtime. The red regression expected 20 seconds for two 10-second connections separated by 300 seconds and observed 320 before the fix.
- Crash recovery closes a disconnected session at its observed quit, rather than a later checkpoint. The red regression expected 10 seconds and observed 100 before the fix.
- Snapshot v2 preserves accumulated connected duration and retains v1 loading. Historical reconnect gaps missing from v1 cannot be reconstructed.
- HTTP 400/409/413/422 responses preserve exact evidence in durable quarantine rather than deleting rejected reports. The work_budget header has a clear quarantine reason; later valid reports continue. HTTP 429 retains pending evidence and backs off.
- Startup recovery preserves the crash snapshot if queue capacity or I/O prevents queuing a close. Stable recovered report IDs and bytes make retries idempotent; successful append removes only that checkpoint. Free capacity or increase the configured bound and restart before collection resumes.

## Evidence and limits

Detailed runtime logs and the canonical database receipt are retained in the source repository under integrations/minecraft/compatibility/evidence/2026-10-01. Network scenarios use fictitious offline clients and a 3-second grace to keep the run bounded. The exact five-minute reconnect boundary is checked by unit tests and the OpenJ9 core run. No online-auth account login, actual Bedrock/Geyser/Floodgate runtime, AFK subtraction, long-duration load test or every historical fork/version claim is made. Protocol acceptance for a Floodgate-style UUID is not a Bedrock runtime claim. HTTP 429 uses jittered exponential backoff; Retry-After is currently not honored. One report is emitted per event. A single long session can retain full duration with incomplete hourly coverage; unusually expensive multi-event reports are quarantined if rejected. Quarantined evidence counts against the queue bound and needs operator attention when capacity fills.

Paper 26.2 login used the installed minecraft-protocol 1.68.0 26.1 packet serializer with the real status-advertised protocol 776 handshake. The server logged genuine play joins; this is a collector runtime test rather than a claim of complete 26.2 client support. Paper logs a legacy api-version warning for the intentional 1.8-compatible adapter; Windows OSHI counter warnings are unrelated to the collector. All final runtime processes stopped cleanly.

Official requirements and artifacts: [Paper Java requirements](https://docs.papermc.io/paper/getting-started/), [PaperMC downloads service](https://docs.papermc.io/misc/downloads-service/), [Velocity startup](https://docs.papermc.io/velocity/getting-started/), [Bungee build 2100](https://ci.md-5.net/job/BungeeCord/2100/), [Semeru 17.0.20.15](https://github.com/ibmruntimes/semeru17-binaries/releases/tag/jdk-17.0.20.15), [Folia compatibility requirements](https://docs.papermc.io/paper/dev/folia-support/). Paper/Velocity downloads matched publisher SHA-256; Bungee is fingerprinted from its exact official CI artifact. Runtime JAR SHA-256 values are in the manifest.
