Skip to content

Friendly error messages + Developer Mode (pattern 06) - #37

Merged
astrapi69 merged 1 commit into
mainfrom
feature/friendly-errors
Jun 29, 2026
Merged

astrapi69 merged 1 commit into
mainfrom
feature/friendly-errors

Conversation

@astrapi69

Copy link
Copy Markdown
Owner

Closes #36

Finishes pattern 06. Production users no longer see raw HTTP detail/stacktraces in error toasts.

  • utils/friendlyError.ts maps an ApiError by status class (404/4xx/409/413/5xx/network) to a calm message, resolved via ui.errors.* keys with English fallbacks (works before an app adds catalog entries -> no i18n-parity churn).
  • utils/devMode.ts + a Settings > About toggle (off by default) flip to the raw technical detail for debugging.
  • notify.error shows the friendly message; the Report issue action still carries the full raw detail + apiError.
  • A non-hook translate() accessor on useI18n lets module-level code (notify/friendlyError) localize without a hook.

Green

tsc clean. ESLint clean. Vitest 124 files / 1207 passed (+8; no component test broke). Build OK. Complexity gate OK.

)

Production users no longer see raw HTTP detail/stacktraces in toasts:
- utils/friendlyError.ts maps an ApiError by status class to a calm message
  (via ui.errors.* keys with English fallbacks, so it works with zero i18n
  setup). utils/devMode.ts + a Settings > About toggle (off by default)
  flip to the raw detail for debugging.
- notify.error shows the friendly message; the 'Report issue' action still
  carries the full raw detail + apiError.
- Non-hook translate() accessor on useI18n for module-level localization.

tsc clean; eslint clean; Vitest 1207 passed; build OK; complexity gate OK.

Closes #36
@astrapi69
astrapi69 merged commit df2a6fd into main Jun 29, 2026
9 checks passed
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.

Friendly error messages + Dev Mode (pattern 06)

2 participants