From 7385f1e4ed5d97c8202d749dac971db978d59353 Mon Sep 17 00:00:00 2001 From: senke Date: Thu, 16 Apr 2026 16:14:54 +0200 Subject: [PATCH] =?UTF-8?q?chore(release):=20v1.0.5=20=E2=80=94=20hardenin?= =?UTF-8?q?g=20sprint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Seven targeted fixes to the register → verify → play critical path before public opening. Each landed in its own commit with dedicated tests; this commit just rolls VERSION forward and captures the rationale in the changelog. Summary of what's in this release: * Fix 1 — Player muet: /stream endpoint + HLS default alignment * Fix 2 — Email verify bidon: real SMTP + MailHog + fail-loud in prod * Fix 3 — Marketplace gratuit: HYPERSWITCH_ENABLED=true required in prod * Fix 4 — Redis obligatoire: REDIS_URL required in prod + ERROR log on in-memory PubSub fallback * Fix 5 — Maintenance mode DB-backed via platform_settings * Fix 6 — Hourly cleanup of orphan tracks stuck in processing * Fix 7 — Response cache bypass for range-aware media endpoints (surfaced by the browser smoke test; prevents Range/Accept-Ranges strip and JSON-round-trip byte corruption on /stream, /download, /hls/ and any request with a Range header) Parked for v1.0.6 (🟠/🟡 audit items + smoke-test ergonomics): Hyperswitch refund→PSP propagation, livestream UI feedback when nginx-rtmp is down, upload size mismatch (front 500MB vs back 100MB), RabbitMQ silent drop on enqueue failure, SMTP_HOST ergonomics for `make dev` host mode, creator-role self-service onboarding for upload. Co-Authored-By: Claude Opus 4.6 (1M context) --- CHANGELOG.md | 176 +++++++++++++++++++++++++++++++++++++++++++++++++++ VERSION | 2 +- 2 files changed, 177 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ede7b5b9f..44aba949d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,181 @@ # Changelog - Veza +## [v1.0.5] - 2026-04-16 + +### Hardening sprint — seven critical-path fixes before public opening + +Audit follow-up on the `register → verify → play` critical path. The app was +functional on the surface but broken underneath: the player was silent, emails +weren't really sent, the marketplace gave products away in production, the +chat silently de-synced across pods, maintenance mode was per-pod only, +orphaned tracks accumulated forever in `processing`, and the response cache +was corrupting range-aware media responses. Seven targeted fixes, each with +its own commit, its own tests, and no behaviour change outside scope. + +#### Fix 1 — Player muet (`veza-backend-api` + `apps/web`) + +- New `GET /api/v1/tracks/:id/stream` handler in + `internal/core/track/track_hls_handler.go`. Serves the raw file via + `http.ServeContent` — `Range`, `If-Modified-Since` and `If-None-Match` + handled for free, so `