⚠ BREAKING CHANGES
- api,clientside: version metadata as snapshots, and a dependency named and found
- clientside: the four-verdict result system, with every rule in an editable file
- clientside,grinder,app: drop the headless-browser download route
- modscanning: the scan rewrite — sideness, dependencies, and one scanner contract
✂️ Refactor
- app: Phase 2 and 3 — app layering, the ConfigEditor view-model, the plugin-example suite (72db77a)
- clientside: extract the clientside-mod verification engine into its own module (1b47cba)
- gui: own every coroutine on a component-scoped CoroutineScope (ef4387b)
⏩ Performance
- network, startup, GUI typing, generation throughput and the web query shapes (41498bb)
✨ Milestone
- 9.0.0 — Phase 0 and 1, the characterization baseline and the API decomposition (5fc86aa)
📔 Docs
- close the dokka backlog — 626 undocumented declarations to zero (fdac288)
- KDoc across every module, and the Qodana audit fixes (4153ea1)
🦊 CI/CD
- eleven dependency refs to their latest stable (955ab76)
- one version catalog, real Copy tasks, and a configuration-cache-friendly build (38d9b82)
- the coroutines 1.11 fallout, the Spring Boot BOM, and Kotlin 2.4.10 (c0f8a20)
- move the pipeline from GitLab to Forgejo (e36cafb)
- qodana: the scan starts reading what it reports on, and reaches zero (5ba1baf)
🧪 Tests
- api: ask fish and PowerShell themselves whether the templates parse (ccc1ccf)
- api: pin that no KDoc block comes loose from its declaration (1bb5b86)
- api: the coverage, dead-code and tech-debt pass (515355b)
- frontend: Phase 4 — Vitest, the TypeScript migration and component coverage (5efbfd1)
🚀 Features
- api,grinder: fish start-script templates, continuous grinding, and the script-template matrix (6dde67f)
- api: updating an existing server pack stops being experimental (d6d20f3)
- app: automate clientside-mod request verification, and harden the Actions workflows (8be0954)
- clientside,grinder,app: drop the headless-browser download route (e9eaead)
- clientside: grind one target per Minecraft version-line (21e3234)
- clientside: LOCKED and UNVERIFIABLE, so ERROR means what it says (c4d881e)
- clientside: the four-verdict result system, with every rule in an editable file (d094693)
- grinder: a container-backed daemon that boots every candidate mod (d2a124b)
- grinder: a live dashboard for /status, and the Fabric API and QSL module maps (083ae7a)
- grinder: container identity, /as-properties, graceful shutdown, and the CPU and memory caps (2d489ba)
- grinder: crawl the whole catalog, cache loader installs, and stream live boot logs (6b892ca)
- grinder: one deploy script for the daemon, with --clear and --bootstrap (37707a6)
- grinder: per-attempt boot logs, verdict provenance, and operator-editable boot rules (b322e2b)
- grinder: re-check a crash across versions and loaders, and re-grind what that got wrong (a967ebf)
- grinder: run as a service — home resolution, a systemd unit, an installer and a bind address (d7486e0)
- plugin-grinder: a GUI plugin over the grinder's verdict feed (b7b661f)
🛠 Fixes
- api,clientside: version metadata as snapshots, and a dependency named and found (53a659c)
- api,grinder: a self-extractor anyone can build, and a container engine with an identity (a276a64), closes #679
- api: bypass the ServerStarterJar where it cannot launch Forge (c0c5d41)
- api: the backlog pass — Forge launcher eras, the security-manager flag, the home preference (2d764b1)
- api: write the database URI under the key Spring Boot 4 actually reads (3acc371)
- app: the headless verbs report instead of throwing, and ConsolePrompt (0a4baca)
- app: the modpack upload, check and storage pass, against a real database (a672f13)
- build,ci: publish an actual library, and let the release body travel in a file (1fb65ff)
- ci,clientside: repair the release's Maven publish, and read a published version properly (5eb4c41)
- ci,docker: the Qodana JBR cache, the dind scope, and the container's MongoDB wiring (8f2cca7)
- clientside: publish only a crash that is decisive evidence of sideness (e6e2b71)
- modscanning: the scan rewrite — sideness, dependencies, and one scanner contract (1632cfc)
VirusTotal
ServerPackCreator-9.0.0.jar- https://www.virustotal.com/gui/file-analysis/Y2FiNmRiZmUzZGNkNzBlNWYxNzRiMzE5ZTMzYzFhMzM6MTc5MDYyNjMzNg==serverpackcreator-api-9.0.0-javadoc.jar- https://www.virustotal.com/gui/file-analysis/NGJjNmZhNGVjOWJlNWQ4ZDJjZDJjMDMwZDE2ZDlkOGY6MTc5MDYyNjMzNw==serverpackcreator-api-9.0.0-sources.jar- https://www.virustotal.com/gui/file-analysis/ZGVhNTA5YzgzOGE2NzQ3ZGI5NzliOGI2Mzc3NTJiYzc6MTc5MDYyNjM0MA==serverpackcreator-api-9.0.0.jar- https://www.virustotal.com/gui/file-analysis/NWMyMTE4ZTgxNWFkNWQ2ZmZhNGE0NTZmYjVkY2RkZGE6MTc5MDYyNjM0Mw==serverpackcreator-app-9.0.0-javadoc.jar- https://www.virustotal.com/gui/file-analysis/ZjA5ZDFlZjkyYTQ4YmJhYWU2YmRlMGIzZGRlYjQxOTU6MTc5MDYyNjM0Ng==serverpackcreator-plugin-example-9.0.0.jar- https://www.virustotal.com/gui/file-analysis/MzAyNTAwMWZiY2IyMTcxNDc0YmFjOWRiNTkyMmJjMzg6MTc5MDYyNjM0Nw==ServerPackCreator-9_0_0-Installer-Linux-amd64.sh- https://www.virustotal.com/gui/file-analysis/MzQ4ZjczOGVhMzM4ZjRhYzkwM2Y0ZmRiNTY0ZGZhNzg6MTc5MDYyNjM1NQ==ServerPackCreator-9_0_0-Installer-Mac.dmg- https://www.virustotal.com/gui/file-analysis/ZmQ1NzQ0MzBmNDdjOTVlY2EzNjljZjRhOGIyNDEyODM6MTc5MDYyNjM2NA==ServerPackCreator-9_0_0-Installer-Windows-x86_64.exe- https://www.virustotal.com/gui/file-analysis/MjMxMTI4MzFhZWVkNDI2M2M5MjA4N2U5NmI4ZTc3MGY6MTc5MDYyNjM3MA==