You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 616d1de
Browse filesBrowse the repository at this point in the historyBrowse files
SyntaxLauncher is a modern Minecraft launcher from SyntaxDevTeam, written primarily in Kotlin and developed incrementally from a minimal vanilla launcher into a modular launcher with premium authentication, isolated instances, mod loaders, Modrinth integration, modpacks and diagnostics.
12
12
13
-
The project has implemented a v0.2 Instance Manager, reached **bounded v0.8 Forge/Quilt and v0.9 graphics acceptance**, and completed **v0.10 Modrinth modpack installation** within the documented scope. Official Forge/NeoForge installer smoke tests and three-platform CI packaging pass; the maintainer confirmed private Forge startup and Forge/Quilt mod workflows. Forge remains restricted to Minecraft 1.21.1 / 52.1.20. v0.9 now includes built-in mods/textures/shaders/OptiFine installation and installed-pack controls within the documented compatibility matrix; the maintainer confirmed private v0.9 gameplay acceptance; the broader native/platform matrix remains open. Modrinth modpacks now install into newly prepared games from the built-in catalog. Minecraft Services reconsideration after the first denial, v0.3 real-account acceptance and documented clean-machine Vanilla startup acceptance remain pending. The Kotlin/Compose launcher now connects the offline account, Mojang metadata, verified game preparation, automatic Java runtime installation, metadata-driven LaunchPlan and MinecraftProcessManager to an actual desktop Play workflow. A real clean-machine Minecraft launch is not yet verified.
13
+
The project has implemented a v0.2 Instance Manager, reached **bounded v0.8 Forge/Quilt and v0.9 graphics acceptance**, and completed **v0.10 Modrinth modpack installation** within the documented scope. Official Forge/NeoForge installer smoke tests and three-platform CI packaging pass; the maintainer confirmed private Forge startup and Forge/Quilt mod workflows. Forge now discovers modern V2 builds matching the selected Minecraft version; official reference installation tests also cover 1.21.11, 26.2 and 26.3. v0.9 now includes built-in mods/textures/shaders/OptiFine installation and installed-pack controls within the documented compatibility matrix; the maintainer confirmed private v0.9 gameplay acceptance; the broader native/platform matrix remains open. Modrinth modpacks now install into newly prepared games from the built-in catalog. Minecraft Services reconsideration after the first denial, v0.3 real-account acceptance and documented clean-machine Vanilla startup acceptance remain pending. The Kotlin/Compose launcher now connects the offline account, Mojang metadata, verified game preparation, automatic Java runtime installation, metadata-driven LaunchPlan and MinecraftProcessManager to an actual desktop Play workflow. A real clean-machine Minecraft launch is not yet verified.
14
14
15
15
## v0.11 / v0.12 — diagnostics, repair and release preparation
16
16
17
17
Home → **Game health and repair** scans the selected game's managed files, explains common failures with confidence labels and repairs game files/Java without starting Minecraft or deleting worlds/mods/settings. Copy safe report exports a structured local summary without raw logs, credentials or private paths. Settings now includes a bounded launcher-log viewer, actual data locations and update-channel controls. Launcher logs rotate, sensitive message fields are redacted, downloads check free space and the common JVM dependency graph is locked.
18
18
19
19
Microsoft account acceptance is **deferred while awaiting Mojang AppID approval** (maintainer instruction, 23 October 2026); existing code and explicit offline profiles remain. Implementation work on diagnostics/hardening is separate from final clean-machine, hosted updater, signing/notarization and native gameplay/DPI acceptance. See [v0.11 verification](docs/TESTING_V0.11.md), [v0.12 final gates](docs/TESTING_V0.12.md) and [installation/backup/removal](docs/INSTALLATION.md).
20
20
21
+
## Sequential milestone closure — 24 October 2026
22
+
23
+
[Closure evidence](docs/MILESTONE_CLOSURE.md) reconciles stale implementation tasks and records new inheritance/legacy asset handling, local integrity receipts, optional Modrinth dependencies and matching Forge discovery. [Support matrix](docs/SUPPORT_MATRIX.md) distinguishes native packaging from gameplay: the maintainer confirmed Fabric startup and world saving on Linux and Windows 10 for Minecraft 1.21.11, 26.2 and 26.3; exact Fabric versions were not supplied. [Signing prerequisites](docs/SIGNING.md) remain external. Stable 1.x publication is now blocked by unfinished final gates; this work does not change the product version.
24
+
21
25
## Windows executable branding
22
26
23
27
Stable 0.9.2 configured the application icon only for Linux, leaving the Windows portable executable with the default Compose/Kotlin icon. The subsequent installer preparation configures the repository ICO for the Windows application image too. The published DEV 188.1 portable EXE has all six icon images byte-identical to that ICO. Every new Windows build checks the embedded PE icon before publication. Extract a complete new portable archive to replace an older bootstrap EXE; automatic launcher updates keep the original bootstrap file.
## v0.8 — Forge and Quilt (accepted within the documented matrix)
123
127
124
-
Forge modern installer V2 shares the staged processor engine with NeoForge. The supported Forge pair is **Minecraft 1.21.1 / Forge 52.1.20**; historical V1 and unverified V2 pairs are rejected, including when selected by an existing profile. The maintainer confirmed private Forge startup and Forge/Quilt mod installation/startup on 21 October 2026. No OS list, exact Quilt/mod versions or logs were supplied, so this is not an all-platform or all-version certification. The existing in-app Forge test warning remains as a conservative scope reminder.
128
+
Forge modern installer V2 shares the staged processor engine with NeoForge. Discovery matches exact official Minecraft coordinates, orders builds numerically and validates the selected installer target. Reference installations cover **1.21.1 / 52.1.20, 1.21.11 / 61.2.4, 26.2 / 65.1.5 and 26.3 / 66.1.0**, using metadata-selected Java. Historical V1 remains unavailable. The maintainer confirmed private Forge startup and Forge/Quilt mod installation/startup on 21 October 2026. No OS list, exact Quilt/mod versions or logs were supplied, so this is not an all-platform or all-version certification. The existing in-app Forge test warning remains as a conservative scope reminder.
125
129
126
130
All five modes use the same preparation, Java, launch-plan and process pipeline. The new deterministic coordinator matrix exercises the real adapters against local synthetic metadata and Forge-family processor fixtures; official installer smoke tests and Windows/Linux/macOS packaging also passed in hosted CI. Java requirements come from Mojang metadata; missing requirements fail before downloads. Legacy arguments stay in the shared planner. Full TOML/version-range solving, historical Forge expansion and the broader native/gameplay matrix remain open. See [the v0.8 evidence and support matrix](docs/TESTING_V0.8.md).
127
131
@@ -460,7 +464,7 @@ Loader support is intentionally staged:
460
464
461
465
- Fabric — v0.4
462
466
- NeoForge — v0.7
463
-
- Forge — v0.8 (official SHA-1-verified V2 installation passed for 1.21.1/52.1.20; in-game startup not yet accepted)
467
+
- Forge — v0.8 (official SHA-1-verified V2 installation passed for 1.21.1/52.1.20; private 1.21.1 startup accepted; newer pairs have installer evidence)
464
468
- Quilt — v0.8 (official Quilt Meta v3 profile and instance selection; actual game acceptance pending)
465
469
466
470
Local mod management arrives in v0.5, followed by Modrinth integration and dependency resolution in v0.6.
Copy file name to clipboardExpand all lines: docs/ARCHITECTURE.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -602,3 +602,7 @@ Desktop describeProfile reads bounded folder names and mod inventory off the UI
602
602
## Native installer boundary
603
603
604
604
Native installation is build/release infrastructure (`scripts/package_installers.py`, `packaging/`), independent of Minecraft/account core. Native payloads are derived from the same verified Compose image as portable/update assets. MSI owns only its user application directory, explicit HKCU installer component values and menu shortcuts; Linux packages own only application/menu integration. No installer action enumerates or removes game/account/settings directories. The updater writes newer images only into per-user update storage, leaving package-owned payloads immutable. Native numeric package metadata is derived from canonical `launcherVersion`; macOS alone retains the pre-1.0 compatibility major mapping.
605
+
606
+
## Closure additions — 24 October 2026
607
+
608
+
Version resolution merges only checksum/identity-verified parents from the official catalog, with cycle/depth guards before DTO parsing. Preparation materializes virtual assets and map-to-resources without overwriting differing user resources. Unchecksummed managed libraries use source/size-bound observed digest receipts; they detect local corruption without substituting for upstream authenticity. Modrinth optional branches are explicit, required-only remains the normal catalog path, and declared managed-origin conflicts are rechecked under the instance mutation lock. Official Forge discovery is scoped by exact Minecraft coordinate; metadata selects managed Java for real V2 processor smoke tests. See [evidence](MILESTONE_CLOSURE.md).
Copy file name to clipboardExpand all lines: docs/DEVELOPMENT.md
+9-1Lines changed: 9 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -371,7 +371,7 @@ Home render regressions must scroll both the compact page and its independent se
371
371
372
372
## Simple modded-game setup
373
373
374
-
`ModLoaderRegistry.compatibleGame` performs read-only compatibility discovery for quick setup and the instance creation/settings forms. It preserves a compatible current game; otherwise it intersects provider-supported games with the official Mojang catalog ordered by descending release time, then verifies the newest candidate through the provider. Fabric/Quilt query their game indexes; NeoForge filters using its existing Maven compatibility mapping and Forge retains its verified V2 support matrix. Quilt loader-discovery HTTP 404 means no compatible versions; profile 404 and all other HTTP/network errors remain failures. A 20-second UI deadline and composition cancellation bound discovery. A fallback selects the first (newest upstream) loader entry, including previews, and explains the draft version adjustment in EN/PL/DE; unchanged games retain their selected compatible loader or prefer stable. No game/loader versions are hardcoded by fallback. The older bounded `desktop/ModdedGameSetup.kt` helper remains available to callers without registry discovery.
374
+
`ModLoaderRegistry.compatibleGame` performs read-only compatibility discovery for quick setup and the instance creation/settings forms. It preserves a compatible current game; otherwise it intersects provider-supported games with the official Mojang catalog ordered by descending release time, then verifies the newest candidate through the provider. Fabric/Quilt query their game indexes; NeoForge filters using its existing Maven compatibility mapping and Forge matches exact official Minecraft coordinates for modern V2 builds. Quilt loader-discovery HTTP 404 means no compatible versions; profile 404 and all other HTTP/network errors remain failures. A 20-second UI deadline and composition cancellation bound discovery. A fallback selects the first (newest upstream) loader entry, including previews, and explains the draft version adjustment in EN/PL/DE; unchanged games retain their selected compatible loader or prefer stable. No game/loader versions are hardcoded by fallback. The older bounded `desktop/ModdedGameSetup.kt` helper remains available to callers without registry discovery.
375
375
376
376
`QuickModdedGameDialog` keeps suggestions and optional advanced drafts in memory. An explicit Minecraft selection in quick setup disables automatic fallback until the next loader selection. Instance creation/settings apply the requested automatic compatibility adjustment to drafts; Save/Create remains explicit. Only confirmation calls the existing instance repository; duplicate confirmation is guarded and close/cancel is disabled while saving. Successful creation selects the new profile and opens Local Mods with Modrinth discovery initially visible. No legacy/Vanilla data is copied or modified and existing schemas remain unchanged. Home mode changes reuse saved Fabric/Quilt profiles and restore the previous Vanilla selection within the session. Existing advanced manager and normal mod-management entry points remain available. Tests cover read-only discovery, mode switching, persisted active choice, cancellation/retry, duplicate clicks, profile/world preservation and compact EN/PL/DE setup renders.
377
377
@@ -419,3 +419,11 @@ After `:launcher-desktop:createDistributable`, run `python3 scripts/package_inst
419
419
CI runs `packaging/smoke-{linux,macos}.sh` or `packaging/smoke-windows.ps1` on disposable native runners. Do not run system-package lifecycle smoke scripts on a personal machine: their intended environment is the disposable CI runner. DEB and AppImage launch under Xvfb with isolated XDG locations; RPM installs/removes with real dependency resolution in Fedora 44; MSI checks complete payload hashes, repairs a removed launcher and checks Start menu/removal/data preservation; DMG verifies, mounts read-only and tests application copy/removal. Native focus/gameplay, signing/notarization and prior-version upgrades remain separate acceptance. `python3 -m unittest discover -s scripts -p 'test_*.py'` checks package identity/version bounds, XML payload/registry/menu behavior, executable AppDir arguments/symlinks, and fail-closed publication for missing/corrupt installers.
420
420
421
421
All five installers must be available before `scripts/verify_installers.py --directory <assets> --write` writes the installer checksum inventory. Preview publication uses `--installers` to verify it before creating any tag/release. Existing portable-only publication callers remain compatible; current CI requires installers.
422
+
423
+
## Packaged network and production gates
424
+
425
+
`python3 scripts/verify_native_network.py --image launcher-desktop/build/compose/binaries/main/app/SyntaxLauncher --platform linux-x64` starts the actual image's runtime, fetches public Mojang catalog and checksum-verified metadata, and requires a fresh private completion receipt. It bypasses player/account/updater/UI initialization; the receipt also works for Windows GUI executables without redirected stdout. CI runs the matching platform form before packaging.
426
+
427
+
`SYNTAXLAUNCHER_FORGE_LIVE_SMOKE=1 ./gradlew :launcher-core:test --tests '*ForgeOfficialSmokeTest' --rerun-tasks` uses official game/client/Forge artifacts and Mojang-managed Java for four reference pairs. Optionally set `SYNTAXLAUNCHER_FORGE_SMOKE_TARGETS` to comma-separated `Minecraft:Forge` entries. This is installation acceptance, not graphical game startup.
428
+
429
+
CI runs `python3 scripts/release_readiness.py --enforce-production`: plain Stable 1.x or later requires a fully closed v1.0 checklist. Pre-1.0 and prerelease builds remain testable. See [signing prerequisites](SIGNING.md) before enabling production signing.
0 commit comments