Changelog

What shipped, day by day.

120 commits over the last 8 days, generated from the repository at build time (10/23/2026). Studio Voice and 4K streaming are landing in this window and are labelled “shipping this week” on the features page until verification completes.

  1. Friday, September 25, 2026

    7 commits

    • marketingFinish replacing the owner's photos with studio shots. c71df5e
    • webReplace owner photos on the marketing site with commercial product stills. 97a1793
    • studioList the show's cameras on a guest tile before the device list arrives. 9dd8bbf
    • studioAssign a video source to each guest tile. 073c661
    • studioStop compositing idle Program at 4K. b1eb7fe
    • portalIn-app notification for staff replies. SupportUnreadProvider 2bfb729
    • supportUnread tracking for the portal. SupportTicket gains lastStaffReplyAt c5592a2
  2. Thursday, September 24, 2026

    3 commits

    • docsSUPPORT.md — ticket model, status semantics, portal/admin routes, audit actions, e-mail behaviour, tests; README index line 0e4b5cd
    • support uiThe portal now has a real ticket system 8c18de0
    • supportReal ticket threads on the API. SupportTicket gains category / assignee / clientKey a41be5e
  3. Tuesday, September 22, 2026

    35 commits

    • webPrime look on the billing surfaces d2b9ea3
    • themeLift --sx-dim to #8290b6 so fine print clears WCAG AA (≥4.5:1) on cards; placeholder follows 48b184d
    • docsDESIGN.md — the prime-look visual system (tokens, old→new mapping, component inventory, fonts + OFL licensing, how to style a new page);… db6b474
    • adminPrime-look tokens (navy canvas, sky accent, blue-line cards, gradient buttons, Plus Jakarta Sans self-hosted from public/fonts 4e8f16e
    • web + shared themeThe 'prime look' from streamix-studio.html 00d7e90
    • webApi.me() is typed as the User itself (GET /v1/me is not wrapped) 2cf7e85
    • generalGuest checkout — the pricing page's 'Get <plan>' no longer needs an account first. 359cc28
    • apiGlobal error envelope for pre-handler failures 87a8e4f
    • checkout for signed-out visitors/pricing 'Get <plan>' answered a raw 401 ('Authentication required') when nobody was signed in 6cbabd6
    • docsBILLING.md — LIVE since 2026-09-22 (account, restricted key, Managed Payments requirements, live product/price/webhook/portal ids,… a437a4f
    • desktopPlan cards show 'Current' over 'Most popular' when both apply 215214e
    • stripeSDK v18 / API 2025-08-27.basil (the live account runs Managed Payments, which refuses the acacia version) 0affa19
    • stripe syncSet a product tax_code (STRIPE_PRODUCT_TAX_CODE, default txcd_10103000 SaaS) 63ee310
    • billingAccept Stripe restricted keys (rk_live_ / rk_test_) alongside secret keys in the mode matrix, Sync to Stripe and admin settings 170df49
    • billingInvoice.payment_failed only marks the subscription the invoice belongs to past_due f1ab0c9
    • generalServer/.env.example: BILLING_MODE, STRIPE_PUBLISHABLE_KEY, STRIPE_PORTAL_CONFIGURATION_ID 8c5be86
    • docsBILLING.md (modes, money path, current test-mode state with Stripe ids, flip-to-live runbook), PRICING.md Stripe section + README index 5aaf3f9
    • adminLoad Space Grotesk / Manrope via a stylesheet link instead of next/font/google 2574f8f
    • billingExplicit modes — resolveBillingMode(): live 6e30008
    • desktopPush the plan catalogue to the renderer when it arrives after the boot snapshot 86c39ce
    • desktopPlan catalogue cache is stale when it carries a retired slug or zero prices (fetched from a pre-deploy API) ae95779
    • seedProduction never creates the dev admin implicitly 10604c5
    • generalAdmin + portal redesign from streamix-dashboard.html, website pricing from the API, docs/PRICING.md acbb36b
    • plansNo Free tier, prices are data 88b5d0e
    • statsTop-bar CPU chip no longer pinned at 0% e7162dd
    • updaterElectron-updater's autoUpdater is a lazy getter behind CJS/ESM interop 14c17b3
    • web/download React #418 fixed 0ac4374
    • desktopProduction hookup — licence client defaults to https://api.streamixstudio.com / https://streamixstudio.com with the production Ed25519… ff1029e
    • deployHTTP→HTTPS redirect + security headers (HSTS, nosniff, X-Frame-Options, Referrer-Policy) in the ea-nginx includes for streamixstudio.com… d21fa9a
    • docsRecord commit id 347aa26
    • serverUnconditional PM2 entry (dist/server.js f3f6688
    • serverProduction-safe BILLING_DISABLED mode (checkout 503 BILLING_COMING_SOON, webhook not mounted, prod requires sk_live or the flag,… 5b806ea
    • compositorNo 'SIGNAL LOST · stalled' badge during a Direct recording 0b2fe15
    • audioThe poisoned built-in mic repair no longer lands on a silent virtual device 692aaae
    • deckA node-hid read error no longer reaches uncaughtException 2696495
  4. Monday, September 21, 2026

    55 commits

    • overlaysBlank-kit plates load in the packaged build 7e37055
    • docsHostinger/VPS inventory and additive deploy plan for streamixstudio.com 4dfa4a0
    • testsDirect-mode seam — the full ffmpeg command with 4K HEVC video args + the Studio Voice -af 5ac4af4
    • general4K streaming (3/3): verified on this Mac + fixes from the loopback runs d23e5c2
    • docsDEPLOY.md (VPS + Hostinger layout, env tables, DB choice incl. Postgres switch, Ed25519 key ceremony, Stripe live webhook, exact… a00da57
    • webEvery feature on the site c8ef967
    • preflightNoise-floor row says it measured a quiet 1.2 s (stay silent while pre-flight runs) 6bc3001
    • docsAUDIO.md — Studio Voice chain (what each stage does, what runs where, latency + delay compensation, what is preview-only, measured… 9ef6f44
    • audioStudio Voice tuning on the user's room d361e80
    • serverBrowser cookie sessions (portal + admin), full portal + admin route set (customers · licenses · devices · subscriptions · payments ·… cb5c7ff
    • audioStudio Voice — loudness rider only rides speech f47d5b8
    • editorStudio Voice in the Audio panel 028f3c2
    • audioStudio Voice live — 'streamix-voice' AudioWorklet 3e3d0ba
    • general4K streaming (2/3): renderer e3e3451
    • audioStudio Voice main + Direct mode 5348d5e
    • general4K streaming (1/3): shared model + main pipeline 7947063
    • audioStudio Voice — ffmpeg denoise = arnndn (leavened-quisling model, best of the five on the user's room: −11 dB vs −7 for the others) +… fb223a9
    • audioStudio Voice shared spec + DSP 860a6c5
    • docsWizard SFX path — resolveSfxMedia + mergeMedia, red sfxSkipped lines e52a1e6
    • wizardsMergeMedia for the SFX set (relinked items replace offline ones), red SFX lines in both report steps 8b87c40
    • polish sfxFix silent cues — the editor pool remuxed non-Matroska media with a hard '-map 0:v:0', so audio-only files 4392d6b
    • auto edit one flowVerified on Sequence 1 (v3) 4782f68
    • auto editPolish + Deliverables in one flow 5c61917
    • deliverables + polishVerified on the user's YouTube 6f9bad3
    • deliverables + polish uiDeliverables panel (toolbar button + Export dialog tab 491de1a
    • auto edit → youtubeExact product on screen by default 22c1b4f
    • mographSix template families (Bold Tech · Clean Editorial · Broadcast Ident · Neon Night · Minimal Serif · Podcast) with intro / outro / end… 4374993
    • deliverablesModel (per-format views on a master: format · reframe · duration · captions · graphics · safe zone · LUFS · codec), reframe math (window… 28ae504
    • auto edit → youtubeVerified manufacturer gallery scrape (Shopify JSON, JSON-LD, srcset, sitemap), EXACT tiering, exact-first inserts 89f5ced
    • docsAuto edit → product photos, Generate with AI, swap / search-again flow, enrichment, what needs keys 326b12a
    • auto editDebug-bridge AI status override for packaged smoke runs a3fe542
    • auto edit → youtubeClip.meta.broll provenance for Swap B-roll, Search-again round trip, product photos per detected product, Generate-with-AI section 78aedc9
    • docsAI_PROVIDERS — Higgsfield API findings (real, integrated), OpenAI image edits + structured outputs, Sora deprecation (not integrated),… ade2587
    • ai providersKeep the preload zod-free (channel names in shared/ai/channels.ts) ef3e6f9
    • editorReplace / edit media docs (meta shape, search-again event, shortcuts), group hidden for a lone linked pair, tests 12f985c
    • ai providers60 tests (key roundtrip via mocked safeStorage, HTTPS client retries/timeouts/redaction, OpenAI edit form + structured outputs,… 070efd5
    • editorReplace / edit media — Replace with clip (match in · fit · keep motion · linked audio), Replace footage relink, Swap B-roll picker +… dcfe0e3
    • ai providersSettings → AI Providers panel (keys via safeStorage, real test connection, model pickers, spend cap + usage meter, offline toggle) and… 90a9069
    • ai providersShared registry (OpenAI · Higgsfield), safeStorage keys, HTTPS client with backoff + error taxonomy, OpenAI image edits / structured… 8d24a6a
    • docsAuto edit test count 8e65941
    • auto edit → youtubeManufacturer URL applies to the product topic only; skip logos / tiny thumbnails on official pages 6d84f0d
    • auto edit → youtubeGoogle-style robots.txt (wildcards, $, Allow precedence), exact alias scan, optional manufacturer images in the edit, docs + README 2a76e7d
    • auto edit → youtubeProduct hint (corrected name + brand + category + aliases) folded into the detected topics with fuzzy spoken-name matching, trusted… 299adf8
    • auto editTeaser keeps the sentence tail, B-roll ranking penalises pets/gags and rewards ≥2000px originals, bigger title card 7f35017
    • auto edit → youtubeStills probe as images (no remux), title matte under the title, product-aware teaser, lone-brand title relevance, dedupe picks across… 17f190a
    • tests16:9 is a known auto-edit format 6c323c3
    • auto edit → youtubeTopics/products extraction, chapter segmentation, web B-roll provider layer e4ab090
    • docsAuto Reels — 2026 trend brief, pipeline, styles, caption looks, gating, verification; README + EDITOR tier row 3871f5a
    • auto reelsSubject-fill zoom + damped punch-ins, word-aware sliver merging, fitted hook titles; export render waits for cold decoders and warms the… c088726
    • auto reelsWizard dialog + gradient toolbar button, renderer analysis pipeline 8088abd
    • auto reelsShared engine (words, cuts, beats, reframe, safe zones, caption + edit styles, plan builder), karaoke caption model + painter, whisper… 6371158
    • fix editor exportRender the requested range, not the head of the timeline 4ee41da
    • fix editor exportNever stream-copy footage that is not H.264 at the sequence size / rate ad9bbe3
    • generalAdd a CDP smoke that proves speed changes keep the teleprompter script. a886cc2
    • generalStop speed changes from wiping the teleprompter script. 295a297
  5. Sunday, September 20, 2026

    2 commits

    • generalKeep the teleprompter preload zod-free and scroll from the shared clock. 6fb4239
    • generalAdd a dedicated Elgato teleprompter with operator desk and talent window. a2daad9
  6. Tuesday, September 15, 2026

    2 commits

    • fix camera rematchRebind by label only, do not steal Continuity onto the MacBook bb9c37f
    • fix live cameraFall back from stale device/angle poses instead of a black layer b3fa637
  7. Monday, September 14, 2026

    6 commits

    • fix editor timelineNLE playhead and even filmstrip 6479019
    • polish editor rulerStronger playhead, hover chip, played fill 70a5208
    • fix editor ruler scrubPause, stick playhead, coalesce seeks fba4035
    • camera anglesCDP smoke harness, debug bridge, pointer-capture guard, docs 24c7a14
    • camera anglesInspector UI, editor expand-virtual-angles, tests eb5be4f
    • camera anglesModel, persistence, motion runtime, actions, deck/OSC/hotkeys bf3748e
  8. Sunday, September 13, 2026

    10 commits

    • generalExpand blank-kit theme variants for key overlay templates. 303eeec
    • generalAdd ready-made blank kit overlay templates for one-click use. 2b7b8b0
    • generalAdd Overlay/Lower Third builder panel and asset library. 90f1f43
    • generalAdd blank overlay kit, themes, and shared asset model. b8ada95
    • generalFix Direct recordings missing Takes and Continuity 30→60 chop 0d23244
    • generalFix Direct mode injecting ~100ms silence every ~0.9s on Continuity+DJI c7d9556
    • generalFix DJI Direct mic selection and unstick silent MacBook default 3f4da20
    • toolingCDP harnesses for Live Studio transitions 56b0328
    • generalFix Live Studio takes hard-cutting instead of running the transition dc89d2a
    • pre-flightMeasure the microphone, not just the camera 28544ee