FilmCraft changelog
The editor on this site runs FilmCraft 0.14.0 from October 28, 2026. Each guide names the version it was written for; the changes since then are below.
October 29, 2026 — Updated to 0.14.0
Updated to FilmCraft 0.14.0, including improved effect-parameter responses and cleanup of replaced frame workers. Existing timeline Agent edits, native undo, media tools and account settings are retained.
October 26, 2026 — Updated to 0.13.0
Updated to FilmCraft 0.13.0, including fixes for WebVTT subtitle handling and validation of effect parameters and timecodes. Existing timeline Agent edits, native undo, media tools and account settings are retained.
October 23, 2026 — Updated to 0.12.0
Updated to the official FilmCraft 0.12.0 release. Existing Agent edits, native undo, timeline media tools, and current account and credit settings are retained.
October 22, 2026 — Updated to 0.10.0
Updated to the official FilmCraft 0.10.0 release. Existing timeline Agent edits, subtitles, voice-over and image tools are retained, together with the current account and credit settings.
October 19, 2026 — Updated to 0.9.0
Updated to the official 0.9.0 release, including linked-clip deletion fixes and safer Unicode media paths. The existing Agent, subtitles, voice-over, image tools and credit prices are retained.
FilmCraft 0.14.0
October 28, 2026 · 50 changes
- Keep draft-decoder counter assertions in one test
- Report parameter and accepted value from effects.setParam
- Frame workers: a replaced frame server's workers end and release its cache and media pool
- codecs: the rayon deadlock test allows 120 s between two answered frame requests
- UI tests: wait up to 120 seconds for background work instead of a fixed number of frames
- Enable only the Alt-selected side of a linked clip
- Fit typewriter transition grid and caret to the layer's content
- i18n(fr): translate the 42 strings French still lacked
- Trim Mode: select and edit linked audio with picture (#3085)
- frame: 10-bit Y'CbCr normalisation through per-code tables
- text, ui: font coverage tests probe faces without keeping every font file loaded
- Lift and Extract put the removed range on the clipboard
- Program: drag a marquee or Shift-click to select several mask vertices, and move them together
- Stop reading on-the-hour times with a spurious "zero"
- captions: bound MCC export work to scheduled data (#2811)
FilmCraft 0.13.0
October 25, 2026 · 122 changes
- i18n test: leave installed right-to-left faces out of the Japanese check
- M8: Fujifilm F-Log, F-Log2 and F-Log2 C colour spaces (F-Gamut / F-Gamut C)
- Require session-token authentication for desktop control requests
- Reject signed fields inside multi-field timecodes
- Keep WebVTT cues whose identifier starts with NOTE
- Escape tab/newline/CR in XML attribute values
- Fix false overlaps for empty time ranges
- Reject signed fields in SCC timecode parser
- #2679: effects.setParam refuses values outside the parameter's range
- Reject non-hex characters in colour hex parsing
- Fix: Harden saves, CLI file I/O and AV1 tooling (SonarCloud security/reliability)
- Regression tests for #130, #703, #1084 and #1309
- Scroll the timeline clip menu when it is taller than the screen (#2852)
- security(interchange): bound imported track indices
- security(text): bound text and phonemizer work
FilmCraft 0.12.0
October 23, 2026 · 5 changes
FilmCraft 0.11.0
October 22, 2026 · 12 changes
- Skip CodeRabbit reviews on Dependabot PRs
- Fix: Ask to save on Cmd-Q instead of quitting outright (#1943)
- Order auto-saves by real time so rotation keeps the newest
- #2342: CLI file.exportMedia waits for the export before the process exits
- engine: preserve existing files when AAF/OMF imports embedded audio
- codecs: avoid duration-sized silence allocation for damaged MP4 audio
- Re-open a failed audio output while playing instead of going silent for good
- Hostile-input hardening for video decoders (AV1 panic + oversize allocation, MPEG-2 allocation) and fuzz tests
- Fix: Use async file I/O in async MCP handler (SonarCloud rust:S7493)
- security: validate CLI paths/args in dev tools (SonarCloud S2083/S8707/S8705)
- security: enforce HTTPS on curl downloads (SonarCloud S6506)
- README: the app icon above the title
FilmCraft 0.10.0
October 21, 2026 · 43 changes
- Skip GPU goldens when Rgba32Float is not renderable
- [agent] Dialog buttons show the pointing hand on hover
- Graphics: an outer stroke with Fill off draws only the ring outside the edge
- cli: reject deeply nested dotted parameters before parsing
- Reject .3dl LUTs whose input mesh is larger than 256 entries
- Fix: Tag SDR exports with a colr box (#2142)
- Captions: default TTML tick rate follows the frame rate multiplier
- matroska: bound recursive chapter and tag parsing
- Fix: A dropped graph keyframe stays where it was dropped
- Reject non-numeric --seconds and --scale in CLI render
- Refuse numbers separated by spaces or a unit in number fields
- monitor: the Source waveform follows the time ruler's zoom
- #1871: Lens Blur works out its disc offsets once per frame, not per pixel
- Saturate crop and field-height math on hostile Matroska/MXF/AAF headers
- Fix: Enable Multi-Camera Enable/Flatten only for clips they work on
FilmCraft 0.9.0
October 18, 2026 · 5 changes
FilmCraft 0.8.0
October 14, 2026 · 69 changes
- Captions: preserve fractional TTML tick offsets
- Export: 32-bit integer and 32-bit float audio
- Fix: Skip oracle tests when ffmpeg predates APV support
- Fix: Open the context menu on macOS Ctrl+Click
- codecs: import raw ADTS .aac files (#1291)
- Adjustment layers: a transition fades their effects in and out instead of cutting them in after it
- codecs: MP4 frames stamped just after the frame grid show on their own frame
- Fix: Hide the mask handles while the clip is not selected
- render: Sharpen stays visible at reduced playback resolution
- WIN-03: Make AVI oracle file reads portable
- #1368: nudge clip selection up/down works for linked video+audio
- #1371: export preset query also matches the format id
- Fix: A nest's audio preview follows the sound of its sequence (#1370)
- Captions: preserve tab-separated WebVTT voices
- #1408: Shift constrains mask vertex and whole-mask drags to 45°
FilmCraft 0.7.2
October 12, 2026 · 133 changes
- Share docking transactions and preserve FilmCraft panel behavior
- #853: Shift constrains pen mask segments to 45° steps
- Reveal in Finder for Project clips with a local path
- Fix: RF64 trailing metadata stays outside audio duration
- Keep nested sequence markers in OTIO export
- Export: correct loudness lost to peak limiting
- Keep New Sequence open when frame size is rejected
- #980: VP9 decode loop-filters a frame as a superblock-row wavefront
- #790: Matroska AAC / MP3 / AC-3 trims the exact CodecDelay
- #923: reordered Matroska video without DefaultDuration keeps its frame rate
- timeline: box selection updates live while dragging
- Engine: list edge, params and reverse in the sequence.applyAudioTransition schema (#1100)
- Timeline: keep continuous thumbnails fixed while the view zooms (#1094)
- Fix: Keep a setParam keyframe outside the clip at its time (#1055)
- dock: the mouse wheel over a tab strip switches tabs
FilmCraft 0.6.0
October 11, 2026 · 185 changes
- CLI: a closed stderr no longer panics with exit 101 (#537)
- CLI export: forward a lone --start or --end so the engine reports the missing bound (#538)
- Roll: reversed clips take the cut from the opposite source end (#526)
- Fix: Reversed trims use the media handle their playback direction consumes (#527)
- Trim: extend each selected edit point to the playhead by its own distance (#528)
- Linked slip: clamp to one shared delta so picture and sound stay aligned (#529)
- Frame-held Regular In trim stops at the previous clip instead of overlapping it (#530)
- Export settings: accept camelCase for nested snake_case fields (#531)
- Queue move: saturate a huge relative offset instead of overflowing (#532)
- Forced relink and Replace Footage keep the new file's properties (#534)
- Project Manager: keep every parent of a nested subclip when collecting (#535)
- Parametric Equalizer: use the full EQ so master gain, bands 1/2/4/5 and pass filters reach the audio (#540)
- Audio Gain: measure the peak of the audio stream each clip plays (#541)
- masks.addVertex: clamp oversized index on animated paths, reject empty paths instead of panicking (#543)
- MCC export: end each ancillary packet with its checksum byte so FFmpeg reads the captions (#544)
FilmCraft 0.5.0
October 10, 2026 · 62 changes
- Fix: Filmcraft-cli exits quietly on broken pipe (#285)
- #341: CLI export message names the file written, not the requested path
- #379: preset export and import go through the host, so the web build no longer traps
- #340: FCP7 XML clip source span always matches its record span
- #318: a reversed clip shows exactly its source range
- Fix: Frame stepping broken for non-standard frame rates (#301)
- #382: File > Export entries work from the menus
- #259: the edge you press is the edge you trim
- macOS DMG: branded window background and icon layout
- HW5: Linux VA-API hardware decoding for H.264 and HEVC (Main / Main 10)
- #214: install script for the Linux tarball
- Desktop: write log records to standard error and a rotating log file
- M10: keep combining marks in one vertical text cell
- M10: use Japanese vertical forms and origins for titles
- Issue #139: portable.txt next to the exe keeps the data directory beside it
FilmCraft 0.4.0
October 8, 2026 · 88 changes
- Windows on ARM64: release builds, PE header check, install test on ARM64 hardware
- codecs: resampled MP4 audio reads apply the edit list once
- engine: file.exportInterchange refuses an unknown format
- interchange: an export names every title it cannot carry
- engine: a project saved after an interchange import opens again
- engine: sequence.inspect reports clip ends, gain and marker comments
- engine: sequence.inspect reports a reversed clip
- engine: clip.replaceFromBin can keep the clip's source In
- engine: Replace With Clip reports clips that run past the new media
- engine: a command whose targets are named in the parameters does not need a selection
- filmcraft: --help prints usage and an unknown option is an error
- engine: naming a track that does not exist is an error
- engine: timeline.place on an audio track places the sound there
- engine: timeline.move takes linked partners along
- edit: a ripple trim takes a later split edit along
FilmCraft 0.2.1
October 6, 2026 · 8 changes
- GPU1: blend modes on the GPU compositor (#30)
- HW1: platform crate + VideoToolbox H.264/HEVC hardware decode (#30)
- GPU2: standard effects on the GPU compositor (#30)
- Captions: report invalid TTML timing parameters on import
- Export: same file on every machine (fixed mux interleave, H.264 slices by frame size)
- MCP: tool annotations, core tools, resources, export progress and cancellation
- Windows packaging: Start Menu/Add-Remove icon, no console window, correct description
- Never crash: filmcraft-export without expect()/unreachable!()
FilmCraft 0.2.0
October 5, 2026 · 25 changes
- Sequences: refuse a zero or negative frame rate instead of panicking
- Media: apply the container's display rotation (portrait phone video)
- Timeline: fit a new empty sequence again when its first clip arrives
- Control: screenshots and ui.elements wait for the UI to settle
- Licensing: standard LICENSE files, NOTICE, ArtCraft brand terms
- Media: AIFF files import (enable symphonia's aiff reader)
- Export: start/end times without a range mean a custom range
- Timeline: transitions stay on their cuts after ripple trim, roll, slide and ripple speed
- Timeline: Slide moves linked audio with the video
- Rules: never crash (AGENTS.md §0, clippy.toml, forbid unsafe)
- time: never crash (zero rates and timebases, huge timecodes)
- vp9: never crash (no unwrap/expect/panic, deny them)
- h264: never crash (no unwrap/expect, deny the panicking lints)
- hevc: never crash (no unwrap/expect, deny the panicking lints)
- av1: never crash (no expect, deny the panicking lints)
FilmCraft 0.1.1
October 3, 2026
FilmCraft 0.1.0
October 2, 2026