Skip to content

v1.4.0 — Idiom Modernization + Forum Localization Fix

Choose a tag to compare

@ABCrimson ABCrimson released this 30 Jun 00:49
14c902a

This release is an idiom-modernization follow-up to v1.3.0's push-to-newest dependency sweep: code is rewritten to the newest idioms of each already-pinned dependency, all behavior-preserving — with one genuine user-facing fix. The pre-push gate (typecheck, lint, build) and tests are green.

Bug fix

  • Forum now displays in your selected language. Post view counts, upvote counts, and relative timestamps were being formatted with the runtime default locale rather than your active one, so they rendered incorrectly in all 7 non-English locales (ru, es, uk, de, fr, ja, zh). All six forum components now format through next-intl's useFormatter, which binds the active request locale automatically — making the bug structurally impossible to reintroduce. Number, relative-time, and date output is otherwise unchanged, and relative times are now hydration-stable.

Behavior-preserving modernization

Everything below is an idiom upgrade with no functional change:

  • Zod 4 — top-level format helpers (z.url(), z.uuid()) and z.ZodType.
  • motion — framer-motion imports moved to the mandated motion/react entry (93 specifiers, 92 files).
  • Tailwind v4bg-linear-to-*/oklab gradients (byte-identical oklab interpolation) and size-* shorthand.
  • Prisma — dropped three GA'd preview features; kept only the still-required partialIndexes.
  • React 19.3useEffectEvent adopted where it genuinely fits, eliminating two dependency suppressions.
  • shadcn/ui — the current data-slot convention added across all standard UI primitives (additive only).
  • Hono — all three Cloudflare Workers migrated to the idiomatic zValidator middleware, with byte-identical 400 responses.
  • TS7-forward — the advisory tsgo (TypeScript 7 native preview) typecheck is green again, scoped past the two packages whose Three.js TSL types the native compiler can't yet resolve.

New under the hood

  • Real Sentry capture — manual error capture, breadcrumbs, error boundaries, and onRequestError now actually report to Sentry (previously console-only), via a code-split adapter.
  • instrumentation-client.ts — replaces the deprecated sentry.client.config.ts, which didn't run under Turbopack, restoring client-side error and navigation tracing in dev.

Full changelog: CHANGELOG.md · Compare: v1.3.0...v1.4.0


🤖 Generated with Claude Code