AetherCutChangelogHow it worksPricingOpen the editor

Home / Changelog

What we've shipped

Every AetherCut release, newest first: new tools, fixes and speed ups for the private, in browser video editor.

11Releases · last 30 days
36Releases · last 90 days
3.3Avg days between releases
480Improvements shipped
Nov
Dec
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct

v1.9.130: Privacy Mode you can see — and prove (Oct 15, 2026)

  • Privacy Mode now turns the header pill bright red and shows a thin red bar under the header, so you always know it's on — with a one-click Turn off.
  • Cloud AI tools are greyed out with a small red lock while Privacy Mode is on. Tap one and you can turn Privacy Mode off right there.
  • New Privacy Receipt: export with Privacy Mode on and download a PDF that lists every network request your browser made during the export — measured, not claimed.
  • The sample tutorial now has a clear voiceover (no more echo) and on-screen captions, so you can follow along with the sound off.
  • Tidier editor: nothing in the header or timeline toolbar overlaps on smaller screens, and the logo follows your accent colour.
  • AI B-roll, AI Reshoot and Lip-Sync now run on Kling — the app and site now say so everywhere.

v1.9.129: Smooth playback through dissolves and cuts (Oct 14, 2026)

  • Fixed: playing into a dissolve on a split clip could freeze the picture and cut the audio — especially on phone and AI-generated videos with few keyframes.
  • The next clip now gets ready a couple of seconds before a cut or transition, so cuts play back instantly instead of stuttering.
  • Fixed: the clip list showed the full original length (e.g. 0:15) for every split or trimmed clip — it now shows each clip's real length, down to tenths of a second.
  • The transition preview in the FX panel now shows your actual cut — the last frame of one clip blending into the first frame of the next.

v1.9.128: Tools that break get noticed and fixed faster (Oct 14, 2026)

  • If a tool panel ever crashes, only that panel shows an error. The rest of the editor and your project keep working, and we're notified automatically.
  • Behind the scenes, AetherCut now spots tools that start failing so they get fixed before you have to report them (no footage or personal data involved)
  • Leave your email when you report a bug and you'll get a personal reply when it's fixed.
  • No email? No problem — the next time you open the editor after your bug is fixed, you'll see a small note letting you know, often with a personal message about the fix.

v1.9.127: Report a Bug that actually sends, ripple-trim keys, and one-click dissolves (Oct 14, 2026)

  • Report a Bug now sends straight from the app — no mail app needed (the old email button silently did nothing on webmail and most Chromebooks). Leave your email if you'd like a reply.
  • Every tool panel now has a 'Report a problem with this tool' link that fills in the tool name for you.
  • New ripple-trim keys: Q trims the start of a clip up to the playhead, W trims from the playhead to the end — and everything after slides over to close the gap.
  • New 'Dissolve All Cuts' button in Transitions adds a crossfade to every hard cut at once.
  • Transition types now show a tiny looping preview — hover any style in the list to see how it moves, plus a live preview of the one you picked.
  • Full tool audit: fixed Ghost Draft, AI Reshoot and Cross-Language Lip-Sync, which were failing silently on every click.
  • AI B-Roll, AI Reshoot and Ghost Draft now run on Kling 2.5 Turbo (OpenAI retired Sora 2) — clips are 5s or 10s.
  • Long AI jobs (video generation, lip-sync, upscale, object erase, eye contact, voice isolation) now keep running in the background instead of timing out after a minute.
  • AI Reshoot on vertical and square clips no longer gets rejected.

v1.9.126: Faster cutting: split at the playhead with S, and one-click dissolves on every cut (Oct 12, 2026)

  • Press S to cut the selected clip right at the playhead — no need to arm the Split tool first (with nothing selected, it cuts whichever clip is under the playhead)
  • Transitions on split clips now really crossfade: applying a Dissolve (or running AI Auto-Optimize) between two touching clips slides the right side in to create the overlap, and switching back to None closes it again.
  • A small + now appears on every hard cut in the timeline — click it to drop in a Dissolve and open the Transitions panel to fine-tune it.

v1.9.125: Broadcast-accurate loudness: true-peak + loudness-range meters, and a corrected LUFS engine (Oct 11, 2026)

  • Loudness metering is now broadcast-accurate (ITU-R BS.1770-4): the engine sums channels instead of averaging them, adds the K-weighting filter, and gates out silence — so when you normalize to −14 LUFS for YouTube/Spotify/TikTok, you actually land at −14 (stereo mixes used to read about 3 dB quiet and overshoot to ~−11)
  • New True Peak (dBTP) readout in the Export loudness check — it oversamples the mix to catch the inter-sample peaks that clip on playback even when every sample looks safe, and warns you if the mix crosses the −1 dBTP streaming ceiling before you export.
  • New Loudness Range (LRA) readout so you can tell an interview (tight, consistent) from a music or cinematic edit (wide, dynamic) at a glance — labeled consistent / moderate / wide.
  • The Export 'Loudness check' now measures the ACTUAL rendered mix — clips, background music and voiceover together, in their timeline positions — instead of a rough estimate, so the number you see is the number you ship.
  • The per-clip Loudness Normalize panel now shows that clip's loudness range alongside the measured level.
  • Reliability: added a lightweight /api/health endpoint for uptime monitors, so a dead-URL probe no longer looks like an outage.
  • Bug fix: arming the Split tool and clicking a clip now actually cuts it — previously the click did nothing.
  • Bug fix: the preview could refuse to play after splitting a clip (the timeline length was mis-calculated, so the playhead thought it was already at the end) — splitting and playback now behave correctly.
  • With gratitude to Thiago Goncalves, who read the loudness math in public and flagged the channel-summation, K-weighting and gating gaps — all three are now fixed.

v1.9.124: Landing + pricing clarity, a cleaner editor header, and guided first-run onboarding (Oct 8, 2026)

  • Landing hero decluttered: the Product Hunt, LaunchBuff and Trustpilot badges and the four product-fact tiles (no uploads · browser-based · local export · 4K no-watermark) now sit in one centered row beneath the demo video, with the dead space to the next section tightened.
  • Editor header fixed and tidied: the Privacy Mode pill is now correctly centered over the preview (it no longer overlaps Preferences), and the sign-out icon is now a clear labeled 'EXIT' pill for both guests and signed-in users.
  • The landing 'Trust receipts' chip is renamed 'Trust Policy' and is now a real link to the privacy policy — testers kept trying to click it.
  • Bug fix: the 'See everything included' plan/feature panels no longer close when you click outside while reading them — they stay open until you press the X or Esc.
  • Pricing made plainer: the no-cost plan is now the 'Hobbyist' tier, labeled 'always $0 — not a trial' (no 'free' ambiguity), and Full Access is marked as built for professional editors.
  • New /why-browser page answering the most common first-time question — 'if I download an editor, isn't that already private?' — with an honest browser-vs-desktop side-by-side, linked from a hero pill.
  • First-run onboarding: the guided, draggable Walkthrough popout now opens automatically the first time you enter the editor (once per browser), so new editors get oriented without hunting for it.
  • The hero audience line now speaks to creators and anyone with footage they'd rather not upload, alongside the existing lawyers / journalists / medical-educator framing.
  • Also shipped recently: a new /why-pro plain-English explainer (linked from pricing and the in-editor upgrade prompt), a pricing UI rework that puts the feature list above the buy button, the login hero now cycles through several demo clips in random order, and a manual 'Walkthrough' button plus a 25-second demo reel that plays with sound.

v1.9.123: AetherCut for regulated teams + auto-measured release stats (Jun 10, 2026)

  • New /aethercut-for-legal landing for legal, healthcare, finance and government teams — the regulated-workflow case for editing sensitive footage in-browser, with chain-of-custody and redaction explained and backed by the /trust-security boundary.
  • Illustrated with on-brand visuals (local-processing shield, chain-of-custody vault, in-browser redaction) and cross-linked into the trust cluster for SEO.
  • Version diffing: the changelog and the 'What's new' popup now show a live, drift-proof build-stats line (tools · AI features · languages · automated tests) and auto-generate a factual 'what changed' delta vs the previous release — no more hand-written count claims.
  • Added a prominent 'Start editing' CTA to the legal landing with a built-in copy A/B test, cross-linked it from /trust-security and /vs/descript, and surfaced the release's build-stats delta in the 'What's new' popup and on /changelog so returning editors notice the momentum.
  • Reused that CTA A/B framework on /video-editor-for-lawyers and /vs/descript, added a one-click 'promote the winner' control (with a 95%-confidence gate) to the Admin experiments panel, and gave the legal page a real customer-story capture form that leads with an approved quote when one exists.

v1.9.122: Trust & data-handling page + hardened, media-free telemetry (Oct 6, 2026)

  • New /trust page spelling out the system boundary in plain English: editing and export run in your browser, and core media is never transmitted to or stored by AetherCut.
  • Honest about the one exception — opt-in AI tools send only the clip you choose to named subprocessors (OpenAI/Whisper, fal.ai), and Privacy Mode disables them for a verifiably zero-upload editor.
  • Analytics hardened so telemetry can never carry media: the browser strips any data:/blob:/base64 payload before sending, and the server rejects the same on ingest — events are allowlisted names + short opaque tags only.
  • Clear subprocessor list and a 'verify it yourself in DevTools' note, written for enterprise security reviews.

v1.9.121: Studio-grade audio, 100% in your browser — mixer, loudness & A/B compare (Oct 6, 2026)

  • A full Audio Mixer: per-clip gain and stereo pan, a master-bus compressor, and mute/solo per track — all running on your device via the Web Audio API, nothing uploaded.
  • Live L/R level meters on every track so you can spot a stem clipping or sitting too hot at a glance.
  • LUFS loudness normalization — measure your mix and one-tap normalize to YouTube (−14), podcast (−16) or broadcast (−23) targets, then 'Normalize & Export'.
  • A/B compare: press Tab to flip between your processed mix and the raw audio and hear exactly what your mixing is doing.
  • Reusable mix presets (Flat, Podcast, Music video, Vlog, or your own) you can save, import and export to share a house sound across projects.
  • Full undo/redo across mixer and timeline value edits, powered by a new command stack.
  • A first-time guided mixer walkthrough that spotlights the fader, pan and loudness controls so new editors know exactly where to start.
  • An audio scrub-tick while you drag clips (with an on/off toggle for silent editing), plus a new /audio page on private, in-browser mixing.

v1.9.117: A big mobile editor upgrade: record, reorder & transitions (Oct 1, 2026)

  • Record clips right in the mobile app (front/rear camera) and trim each one with a dual-handle slider.
  • Join multiple clips into one reel on-device, each cut to its own trim — nothing uploaded.
  • Reorder clips before export by long-press dragging the tabs or tapping the ◀ ▶ arrows, with a one-tap Undo.
  • Transitions between clips: hard cut, crossfade, slide (push) or wipe — set per boundary, not just globally.
  • Pick a direction (left/right/up/down) for slide & wipe, plus a per-transition length from 0.2s to 1s.
  • Animated previews on every transition button so you choose by sight, and your favourite style is remembered for next time.
  • Each clip tab now shows a first-frame thumbnail, and a first-use tour highlights everything new with a one-tap bug-report nudge.

