2109 Commits
Author SHA1 Message Date
BFlat dd525c93d4 Merge pull request #2763 from storytold/readme/app-icon
README: the app icon above the title
2026-10-22 18:01:48 +07:00
bflatastic d30fbaf4e6 README: the app icon above the title 2026-10-22 17:57:51 +07:00
Dylan M. Taylor 45901fccd0 security: enforce HTTPS on curl downloads (SonarCloud S6506) (#2720)
Add --proto '=https' to curl invocations so redirects cannot downgrade to
plaintext HTTP. Resolves SonarCloud S6506 (shell/docker/githubactions).
2026-10-21 19:36:08 -04:00
Dylan M. Taylor 7576186878 security: validate CLI paths/args in dev tools (SonarCloud S2083/S8707/S8705) (#2723)
* security: validate CLI paths/args in dev tools (SonarCloud S2083/S8707/S8705/S7044)

Resolve and validate command-line path arguments before use, enforce HTTPS at
download sinks, and confirm path containment. Hardens local codegen/fetch tools
against path-traversal and command-argument-injection findings.

* ci: exclude dev tool scripts from SonarCloud coverage gate

The extract_tables.py codegen tools aren't part of the unit-tested surface;
exclude tools/, docs/, examples/ from coverage so the new-code coverage gate
doesn't block hardening-only changes.
2026-10-21 19:35:47 -04:00
Dylan M. Taylor 3325caab6a fix: use async file I/O in async MCP screenshot handler (SonarCloud rust:S7493) (#2724)
The async screenshot() handler read and deleted the screenshot with blocking
std::fs calls, stalling the Tokio executor. Switch to tokio::fs::read /
tokio::fs::remove_file (await) and enable the tokio "fs" feature.
2026-10-21 19:35:42 -04:00
skylar taylor-barrick 410f44e341 Merge pull request #1795 from g1obalworlds/fix/hostile-input-video-codecs
Hostile-input hardening for video decoders (AV1 panic + oversize allocation, MPEG-2 allocation) and fuzz tests
2026-10-21 17:09:37 -06:00
skylar taylor-barrick 14eb1d6157 Merge pull request #2555 from justacalico/fix/audio-output-recovery
Re-open a failed audio output while playing instead of going silent for good
2026-10-21 17:09:30 -06:00
skylar taylor-barrick ed7d11dbca Merge pull request #1987 from nuclearspike/codex/security-mp4-audio-duration
codecs: avoid duration-sized silence allocation for damaged MP4 audio
2026-10-21 17:09:22 -06:00
skylar taylor-barrick c6581d83a7 Merge pull request #2023 from nuclearspike/codex/security-aaf-extraction-collision
engine: preserve existing files when AAF/OMF imports embedded audio
2026-10-21 17:09:16 -06:00
skylar taylor-barrick 157166bf15 Merge pull request #2388 from Felix-Helleckes/fix/2342-cli-run-waits-for-export
#2342: CLI file.exportMedia waits for the export before the process exits
2026-10-21 17:09:10 -06:00
skylar taylor-barrick 093e2de1d0 Merge pull request #1955 from Silvertree2010/fix/h786-auto-save-rotation-deletes-the-n
Order auto-saves by real time so rotation keeps the newest
2026-10-21 17:09:04 -06:00
skylar taylor-barrick 7b3bd08acb Merge pull request #2006 from ssandweiss/fix/1943-macos-cmd-q-save-prompt
fix(macos): ask to save on Cmd-Q instead of quitting outright (#1943)
2026-10-21 17:08:58 -06:00
Dylan M. Taylor e8253fff50 ci: add sonar-project.properties for CI-based analysis
Marks the project ineligible for SonarCloud Automatic Analysis, resolving the
CI-vs-automatic-analysis conflict so the SonarCloud workflow succeeds.
2026-10-21 16:00:38 -04:00
Dylan M. Taylor 78ceb6e3c7 ci: add SonarCloud scan via shared reusable workflow
Calls storytold/craft-common-actions/.github/workflows/sonarcloud.yml@main
with secrets: inherit. Adds SonarCloud badge to README where missing and
removes the redundant sonar-project.properties (config now passed by the
reusable workflow).
2026-10-21 15:46:58 -04:00
Dylan M. Taylor d643a88665 Merge pull request #2157 from dylanmtaylor/ci/shared-nix-workflow
ci: switch to shared nix workflow from craft-common-actions
2026-10-21 02:38:55 -04:00
Brandon ThomasandClaude Opus 5.5 70f0fc7a75 Skip CodeRabbit reviews on Dependabot PRs (#2594)
Adds .coderabbit.yaml so CodeRabbit no longer reviews or comments on PRs opened by dependabot[bot].

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-10-20 11:38:41 -04:00
Dylan M. Taylor 6687835a5d Merge pull request #2368 from dylanmtaylor/docs/add-sonar-coderabbit-badges
docs: add SonarCloud and CodeRabbit badges to README
2026-10-20 11:32:22 -04:00
justacalico a25d707876 修复播放中音频输出断流后无法自动恢复的问题 2026-10-19 23:01:59 -07:00
Logan Jennings 18cad0b0ce Fuzz seeds that test what they claim: VP8 -slices 8 (8 partitions), VP9 two tile columns at 512 px, HEVC 2x2 tiles via kvazaar; hang test ignores the timeout override 2026-10-19 20:13:43 -07:00
Logan Jennings c1e431ad2d AV1 limits are the level 6.x ones (16384 wide, 8704 high, 35651584 samples); hang guard instead of per-run time asserts; encoder failure is not a skip
- decoder.rs: MaxHSize 16384, MaxVSize 8704 and MaxPicSize 35651584 per AV1 Annex A (the earlier
  16384 x 8704 product is four times the area limit); boundary unit tests on frame_size_allowed;
  README states the three limits.
- testkit: with_deadline/set_progress (whole-sweep hang guard naming the last input;
  FILMCRAFT_HOSTILE_TIMEOUT_SECS overrides) and ffmpeg_has_encoder.
- The nine fuzz_hostile tests drop their per-run elapsed assertions (which could not catch a
  hang and could fail a slow runner) and run under the guard.
- A seed whose encoder is absent from ffmpeg still skips (and fails under
  FILMCRAFT_REQUIRE_ORACLES=1); an encoder that is present but fails now fails the test.
- mpeg2v failure labels carry the seed name.
2026-10-19 19:20:37 -07:00
Brandon ThomasandClaude Opus 5.5 cdf43fd366 Release 0.10.0
Co-Authored-By: Claude Opus 5.5 <[email protected]>
v0.10.0
2026-10-19 22:18:41 -04:00
Logan JenningsandClaude Sonnet 5.5 0fd76d55e8 Review follow-up: drop the 1.5 GB end-to-end max-size test; report every skipped seed
The exact 16384 x 8704 boundary stays covered by the frame_size_allowed unit tests;
decoding such a frame needs ~1.5 GB, too much for every cargo test. Empty seeds and the
mpeg2v seed skip now say so, like the other skips.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-19 17:36:52 -07:00
Logan JenningsandClaude Sonnet 5.5 bd3b2097bb Address review: AV1 area cap is exactly level 6.3 (16384 x 8704); document new limits; report skipped seeds
The cap was 1 << 27, below the 16384 x 8704 it quotes, so a conforming maximum-size
frame was refused. Extract frame_size_allowed() and test the exact boundary, plus a
stream at 16384 x 8704 that must pass the size check. Note the AV1 and MPEG-2 limits
in the crate READMEs. A fuzz seed that ffmpeg cannot encode (encoder missing) now
reports SKIPPED, and fails under FILMCRAFT_REQUIRE_ORACLES=1, instead of passing silently.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-19 17:19:41 -07:00
Dylan M. Taylor fb4cbda47a Merge pull request #2323 from dylanmtaylor/chore/drop-competitor-references
docs: drop references to competing commercial software
2026-10-19 19:23:20 -04:00
Sam SandweissandClaude Opus 5.5 c840eeba59 fix(macos): the native Quit item still quits in control-only mode
CodeRabbit on #2006: --control-input-only drops every command-inbox
command, and Quit now arrives that way instead of as terminate:, so it
left the window open. app.quit is let through; other menu commands are
still ignored, as docs/control-protocol.md says.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 12:23:25 -07:00
Sam SandweissandClaude Opus 5.5 d98280f27b docs(macos): say when the Quit item picks up a remapped shortcut
Review on #2006.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 10:53:23 -07:00
Sam SandweissandClaude Opus 5.5 8eb2d43649 fix(macos): ask to save on Cmd-Q instead of quitting outright (#1943)
The native app menu's Quit item was muda's predefined quit, which calls
AppKit's terminate: and owns the Cmd-Q key equivalent, so the window never
got the close request the unsaved-changes prompt waits for. Quit is now a
regular menu item that sends the app.quit command, which closes the window
through the prompt, on the command's shortcut (Cmd-Q unless remapped).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 10:53:01 -07:00
Brandon Thomas 105c09bd80 Merge pull request #2452 from Felix-Helleckes/feat/1487-text-panel-graphics-tab
#1487: the Text panel's Graphics tab lists and edits the sequence's graphic text
2026-10-19 12:54:19 -04:00
Brandon Thomas 520e32d893 Merge main into #2452 (resolve append conflicts)
# Conflicts:
#	crates/ui-egui/src/i18n/es.tsv
#	crates/ui-egui/src/i18n/fr.tsv
#	crates/ui-egui/src/i18n/id.tsv
#	crates/ui-egui/src/i18n/it.tsv
#	crates/ui-egui/src/i18n/ja.tsv
#	crates/ui-egui/src/i18n/ko.tsv
#	crates/ui-egui/src/i18n/pt-br.tsv
#	crates/ui-egui/src/i18n/zh-cn.tsv
#	crates/ui-egui/tests/graphics_ui.rs
2026-10-19 12:54:10 -04:00
Brandon Thomas cf3bbde67b Merge pull request #2451 from Felix-Helleckes/feat/1186-track-color-labels
Timeline: colour labels for tracks (#1186)
2026-10-19 12:54:07 -04:00
Brandon Thomas 837835f81f Merge main into #2451 (resolve append conflicts)
# Conflicts:
#	crates/ui-egui/src/i18n/es.tsv
#	crates/ui-egui/src/i18n/fr.tsv
#	crates/ui-egui/src/i18n/id.tsv
#	crates/ui-egui/src/i18n/it.tsv
#	crates/ui-egui/src/i18n/ja.tsv
#	crates/ui-egui/src/i18n/ko.tsv
#	crates/ui-egui/src/i18n/pt-br.tsv
#	crates/ui-egui/src/i18n/zh-cn.tsv
2026-10-19 12:53:57 -04:00
Brandon Thomas 6927ebebba Merge pull request #2459 from Felix-Helleckes/feat/2358-animate-graphic-properties
#2358: stopwatches in the Essential Graphics panel animate layer properties
2026-10-19 12:53:54 -04:00
Brandon Thomas 4922e5328c Merge main into #2459 (resolve append conflicts)
# Conflicts:
#	crates/ui-egui/tests/graphics_ui.rs
2026-10-19 12:53:46 -04:00
Brandon Thomas 302f51835a Merge pull request #2472 from Silvertree2010/fix/h568-audio-samples-time-display-shows
Fix AudioSamples time display for negative times
2026-10-19 12:53:42 -04:00
Brandon Thomas d90538d094 Merge main into #2472 (resolve append conflicts)
# Conflicts:
#	crates/time/src/lib.rs
2026-10-19 12:53:33 -04:00
Brandon Thomas 94eb3df3e5 Merge pull request #2482 from Felix-Helleckes/fix/1985-floating-panel-reopens-floating
#1985: a panel closed while floating opens again floating where it was
2026-10-19 12:52:18 -04:00
Brandon Thomas 48e4ab8456 Merge pull request #2462 from Felix-Helleckes/i18n/german-complete
i18n: German (de) covers the whole interface
2026-10-19 12:52:14 -04:00
Brandon Thomas 0fd5c33303 Merge pull request #2440 from Felix-Helleckes/fix/1682-cap-thumbnail-textures
#1682: thumbnail textures are capped, least recently used freed first
2026-10-19 12:52:10 -04:00
Brandon Thomas 7e3060d185 Merge pull request #2450 from Felix-Helleckes/fix/2329-indent-effects
#2329: the Effects panel indents what a folder holds under it
2026-10-19 12:52:06 -04:00
Brandon Thomas d61f23c7c9 Merge pull request #2457 from Felix-Helleckes/feat/2325-ui-animations-toggle
#2325: Settings > Appearance can turn the interface animations off
2026-10-19 12:52:02 -04:00
Brandon Thomas bb5fa3a740 Merge pull request #2478 from Felix-Helleckes/fix/1362-multicam-from-timeline
#1362: Create Multi-Camera Source Sequence and Merge Clips work on Timeline selections
2026-10-19 12:51:58 -04:00
Brandon Thomas 666c8d1bdc Merge pull request #2480 from MichaelMuClaude/fix/doc-inspect-sequence-race-1477
fix(mcp): pin doc_inspect's sequence to the reported active id (#1477)
2026-10-19 12:51:53 -04:00
Brandon Thomas fec702eca4 Merge pull request #2481 from Felix-Helleckes/fix/2253-reversible-ui-zoom
#2253: Ctrl+Plus no longer scales the interface one way only; View > Reset Interface Zoom
2026-10-19 12:51:48 -04:00
Brandon Thomas 045e694204 Merge pull request #2499 from jackcanon/jackcanon/font-size-controls
Properties: selected-character drags undo as one gesture
2026-10-19 12:51:44 -04:00
Brandon Thomas f4b7486b3e Merge pull request #2436 from Felix-Helleckes/fix/2185-stream-preview-files
#2185: preview files are read in place, not loaded whole
2026-10-19 12:51:40 -04:00
Brandon Thomas 70b6539aa9 Merge pull request #2477 from Felix-Helleckes/fix/2430-click-moves-caret
#2430: a click in the text being edited on the monitor moves the caret
2026-10-19 12:51:35 -04:00
Brandon Thomas 6811d4141a Merge pull request #2458 from Felix-Helleckes/feat/2328-effect-controls-divider
#2328: Effect Controls draws a line between the fixed and the added effects
2026-10-19 12:51:30 -04:00
Brandon Thomas 21e8636bd4 Merge pull request #2467 from Silvertree2010/fix/h546-cube-with-both-a-1d-and-a-3d-tab
Preserve per-channel shaper domain in .cube round trip
2026-10-19 12:51:26 -04:00
Brandon Thomas eee1e403c2 Merge pull request #2479 from Silvertree2010/fix/h617-seconds-time-display-shows-0-000
Fix "-0.000" in Seconds time display for tiny negative times
2026-10-19 12:51:22 -04:00
irgendwasmitfelixandClaude Opus 5.5 9ade822e64 #1985: a refused refloat keeps the panel's floating place
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 18:18:58 +02:00