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.
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
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
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
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
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
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
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
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