Commit Graph
835 Commits
Author SHA1 Message Date
bflatasticandClaude Opus 5.5 b66a83389d docs: gaps.md says the CI gate runs on pull requests (gap 4 closed)
Since #2204, ci.yml runs `cargo xtask ci` through craft-common-actions' shared gate on every
pull request and push to main; gaps.md still listed "No CI gate on pull requests" as gap 4 and
in the Stability row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 13:29:10 +07:00
bflatasticandClaude Opus 5.5 eef9997889 Merge origin/main into #1339
header.rs, render_queue.rs: main's drag-toggle checkboxes report `.changed()`; the
Snapping, Notify and per-item Render check boxes keep this PR's AccessKit names and use
`.changed()`, the per-item one inside main's `add_enabled_ui`. The Render button keeps its
name with main's translated label.
effects_presets.rs: kept this PR's row_focus/nav_click and main's rows_before_presets;
main's reveal of Animation Presets with this PR's folder_row (nav, level), and the nav's
offset follows the scroll it moves; the search field keeps its name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 11:34:05 +07:00
bflatasticandClaude Opus 5.5 b6d4090e4e Merge main into #2520; fold the PR's DefaultOutput into main's Lookup::QueueDefault (#2636) for renderQueue.add, render.preRender and file.createProxy, keep #2521's RUNS_SCRIPTS refusal with Vec<Lookup>, keep both tests, blender test expects no lookups, docs/mcp.md names all three
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 10:24:43 +07:00
BFlat ab5162ed95 Merge pull request #2636 from storytold/fix/2479-confined-queue-default
Automation: a confined renderQueue.add without output needs a saved project (#2479)
2026-10-30 10:19:01 +07:00
bflatastic baaa84ed21 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 09:55:17 +07:00
bflatastic b766bf2fd4 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 09:54:50 +07:00
bflatastic bf19754745 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 09:54:28 +07:00
bflatastic 237d1d7672 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 09:53:42 +07:00
bflatasticandClaude Opus 5.5 bd0247877c Merge main into #1601; no conflicts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 09:23:46 +07:00
bflatasticandClaude Opus 5.5 9293693e9e Merge main into #2248; no conflicts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 09:23:43 +07:00
bflatasticandClaude Opus 5.5 2554d3271f Merge main into #2236; no conflicts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 09:23:40 +07:00
bflatasticandClaude Opus 5.5 05841f5cc6 Merge main into #1610; no conflicts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 09:23:38 +07:00
bflatasticandClaude Opus 5.5 ad6bc0c19b Automation: a confined renderQueue.add without output needs a saved project (#2479)
On a project that was never saved, renderQueue.add without output queued
an item whose default output was the home folder, outside every
automation root (rendering it was refused, but the queue held a path the
agent may not write). While file access is confined, such an add is now
refused with a hint to give output inside a write root; a saved
project's default output (beside it) is checked when the queue renders,
as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 09:19:17 +07:00
bflatastic b9a86f5139 Merge main into #1758; no conflicts 2026-10-30 09:17:08 +07:00
bflatastic a683a8074d Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 09:02:01 +07:00
bflatastic 5522711e92 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 09:01:36 +07:00
bflatastic 66d8514d89 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 09:00:40 +07:00
Kristian Myram 199af9213c #1743: use existing CI and consolidate render source documentation 2026-10-30 02:10:36 +01:00
bflatasticandClaude Opus 5.5 df21aff0d8 Docs: ROADMAP progress log and ScriptUI parity for 30 October's features
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 07:46:50 +07:00
bflatasticandClaude Opus 5.5 d1a3510a42 Merge main into #2442; clean merge, no conflicts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 07:46:40 +07:00
bflatasticandClaude Opus 5.5 9e6332ea27 Merge main into #1739; keep both footage re-exports (Cineon + VIDEO_EXTENSIONS) and main's gaps.md localization row with the PR's AVI row
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 07:44:20 +07:00
bflatasticandClaude Opus 5.5 0967102432 Merge main into #2369; clean
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 07:41:47 +07:00
bflatastic d8b6d403d4 Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	ROADMAP.md
#	crates/ui-egui/src/i18n.rs
#	docs/localization-parity.md
2026-10-30 07:11:17 +07:00
bflatastic 5c89837f91 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 07:10:36 +07:00
bflatastic ee19ac7d52 Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	ROADMAP.md
#	docs/gaps.md
2026-10-30 07:10:16 +07:00
bflatastic 42876133d5 Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	docs/gaps.md
2026-10-30 07:05:43 +07:00
bflatastic 33ce4bbbed Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 07:05:19 +07:00
Marco Arnulfo 0c35a7a889 fix(effects): let CC Particle World's Textured Square use a Texture Layer (fixes #1465) 2026-10-30 00:52:10 +01:00
midasdf d3aa81ffba Merge remote-tracking branch 'origin/main' into jp/ja-dialogs
Resolve the two conflicts the panel catalogs and the Composition Settings
rewrite left:

- i18n/ui.rs: keep both sides' rows in the Simplified and Traditional Chinese
  catalogs, which grew at the same anchor (the PR's 301 panel/dialog rows, then
  main's 43 tool and Preview-panel rows). The tables are grouped by feature, not
  sorted by key, so the two blocks sit one after the other. Both sides also added
  "Frame Rate" once: keep one row per catalog, main's 影格速率 in Traditional
  (matching the table's existing 影格速率:) and 帧速率 in Simplified.
- comp_settings.rs: take main's rewritten tab_body (it returns () and matches on
  the tab, and show() measures the tabs) and re-apply the wrapping the old layout
  had: the three tab labels go through tr(), as Basic, Advanced and 3D Renderer
  already have rows. The old horizontal layout and its out accumulator are gone.

cargo test -p effectcraft-ui-egui --lib: 336 passed, 0 failed, 3 ignored.
2026-10-30 08:47:55 +09:00
Marco Arnulfo 86268fc4cc MCP: Text Path Options ▸ Path lists the layer's masks as its options, like the Timeline 2026-10-30 00:44:58 +01:00
Marco Arnulfo 807803c14b Scale Composition: escape pipes in the parity table, check redo in the test 2026-10-30 00:44:58 +01:00
Marco Arnulfo 701d9df8a5 MCP: get_property and get_layer list an enum property's options (#2085) 2026-10-30 00:44:58 +01:00
Marco Arnulfo 4aaba7c3bf Scale Composition: comp.scale resizes a comp and scales its layers, keys, cameras and guides by one factor
Like After Effects' File > Scripts > Scale Composition.jsx: a factor, or a new
width or height that keeps the aspect ratio, in one undo step. Layers whose
parent has a Scale follow that parent; nested precomps and expressions are
left as they are. No dialog yet.

Refs #2208
2026-10-30 00:44:58 +01:00
Marco Arnulfo 09a93b6d62 Layer Styles: changed Blending Options outlive the last style and only pixel-changing styles block a clip export (#1389) 2026-10-30 00:44:57 +01:00
Marco Arnulfo cc94fccda5 Layer Styles: Blending Options can be edited on a layer with no styles (#1389) 2026-10-30 00:44:57 +01:00
Krueels dcbb806139 #986: add Blender scene export for 3D Camera Tracker 2026-10-29 20:15:25 -03:00
bflatastic 2e92ddaaf6 Merge main into #1340; add Polish to main's Option-based undo/redo wording table, keep main's recounted rows and the Polish row in localization-parity.md 2026-10-30 06:08:35 +07:00
tylerjenningsw 852f98d6a5 Merge enhance/filmcraft-avi-backend into enhance/avi-import
# Conflicts:
#	crates/export/tests/it/movie_bytes.rs
2026-10-29 18:58:57 -04:00
bflatastic 335abf42c4 Merge main into #2474; tests/it/main.rs keeps both ui_env_light_gpu and main's ui_expression_values 2026-10-30 05:53:20 +07:00
Jason LukerandClaude Fable 5.1 26e6145cee Footage: one watcher thread that wakes the interface only when a file changed, instead of a 2 s poll
Settings ▸ Import ▸ Reload Footage Changed on Disk used to spawn a stat thread every two seconds
from the UI thread, request a repaint 100 ms later to collect it, and request another repaint every
2 s in between, for every project with items, focused or not: the whole interface redrew on a timer
for footage that hadn't changed.

`footage_reload::Watcher` is one long-lived worker: the interface tells it what to watch (recomputed
when the project revision or the preference changes) and whether the window is in front; it stamps
the files every 2 s while the window is in front, every 10 s while another app has the front, at once
on focus regain and on a new set, and hands the stamps over — calling `ctx.request_repaint()` — only
when one differs from its last look. Nothing watched means the thread sleeps. `apply_stamps` and the
reload semantics are unchanged; `start_scan`/`poll_scan`/`Session::footage_scan` are gone. No new
dependencies: the stat loop is also what footage on a network share relies on, where FSEvents would
not report another machine's writes.

Tests: the watcher wakes the interface for the first stamps and for each change and never for an
unchanged file; behind another app it rests until the window is back; nothing watched is nothing
stamped and a new set is reported whole (and dropping it ends the thread); the host test
`the_watcher_notices_a_footage_file_changed_on_disk` saves a PSD from "another app" and sees it
reloaded once.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-29 15:41:53 -07:00
bflatastic 0754a754ae Merge main into #2300; Cineon conversion kept in footage_frame_raw (main routes proxies through footage_frame), frame-blend cache key hashes both premul colour and Cineon settings, spec strings combined 2026-10-30 05:41:52 +07:00
bflatastic e3c57f4fda Merge main into #2356; plugins.md keeps main's ScriptUI subfolder row and the PR's script-shortcuts row 2026-10-30 05:35:06 +07:00
bflatastic bd34ab21b6 Merge main into #2279; keep main's Scripts subfolders (RESERVED_FOLDERS) next to the Startup/Shutdown constants, merge docs rows 2026-10-30 05:34:26 +07:00
BFlat faab5b1c81 Merge pull request #2039 from midasdf/jp/cjk-composition-rendering
Text: Chinese Han text uses the installed Chinese face (#453)
2026-10-30 05:10:35 +07:00
BFlat 376f303d8f Merge pull request #2107 from gmrmad1/fix/2073-replace-footage-kind
engine: Replace Footage keeps a still a still (#2073)
2026-10-30 05:10:25 +07:00
bflatastic de40efed7c Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 05:08:34 +07:00
bflatastic 57b76bcc88 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 05:08:13 +07:00
bflatastic 661f95b901 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 04:48:19 +07:00
BFlat d26ab3b83e Merge pull request #2609 from storytold/fix/qa-sequence-import
Tests: QA scenarios ask for image sequences explicitly
2026-10-30 04:33:27 +07:00
BFlat f868cc68f3 Merge pull request #1875 from vangel76/rfx-text
Text lays out as in After Effects: box text baseline, right-to-left text, Justify All, animator tracking, per-character 3D rotation
2026-10-30 04:10:22 +07:00