Skip to content

Make every create-error legible; walk the provider matrix (#44) - #58

Merged
CaYatur merged 1 commit into
mainfrom
fix/create-error-legibility
Jul 24, 2026
Merged

Make every create-error legible; walk the provider matrix (#44)#58
CaYatur merged 1 commit into
mainfrom
fix/create-error-legibility

Conversation

@CaYatur

@CaYatur CaYatur commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Closes #44. Umbrella close-out for the provider-reliability pass (with #42 and #43).

Context

#42 (installer args-file or runnable jar) and #43 (empty-download guard + first friendly messages) fixed the two concrete failures and hardened the download layer. This PR finishes the umbrella's remaining bullets: no bare error code in the UI, and walk the matrix.

Changes

  • shared/versions.ts — new pure createErrorKey(raw): string | null, the single source of truth for code → i18n key. It covers every error the creation path can throw, audited across core/versions.ts, core/createServer.ts and core/net.ts: no-build / no-download / no-server-jar-for-version / unknown-version / no-*-build, empty-download, Checksum mismatch, HTTP <status>, installer exited, installer-args-not-found, folder-exists, no-provider-for-*. Unknown strings pass through unchanged.
  • CreateViewfriendlyCreateError now just wraps createErrorKey, so both the error toast and the progress label render through one table.
  • en/tr — added errChecksum / errNetwork / errInstaller / errUnsupportedType; reworded errNetwork to cover both "server offline" and "file removed" (a 404).
  • MSMS_SMOKE_WIZARD — (a) a deterministic legibility unit: all 14 audited codes map, an unknown string still passes through; (b) a provider matrix walk: resolve a bogus version for each creatable provider, hard-fail only on a malformed descriptor, and log throw-vs-defer plus whether the thrown code maps.

Matrix walk result (this run)

Every provider is legible for bad input:

Provider Bogus-version outcome
vanilla throws unknown-version (mapped)
forge / neoforge throws no-*-build (mapped)
paper / folia / purpur / velocity / mohist throws HTTP 404 (mapped → network/unavailable)
fabric defers to a well-formed URL that fails legibly at download

No illegible or malformed outcomes. The walk stays inspection (network-dependent); the committed gate is the pure legibility unit + the malformed-descriptor guard.

Verify

  • typecheck, build — pass.
  • MSMS_SMOKE_WIZARD PASS (legibility unit + matrix walk).
  • End-to-end installer runs remain out of scope (need a live toolchain), per the umbrella.

🤖 Generated with Claude Code

Make every create-error legible; walk the provider matrix (#44)

Umbrella close-out for creation reliability. #42 (installer args-or-jar)
and #43 (empty-download guard + first error messages) covered the two
concrete bugs and the download hardening; this finishes the "no bare
error code in the UI" and "walk the matrix" bullets.

- shared/versions.ts: new pure createErrorKey(raw) -> i18n key | null,
  the single source of truth for code->message. Covers every code the
  creation path throws (audited across core/versions.ts,
  core/createServer.ts, core/net.ts): no-build / no-download /
  no-server-jar-for-version / unknown-version / no-*-build, empty-download,
  Checksum mismatch, HTTP <status>, installer exited, installer-args-not-
  found, folder-exists, no-provider-for-*. Unknown strings pass through.
- CreateView: friendlyCreateError now just wraps createErrorKey, so both
  the toast and the progress label go through one table.
- en/tr: errChecksum / errNetwork / errInstaller / errUnsupportedType added;
  errNetwork reworded to cover both "offline" and "file removed" (a 404).
- WIZARD smoke: (a) deterministic legibility unit — all 14 audited codes
  map, an unknown string still passes through; (b) provider matrix walk —
  resolve a bogus version for each creatable provider; hard-fail only on a
  MALFORMED descriptor, log throw-vs-defer + whether the code maps.

Matrix walk result (this run): every provider is legible for bad input —
vanilla->unknown-version, forge/neoforge->no-*-build,
paper/folia/purpur/velocity/mohist->HTTP 404 (all mapped), fabric defers
to a well-formed URL that fails legibly at download. No illegible or
malformed outcomes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
Copilot AI review requested due to automatic review settings July 24, 2026 15:48

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@CaYatur
CaYatur merged commit 32ab537 into main Jul 24, 2026
1 check passed
@CaYatur
CaYatur deleted the fix/create-error-legibility branch July 24, 2026 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Harden server creation across the whole version/loader matrix (umbrella)

2 participants