Changelog
What actually shipped.
This history is taken from the CrownVid git repository. There are no formal version tags yet, so entries are listed by commit date.
2026-09-20
- feature · feat: add CrownVid Pulse live market-intelligence foundation. 63a01cc
2026-09-14
- improvement · Use one homepage calculator, dropdown markets, and a local language registry. e074812
- improvement · Harden the dubbing pipeline, minute ledger, PAYG billing, and public site. 9866479
2026-09-13
- fix · fix: emit dubbed-video ready before optional SEO refinement 28b9565
- fix · fix: time out xAI SEO and always return fallback packages 32cac3c
- fix · fix: stop clip-count/SEO from hanging the dubbing pipeline 0b6f095
- improvement · Show purchased minutes separately on the usage page. 5c04b00
- improvement · Apply minute ledger schema during migrate. 5a95b30
- improvement · Wire minute consumption helpers, pack tests, and migration 0008. 0b45e1e
- feature · Add CrownVid minute ledger, extra-minute packs, and Stripe proration upgrades. 280a8ba
- fix · fix: align dubbed speech to original speakers and timing 9eda9b1
- fix · fix: expose annual stripe checkout 3b45d8c
- fix · fix: finalize launch readiness flows e5a9e9a
- fix · fix: harden stripe checkout entitlements 821738d
- fix · fix: complete automatic video processing pipeline f7b4885
- feature · feat: add adaptive distribution learning fafbfaa
2026-09-12
- fix · Fix Stripe price configuration validation 3aac44d
- fix · fix(youtube): publish CrownVid SEO metadata onto videos.insert and verify it 4520ed0
- feature · feat(dubbing): add natural sentence pacing to local Kokoro voices c1d57fe
- fix · fix(stripe): bind CrownVid plans to verified monthly Stripe Prices addf65f
- docs · test(plans): assert verified Stripe Price ID mapping 8a8fe11
- docs · test(billing): lock verified Stripe Price IDs and POST-only checkout 211b585
- fix · fix(pricing): make homepage plan cards explicit Subscribe CTAs into checkout 50f29e2
- fix · fix(checkout): reject GET on Stripe checkout and keep POST as the only start path 4e52b4e
- fix · fix(billing): map CrownVid plans to verified Stripe monthly Price IDs 6de945b
- improvement · Resume Stripe checkout after login and block duplicate clicks. ccdf34c
- fix · Fix dead plan buttons and complete Stripe checkout. 0043af9
- feature · Add server persistence helpers for transcripts, translations, and language history. af69110
- feature · Add processing engine, store, dashboard wiring, tests, and migrate 0006. ed73046
- improvement · Improve speech preparation and add processing schema migration. 09fa948
- feature · Add language history, translation cache, speech prep, and processing migration. 160bcae
- feature · Add automatic language-aware processing foundation. 5c8c300
- feature · Add PCM quality checks before muxing a dubbed video. dc5442d
- feature · Add conservative speech-rate planning instead of extreme time compression. 4bdd8a2
- feature · Add spoken-text preparation for more natural Kokoro phrasing. a18b037
- improvement · Point YouTube metadata tests at the split provider modules. a70286a
- improvement · Use dubbed transcript as YouTube description fallback, not source copy. e58a36b
- improvement · Apply YouTube snippet-only updates and defer verification while processing. bf7cf77
- improvement · Restore YouTube upload, snippet attach, readback, and retry reuse. f8c60af
- improvement · Restore YouTube OAuth connect, token refresh, and channel listing. cb38b6b
- improvement · Split YouTube provider into complete modules after the truncated restore. 03524aa
- improvement · Restore YouTube provider after accidental placeholder overwrite. c22ec3d
- improvement · Apply and verify YouTube snippet after processing; keep title/description on retries. a2d6331
- improvement · Resolve localized YouTube copy from the matching language package only. 9968a66
- improvement · Harden YouTube title and description through the real publish path. eb0c45c
- fix · Fix Vercel config load by importing the Grok plugin dynamically. 340497a
- fix · Fix YouTube title and description on the real upload path. eaabf28
- feature · Launch pass: lock Starter $19 catalog and YouTube-only customer UI. b9a16e9
2026-09-11
- improvement · Attach localized YouTube snippet metadata and verify after upload. 9d71cce
- fix · Fix YouTube title and description publish path. 47d06ae
- feature · Launch pass: landing roadmap link, trial copy, README, availability tests. bf24408
- feature · Launch pass: public /roadmap, YouTube-only customer surface, distribution model. 5fda82c
- feature · Launch: YouTube-only customer product with real billing and previews. b098e85
- fix · P0: map each CrownVid plan to its own Stripe price and handle subscription webhooks. 3bb60dc
- fix · P0: verify every Stripe webhook and handle the full subscription lifecycle. 7023c69
- fix · P0: billing schema, webhook secret env, and billing source tests. 216ac47
- fix · P0: authoritative CrownVid plan to Stripe price mapping. 106ab16
- fix · P0: store Stripe customer/subscription IDs and apply signed subscription webhooks. 0557372
- fix · Fix launch blockers without rewriting working YouTube or Kokoro aeac2ef
2026-09-10
- improvement · Keep disabled-platform OAuth and flags off the public surface 2a0790a
- improvement · Hide unready platforms behind a single availability config 702ad20
2026-09-09
- improvement · Public calculator uses Planning RPM per selected market 306bedc
- feature · Add map pins for new planning RPM markets ec803c4
- improvement · Update platform economics tests for Planning RPM formula bfb4d30
- improvement · Show per-market Planning RPM in the landing calculator 8627c64
- feature · Add Planning RPM tests and keep other platforms off the YouTube rate card 7686c3f
- improvement · Show Planning RPM and matching estimated revenue per market 7c36757
- improvement · Derive market rows from canonical Planning RPM 0688d5c
- improvement · Use Planning RPM directly in YouTube revenue formula e71d6dc
- improvement · Wire Planning RPM through campaign calculator, tests, and market UI 421f47a
- improvement · Restore canonical planning RPM market dataset f151f95
- fix · Fix calculator so Planning RPM is the exact value used in revenue. f6d00ae
- improvement · Allow YouTube-only estimateRevenue alias in market helpers 72c5379
- improvement · Keep YouTube-only estimateRevenue alias for dashboard import 12fb385
- improvement · Point plan tests at the shipped homepage calculator 5b45bff
- fix · P0 leftover: no generic RPM on How It Works or workspace c5b394a
- fix · P0: platform-specific calculator economics 0df46dd
- fix · Fix P0 revenue loop: real plans, billing gate, honest calculator af5cc0d
2026-09-08
- improvement · Use isolated local auth state 2c86d1e
- improvement · Clear stale local state on account changes 24db6e1
- fix · Fix local session and workspace isolation db7b70f
- fix · fix: request TikTok profile scope 78827b3
- docs · chore: remove temporary TikTok scope workflow ab3113c
- docs · chore: apply TikTok scope fix 18e2faa
- feature · Add TikTok URL prefix verification file under terms 59535e6
- feature · Add TikTok verification content to Terms page 428f571
- feature · Add TikTok site verification file bbb81bc
- feature · Add TikTok site verification token on /terms and at the domain root. 463460b
- improvement · Keep DIRECT_PLATFORMS test-compatible while treating Facebook as a native adapter. f33ecff
- improvement · Update social docs and tests for native vs relay routing; warn that YouTube import is metadata-only. a66fc3a
- feature · Launch tab: preview + approval required; publish only through SocialDistributionService. 3146b82
- improvement · Allow relay connect/publish when a native platform client is not configured. 03121d3
- improvement · Route publish through native adapters only when those clients are configured; otherwise use the relay. 8f07002
- fix · Fix launch path: server-only publish, relay fallback, staged preview. 01195cb
- improvement · Switch connect and publish APIs onto the social relay facade. 185629a
- improvement · Route social relay through SocialDistributionService. af95d5d
- feature · Add Postiz HTTP adapter. e05debc
- improvement · Extend social types and SOCIAL docs for the Postiz relay. 798f3f6
- feature · Add Postiz mapping, webhook, and adapter tests. 21159fc
- improvement · Wire Postiz adapter files and optional relay env. 4733d38
- feature · Add Postiz as an optional SocialDistributionService relay. 4ae3199
- feature · Add Upload → Dub → Test → Launch pipeline with a dedicated Launch tab 3098d88
- fix · Fix Japanese local dubbing: load eSpeak ja data instead of English-only WASM b4b57ad
- fix · Fix multilingual Kokoro phonemization with eSpeak NG f09f115
- improvement · Finalize multilingual Kokoro runtime fix 6d865cc
- fix · Fix multilingual Kokoro browser dubbing f601c09
- improvement · Avoid bundling the browser-local Kokoro loader aaf36ae
- improvement · Run local browser dubbing with Kokoro and show finished preview e09f4b4
- feature · Add browser-local Kokoro TTS loader 3beca87
- improvement · Allow WebM assets generated by local dubbing 435cf82
- improvement · Replace paid ElevenLabs dubbing dependency with local TTS pipeline support ffdd641
- improvement · Link Vercel Blob probes, campaign dual-write, and connection/pipeline status 41798bb
2026-09-07
- improvement · Enforce review and final approval before distribution cf2c189
- improvement · Persist the currently approved dubbed video for distribution 5b790ff
- feature · Add dubbed-video preview and mandatory approval gate 5108a9a
- feature · Add explicit dubbed-video review approval state 5210549
- feature · Add connected accounts to dashboard aa9bde3
- improvement · Show connected accounts on user dashboard 1b6f675
- improvement · Wire connection health tests into social destinations 532d285
- feature · Add social connection health test UI b9162ec
- feature · Add real social connection health checks 81c06ff
- improvement · Use stable social platform registry in health checks 2395980
- feature · Add verified social account health checks bdc8935
