Repository navigation
Releases
Releases · navidshad/frameflow
1.1.25
New
- Tracking: a motion layer can follow a track
- Tracking: follow faces and objects through footage, with MCP tools
- Chat: select, text, any colour and line width in the frame markup editor
- Chat: @time references and frame attachments with notes and markup
- Thumbnail: edit the whole prompt before the thumbnail project is made
- Export: a time left that follows the recent pace, a range when it is a guess, and the export's settings in the progress dialog
- Projects: choose to keep or delete a project's folder when removing it
- Editor: Generate thumbnail button creates a thumbnail image project from the video
- Thumbnail: create a thumbnail image project from a video project, with fakes-driven tests
- Thumbnail: pure frame choice, headline and brief logic for video-to-thumbnail projects
- Export: project resolution, 4K/2K/1080p/720p export sizes from it, and H.265 file type
- Export: resolution choices, render steps with a time estimate, and a Cancel that acts at once
- Export: draw motion layers in the background so a full export finds them ready
- Import: add several files, whole folders and drops to a project at once
- Engine: hold the Gemini loop to a measured review after it edits
- Engine: Gemini runs an agent loop over FrameFlow's MCP tools
- Chat: New conversation button for the internal CLI agent
- Engine: the internal Claude agent continues its conversation
- Engine: a CLI always runs a named model and effort
- Engine: list the newest Claude models by version; label the default plainly
- Agent: drop editing personas, one shared baseline, per-engine model + effort
- MCP: inspect_audio lets agents see any sound
Fixed
- Projects: the one-time import takes the newer copy of a project both folders have
- Settings: a launch that cannot read a stored key no longer erases it
- Tracking: a following cover sits on the frame the export shows
- Editor: bars hold together in a narrow window; the window has a minimum size
- Chat: the composer row keeps Send on screen; setup describes Gemini as it works
- Projects: every unpackaged launch uses one data folder, so one project list
- Projects: a project removed with its files kept stays removed
- Chat: the Text tool opens a field on a real click; Draw is the default tool
- Chat: copy selected text, readable selection in your own bubble, copy button
- Export: one colour space for the whole file (SDR BT.709) and a tag that is true
- Editor: selecting a clip leaves the selected transition
- Editor: narrow media panel rows, capped clip tray, audio/mpeg for Gemini transcripts
- Baseline: keep the inspect_audio sentence free of banned opinion words
- Chat: remove the pinned "Applied V#" result card
Faster
- Export: draw motion layers at 30 fps and overlap capture with the write
- Export: capture motion layers in parallel and at the proxy frame rate
- Export: fast preview at 480p, regions in parallel, faster caption pass
Installers are attached below. Full changelog: https://github.com/navidshad/frameflow/commits/v1.1.25
1.1.24
New
- Import: two lanes, words and picture, run side by side
- Proxy: hardware decode and GPU scaling for every source, two proxies at once
- Transcript: real progress, parallel word windows, Transcribe again button
- Editor: an Exports tab so finished exports can always be found
- Exports: human file sizes and dates for the exports list
- Exports: list a project's finished exports, reveal and open them
- Revisions: one revision per agent round
- Effects: switch each effect on and off to compare
- Multicam: speakers tests, honest unsure cutoff, real-footage scoring, docs
- Multicam: find who speaks when
- Multicam: sync cameras by sound and cut between angles
- MCP: a reconnected agent can resume its own round by id
- MCP: splitAt op; tidy the round footer in the chat
- Editor: export and revision switches wait while an MCP agent holds the project; render_frames keeps its frames
- MCP: inspect_media, render_frames, find_silences, sequenceFrame; install a missing yt-dlp
- MCP: agent rounds, one agent per project, MCP conversation in the chat
- Motion: project motion kits shared by custom pages
- Motion: bundle Vazirmatn for Persian and Arabic text
- Start: first-launch setup wizard and two-road Home
- Settings: rebuild Settings as a seven-section page
- Editor: chat box engine chip lists models
- Audio: provider slot — generated voice, effects and music
- MCP: sound tools and ops for agents
- Sound: synth palette, Sound tab, sound the motion
- UI: v2 graph — flat node panels, tool column, no ambient blobs
- UI: one dialog style — AppDialog for every modal
- UI: v2 settings — one column of two-column sections
- UI: v2 top bar on every page, in-app dialogs, Home and first run
- Audio: waveform, audio clip inspector, track roles
- Editor: v2 shell — flat surfaces, Inspect tab, full-height chat, preview rows
- Motion: agent-written pages are checked before they replace anything; plain ease() and clamp()
- Engine: Retry on a failed built-in engine run; drop Gemini CLI
- Motion: custom HTML authoring — code view, checks, last-passing, saved templates (board 5)
- Motion: determinism probe, saved templates, html ops with the MCP permission, AI context for custom pages
- Engine: ship Claude Code only; park Codex and Gemini CLI; render_frame burns text opt-in
- Motion: custom layers draw their last passing version; shared logic for checks, definitions and provenance
- Engine: engine chip, AI engine settings card, steps in the turn card, agent focus on the monitor
- Keyframes: keyframe lanes in the timeline (board 2)
- Engine: CLI engines run Claude Code, Codex and Gemini CLI through FrameFlow's MCP server
- Motion: bundle Outfit for template headings
- Keyframes: shared lane logic — lanes, curves, snapping, selection, mirror
- Motion: colour and enum settings can be keyed, and hold
- Motion: Motion library, M1 track, motion clips, monitor layer and inspector
- Motion: the editor AI can place and retime motion layers
- Motion: export motion layers through a hidden capture window
- Agent: Agent tab, editing banner, changed-by-agent outlines, Agent access card
- Motion: the motion layer model, page contract, templates and lint
- MCP: a local MCP server agents can read and edit the open project through
- Monitor: a title is edited on the frame like everything else
- Monitor: the frame tools say what they do
- Monitor: open on the edit, and put the transport by the timeline
- Timeline: drop past the edge to make a track
- Timeline: the lanes scroll while you drag
- Timeline: a drag says where it can land, and why not
- Timeline: video layers on top, audio below, and a way to add either
- Monitor: edit on the canvas — move, scale, rotate by the handles
- Preview: pin the exact frame to the playhead
- Effects: every control says whether the monitor can show it
- Timeline: say at edit time that a layer crosses a transition
- Preview: render the exact frame under the playhead
- Editor: an icon rail, and the toolbar says which key does what
- Editor: safe areas, a timecode you can type, and fullscreen
- Editor: a real keyboard, and a way to find it
- AI: reach layers from the ops schema
- Render: generated layers, and a way to delete a track
- Render: key a background out, so a layer sits in FRONT
- AI: suggest what to cut away to, from what is already known
- Editor: cut by what was said, not by where the clips are
- AI: let the editor reach everything phases 2 and 3 built
- Export: queue several formats instead of picking one
- Export: deliver ProRes as well as H.264
- Editor: keyframes — a parameter that changes over a clip
- Render: picture-in-picture, and a preview element to see it in
- Render: move, scale and rotate a clip in the frame
- Effects: packs, and the four looks that prove the loader
- Audio: duck a music bed under speech
- Editor: titles, through the pipeline captions already built
- Audio: repair the sound, and normalise the mix
- Editor: drag an effect onto a clip
- Render: resolve the effect seam into a real catalogue
- Dev: drive the running app, and fix what that found
- Editor: burn the transcript into the picture
- Editor: choose the frame, and reframe clips into it
- Render: let the sequence choose its own shape
- Editor: show transitions in the preview monitor
- Editor: transitions library and the junction drop
- Render: draw transitions, and place slices inside their region
- Render: plan transition overlap regions
- Electron 28 -> 44, and the packaging path to a signed installer
- drop the Python dependency and put CI behind the codebase
Fixed
- Chat: notes alone no longer bring the Applied card back
- Chat: drop the Applied card unless something needs the user
- Transcript: say when Gemini prepaid credits are depleted
- Agent: the editing bar follows the open round, not recent calls
- Preview: tag proxies so the monitor shows the export's pixels
- Preview: show Exposure as the addition ffmpeg makes
- Preview: show Warmth in the monitor, matching the export
- Multicam: an angle click changes the clip you chose, not its neighbours
- MCP: report interrupted media preparation instead of running forever
- Editor: a clip's filmstrip needs only the proxy
- Render: a cut near another track's edge no longer fails the export
- Multicam: switchAngles no longer folds punch-ins back into the wide shot
- Editor: ripple a clip that a cut trims from its very start
- Silence: read only the sound when finding pauses
- Multicam: label get_angles tiles with timeline time
- Editor: clear a wrongly failed sound even when it is not on the timeline
- Editor: no filmstrip for audio assets; it failed every synthesised sound
- Mix: sounds too short to meter no longer read as a quiet role; random round ids
- Motion: the probe accepts 1/255 raster noise; render_frames says the export-clips line once
- Motion: still frames draw a page with its kit
- Settings: save settings.json atomically
- Ops: removeRanges closes the spans it cuts, on every track
- Export: never hang silently on a stuck ffmpeg call
- Export: pad black with tpad instead of a color base
- Gemini: send generateText system instruction via config
- Export: pad each region's picture over an exact black base
- Transcript: measured word timing, current models, native script
- Render_frame: clearer wording while export clips render
- Export,render_frame: exact-length export joins and motion-aware exact frames
- Editor: store revisions and history by content hash; a big project always opens
- MCP: queue writes, summarise get_timeline, opt-in token file
- Motion: keep layer lengths, retime onto free tracks, explain probe failures
- Motion: motion-only timelines play, chat and export; pages follow their length; agents get a page guide
- Engine: an engine turn's failure shows once, in its chat card
- Engine: a CLI engine's HTML permission follows the user's setting
- Engine: render_frame shows titles and captions; CLI turns can revert; clearer errors
- Agent: badge a split cut by what was cut; close quiet sessions; clear the header
- Motion: lower third's accent bar no longer collapses on the 'bar' style
- Ffmpeg: repin BtbN builds to a month-end release that is not pruned
- Monitor: a generated layer moves with its transform
- Monitor: a generated layer stacks by its track, not under everything
- Monitor: the frame crops the picture again, handles or not
- UI: tooltips were being sliced off by the panel they sat in
- Inspector: sliders paint while you drag, commit once on release
- Editor: stop the monitor lying about gaps and doubled audio
- Editor: gain, fades, track gain and pitch are heard in preview
- Preview: key the transition cache on the graph, not a field list
- Render: a compositing layer's pad blacked out the track beneath it
- Editor: the shortcut list traps the keyboard while it is up
- Security: encrypt the API key at rest
- Editor: silence the outgoing clip once a transition ends
- Editor: stop the playhead looping at the end of a transition
- Editor: preview renders failed on every transition
- Editor: make the preview cache actually reach the monitor
- Editor: bind the transition slider, and free the trim handles
- Ffmpeg: read zip in-process, so the licence check runs on Linux
- replace ffmpeg-static with licence-verified FFmpeg 9.0.1 builds
- Ci: do not export an empty CSC_LINK on the macOS legs
- repair the lockfile so npm ci works, and delete the stale yarn.lock
Faster...
Release v1.1.23
Features
- Automatic updates for
yt-dlpwith a self-healing mechanism when stale-binary failures occur.
Bug Fixes
- Resolved issues related to stale
yt-dlpbinaries by automatically recovering and retrying.
Improvements
- More resilient update behavior, reducing manual intervention when
yt-dlpbinaries become outdated.
Release v1.1.22
Improvements
- Disabled the auto PR description CI workflow to prevent automatic PR description updates.
Release v1.1.21
Features
- Context sizing improvement (Editor): Size the context based on the source rather than intent, including a survey band plus a detailed pass.
Bug Fixes
- Editor build measurement fix: Ensure
measureBuildproperly handles op-less diffs to avoid answer turn shortfalls.
Release v1.1.20
Features
- None
Bug Fixes
- None
Improvements
- Updated documentation to lead with the timeline editor and use the original graph screenshot for the graph.
- Refreshed README screenshots with captures of the current UI.
- Corrected README documentation describing the retired video pipeline to reflect “pillar one.”
Release v1.1.19
Features
- Split editing outcomes: separate Home entry and keep video edits within the timeline.
Bug Fixes
- Fixed editor undo behavior: the main component now owns the undo ring cap (prevents duplication in the renderer).
- Corrected outdated documentation that referenced deleted code.
- Prevented item operations on an empty timeline and fixed related sizing/shortcut calculations.
Improvements
- Retired the AI video pipeline; the graph now serves images only.
Release v1.1.18
Features
- Enable long-form persona workflows to build full-length cuts.
- Add full-height toggle for right-side panels; timeline adapts accordingly.
- Allow drag-resizing of timeline height and panel widths.
- Support background exports from an in-memory timeline snapshot.
- Introduce handler-based render builders, including audio fades and improved export warnings.
Bug Fixes
- Fix ripple head-trim overlap, orphan clips, and description mis-pairing.
- Prevent re-transcription from destroying asset thumbnails.
- Stop storage location nesting a “FrameFlow” folder inside itself.
- Ensure configured model names are shown on token-spending buttons.
- Correct placement, coverage, and transcript “hole” defects found during audit.
- Make ripple trims/retimes behave correctly (ripple after retimes and trims, not only removals).
- Close timeline gaps both from AI actions and manual edits.
- When there are no projects yet, offer the video editor entry point.
- Follow route parameter changes on
VideoEditorPage. - Improve transcript reliability by chunking long audio and detecting incomplete transcripts.
Improvements
- Improve editor rendering/export behavior with handler-based builders and clearer export warnings.
- Enhance timeline usability with resizable layout controls and adaptive panel height.
Release v1.1.17
Improvements
- Updated
auto-pr-description.ymlconfiguration to improve automated pull request descriptions.
Release v1.1.16
Features
- Reworked the editor right rail into two independently-collapsible columns/rows (including Inspector + Chat split view).
- Added split right-rail layout with Inspector and Chat shown together.
- Added dense, batched filmstrip for timeline clips.
- Added timeline minimap and marker/chapter jump list for long-timeline navigation.
- Added scene detector sensitivity controls and improved merge/split piece corrections.
- Added per-asset transcript and silence/dead-air detection.
- Added auto-segmentation for audio assets (silence split with interval fallback).
- Enabled exporting/rendering via the timeline export/render engine.
- Expanded audio asset pipeline: import → preprocess → place → preview (and mix export for audio-kind assets).
- Added revision tree for AI edits (list + graph) and reworked proposal flow.
- Introduced AI prompt bar, editor personas, and diff proposals.
- Added timeline editing foundation with EDL preview and undo/redo.
- Added timeline video editor scaffolding and media pipeline.
- Added numeric progress indicators for every editor processing task.
- Added dense/batched navigation + UX updates for marker/chapter browsing.
Bug Fixes
- Matched right-column collapse controls to the media panel behavior.
- Prevented audio from reloading every frame; audio preview now free-runs without constant re-seeking.
- Improved audio playback performance by pooling audio elements and attaching them to the DOM.
- Played audio tracks in parallel using a per-track element pool.
- Fixed compact filmstrip/context toggle and improved vertical scrolling for tracks.
- Fixed prompt placeholders overflowing the narrow chat rail.
- Gated chat until media preprocessing is complete.
- Fixed marker jump-list popover rendering under the timeline playhead.
- Fixed timeline clip trim handles getting stuck after the first click.
- Improved prompt meta row layout to prevent label crowding.
- Reduced chat rail “chrome” for better text-level controls and one-frame-per-region behavior.
Improvements
- Drag-and-drop improvements: support dragging whole files onto the timeline and fixed audio-lane drops.
- Removed transcript/scene-description data from an asset (cleanup).
- Referenced local media in place instead of copying it.
- Speeded up proxy generation for large files.
- Improved editor project naming (auto from first import + inline rename).
- Added snappier popover animation (replaced slow slide-up).
- Added settings/UX gating for decorative animation behind prefers-reduced-motion.
- Updated UI dependency (pilotui 1.28.1 → 1.29.1).
- Added Playwright MCP artifacts to .gitignore and added Playwright MCP for driving the Electron UI.