v1.9.113: Social proof, pricing clarity & a live product demo (Sep 29, 2026)

  • New footer/hero review marquee: approved reviews scroll right-to-left with star ratings and reviewer photos, plus a live '4.8 from N editors' rating badge once 5+ reviews land.
  • Pinned per-competitor reviews first on every /vs/* comparison page (e.g. a 'switched from CapCut' quote leads on /vs/capcut) for sharper social proof.
  • Hero now plays a muted, looping product demo video (import → cut → captions → vertical → 4K export) with a mute toggle.
  • Merged the pricing into Free · Full Access · Lifetime with an in-card Monthly/Yearly billing toggle and a 'Save ~$50/yr' annual nudge.
  • Added a standalone /pricing page, a 10-scheme accent colour switcher with hover-preview, and a '4K free, no watermark' hero badge.
  • 10 new colour themes, unique meta descriptions per page, a 'who it's not for' scope note, and a G2 review prompt.

v1.9.112: Landing page pricing & messaging overhaul (Sep 12, 2026)

  • Switched the entire interface to the Atkinson Hyperlegible typeface for maximum readability.
  • New end-to-end pure-black theme: true pitch-black stage, charcoal cards and an inverted solid-white Start Editing button for maximum contrast.
  • Rebuilt the pricing into two rows of three: Base Tools, Pro Production and Pro AI up top; Pro Monthly, Yearly and Lifetime below.
  • Raised the Pro Production Suite to $6.99/mo so Full Access reads as the clearer value.
  • Dropped the Free tier card and the billing toggle; reworked the free tools pill to honestly read '20 Base Tools + 2 Base AI'.
  • Removed the 'free' framing from the primary CTAs (now 'Start Editing') and moved the Base tools pill directly above the packages.
  • Consolidated 'Recently shipped' into one hero (version → date → Details) with a per-release details page that links to the full changelog.
  • Added an opt-in analytics consent banner and gave the login page a calmer, less-cluttered visual pass.

v1.9.111: Admin funnel rebuilt around the post-pivot conversion model (Aug 28, 2026)

  • Renamed dashboard 'Sandbox → Paywall Conversion Funnel' → 'Pro Conversion Funnel'.
  • Funnel step chart now: Hero views → Entry CTA → Pro-tool nudge → First-AI-Free spent → Upgrade CTA clicks → Stripe redirects → Paid conversions.
  • 4-card totals replaced with current-model signals (nudge, first-free, pivot notice, walkthrough)
  • Backend intercept-tools rollup switched from export_intercept_shown → ai_nudge_shown so the bar chart is populated post-pivot.

v1.9.110: Empty preview polish — icon removed, content shifted up (Aug 13, 2026)

  • Removed the dashed-border film-strip icon from the empty preview state (decorative; the left drop zone already teaches the input pattern)
  • Shifted the empty-state content block from vertically-centered to top-aligned so 'Add clips to get started' + copy + cyan CTA pill sit above the vertical midpoint.
  • Cleaned up the now-unused Film import from lucide-react.

v1.9.109: Sample-project CTA visibility bump (Aug 13, 2026)

  • Promoted 'Or try a sample project — no upload needed' from small underlined cyan-400 text link → prominent cyan pill CTA with subtle glow.
  • Text bumped to text-sm font-semibold + brighter text-cyan-100; pulsing cyan dot lead-in; identical click handler + testid preserved.

v1.9.108: Free-tier declutter (T1 + H1) (Aug 13, 2026)

  • BottomToolbar: free users now see ~28 tools (20 free + 8 daily-eligible Pro) instead of ~82. Hidden Pro tools collapse behind a dashed amber '+N Pro' chip; toggle persists per-user in localStorage.
  • New HeaderOverflowMenu component: '⋯' kebab hosts Report a bug, Brand pill, Share progress badge, and Share project — primary bar keeps only essentials.
  • Fixed 2 pre-existing lint errors: hoisted resolveRate + resolvePreservesPitch to module scope in VideoPreview.js.

v1.9.107: Daily Free Pro Allowance — 2 tools/day for free users (Aug 13, 2026)

  • Free users get 2 distinct whitelisted Pro tools per day; each unlocked tool stays free for the rest of the day; resets at midnight LOCAL time.
  • 8-tool zero-cost whitelist (Chroma Key, Video Stabilization, Split-screen, Silence Trimmer, Auto-Zoom, L-Cuts & J-Cuts, Magic Mask, Audio Ducking); regression test bans external-API tools from ever landing on the whitelist.
  • New '⚡ 2 free Pros today' pill in header + explainer popover listing all 8 eligible tools with 'Unlocked today' markers.

v1.9.106: Free tier expanded to 20 tools (was 12) (Aug 13, 2026)

  • Free tier widened from 12 → 20 tools by promoting 8 previously-Pro tools back to free: Background Removal (bgremove), Color Match (colormatch), Ken Burns (kenburns), Keyframes (keyframes), Loudness Normalize (loudnorm), Template Gallery (templates), Animated Titles (titles), Transcript Review (transcript). Two v1.9.88-promoted tools remain Pro: Multi-Resolution Preview (multires) + Performance Mode (perfmode)
  • Auto-sync propagated the change everywhere at once — TOOLS_FREE: 12→20, TOOLS_PRO: 70→62, AI_FREE: 0→2 (bgremove + colormatch are AI features), AI_PRO: 35→33. Total counts (82 tools / 35 AI) unchanged.
  • Stale hard-coded copy fixed: PaywallPivotNotice + StrategicUpdateDialog now pull TOOLS_FREE from marketingCounts. SEO landing pages updated. Historical comments (v1.9.88 restructure rationale) left intact as design history.
  • Regression tests updated to lock the new counts and to explicitly verify the 8 promoted tools no longer appear in PRO_FEATURE_IDS.

v1.9.98: Badge post-redeem CTA + rate-limit UX + nudge variant winner (Aug 13, 2026)

  • Badge post-redeem persistence — after a successful ai_free_endpoint_used, backend stamps used_at + used_tool_id on the allowance doc. FreeCreditBadge gains an amber 'Credit used — enjoying it?' 4th state with an Upgrade button. Closes the free-experience → paid-conversion loop at the moment satisfaction peaks. useFirstAIFree polls status every 6s so the state surfaces without a page reload.
  • Rate-limit recovery UX — when POST /consume returns 429, the nudge action no longer falls back to the generic upgrade prompt. Instead a dedicated toast.warning explains 'Your household already tried 5 free credits this hour — come back later or unlock the AI Layer', with a direct Unlock action. Fires ai_free_rate_limited so ops can track abuse-guard trip rate.
  • Nudge Variant Winner card — new AdminFunnel section splits the 4-stage funnel (shown → clicked → redeemed → used) by copy variant (fomo vs benefit). Winner banner requires ≥20 impressions per variant and picks by end-to-end useRate (the truest signal — it filters out redeem-but-never-engage users). Per-variant table shows each stage with % conversion.
  • Global upgrade event — new aethercut:request-upgrade window event dispatched by FreeCreditBadge Upgrade button + listened for in VideoEditor. Removes the need for per-panel callback prop plumbing. Fires upgrade_requested_from_free-credit-badge event for source attribution.
  • Regression suite grew to 467 (+9 in v1998BadgePersistenceAndVariantWinner)

v1.9.97: Free-credit token honoring + in-panel badge + nudge A/B + abuse guard (Aug 13, 2026)

  • Route-level token honoring — /api/director/plan, /api/tts/generate, /api/producer-notes, /api/voice/tts, /api/voice/dub/start all accept an x-first-free-token header and call the shared honor_first_free_token(request, tool_id) helper. When the caller's visitor_hash has a consumed allowance bound to the same tool_id, we log an ai_free_endpoint_used funnel event so the admin dashboard can measure how many redeemed tokens actually reach a completed AI call vs stopping at the UI.
  • FreeCreditBadge component — small persistent chip at the top of each of the 6 flagship AI panels showing 'One free generation on us' (cyan) or 'Free credit ready — click Generate' (emerald green when redeemed for THIS tool). No clutter for Pro users. Fills the visibility gap left by the nudge toast that vanishes on dismiss.
  • Nudge copy A/B test — 50/50 random pick between 'fomo' (loss-framed) and 'benefit' (gain-framed) headlines. Both variants tag ai_nudge_shown / clicked / redeemed events with exp:nudge-copy=<variant> so per-variant conversion falls out of the existing rollup.
  • Allowance abuse guard — POST /ai-allowance/consume now enforces a per-(IP, hour) rate limit of 5 unique visitor_hashes. Incognito-hop farms hit HTTP 429 with an actionable message; legitimate shared-NAT families are still under the cap. Rate-limit check runs BEFORE the allowance mutation so a rate-limited attacker never burns anyone's real allowance.
  • Regression suite grew to 458 (+7 in v1997RouteTokenHonoring)

v1.9.96: Real free AI credit + nudge conversion funnel + baseline auto-regen (Aug 13, 2026)

  • First-AI-Free redemption — new /api/ai-allowance/{status,consume} routes back the nudge toast promise with a real per-browser-day single-use token. Atomic find_one_and_update filter (consumed_at: null) prevents double-consume races. Same-tool retries are idempotent (200); different-tool after consumption is a clean 409. tool_id is whitelisted server-side against the AI feature set.
  • Nudge toast now offers two paths: 'Try free now' (consumes the token, fires ai_free_redeemed, unlocks the AI panel) OR 'Unlock AI Layer' (fires ai_nudge_checkout_clicked, opens the pricing modal). Users always have a working next step.
  • useFirstAIFree hook (client-side) — fetches allowance status on mount, exposes consume(toolId), broadcasts state changes via window event so multiple AI panels mounted at once stay in sync.
  • Nudge conversion funnel — new AdminFunnel section shows: total shown, total checkout clicks, overall conversion %, plus a per-tool table (nudge shown | checkout clicks | conv %) sorted by volume desc so the strongest conversion entry-point tool ranks at the top. Backend aggregates via a single pipeline over both events.
  • Baseline auto-regen — new /app/scripts/update_og_baselines.py runs the OG generator, validates dimensions, computes phash + byte delta vs prior baseline for each variant, then copies to /app/scripts/og_baselines/. Contributors run one command instead of remembering the cp incantation.
  • Regression suite grew to 451 (+8 v1.9.96 tests). Backend pytest still 9/9 (test_og_card_drift.py)

v1.9.95: Auto-sync tool counts + OG drift regression + Free-Tier AI nudge (Aug 13, 2026)

  • Set-Size Auto-Sync — marketingCounts.js now imports PRO_FEATURE_IDS + AI_FEATURE_IDS and COMPUTES TOOLS_PRO/AI_PRO/AI_FREE at runtime instead of storing them as literals. Adding a Pro tool now needs one edit (append to the Set); all three counts + every downstream marketing surface follow automatically. Drift bug shipped 3× before this fix (v1.9.10, v1.9.85, v1.9.90) — architecturally impossible now.
  • Auto-Cropping Regression — /app/backend/tests/test_og_card_drift.py regenerates all 3 OG variants (1200×630, 1080×1080, 1080×1350), phashes each, and asserts the perceptual distance against checked-in baselines in /app/scripts/og_baselines/ is ≤ 3. Also asserts exact dimensions. Uses imagehash + PIL. Runs with the pytest suite so any layout drift caught before merge.
  • Free-Tier AI Nudge — first time a free user clicks any AI-gated tool, a persistent sonner toast fires: "AI Layer is $9.99/mo — try one AI tool free" with an "Unlock AI Layer" action button. localStorage-gated so it only fires once per browser. Fires ai_nudge_shown funnel event tagged with the tool ID that triggered it, so we can see which AI tool is the strongest conversion entry-point.
  • Migrated 10 count-checking regression tests from static-file grep to runtime import via a new /app/frontend/src/tests/_helpers/counts.mjs helper — the tests now read the actual computed values, not literals.
  • Regression suite grew to 443 (+6 in v1995AutoSyncAndNudge + 9 pytest cases in test_og_card_drift)

v1.9.94: Tool count audit — drift fixed end to end + Six Tools user guide (Aug 13, 2026)

  • Audited marketingCounts.js against source-of-truth Sets (proFeatures.js, aiFeatures.js) and fixed 3 drifted literals: TOOLS_PRO 72 → 70 (actual Set size), AI_FREE 2 → 0 (bgremove + colormatch were promoted in v1.9.88 but the literal never followed), AI_PRO 33 → 35 (the two promoted AI tools joined Pro but the literal was stuck)
  • Every downstream marketing surface now shows consistent numbers: LoginPage (AI Layer breakdown), DonateDialog (free tier description), FounderAccess (Pro tool count), FeatureGraphicPage (badge tagline), HelpGuide Getting Started section.
  • HelpGuide.js user guide gains a new 'Six Tools No Other Editor Has' collapsible section listing all 6 flagships (Prompt-to-Cut, AI Reshoot, Cross-Language Lipsync, Ghost Draft, AI Producer Notes, Retroactive Highlight) with a link to /six-tools.
  • Beginner Mode already explains all 6 flagships (TOOL_HELP entries in beginnerDescriptions.js with What / When / How / Pro tip cards) — verified they exist and are complete.
  • New invariant test (toolCountConsistency.regression.test.mjs): 7 assertions enforce that marketingCounts.js literals MUST equal the underlying Set sizes. If someone bumps TOOLS_PRO without updating proFeatures.js (or vice versa), the test fails and points at the drift.
  • Relaxed 5 legacy count tests that hardcoded specific snapshot values (crossLangLipsync, ghostDraft, performanceAnalyzer, producerNotesRetroHighlight, reviewUnghost) — now use ≥ semantics so future tool additions don't false-fail them.
  • Regression suite grew to 437 (+7)

v1.9.93: OG card variants — no more letterboxing on Instagram or Pinterest (Aug 13, 2026)

  • Rewrote /app/scripts/generate_six_tools_og.py to emit three aspect ratios in one pass: 1200×630 (Twitter/LinkedIn/Facebook OG default), 1080×1080 (Instagram feed / WhatsApp / FB mobile), 1080×1350 (Pinterest / IG portrait). Each variant has its own tuned layout dict — 3×2 chip grid on landscape, 2×3 stacked grid on square + vertical with bigger chips.
  • Vertical variant reserves 130px of clean bottom margin for the IG Stories UI overlay so the pricing footer doesn't get clipped by the app chrome.
  • /six-tools share row gains a 'Download as image' row with three chip buttons: 1:1 · Instagram, 4:5 · Pinterest, 1.91:1 · Twitter/LinkedIn. Every download attribute names the file with the target platform so users know what saved where.
  • Regression suite grew to 429 (+3 in ogCardVariants.regression.test.mjs guarding disk presence, generator variant list, download-button wiring)

v1.9.92: Share click analytics — which channel actually wins? (Aug 13, 2026)

  • Every /six-tools share button now fires six_tools_share_clicked with tools=[channel] where channel is one of 'x' | 'linkedin' | 'copy'. Uses navigator.sendBeacon so the tracking request survives the immediate navigation for X/LinkedIn external links (a plain fetch() gets cancelled the moment the browser navigates)
  • Backend rollup: /admin/analytics/funnel now returns share_click_breakdown: { x: {count, unique_visitors}, linkedin: {...}, copy: {...} } scoped to the same time window as the other KPIs.
  • AdminFunnel dashboard gains a new '/six-tools share clicks' section with three StatCards showing per-channel count + uniques + % of total. Answers 'which channel is our audience actually sharing from?' — informs whether to invest in Twitter/X threads, LinkedIn framing, or Slack/Discord copy-paste ammo.
  • Regression suite grew to 426 (+4 in shareClickAnalytics.regression.test.mjs guarding whitelist, rollup, sendBeacon wiring, admin UI)

v1.9.91: Share buttons, Ctrl+J mode cycle, pricing tripwire, adoption KPI (Aug 13, 2026)

  • Share buttons on /six-tools — one-tap X/Twitter + LinkedIn share intents + Copy Link button. Shared URLs carry ?utm=share so recipient clicks hit the share-arrival counter shipped in v1.9.90. Only rendered on /six-tools (not /vs/* pages) so the offensive positioning stays the primary share surface.
  • Ctrl+J / Cmd+J shortcut — cycles the sidebar mode picker (all → media → cut → style → all). Symmetric with Ctrl+K (CommandPalette). Toast confirms every switch. Routes through handleSetSidebarMode so keyboard-driven switches also populate the mode-distribution analytics.
  • Mode Adoption KPI card — new triple StatCard in AdminFunnel above the per-mode distribution row: 'adoption %' (filtered / total), 'total mode selections', 'filtered non-all selections'. Interprets the % into 'load-bearing / earns its space / mostly decorative' so the on-call product answer is instant.
  • Pricing snapshot regression — new pricingSnapshot.regression.test.mjs asserts every $X.XX/mo mention in seo_landings.py maps to a canonical tier, that the /six-tools OG generator + copy references AI Layer ($9.99/mo) + Full Pro ($14.95/mo) NOT the $4.99 Suite, and that PRO_PRICE_NOTE covers monthly/yearly/lifetime. This is the tripwire — pricing has drifted twice (v1.9.10 shipped $9/mo instead of $14.95/mo; v1.9.90 first shipped $4.99 for AI flagships)
  • Regression suite grew to 422 (+9 new: 6 pricing snapshot, 3 v1.9.91 next-actions)

v1.9.90: Three next-action fixes: analytics, WebM fallback, shareable /six-tools (Aug 13, 2026)

  • Project Mode Analytics — VideoEditor.handleSetSidebarMode now fires trackFunnelOnce('project_mode_selected', [mode]). Backend already whitelisted the event but the frontend never dispatched it, so the admin distribution card was stuck at 0/0/0/0 since the mode-picker shipped.
  • Showcase WebM fallback — /showcase page adds an inline <video> preview with <source type='video/webm'> before <source type='video/mp4'>, so Firefox and headless-Chromium builds that reject unlicensed H.264 still play the demo. Each MP4 download row also exposes a companion WebM download button.
  • Six-tools shareable preview — /six-tools ships a dedicated OG card (og-six-tools-1200x630.jpg, generated via /app/scripts/generate_six_tools_og.py) with the '6 tools no other editor has' hook + 6 tool chips + brand footer, so the URL renders punchy in Slack/Twitter/LinkedIn instead of the generic hero card.
  • /six-tools?utm=share tracking — arrivals via that query bump a separate seo_landing_hits doc (six-tools_utm_share) and render a small green 'someone shared this with you' banner above the H1, doubling perceived credibility on first impression.
  • Pricing correction — /six-tools SEO copy + OG card footer originally advertised a single '$4.99/mo Pro tier' for the six AI flagships. The Production Suite ($4.99) is NOT AI; AI flagships unlock via the AI Layer ($9.99/mo) or Full Pro ($14.95/mo). Corrected every mention (intro, section body, FAQ, flagship block intro, OG card footer)
  • Regression suite grew to 413 (added v1990NextActions.regression.test.mjs locking in all three fixes)

v1.9.89: Blog retired — Studio link takes its place (Aug 13, 2026)

  • AutoSEO shut down the blog pipeline, so the four blog links across the app (landing header, landing footer, editor back-header, help guide) were replaced with Studio links pointing at /studio.
  • Legacy /blog and /blog/:slug routes stay registered so old inbound URLs redirect gracefully — the ExternalBlogRedirect fallback still works, users just can't discover the retired blog from any in-app surface.
  • Fixed changelog dates — every v1.9.77-1.9.88 entry was incorrectly stamped 'Feb 5, 2026' and now reads 'Aug 13, 2026' matching actual ship dates.

v1.9.88: Retroactive Highlight + free-tier restructure (flagship #6) (Aug 13, 2026)

  • Retroactive Highlight — rolling 60s webcam+mic buffer. Hit Ctrl+B (or the big Save button) to retroactively drop the last minute onto the timeline. Nobody has this in an editor — OBS has a replay buffer but only saves to disk, no editor timeline integration, no hotkey/voice trigger.
  • Sixth and final 'no other editor has this' flagship — completes the Prompt-to-Cut / AI Reshoot / Cross-Lang / Ghost Draft / Producer Notes / Retro Highlight sextet.
  • Free-tier restructured to exactly 12 essential tools (matching the StrategicUpdateDialog promise). 10 formerly-free tools promoted to Pro: bgremove, colormatch, kenburns, keyframes, loudnorm, multires, perfmode, templates, titles, transcript review. Free tier keeps: transitions, text, filter presets, stickers, speed ramp, audio mixer, freeze, in-browser recorder, PiP, thumbnail generator, review, history/undo.
  • Marketing counts updated: TOOLS_FREE 20 → 12, TOOLS_PRO 60 → 72, AI_PRO 32 → 33. Landing hero, About dialog, comparison tables, share text all auto-sync.

v1.9.87: AI Producer Notes — Claude timeline critique (flagship #5) (Aug 13, 2026)

  • New AI Producer Notes tool — Claude Sonnet 4.5 reviews your finished timeline (clip metadata + transcripts + transition counts + audio track presence) and drops 3-6 director-style critique notes: pacing dips, repeated transitions, missing captions on speech, unused audio tracks, structural imbalance.
  • Notes come back tagged with severity (praise/suggestion/warning) and optional MM:SS timestamps so users can jump directly to the flagged moment.
  • Cheap to run — pure metadata reasoning, no media processed. One Claude call per timeline. Free byproduct of the transcripts and metadata AetherCut already tracks.

v1.9.86: Ghost Draft — text → finished video in one shot (flagship #4) (Aug 13, 2026)

  • New Ghost Draft flagship — paste a paragraph, script, or blog excerpt. AetherCut has Claude storyboard the beats, generates b-roll via Sora 2, records a voiceover via ElevenLabs, and drops all three onto the timeline. Zero footage → finished short in ~2-3 minutes.
  • Fourth of six 'no other editor has this' features. Descript can voice-clone, Runway can generate video, HeyGen can dub — but none turn a text paragraph into a fully assembled editable timeline in one flow.
  • Client-side orchestration only — reuses existing /api/sora-broll + /api/voice/tts endpoints, zero new backend routes. Graceful fallback if either integration fails: the successful step still lands on the timeline.
  • Analytics wired — ghost_draft_started/scripted/generated/completed/failed events so the admin dashboard can see where the pipeline drops off (Claude script vs Sora vs ElevenLabs)

v1.9.85: Flagship trio launch — Prompt-to-Cut, AI Reshoot, Cross-Language Lipsync (Aug 13, 2026)

  • Cross-Language Lipsync (flagship #3) — Whisper transcribe + ElevenLabs Dubbing (voice-preserving translate) + fal.ai sync-1.7.1 lip resync, chained inside a single editor timeline. First editor to combine all three in one click.
  • AI Reshoot (flagship #2) — highlight any clip, describe what you want instead, Sora 2 regenerates a matching segment (aspect ratio, duration, transcript context all auto-inferred). Insert-after is safe default; Replace exists for one-tap Ctrl+Z undo.
  • Prompt-to-Cut (flagship #1) — describe the edit in plain English, AetherCut transcribes every clip, Claude plans the cut, timeline auto-assembles. Progress UI shows transcribe/analyze/apply phases so a 30-60s process doesn't feel broken.
  • Save Transcript byproduct — Prompt-to-Cut generates transcripts on the way to the plan; a new button on the result card lets you download them as .txt with zero extra spend.
  • Marketing counts un-ghosted: 56 → 59 Pro tools, 28 → 31 AI features. Every marketing surface (landing, About, comparison tables, share text) auto-syncs.
  • Strategic update dialog — two-step disclosure explaining the pay-at-export suspension + previewing the new flagship lineup. Once per browser, gated behind bug-disclosure + onboarding so users never see stacked modals.

v1.9.81: PiP size presets — S/M/L for b-roll overlays (Aug 13, 2026)

  • Three size chips (S 20% / M 30% / L 50%) below every active b-roll overlay handle. Clicking a chip preserves the visual center so the clip grows or shrinks around where it already sits — no teleport feel.
  • Safe-area clamp matches position-preset semantics: 5% inset when the overlay fits with margin, full-canvas fallback for scales too large for the inset.
  • aria-pressed reflects the currently-active size via a 0.005 epsilon comparison so float drift never unhighlights the chip.

v1.9.80: PiP position presets — one-tap corner placement (Aug 13, 2026)

  • Five preset buttons (Top-Left, Top-Right, Center, Bottom-Left, Bottom-Right) render in a hover-fade toolbar above every active b-roll overlay. Snaps the overlay to that position with a 5% safe-area inset from the canvas edges.
  • Each preset preserves the user's current scale — resize survives repositioning.
  • onPointerDown stopPropagation so preset clicks never accidentally start a drag on the parent handle.

v1.9.79: First-time B-roll discovery nudge (Aug 13, 2026)

  • When a user's clip count transitions 1 → 2+, a one-time sonner toast surfaces explaining that additional videos can layer on the V2 track above V1 as b-roll or picture-in-picture.
  • 'Show me V2' action button scrolls the V2 dropzone into view + pulses a cyan ring for 2.4s so users can't miss where to drop the next clip.
  • localStorage-gated so returning users never see it repeatedly; analytics measure show → click-through ratio.

v1.9.77: B-roll drag/resize + Voice Coach blob-URL fix (Aug 13, 2026)

  • New OverlayClipControls layer atop the preview canvas — draggable body + four corner resize handles for every active b-roll overlay clip. Track badge + clip name label so users know which timeline row they're editing.
  • V2 dropzone label renamed from 'picture-in-picture / multi-track' jargon to plain-English 'B-roll / overlay — drop a video here to layer above V1'.
  • Voice Coach now works on webcam captures, screen recordings, TTS voiceovers, and Voice Isolator output — those clips have file:null (blob-URL only) so the panel now fetches the blob and re-materializes a File before hitting Whisper.

v1.9.36: AetherCurrent Studio hub + landing→editor→checkout funnel + A/B scaffolding (Feb 26, 2026)

  • New /studio hub — AetherCurrent portfolio page listing all six sibling products (Vault, IronFile, Promethius AI, AetherCut, AetherMix, AetherLens) with per-project waitlist signup for upcoming and in-progress projects. Linked from the login footer and a new 'By the same founder' hero band between the manifesto and stats bar.
  • Landing → editor → checkout funnel instrumentation — 17 new whitelisted events (landing_hero_viewed, scroll depth, guest/Google CTA clicks, exit-no-click, guest-save-nudge, premium-usage-pill, stripe_checkout_started/completed, studio-band clicks, A/B variant views). Admin dashboard at /admin/funnel gained three new sections with computed conversion percentages.
  • Guest save nudge — non-blocking sonner toast after 2 minutes of guest editing with clips loaded, offering an inline 'Sign in' action so first-time visitors get a save prompt BEFORE the export intercept fires.
  • Premium usage pill in the editor Header — amber early-warning badge that appears the moment a free user applies a Pro tool to a clip. Auto-hides for Pro users and when no premium fx are active. Fixes the 'surprise at export time' complaint.
  • A/B variant scaffolding — deterministic 50/50 bucketing keyed off a persisted per-visitor UUID; sets <html data-ab-variant='A|B'> so CSS or component overrides can roll a variant without a redeploy.
  • Whitelist admin dashboard now flows into a 2-column masonry at 1200px+ (3-column at 1600px+) with .card--full opt-out for banner cards, so the roster stops stacking as a single vertical column on desktop.
  • AetherCut version tag on the /studio card auto-syncs to APP_VERSION here in changelog.js — no second edit required when you bump.

v1.9.15: Beginner Mode goes multilingual + first-time welcome popup + Android 15 polish (Feb 27, 2026)

  • New first-time welcome popup — appears 30s after your first editor visit explaining how to turn on Beginner Mode in one click. Bottom-right toast style (non-intrusive), dismissible with 'Got it', never shows again on the same browser.
  • Beginner Mode hints now localized in 6 languages — Spanish, French, German, Japanese, Korean, Brazilian Portuguese (71 tools × 6 langs = 426 translated tooltips). Remaining 13 languages still get English body copy + localized labels as a graceful fallback.
  • Shareable language links — append ?lng=es (or fr/de/ja/ar/etc.) to any AetherCut URL to load the app in that language. Choice persists to localStorage so subsequent visits stick. Useful for share-back links from international creator communities.
  • Android 15 edge-to-edge support — installed PWA on Android 15+ phones now respects the system status / nav bar safe areas (viewport-fit=cover + env(safe-area-inset-*)). Clears the Play Console advisory and stops header buttons from getting clipped under the gesture nav bar.
  • PWA install card refreshed — now shows the correct 72 Tools · 30 AI Features count (was stuck at 69/29 from pre-launch). Feature graphic regenerated with properly centered pill labels. All 15 play-store assets re-synced backend ↔ frontend.
  • Translation script hardened — incremental persistence, per-language 4-min timeout, smart-quote normalization for CJK locales, idempotent resume-from-disk. Re-runs only translate what's missing.

v1.9.14: AI-search admin card in /whitelist.html + 3 more assistants (Grok, DuckDuckGo AI, Kagi) (Jun 3, 2026)

  • New AI-Search Referrals card on the admin dashboard at /whitelist.html — totals (page views · signups · paid · revenue) + per-assistant breakdown sorted by activity.
  • Assistants with zero activity in the window are STILL listed (muted) so the founder can see at a glance which haven't cited yet — Grok being the visible empty slot today.
  • Card auto-refreshes every 60 seconds; tap into /api/admin/attribution/ai-search anytime for the raw JSON.
  • Expanded classifier with 3 more sources: Grok / xAI (grok.com, x.ai), DuckDuckGo AI / DuckAssist (duckduckgo.com/?q=), and Kagi (kagi.com)
  • Whitelist mirrors stay byte-identical (backend/static + frontend/public)
  • Bug fix: HTML cells initially used data-testid but no id, so getElementById updates were silent no-ops — id attributes added so the card refreshes correctly.

v1.9.13: AI-search attribution: ChatGPT/Perplexity/Claude/Gemini referral tracking (Jun 3, 2026)

  • We now capture referrals from every major AI assistant: ChatGPT, Perplexity, Claude, Gemini, Copilot, You.com, Meta AI, Phind — so when they cite AetherCut, the resulting traffic is attributed.
  • Central classify_referrer() taxonomy in routes/attribution.py — single source of truth for all implicit-source detection across email signup, Google OAuth, and page-view paths.
  • New /api/admin/attribution/ai-search dashboard endpoint returns {chatgpt: {page_views, signups, paid, revenue_cents}, ...} for a configurable lookback window (default 30 days, clamped 1-365)
  • Also expanded social-referrer detection: Twitter/X, LinkedIn, Hacker News, Product Hunt, YouTube — previously only Reddit was recovered when UTM params were missing.
  • 6 new pytest cases covering classifier mapping, page-view auto-tagging, rollup math, admin auth, and window clamping. All 32 backend tests pass across the critical suites.

v1.9.12: llms.txt: AI-assistant grounding file for ChatGPT / Claude / Perplexity citations (Mar 1, 2026)

  • Shipped /llms.txt at the site root — emerging standard (llmstxt.org) that tells AI assistants how to summarize and cite AetherCut when answering questions like 'privacy-friendly video editor' or 'CapCut alternative'.
  • Covers 6 comparison pages, 2 keyword pages, 'frequently true statements', 'what AetherCut is NOT', and citation guidance for common AI-search query patterns.
  • Fixed route shadowing: IndexNow's /{key}.txt was shadowing all other root-level *.txt requests; now falls through to static-dir lookup before returning 404 (so /llms.txt and /robots.txt continue to work alongside the IndexNow verification file)
  • Backend tests still 15/15 green.

v1.9.11: Fix: SEO comparison tables shipped with wrong AetherCut Pro price ($9/mo → $14.95/mo) (Mar 1, 2026)

  • v1.9.10 shipped the side-by-side comparison tables with '$9/mo' for AetherCut Pro — actual price is $14.95/mo per database.PRO_PACKAGES. Visitors landing on any /vs/* page would have seen one price on the SEO page and a different one in Stripe checkout — a refund-risk + broken-trust bug.
  • Fixed: PRO_PRICE_NOTE constant + 6 comparison-table pricing rows + 2 prose mentions, all now reflect Free / $14.95/mo / $129.88/yr / Lifetime Pro.
  • Added drift-protection regression test (test_pricing_matches_canonical_source) that reads database.PRO_PACKAGES at test time and asserts SEO pages reference the live amount — pricing drift will now fail CI loudly instead of silently leaking into production.
  • 15/15 backend pytest + 94/94 frontend regression all green.

v1.9.10: SEO comparison pages: side-by-side feature tables (Mar 1, 2026)

  • Every /vs/* SEO landing page now renders a 12-row side-by-side comparison table (Feature | AetherCut | Competitor) at the top, before the long-form prose.
  • Cells auto-color-code: ✓-prefixed = green (win), ✗-prefixed = red (loss), neutral text where neither competitor is clearly better — readers get the verdict in 5 seconds without reading paragraphs.
  • Mobile-responsive: table collapses to stacked cards with labeled rows on viewports ≤640px.
  • JSON-LD ItemList emitted for each /vs/* page so Google can show comparison rich cards in SERPs.
  • Tables ship for all 6 competitors: CapCut, Clipchamp, Descript, Kapwing, Canva, Adobe Premiere Rush. Each table has ~12 rows covering privacy/AI/pricing/offline/lock-in/etc.
  • Backend regression extended with 2 new tests pinning row count ≥10, color classes present, ItemList JSON-LD emitted, and that keyword pages do NOT render a table.

v1.9.8: SEO landing pages: hit counter + expanded keywords + bottom Visit pill (Mar 1, 2026)

  • Eight server-rendered text-only landing pages live: /vs/capcut, /vs/clipchamp, /vs/descript, /vs/kapwing, /vs/canva, /vs/premiere-rush, /security-video-editor, /privacy-video-editor.
  • Every page now tracks visits via a Mongo-backed hit counter (seo_landing_hits collection). Bot UAs (Googlebot, Bingbot, FB/Twitter crawlers, headless Chrome, ahrefs/semrush, etc.) are filtered so the public number reflects real human reach.
  • Hit count is displayed inline as social proof ('👀 Read by N visitors') near the top of every page when count > 0.
  • Related searches section at the bottom of every page lists ~95 broad-match keywords AetherCut answers for — covers AI features (Whisper, Sora B-roll, AI Director), industries (legal/healthcare/journalists/agencies), platforms (TikTok/Reels/Shorts), category synonyms (CapCut alternative, Descript alternative, etc.) and 20-language variants.
  • Prominent 'Visit AetherCut' pill at the very bottom of every page with UTM tagging (utm_medium=visit_pill) — secondary conversion catcher for readers who scrolled past the mid-page CTA.
  • Bulk read-out endpoint GET /api/seo-landings/hits returns {slug: count, _total: N} for admin observability.
  • Backend regression: 12 new pytest cases in test_seo_landings.py covering route 200s, SEO tags, bot filter, hit math, sitemap parity, word count above thin-content threshold.

v1.7.87: Read-only admin access to /whitelist.html (investor seat) (May 22, 2026)

  • New auth split: verify_admin() accepts owner OR read-only sessions; verify_admin_write() rejects readonly users with 403 — used on every POST/DELETE mutation endpoint across admin.py, social.py, social_stats.py, launch_playbook.py.
  • New CRUD endpoints GET/POST/DELETE /api/admin/readonly-users — owner-only; persists to db.admin_readonly_emails. Bootstrap path via ADMIN_READONLY_EMAILS env var.
  • /admin/whoami now returns a level field ('owner' or 'readonly') so the UI can adapt.
  • whitelist.html: new owner-only card to add/remove read-only emails; applyLevelGating() removes owner-only cards from the DOM (not just hidden) and disables every mutation button for readonly users, with a yellow READ-ONLY banner up top.
  • Verified live: curl owner POST 200, owner GET 200, anonymous GET 403; all 72 regression suites pass.

v1.7.86: MRR window on /whitelist.html for the investor monthly review (May 22, 2026)

  • Added GET /api/admin/mrr — computes current-month MRR + trailing 12 months from Stripe active subscriptions (annual subs ÷ 12 per the executed contract definition). Soft-fails to zero rows if Stripe is unreachable.
  • Added MRR card to both whitelist.html mirrors (backend/static + frontend/public) showing the current month as a hero number, threshold banner tied to the executed $50k Section 3.1(e) salary-deduction milestone, and the trailing 12 months below in compact rows.
  • Threshold banner turns green and reads 'salary deduction unlocked' the first month MRR crosses $50k (one-way ratchet matching the contract)
  • Verified live: $0.00 / May 2026 / 0 active subs / 12 history rows rendered; all 71 regression suites pass.

v1.7.85: Fix: PiP overlays played as a still picture instead of video (May 22, 2026)

  • Tester report: 'The PiP is just a picture and not the video I added to it.'.
  • Root cause: startSegmentVideos and seekToTime both paused all video elements then played/seeked only the MAIN-TRACK clip. Overlay (PiP) <video> elements stayed paused on frame 0 forever, while the canvas renderer kept drawing that stale frame.
  • Fix: both code paths now iterate overlayClipsRef and play/seek each overlay clip in range. 50ms drift gate prevents redundant per-frame seeks during steady-state playback.
  • Out-of-range overlays are paused (no decoder churn on long timelines with many PiP segments)
  • Verified live in browser; all 70 regression suites pass.

v1.7.84: Fix: deleting a text overlay didn't visibly clear; text could only move vertically (May 22, 2026)

  • Tester report: 'Can't move text layering. Delete text doesn't work.'.
  • Delete fix: VideoPreview's paused-state repaint signature was clip-only — deleting a text overlay updated state correctly but the canvas didn't repaint until the next scrub, so the deleted text appeared to linger. Signature now also depends on textOverlays / stickers / subtitles / overlayClips identity+anchor+time.
  • Move fix: TextOverlayPanel only had a Position Y slider, locking text to horizontal center. Added a Position X slider with the same 5..95 range / step 1 so creators can place text anywhere in the frame.
  • New regression suite pins both fixes; all 69 suites pass.

v1.7.83: Fix: 9:16 preview now fills the frame (cover, not letterbox) (May 22, 2026)

  • Tester follow-up on v1.7.82: 'See how this format is squeezing here.' The letterbox bars introduced in the previous fix were technically correct (pro-NLE default) but read as 'squeezing' to consumer-NLE users.
  • Switched fitVideoInCanvas default from contain (letterbox/pillarbox) to cover (fill + center-crop) — matches CapCut / iMovie / TikTok behavior.
  • Helper now returns the 8-arg drawImage rect so cover mode can source-crop. contain mode preserved behind opt-in mode arg for the future pro-mode toggle.
  • Smart Reframe stays as the precise-control AI path. Letterbox-mode toggle deferred until post-launch.
  • All 68 regression suites pass (assertions updated to cover-by-default)

v1.7.82: Fix: 9:16 Reels preview was squeezing the canvas — now reshapes properly (May 22, 2026)

  • Tester report: 'When switching to the 9:16 Reels format, the main video preview window gets squeezed horizontally instead of automatically collapsing or adjusting the side panels.' Confirmed and fixed.
  • Root cause: the header aspect picker only set the Export preset + a toast — preferredAspect was never plumbed into <VideoPreview/>, so the canvas stayed source-shaped and the source video was stretched edge-to-edge with ctx.drawImage(vid, 0, 0, w, h).
  • Fix: VideoEditor now passes a numeric projectAspect (9/16, 16/9, 1, 4/5) into VideoPreview. The ResizeObserver uses it to override the source aspect, and useCanvasRenderer letterboxes/pillarboxes via the new fitVideoInCanvas helper instead of stretching.
  • Smart Reframe stays untouched — it keeps stretching the user-chosen source rect to fill the frame, since that's the entire point of the tool.
  • Verified: 9:16 → canvas ratio 0.563 ✅ · 1:1 → 1.000 ✅ · 16:9 / Original → 1.776 ✅ · all 68 regression suites pass.

v1.7.81: Review links un-ghosted — public count now 72 tools (May 22, 2026)

  • Removed review from the ghost-tool registry. The Mongo-backed /api/review/* endpoints (create / get / comment / resolve / status) plus the 5-second-poll cross-device frontend hook have been live since v1.7.46 — the ghost flag was just stale bookkeeping.
  • Bumped TOOLS_PRO 53 → 54 (TOOLS_TOTAL 71 → 72). AI_PRO unchanged at 28 — review is a non-AI Pro tool.
  • End-to-end smoke test passed: create thread, post timecoded comment, toggle resolve, set status approved, cross-device GET, delete comment, _id strip verified.
  • Zero ghost tools remain. The marketing surface and the live editor are now fully in sync.

v1.7.80: Performance Mode un-ghosted — public count now 71 tools (May 22, 2026)

  • Removed perfmode (DaVinci-style Preview Quality: Full / Smooth / Proxy) from the ghost-tool registry after closed-testing cohort signed off on the UX.
  • Bumped TOOLS_PRO 52 → 53 (TOOLS_TOTAL 70 → 71). AI_PRO unchanged at 28 — Performance Mode is a non-AI Pro tool.
  • Only one ghost tool remains: review (shareable timecoded review links), still pending Mongo persistence.
  • Regression tests updated (performanceMode + phaseDE suites) to assert the new un-ghosted state.

v1.7.62: AI toolbar focus: 3-for-3 swap with the right sidebar (Feb 2026)

  • Demoted 3 core AI tools from the AI toolbar (sync, sfx, musicsuggest) — they now live in the right sidebar where their lower traffic doesn't take up bar real estate.
  • Promoted 3 pro non-AI tools from the right sidebar into the AI toolbar's extreme-right tail (highlights, deflicker, beatpulse) — visual finishing tools that pair well with the bar's existing pro density.
  • Net effect: bar stays at 46 rendered buttons but Pro-density is higher; right sidebar composition shifts from 7 core + 6 pro to 10 core + 3 pro (sortByPackage still places all core at the top, pro at the bottom)
  • Both sidebars remain at 13 visible buttons. Left sidebar unchanged.

v1.7.61: Sidebar polish: PRO divider removed + columns visually balanced (Feb 2026)

  • Removed the inline "PRO" text divider from both sidebars per tester feedback ("the 'PRO' text is incorrect"). Each Pro button already carries its own crown badge, so the divider was redundant — and the boundary landed at very different y-positions on the two columns (LEFT 12-core/1-pro vs RIGHT 7-core/6-pro), which made the sidebars look uneven.
  • With the divider gone, both columns now read as clean uniform 13-button stacks with identical y-positioning. Pro-vs-core is still signalled per-button via the crown badge.
  • Light group separators (edit / media / advanced) preserved — those are subtle and useful for muscle memory.

v1.7.60: Sidebar parity — 13 buttons on each side (Feb 2026)

  • After v1.7.59's 4-pair pickup, the left sidebar had 12 visible buttons and the right sidebar had 14. Moved reframe from the right sidebar's advanced group to the left sidebar's edit group so both columns sit at exactly 13 visible buttons.
  • Semantically clean — aspect-ratio reframing (16:9 ↔ 9:16 for Reels/Shorts/TikTok) is an edit-time decision, so it belongs in the edit cluster alongside Layouts, Speed, Animate, and Stabilize.

v1.7.59: AI toolbar rebalance: 4 pairs pulled from sidebar bottoms (Feb 2026)

  • Moved 4 pairs (8 tools total) from the bottom of the visible left + right sidebars into the horizontal AI toolbar — exactly what the editor needed for the next 6 days of tester-feedback polish.
  • Left sidebar bottom moves: Stabilize, Stylebook, Ducking, Spill — now anchor the AI toolbar's extreme LEFT.
  • Right sidebar bottom moves: Brand, Titles, Style (templates), Review — now anchor the AI toolbar's extreme RIGHT.
  • AI toolbar grows from 25 to 33 source items (~46 buttons rendered including each tool's sub-controls) with px-8 padding leaving one button-width of breathing room on each extreme end.
  • Left sidebar drops 16 → 12 buttons. Right sidebar drops 18 → 14 buttons. The vertical strips are noticeably less crowded.

v1.7.58: Privacy chip goes red + Timeline helper text repositioned (Feb 2026)

  • Compact Privacy Mode chip in the editor toolbar now renders in red (rose palette) — reads visually like a kill switch instead of a decoration. Tester-feedback color change.
  • "Select a clip on the timeline to edit it" helper text moved from the AI tool bar's centre into the Timeline header row, absolutely-centered between the TIMELINE label (left) and the zoom controls + clip count (right). Hidden when a clip is selected (the action bar above takes over the messaging)
  • ClipContextToolbar centre is now reserved space — ready for header overflow items (next change pending user clarification)

v1.7.57: Privacy Mode toggle promoted to the editor toolbar (Feb 2026)

  • The Privacy Mode kill switch is no longer buried inside the About AetherCut dialog — a compact "Privacy Mode · X cloud calls" chip now lives directly in the editor's header toolbar, between Performance Mode and the Help button.
  • Both surfaces share the same usePrivacyMode hook so flipping one updates the other in real time. Tooltip on hover: "One-click kill switch for every cloud AI tool. Verifiable in DevTools.".
  • Pinned by regression so a future agent can't silently demote it back to the About dialog.

v1.7.56: Social Pack launchpad — one-click marketing posts without losing your place (Feb 2026)

  • New /admin/social-pack page: 11 pre-written marketing posts across X, Bluesky, LinkedIn, Reddit, IndieHackers. Each post is editable inline (autosaves on every keystroke, reload-safe) with a live char counter that warns when you're over the platform limit.
  • One big "Post on <platform>" button per post copies the text to your clipboard AND opens the platform in a new tab — if the post isn't already filled in (looking at you, LinkedIn), one ⌘V paste gets you back on track.
  • Cross-device "Mark as posted" toggle persists in MongoDB so you can mark a post done on your phone and see it stay done on your laptop. No double-posts when picking back up later.
  • Filter pills (All / Unposted / Posted) so the founder always sees what's left without scrolling through finished posts.
  • Pre-written for the AetherCut launch: DevTools-reveal hooks for X, founder essay for LinkedIn, /r/videography long-form, /r/SideProject Show post, /r/legaltechnology workflow post, Bluesky launch + legal posts, Show IH post. Every post UTM-tagged so /admin/attribution measures which platform drives signups.
  • Honest Typefully recommendation in the footer: if posting still feels heavy after this launchpad, $15/mo at Typefully does the scheduling + fan-out across platforms.

v1.7.55: Marketing follow-ups: 3 honest comparison blog posts + Legal landing + YT short script (Feb 2026)

  • New /blog with three SEO-targeted comparison posts: AetherCut vs CapCut, AetherCut vs Clipchamp, AetherCut vs Descript. Every post includes a 'Pick the competitor if…' section — trust beats persuasion. Pinned by regression so no future agent can strip the honesty rule.
  • New /legal landing page for regulated workflows: deposition prep, sealed evidence, privileged client material, litigation hold artifacts. Describes the WORKFLOW, never the compliance stamp — explicit 'What we're not claiming' section disclaims BAA-eligibility, FedRAMP authorization, GDPR Article 30 reps.
  • Three YT short script variants in /app/memory/yt-short-script.md: 'DevTools Reveal' (proof-led), 'Three-Card Monte' (guess which uploads), and 'For Legal' (regulated-industry version). Each variant includes UTM tracking + an A/B test plan.
  • Footer links extended: /blog and /legal join /faq, /changelog, /desktop, /privacy, /terms. Every public route has a crawl path from any page.

v1.7.54: Desktop waitlist: use-case keyword widget for decision-support (Feb 2026)

  • New keyword bucket strip on /admin/desktop tallies signups across 6 semantic clusters: Hardware export, Local AI, Offline/no network, Regulated workflows, Creator content, Browser pain. Each pill shows count + % of total.
  • Regulated workflows bucket triggers on NDA, legal, attorney, deposition, medical, patient, telehealth, HIPAA, government, classified, sealed, evidence — the signal that tells you whether to prioritize a /legal landing page over a generic /desktop pitch.
  • Click any pill to filter the list to just signups matching that bucket. Combines with the text-search filter (AND logic) so you can do "regulated" + type "podcast" to find regulated podcasters.
  • Decision-support guide below the pills tells you what each cluster means for Phase 1 scoping: Hardware → NVENC/QSV/VideoToolbox · Local AI → bundle Whisper.cpp + small LLM · Regulated → ship /legal landing first.
  • Widget hidden until total ≥ 5 signups — not enough data to read before that.

v1.7.53: Desktop waitlist: admin view + CSV export + FAQ/Footer discovery (Feb 2026)

  • New admin-only /admin/desktop page lists every waitlist signup with email, use-case text, referrer, and timestamp (newest first). Lets the founder read the actual "what would you use it for?" responses before scoping the Phase 1 build — if 60% of answers mention podcast edits, the answer is local Whisper, not NVENC.
  • One-click CSV export: open the waitlist in a spreadsheet to tag/sort/segment without writing queries. Same admin-gated endpoint (verify_admin via X-Admin-Key)
  • Inline search filter: type to narrow by email, use-case, or referrer — handy once the list crosses 100 signups.
  • FAQ section 4 (Minimum system requirements) now has a tiny pointer to the Desktop waitlist for visitors researching "what does this need to run well?".
  • Footer adds /desktop + /changelog links alongside Privacy, Terms, and FAQ — SEO crawlers can now find every public page from any page.
  • Deliberate decision: no automated outbound emails (no Resend integration). Emails are retained server-side so we can reach out manually when the threshold is met. Fewer moving parts, lower compliance surface, zero 3rd-party dependency.

v1.7.52: AetherCut Desktop — demand-gated waitlist (Feb 2026)

  • New /desktop landing page captures email signups for a proposed native Tauri build (10× faster export via hardware encoders, no tab throttling, real filesystem, optional on-device AI)
  • HONEST progress bar: the build only starts when the list crosses 500 confirmed signups within 60 days, or when ≥50 people pre-order at $49. No fake numbers, no "join 10,000 creators" lie — the page shows the real count, live, updating every 30 seconds.
  • Privacy-first: backend explicitly does NOT store IP addresses (only email + optional use-case text). Honeypot field blocks bots. Rate-limited 5 signups/min per IP. Idempotent — duplicate emails return existing position, not an error.
  • Surfaced on the landing page via a new 'Desktop' card in the "Where AetherCut runs" section, alongside Browser + Android. The card is honest about being in Beta and links straight to the waitlist.

v1.7.51: Guest-mode friction-killer hint under the primary CTA (Feb 2026)

  • Tiny inline hint right under "Try without signing in →" answers the "what does this cost me?" question in a single glance: Guest mode · nothing to fill out · 1 click in.
  • Reinforces the primary action without competing with it — micro-type sits between the Guest button and Google button, won't draw the eye away but resolves hesitation for visitors hovering the cyan CTA.
  • Pinned by regression: copy can't be silently diluted to generic phrases ("free trial · easy onboarding") in a future refactor.

v1.7.50: Landing-page hero v3 — literal promise + guest-first CTA (Feb 2026)

  • New H1 bakes the privacy promise into the headline itself: "Edit, export, publish — without sending a single frame to a server." Visitors no longer have to read three separate elements to assemble the differentiator.
  • Tightened hero subhead from 35 words to 18 — kept "Raw footage to publish-ready" as the sub-line for SEO continuity, dropped the feature-list dump.
  • Inverted CTA order: "Try without signing in" is now the primary cyan-filled button, "Continue with Google" demoted to a secondary outline button. Guest mode IS the product proof — one click and you can verify no-upload in DevTools.
  • Demoted the manifesto quote out of the hero (it was eating ~200px above the CTAs). Moved below the Privacy Proof matrix so visitors see the literal differentiator first, the colour second.
  • Pinned every decision in a new regression suite so a future agent can't silently flip the CTA back to Google-primary or strip the "frame to a server" promise from the H1.

v1.7.49: Picture-in-Picture popout — independent play/pause + still-frame fix (Feb 2026)

  • Floating Play/Pause button now lives inside the PiP popout window itself — click it (or hit Space) to toggle playback without bringing the editor tab back into focus. Reported by a user who wanted to keep the popout on a second monitor while scrubbing references on the main tab.
  • Fixed the 'PiP shows a frozen still picture' bug — the mirror loop now re-fetches the live preview canvas every tick instead of holding a stale reference that died whenever React re-keyed the canvas (e.g. on aspect-ratio restore or Performance Mode toggle)
  • Popout button icon stays in sync: pushes ▶ when paused, ⏸ when playing, with a subtle 250ms auto-hide so it doesn't fight the video for attention. Hover or move the cursor inside the popout to re-reveal.
  • Wiring is bidirectional and safe across panel unmounts: pop out the preview, switch to any other sidebar tool, the popout keeps mirroring and the play button keeps working.

v1.7.47: Privacy Mode — one-click kill switch for every cloud AI tool (May 2026)

  • New global toggle disables all 20 AI tools that touch the network (Whisper, Sonnet, ElevenLabs, fal.ai, Sora). When ON, the editor degrades to ~55 fully-local tools and zero outbound media — verifiable in DevTools → Network.
  • Locked tools display a green shield badge in the AI bar instead of opening; clicking them surfaces a clear toast pointing at the toggle.
  • Privacy Mode gate takes precedence over the Pro upgrade gate — if you turned off cloud AI, you don't get pitched on Pro, you see why the tool is locked.
  • Setting persists in localStorage and syncs across tabs (flip it in one tab → other open editor tabs honour it on the next click)
  • Toggle surfaces in three places: Header → About, the Trust Receipts matrix on the landing page (a live demo visitors can flip before signup), and a Privacy Mode section in the in-editor user guide.
  • No other editor on the comparison scorecard offers this — Descript and Premiere Rush only ship the milder 'don't train on my content' opt-out, which doesn't STOP the upload.

v1.7.46: AI Performance Analyzer + closed-loop publish gate (May 2026)

  • New Pro AI tool: Performance Analyzer scores your hook (first 3 seconds) and predicts your full retention curve across the timeline — Claude Sonnet 4.5, text-only, no media leaves your browser.
  • Predicted drop-off warnings are clickable — tap any flagged window and the playhead seeks straight there so you can rewatch the dip in context.
  • Closed loop on export: when you open the Export dialog, the preflight checklist auto-runs Performance in the background and surfaces any critical drop-offs as a 'fix-before-publish' row. First-time exporters get the safety net with zero clicks.
  • Stale-detection: if you edit the timeline after analyzing, the preflight row flips to 'Performance analysis is stale (was 78/100) — re-analyze' instead of trusting old data.
  • Editor sidebar visually clusters by buyer-facing package (Core Creator Workflow above, Pro Production below, with a labelled divider) — outcome-led taxonomy without disrupting muscle memory.
  • Marketing tallies updated everywhere: 70 creative tools · 30 AI features · AetherCut still leads every benchmarked competitor 79 / 79 on the comparison table.

v1.7.45: Trust Receipts, Brand Kit, Review links + 9 platform export presets (Apr 2026)

  • Landing page redesigned with a 3-column 'Trust Receipts' matrix — per-tool, no-asterisks breakdown of what stays local, what our servers see, and the exact clicks that send anything to a third-party AI. Open DevTools → Network on any non-AI tool: zero outbound media. That's the test.
  • Brand Kit panel (formerly 'Logo') now bundles logos · colours · font · intro/outro · caption style — the whole brand travels with your project automatically.
  • Server-backed Review links: generate a shareable URL, clients leave timecoded comments + approve/request-changes — now persisted across devices (the localStorage MVP is gone). Token-as-auth so reviewers don't need an account.
  • 9 named Export presets: YouTube · Shorts · Reels · TikTok · IG Square · Podcast · Ad · Review · Thumbnail — each burns the right bitrate, safe margins, caption mode automatically.
  • New Export Preflight Checklist catches missing captions, wrong aspect ratio, unverified sources BEFORE you start the export — no more 'rendered, then realised I forgot subtitles'.
  • Command Palette (Cmd/Ctrl + K) — jump to any tool, any project, any setting without leaving the keyboard.
  • Per-clip Source/Rights badges (ORIG · STOCK · AI · LIC) answer 'can I monetise this?' before publish.
  • Every AI tool now shows its cost tier ($ / $$ / $$$ / $$$$) BEFORE you click — kills surprise spend.

v1.7.30: AI Upscale + Sora 2 Text-to-Video B-Roll (Mar 2026)

  • AI Upscale (Pro) — 4× upscale a frame snapshot to print-quality stills via fal.ai clarity-upscaler. Image-only by design.
  • AI Text-to-Video B-Roll (Pro) — type a shot description, OpenAI Sora 2 generates a 4-second clip and drops it straight onto your timeline. When stock didn't have it, you generate it.
  • Daily/monthly usage caps surface in a tooltip on the upscale + Sora buttons so cost is visible before the click — same posture as every other paid AI tool.

v1.7.27: Tier 3 AI bundle: Beat Sync · Studio Sound · Highlights · Voice Coach (Mar 2026)

  • AI Beat Sync — detects beats in your music and snaps every cut on the timeline to the nearest beat. 100% client-side via Web Audio, no server roundtrip.
  • AI Studio Sound — one-click voice clean-up via Web Audio chain (highpass + de-ess + presence boost). Sounds like a podcast booth without leaving the browser.
  • AI Highlight Reel — Sonnet 4.5 reads the transcript and picks the most engaging moments from a long clip → instant 60-second reel. The long-form-to-shorts repurposing engine.
  • AI Voice Coach — transcribes your delivery, measures WPM + filler density + pause patterns, and Sonnet returns timestamped coaching notes. Unique on Earth — nothing comparable exists in any other video editor.

v1.7.26: Tier 2 AI bundle: Eye-Contact · Object Eraser · Reference Color Grade (Mar 2026)

  • AI Eye-Contact Correction — detects off-camera gaze and rotates the speaker's eyes to look at the lens. Saves on-camera retakes for teleprompter-reading creators (fal.ai sieve)
  • AI Object Eraser — paint a region, inpaint it out across every frame. Runway-class video inpainting via fal.ai ProPainter; logos/watermarks/intruders gone in seconds.
  • AI Reference Color Grade — drop a reference still (movie still, IG filter, mood board), Sonnet outputs a grading spec your other clips snap to. Zero pixels leave your browser — Claude only sees the reference image.

v1.7.25: Tier 1 AI bundle: Lip-Sync · De-Um · AI Silence Removal (Mar 2026)

  • AI Lip-Sync — re-renders the speaker's mouth to match a new audio track. Perfect for dubbed videos so lips match the new language (fal.ai sync-1.7.1)
  • AI Voice Cleanup (De-Um) — Whisper word-timestamps detect 'um', 'uh', stutters → surgical micro-cuts remove them without trimming real speech.
  • AI Silence Removal — transcript-aware (not energy-based) silence cut. Never mistakes a quiet 'yeah' or breath for dead air, unlike the legacy silence trimmer.

v1.7.20: AI Director multi-shot planner + attribution dashboard (Mar 2026)

  • AI Director (Pro) — feed it a brief, Sonnet plans a structured shot list with scene breakdowns. Saves the 30-minute 'what's my outline?' stare at an empty timeline.
  • Admin attribution dashboard now stamps acquisition source / medium / campaign on every signup so we can finally see which channels actually produce paying users.
  • Reddit Ad ROI card surfaces $/Pro signup + Pro conversion % — first-touch attribution stamped at signup.
  • Onboarding QuickTour fires once per fresh user — auto-dismisses after 12s so it never haunts the UI.

v1.7.3: Detach Audio polished: dedicated row, linked-deletion, waveforms (Feb 2026)

  • Audio clips now live in their own dedicated row beneath the video row — no more visual stacking when a detached audio twin starts at the same time as its video.
  • Right-click a video that has a detached audio track → 'Delete clip + linked audio' or 'Delete video only (keep audio)' for clean J-cut workflows.
  • Waveforms now propagate to detached audio twins and standalone .mp3/.wav uploads (extraction matches by source URL, not by clip id)

v1.7.2: Bandit-optimized Fuel headlines + Reddit Ad ROI cost-per-revenue tile (Feb 2026)

  • Fuel pill headline rotation upgraded from round-robin to a multi-armed bandit — variants with higher per-tip revenue automatically get more airtime, while every variant retains a nonzero exploration chance.
  • Bandit uses Laplace-smoothed revenue weighting ($8 exploration bonus per variant), session-stable picks via sessionStorage so the variant tag matches the copy the user actually saw.
  • Admin dashboard Reddit Ad ROI card gained a '$ spent per $1 returned' tile — sums tagged donation revenue + estimated Pro signup revenue, color-coded green (<1×, profitable) / amber (<2×) / red (≥2×, deprioritise)

v1.7.1: Auto-Chapters: YouTube chapter timestamps from your transcript (Feb 2026)

  • New Pro tool: Auto-Chapters generates 4–12 YouTube-style chapter timestamps from your existing caption track using Claude Sonnet 4.5.
  • Copy YouTube format — pastes 00:00 Intro / 01:24 Topic Two / … straight into your video description (YouTube auto-renders chapters when 3+ timestamps are present)
  • Add as text overlays — drop each chapter title onto the timeline as a 3-second top-of-frame card so the chapters show up on non-YouTube embeds too.
  • Validates against YouTube's actual chapter rules: first chapter forced to 0:00, minimum 10 seconds between chapters, max 12 entries.
  • Counted in the public tally: 38 total tools, 10 total AI features (was 37 / 9)

v1.7.0: Channel ROI dashboard, mobile drag handles, refined tool counts (Feb 2026)

  • Admin dashboard (/whitelist.html) gained a Channel ROI comparison table — every UTM source side-by-side with editable per-channel spend, sortable by $/Pro, cheapest channel highlighted in green.
  • Reddit Ad ROI card now shows $/Pro signup + Pro conversion % (first-touch attribution stamped on user record at signup)
  • Guest Mode activation funnel — admin dashboard shows guest-open count and conversion rate (guest_activations / login_views)
  • Mobile parity: timeline text-overlay + subtitle chip resize handles are now always-visible 8px tap targets on touch devices (was 6px hover-revealed, invisible to fingers)
  • Touch drag works on text overlay + subtitle chips — onTouchStart binds alongside onMouseDown via a new shared pointer-input helper.
  • AI Director revealed in the public tool count — was hidden during launch ramp, now part of the visible 19 Pro tools.
  • Filler Word Removal + AI Morph Cut counted in tier tally — 37 total tools, 9 total AI features (was 34 / 6)
  • Behind the scenes: Timeline.js split into TextOverlayRow / SubtitleRow / StickerRow subcomponents (969 → 798 LOC); E2E test surface expanded with seed(), restoreTextOverlays, restoreStickers, restoreOverlayClips, setPro.

v1.6.7: Background music now appears on the timeline as a draggable amber pill (May 2026)

  • Add background music in the Audio panel and a 'MUSIC' track row appears on the timeline directly below the Voiceover (VO) row — same drag-to-reposition + hover-× to remove pattern.
  • Pill width auto-sizes to the music's actual duration (decoded via HTMLAudioElement metadata on import)
  • Voiceover (violet) and Background Music (amber) now have visually distinct pills so they're never confused.
  • Direct response to a tester suggestion — thanks for the catch.

v1.6.6: Timeline clips now show a real filmstrip across their full width (May 2026)

  • Each clip on the timeline now displays 10 evenly-spaced thumbnail frames sampled from across the clip's actual duration — like Premiere, DaVinci, FCP, and CapCut.
  • Filmstrip extracts asynchronously after import (~2-3 seconds) so the editor never blocks; until it lands, the clip falls back to tiling the single thumbnail across its width.
  • Replaces the previous '3 small thumbnails on the left + colored block on the right' look that left wider clips visually empty.
  • Bottom gradient overlay keeps clip name and duration readable over the filmstrip.
  • Hard 12s timeout per clip means corrupt or stalled codecs gracefully fall back without blocking the UI.
  • Shipped in direct response to feedback from a Reddit user — thanks for the catch.

v1.6.5: All banners and lists synchronized with the latest Pro tier (Feb 2026)

  • Help Guide now shows the amber Pro badge on the 5 newly-Pro tools: B-Roll, Reframe, Logo, Silence, and Publish.
  • Comparison table (LoginPage + About dialog) updated: '4K export' and '1-click multi-platform export + announce' rows now show 'Pro tier' for AetherCut instead of a misleading 'free' check.
  • 'No watermark on free tier' row renamed to 'No watermark on any tier' — matches the policy that AetherCut never watermarks any export, regardless of tier.
  • All marketing surfaces (DonateDialog, Terms, About, Help) now show the same numbers: 18 free / 16 Pro / 34 total, 2 free AI / 4 Pro AI / 6 total AI.

v1.6.4: Multi-platform Publish moved to Pro tier (Feb 2026)

  • The 'Publish' panel — which lets you cross-post directly to YouTube and queue for other platforms — is now Pro-only.
  • Free users still see the panel and can preview captions/hashtags; clicking publish triggers the upgrade prompt.
  • Free tier total: 18 creative tools + 2 AI features. Pro tier: 16 additional tools + 4 AI features + 4K export + multi-platform Publish + unlimited projects.

v1.6.3: Viral Kit thumbnails are now 100% watermark-free by default (Feb 2026)

  • The 'AETHERCUT.APP' credit that used to appear on Hook-variant thumbnails is now opt-in via a checkbox in the Viral Kit dialog — off by default.
  • Toggle on if you want to give us a free shoutout when your thumbnail goes viral; otherwise your thumbnails are 100% your brand.
  • Reaffirms the policy: AetherCut never adds a watermark to your video exports OR your social thumbnails without your explicit say-so.

v1.6.2: 4 more tools moved to Pro tier (Feb 2026)

  • Auto B-Roll Suggester, Smart Reframe, Logo/Watermark, and Silence Trimmer are now Pro-only — they now show the amber crown badge in the sidebar and trigger the upgrade prompt for free users.
  • AI Color Match stays in the free tier (paired with AI Background Removal as the two free AI features)
  • Free tier total: 19 creative tools + 2 AI features. Pro tier: 15 additional tools + 4 AI features + 4K export + unlimited projects.
  • Marketing copy updated across the donation dialog and Terms of Service to reflect the new free-tier breakdown.

v1.6.1: Dark splash on the way out to Google sign-in (Feb 2026)

  • Clicking 'Get Started with Google' now paints a dark AetherCut-branded splash ('Redirecting to Google sign-in…') for the brief moment before navigation completes — no more white flash leaving the app.
  • Splash uses the same zinc-950 + cyan accent palette as the rest of the editor for visual continuity.
  • The destination Emergent auth page is still light-themed (it's outside our codebase) — feature request filed with Emergent to add a dark mode option.

v1.6.0: Auto-Edit now works on the clip you already uploaded (Feb 2026)

  • Fixed: 'Auto-Edit Video' button used to always open a Windows file picker (which on some systems hijacked into PowerDirector or another default video app). It now smart-routes — if you have clips on the timeline, it auto-edits those directly without opening any OS dialog.
  • Button label is now context-aware: 'Auto-Edit Selected Clip' when one is highlighted, 'Auto-Edit Last Clip' when none is selected, 'Auto-Edit New Video' only on an empty timeline.
  • Tooltip explains what each mode does so you can see at a glance whether it's about to scan an existing clip or pick a new file.

v1.5.9: AI Voiceover — now audible in preview and baked into exports (Feb 2026)

  • Hidden <audio> element in the preview pipeline syncs voiceover playback with the main timeline (play/pause/seek, drift-corrected)
  • Voiceover volume from the Audio panel now controls live playback in real time.
  • Export pipeline taps the voiceover AudioContext graph via MediaStreamDestination — voiceover is mixed into the exported WebM/MP4.
  • When a voiceover is present, export automatically uses the MediaRecorder path (WebCodecs can't capture audio elements); pure-video exports keep the faster WebCodecs path.
  • Known gap: clip-native audio + bgMusic still not included in export — follow-up work.

v1.5.8: AI Voiceover now shows up on the timeline (Feb 2026)

  • Fixed: clicking 'Add to Timeline' in the AI Voiceover panel now drops a visible violet pill on a dedicated VO track directly below the main audio waveform.
  • Drag the pill left/right to reposition the voiceover start time; hover and click × to remove it.
  • Pill width reflects the generated audio's actual duration (probed via HTMLAudioElement metadata before insertion)
  • Note: audible playback + export wiring is a follow-up — this release is the visible-on-timeline confirmation step.

v1.5.7: Email capture + social-card polish (May 5, 2026)

  • New 'Stay in the loop' email signup on the login page — visitors not ready to sign in can now leave their email for product updates.
  • Honeypot bot defense + idempotent email storage + CSV export endpoint at /api/admin/email-signups/csv.
  • Fixed broken Twitter share-card image (was pointing at an SVG which Twitter rejects) — share previews now render correctly.
  • Privacy + Terms pages updated with current 'Last updated' date.

v1.5.6: Social-followers tracker on the admin dashboard (May 5, 2026)

  • New 'Social followers' card at /whitelist.html — tracks Instagram, TikTok, X, LinkedIn, and YouTube counts in one place.
  • Per-platform rows with brand colors, handles, and 24h / 7d delta badges (green for growth, red for drops)
  • Inline Update form — punch in a new count any time, history is preserved (60 entries per platform)
  • Total-followers banner at the top so you see the cross-platform aggregate at a glance.
  • Backend: /api/admin/social/stats GET + POST, gated on admin auth.

v1.5.5: Visitor analytics dashboard (operator-only) (May 3, 2026)

  • Backend records every login-page and editor mount as a fire-and-forget POST — no cookies, no fingerprinting.
  • Dashboard at /whitelist.html shows: total views · unique visitors · login vs editor split · device breakdown · top referrers · daily bar chart.
  • Privacy-respecting: IPs hashed with daily-rotating salt, user-agents bucketed (mobile/desktop/tablet), referrers stripped to host-only (kills tracking IDs)
  • E2E test sessions are excluded so synthetic traffic doesn't pollute counts.

v1.5.4: Sidebar scroll hints — no more hidden tools (May 3, 2026)

  • Added subtle pulsing chevron arrows on the left and right tool sidebars when there are more tools below the fold.
  • Up-chevron appears after you scroll down so you know you can go back.
  • Click the chevron to scroll, or just use your mouse wheel over it.
  • Auto-hides when all tools fit on screen (fullscreen mode, tall windows)

v1.5.3: Support AetherCut from the login page (May 3, 2026)

  • New 'Support AetherCut' section on the login page — donate without needing to sign in first.
  • Reuses the same Stripe donation flow (anonymous donations are supported on the backend)
  • Sits between 'Spread the word' and the footer — natural place for the 'if you can't share, support' progression.

v1.5.2: Fuel AetherCut now shows live donor count (May 3, 2026)

  • Donate dialog now displays a social-proof badge: 'X creators have fueled AetherCut in the last 30 days — join them' (only renders when count ≥ 1)
  • Auto-pluralizes ('1 creator has' / '2 creators have') so the copy reads naturally as the count grows.
  • Triggered by the first real donation yesterday — the counter is now working for you 24/7.

v1.5.1: E2E auth-bypass for testing (production-safe) (May 2, 2026)

  • Added opt-in ?e2e=1 URL param + window.__AETHERCUT_E2E__ flag for testing-agent flows — bypasses Google sign-in.
  • Triple-gated for safety: only activates on preview/localhost hostnames AND requires explicit opt-in — production aethercut.app is immune.
  • 20 regression tests lock in the safety boundary (try every production hostname × every opt-in combination → all blocked)
  • Fake user has no backend session, so even if bypass somehow activated, all real API calls (Stripe, YouTube, save) still 401.

v1.5.0: Publish Guide goes global + first-visit nudge (May 2, 2026)

  • Publish Guide now translated across all 15 languages — content respects your language switcher choice.
  • First-visit nudge: subtle cyan tooltip points at the 'How to publish' button on first editor load (auto-dismisses after you open the guide once)
  • Nudge auto-times out after 12 seconds even if you never click it — so it never haunts the UI.

v1.4.9: New: 'How to Publish' guide right next to Export (May 2, 2026)

  • New cyan 'How to publish' button sits immediately to the right of the Export button — six-step walkthrough from Export click to live on YouTube.
  • Each step has a 'Show me where this is' button that pulse-highlights the actual UI element so you stop hunting for buttons.
  • Covers both paths: direct YouTube upload AND manual upload to Instagram/TikTok/X with caption suggestions.
  • User avatar moved to the left of Export so the publish guide can take its rightful place as the rightmost CTA.

v1.4.8: Export pipeline overhaul — black-screen bug fixed (May 2, 2026)

  • Fixed: exported videos uploaded to YouTube were a black screen — the canvas wasn't being painted during recording.
  • WebCodecs export path re-wired to receive the full scene graph (clips, transitions, overlays, captions) — faster-than-real-time exports back.
  • MediaRecorder fallback now drives real playback so it captures actual frames; defensive fallback if scene-graph data is missing.
  • Backend: YouTube upload errors now surface specific reasons (no channel, quota exceeded, etc.) instead of false-success toasts.
  • About dialog version label now reads dynamically from the changelog — no more rotting hardcoded numbers.

v1.4.7: YouTube: one-click account switcher + always-show account picker (May 2, 2026)

  • OAuth now ALWAYS shows the Google account picker — no more accidentally linking the wrong Google account in the background.
  • New "Switch account" button next to "Connected to:" — disconnect + re-pick a different Google account in one click.
  • Forces a fresh refresh token on every reconnect so uploads can keep working long-term.

v1.4.6: Public-copy honesty audit complete (May 2, 2026)

  • Play Store screenshot label corrected: "6 genuine AI features (2 free + 4 Pro)".
  • Terms of Service now spells out exactly which features are Pro vs free — no more vague "AI tools require Pro".
  • About dialog AI description tags each of the 6 AI features as (free) or (Pro)
  • Added the strongest competitive claim back inline: "All AI runs without metering or pay-per-use credits".

v1.4.5: Honest free-tier copy on the login page (May 2, 2026)

  • Fixed: login page used to claim all 6 AI features were in the free tier — only 2 actually are (BG remove + color match). The other 4 (captions, scene detection, motion tracking, TTS) are Pro.
  • Updated copy reads: "2 AI features in the free tier. 4 more included with Pro. None are pay-per-use.".

v1.4.4: Fullscreen by default on desktop (May 2, 2026)

  • Desktop users get a one-click "Enter fullscreen" prompt on first visit.
  • Your choice is remembered — opt in once and every future session auto-enters fullscreen on the first click.
  • Exit any time with the existing Maximize/Minimize toggle in the header.
  • Automatically skipped on mobile, tablet, and the Google Play app (those already run chromeless)

v1.4.3: YouTube diagnostics — see exactly which channel you're connected to (May 2, 2026)

  • New "Connected to: <channel>" line in the YouTube upload block — confirms which Google account AetherCut is linked to.
  • New "Show recent uploads" button — verifies your video actually landed by listing the last 5 uploads from your channel.
  • Fixes the most common YouTube confusion: AetherCut OAuth'd Account A while you're logged into Studio under Account B.

v1.4.2: YouTube uploads now default to Unlisted + clearer Studio link (May 2, 2026)

  • YouTube upload privacy defaults to Unlisted (link works immediately, video stays off your channel page until you publish it)
  • After upload: explicit "Edit in YouTube Studio" link so private videos aren't a mystery.
  • Privacy dropdown now spells out exactly what each option means.

v1.4.1: Follow AetherCut across IG, TikTok, YouTube, X (May 2, 2026)

  • Added social handles to the About dialog — Instagram, TikTok, YouTube, X.
  • Tap any handle inside About → opens the platform in a new tab.
  • Help us hit 500 IG followers — share AetherCut with one creator friend 💛.

v1.4.0: Cleaner toolbars, honest copy, faster deploys (May 2, 2026)

  • New contextual toolbar between preview and timeline (Split, Duplicate, Mute, Speed, Reverse, Lock, …)
  • Frequents now opens as a real right-side panel — no more inline pinned icons.
  • About + Why dialogs merged; comparison tables synced across login & in-editor.
  • Donation button (Fuel AetherCut) on the free tier — one-time tips, no Pro grant.
  • Fixed: undo/redo flipping aspect ratio · TikTok/Instagram/YouTube share landing on X.
  • Railway now builds the React app natively via multi-stage Dockerfile.