Changelog
Every change, latest first.
Pulled from Splice's release changelog. Refreshed on every deploy.
# v0.13.0 May 19, 2026
fix
- # Stop orphaned clip <video> so recap audio doesn't double or leak
docs
- # Refresh CLAUDE.md and AGENTS.md for current architecture
feature
# v0.12.0 May 14, 2026
fix
docs
- # Clarify worktree merge step in post-task workflow
feature
# v0.11.1 May 14, 2026
fix
- # Include 'importing' stage in publish stage labels
# v0.11.0 May 14, 2026
fix
feature
# v0.10.0 May 11, 2026
fix
- # Invalidate duration cache when file is replaced at same path
- # Retry size-stability check instead of dropping clips
- # Preserve segment-to-clip attribution across ffmpeg failures
- # Look up clip tags under canonical normalized key
- # Keep recap clips on dashboard
- # Bust webview cache after encoder bump
- # Prevent timeline text selection
- # Tighten SEO crawl signals
- # Clip hero carousel slides inside titlebar
docs
feature
- # Default to unmuted playback
- # Add technical SEO foundation
- # Integrate technical SEO improvements
- # Show drive free space and per-folder usage
- # Detection-driven capture-folder suggestions
- # Missing-source badge and delete confirmation
- # Explain FPS cost scaling and clean up reanalyze selector
- # Lead hero copy with AI verb cycle
- # Rebuild docs as Vercel-style nested routes with search
- # Replace originals-stay-yours section with full editor deep-dive
- # Show real game heroes and icons in Games card grid
- # Rerank quality tiers, range sampling, highlight default
perf
- # Bump cached thumbs to 640x360 webp q78
refactor
# v0.9.0 May 8, 2026
fix
feature
# v0.8.0 May 8, 2026
feature
# v0.7.0 May 6, 2026
fix
feature
# v0.6.0 May 6, 2026
fix
feature
- # Serve auto-updater artifacts from Cloudflare R2
# v0.5.1 May 5, 2026
fix
- # Show publish modal above clip viewer dialog
# v0.5.0 May 5, 2026
fix
feature
- # Add Tauri 2 auto-update via GitHub Releases
# v0.4.0 May 5, 2026
fix
feature
# v0.3.0 May 4, 2026
fix
feature
- # Add shift-click range selection for game column clips
- # Replace retry text with icon and hide play source button on completed clips
- # Add session recap section showing latest session's top plays
- # Move session recap into stats strip story rotation
- # Reshape session recap rank halos into soft blobs
# v0.2.1 May 4, 2026
fix
- # Hide quarantined clips from game lists
# v0.2.0 May 4, 2026
fix
- # Validate response status on mutations and harden WS reconnect
- # Gate clip queueing on file-size stability and normalize paths
- # Harden port allocation and sidecar lifecycle
- # Use atomic JSON writes and lock duration cache
- # Cap retry backoff, correct attempt counter, and tag kills with confirmed flag
- # Harden useEffect cleanup, listener attach, and selector stability
- # Sync frontend/package.json and harden release script error paths
- # Validate inputs, signal missing api key, and serialize clip mutations
- # Cancel background tasks and drain WS connections on shutdown
- # Wrap ffprobe in timeouts, validate JSON, and clean partial output
- # Consistent path keying, lock archive mutations, and quarantine orphan clips
- # Scope orphan cleanup to highlights dir to prevent quarantining source clips
- # Refetch videos on every mount to survive StrictMode double-invoke
- # Scope git-cliff to the new tag and silence rust logs
feature
# v0.1.0 May 3, 2026
fix
- # Enable continuous backfilling in video queue dispatcher
- # Resolve frozen-binary path and improve DaVinci error UX
- # Force webm muxer so .partial tempfile extracts successfully
- # Revoke the correct object URL on ImageDropzone unmount
- # Add PioneerGame.exe to Arc Raiders exe_names
- # Treat INITIAL_SESSION like SIGNED_IN in account store
- # Run astro sync before check and update @astrojs/check to latest
- # Add missing lib/config.ts and lib/supabase.ts
- # Resolve Tauri NSIS build error and Supabase type regressions
- # Use tauri-plugin-shell open for Discord OAuth in production builds
- # Fetch models on mount if store is empty
- # Re-enable download button on marketing hero
- # Correct gh release create syntax and add error handling
- # Remove max-width constraints to match other pages
- # Swap R2 worker hosts to spliceai.net + add ES256 JWT support
- # Prevent deep-link re-firing on route changes and webview reloads
- # Drop only Storage RLS policies, not direct table rows
- # Strip quotes from part ETags in completeMultipart
- # Use source recording when dragging clips from media pool
- # Center-align video in preview pane
- # Default sort to source clip and move group-by-source icon first
- # Prevent rubber-band selection when dragging playhead on ruler
- # Rewind to start when play is triggered at end of timeline
- # Restore spacebar play/pause after interacting with timeline audio blocks
- # Show clip thumbnail as poster in preview pane before playback
- # Retry bootstrap loads when sidecar is still starting
- # Refresh preview target after clip trim
- # Always refetch videos on mount and drop transform animation from columns wrapper
docs
feature
- # Add storage page with cost savings and archive policy
- # Add multi-track audio playback and UI polish pass
- # Add custom game support with full CRUD and image optimization
- # Tauri migration, custom games, and component refactors
- # Ship Tauri app — native shell, custom games, modular architecture
- # Peak meters, volume persistence, and idle cursor hide
- # Jump-to-kill from clip viewer and editor shortcuts
- # Add provider logos and quality/speed/cost meters
- # Add backend connection indicator and log viewer
- # Unify single and batch delete, lazy-load heavy dialogs
- # Add NVIDIA Nemotron 3 Nano Omni with reasoning support
- # Add re-analyze modal, per-run overrides, and cancellation
- # Add native video_url dispatch for video-capable models
- # Launch Explore tab — Supabase social feed for published clips
- # Add dark mode theme toggle and refresh Supabase functions
- # Detect Splice installation on open-in-app button
- # Replace model text with provider logo and rich hover tooltip in queue rows
- # Reorder sidebar tabs to Dashboard, Highlights, Explore, Models, Storage, Settings
- # Replace TikTok scroller with modal viewer and add clip deep-link flow
- # Show game icon and view/like counts on /c/<shortId>
- # Replace landing mockup with real product screenshots and deep-dive sections
- # Harden path traversal guards, strip shell usage, and remove API key from localStorage persistence
- # Optional GPU encoding and lossless concat optimizations
- # Switch publish encode to H264 with capped bitrate
- # Add GitHub release automation with auto-generated notes
- # Add owner delete/edit in Explore and publish indicators in Highlights
- # Set Gemini 3.1 Flash Lite as default model for all games
- # Bump publish encoder CRF 28→27 and 6→7 Mbps
- # Drop Supabase Storage RLS + buckets after R2 migration
- # Add Cloudflare R2 + media-router Worker
- # Switch Explore upload pipeline from tus/Supabase to R2 multipart
- # Switch Explore reads + avatar upload to R2 + cdn.splice.app
- # Show handoff overlay when clip opens in Splice desktop app
- # Add timeline-based clip editor, replace CompileDialog
- # Add rubber-band select, waveforms, source-clip import, and render-to-publish flow
- # Per-clip audio volume + DaVinci-style live mixer
- # Add double-buffered preview for seamless clip transitions
- # Play media pool clips in preview pane with timeline status
- # Move blade/select and undo/redo into a timeline-local toolbar
- # Show first-clip thumbnail on project cards
- # Media pool filter modal with bulk-add by date range
- # Add /changelog page and home-page strip from git history
- # Add 16:9 stretch export detection
- # Infer Explore publish game from source clip path
- # Propagate game slug from editor clips to publish flow
perf
- # Add WS delta events, GET dedup, and icon tree-shaking
- # Cap duration cache, throttle thumbs, route large videos to frames
- # Resize public game heroes/icons/logos to display dimensions
- # Drop model_response from list endpoint, expose on-demand
- # Honor If-None-Match/If-Modified-Since on thumbnails
- # Throttle rAF state writes to ~15Hz
- # Defer audio preload until first play
- # Buffer column drag-resize until mouseup
- # Memoize clip cards and stabilize callbacks
- # Own video fetch, fix selector + memo regressions
- # Drop full videos refetch from bootstrap and ws debouncer
- # Use selector subscriptions and stable memos
- # Switch explore encoder to HEVC (libx265 CRF 28)
- # Virtualize media pool grid to scale to 10k+ clips
refactor
- # Decompose monolithic backend and frontend into modular architecture
- # Split CompileDialog into stages (#2)
- # Split KillEditorDialog into hooks and subcomponents (#3)
- # Split ClipViewerDialog into hooks and subcomponents (#4)
- # Extract inlined subcomponents to separate files (#5)
- # Extract inlined subcomponents to separate files (#6)
- # Split FoldersStage into hooks and subcomponents (#7)
- # Split ApiClient into HTTPClient + WebSocketManager with typed events (#9)
- # Split ModelsStage into subcomponents and hook (#11)
- # Split StorageStage into subcomponents (#12)
- # Split lib.rs into process and port modules (#13)
- # Remove system theme and improve settings panel
- # Drop kill timestamp overlay from clip thumbnails
- # Route storage cleanup through R2 admin endpoints