Skip to content

v2.66.0

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Jul 16:04

2.66.0 (2026-07-18)

Bug Fixes

  • email: tighten input validation (ca45177)
  • password reset flow - when passwords arent matching (89fb3fa)
  • upload: partNumber must decode from a string in multipart bodies (1b19994), closes #187
  • vps: add missing packages/api copy to Dockerfile (9ad0050)
  • vps: address adversarial review findings on music album/track/playlist port (ff48fa0)
  • vps: address adversarial review findings on music entity-links port (4191370)
  • vps: auto-default OTel endpoint to localhost in dev stages (acbf6ea)
  • vps: avatar upload 400 from Schema.File multipart mismatch (6a8d78c)
  • vps: complete resolve HttpApi cutover (Step 6) (88921f5), closes #161
  • vps: confirmInvite as a real HttpApiEndpoint, not a raw route (8f326b0)
  • vps: correct music/albums gap attribution, document middleware ordering (76704a6), closes #189
  • vps: remove no-op type assertion flagged by oxlint (0c402d0), closes #151
  • vps: restore email/UUID format validation and await on newsletter unsubscribe (7157dfe)
  • vps: restore non-empty-string validation on file-manager fields (36983bc), closes #165 #166
  • vps: restore UUID format validation on favorites audioId/showId (72d40fc)
  • vps: restore UUID validation on shows subscribe/unsubscribe id param (a5c19d0)
  • vps: tighten email validation to match zod's z.email() (bf6b12f), closes #170
  • vps: use real URL parsing for spotify enrich endpoint (b2dbadb)
  • www: convert Date fields before sending artist metadata updates (df07f39), closes #184
  • www: make 'Resend email' link visibly clickable (77cdbe1)
  • www: wire SocialLinksCard into the actual profile route (8a7eb11)

Features

  • api: scaffold packages/api with health group contract (c9b5235)
  • email: port email vertical slice (36913ab)
  • vps: add unused Effect toWebHandler + Hono fallback (Step 2a) (9899df5)
  • vps: dual-export traces to motel alongside Jaeger (3a59df8)
  • vps: move CORS/rate-limit/logging/Sentry to Effect global middleware, remove HonoFallback (Step 8) (cfb13e8)
  • vps: port admin to HttpApiBuilder.group (Step 6) (b0ec807)
  • vps: port audio group to HttpApiBuilder (step 6) (0539002)
  • vps: port auth middleware to HttpApiMiddleware (Step 3b) (28ffae7)
  • vps: port better-auth route onto the Effect router (Step 2c) (300b58c)
  • vps: port favorites to HttpApiBuilder.group (Step 6) (e82ef4f)
  • vps: port file-manager to HttpApiBuilder.group (Step 6) (54ba078)
  • vps: port health to HttpApiBuilder.group (Step 3a) (bca15fb)
  • vps: port invite to HttpApiBuilder.group (Step 6) (65a091a)
  • vps: port label group to HttpApiBuilder (step 6) (d438195)
  • vps: port music albums/tracks/playlists CRUD to HttpApiBuilder.group (Step 6c) (40873cf)
  • vps: port music entity-links/resolve/scrape/pending-queue (Step 6d) (7d9ad0c), closes #191
  • vps: port music-artists CRUD to HttpApiBuilder.group (Step 4) (18dafca)
  • vps: port music-reminders to HttpApiBuilder.group (Step 6) (5cc0c45)
  • vps: port newsletter to HttpApiBuilder.group (Step 6) (eb1a2a6)
  • vps: port post group to HttpApiBuilder (step 6) (374a480)
  • vps: port profile to HttpApiBuilder.group (Step 6) (095ab24)
  • vps: port release group to HttpApiBuilder (step 6) (1db4dd8)
  • vps: port rss/seo/share routes to plain HttpRouter (Step 7) (24e57e9)
  • vps: port search to HttpApiBuilder.group (Step 6) (d052ce8)
  • vps: port shows to HttpApiBuilder.group (Step 6) (b8c5d91)
  • vps: port spotify to HttpApiBuilder.group (Step 6) (34ea0a5), closes #165 #166 #167
  • vps: port upload + upload-multipart to HttpApiBuilder.group (Step 7) (e3b78d4), closes 175/#184
  • vps: port user group to HttpApiBuilder (step 6) (0fe5c29)
  • vps: swap entry point to Effect toWebHandler (Step 2b) (5454eea)
  • vps: wire newsletter group into routes.ts/api.ts, delete old Hono trio (98f8d47)
  • vps: wire OtlpLive into AppLayer to export traces (732e625)
  • www: add music reminder deletion (92d6dbb)
  • www: add typed HttpApiClient for the music-artists group (7aa6dd0)
  • www: improve auth navigation (4a70fd6)
  • www: replace useAdminArtists' fetcher with the typed client (90b6622)
  • www: self-service social links editor in dashboard (ccb2a38)
  • www: swap admin-group hooks to typed HttpApiClient (step 6b) (35bfb5b)
  • www: swap audio-group hooks to typed HttpApiClient (step 6b) (1779b7f), closes #176 #177 #175
  • www: swap favorites hooks to typed HttpApiClient (step 6b) (c98bc94)
  • www: swap label+release hooks to typed HttpApiClient (step 6b) (150031a), closes 171/#172
  • www: swap music-artist hooks to typed HttpApiClient (step 6b) (fd0cd90)
  • www: swap newsletter hooks to typed HttpApiClient (step 6b) (6843733)
  • www: swap newsletter hooks to typed HttpApiClient (step 6b) (15b4240)
  • www: swap post-group hooks to typed HttpApiClient (step 6b) (9e86ca7), closes #176
  • www: swap resolve slug consumer to typed Effect client (step 6b) (d8ebe7d)
  • www: swap search + profile consumers to typed Effect client (step 6b) (d1179a8)
  • www: swap shows-group hooks to typed HttpApiClient (step 6b) (0c1f9bb)
  • www: swap spotify hooks to typed HttpApiClient (step 6b) (fb238c7)
  • www: swap user-group hooks to typed HttpApiClient (step 6b) (7bce140)
  • www: toast feedback for dashboard profile settings (11b8edd)
  • www: warn when reset-password link is opened with an active session (b71cb61)