Commit Graph
2082 Commits
Author SHA1 Message Date
Dylan M. Taylor 8e74ffcf0c security: enforce HTTPS on curl downloads (SonarCloud S6506)
Add --proto '=https' to curl invocations so redirects cannot downgrade to
plaintext HTTP. Resolves SonarCloud S6506 (shell/docker/githubactions).
2026-10-21 17:06:56 -04: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 <noreply@anthropic.com>
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
Brandon ThomasandClaude Opus 5.5 cdf43fd366 Release 0.10.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.10.0
2026-10-19 22:18:41 -04: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
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 <noreply@anthropic.com>
2026-10-19 18:18:58 +02:00
jackcanon 204505bcf5 FONT-UNDO-001: merge selected-character property drags
Use the existing begin/merge history contract for character styles, isolating clip, layer and selected ranges. Cover actual pointer gestures, undo/redo, fresh gestures and invalid targets.
2026-10-19 08:23:19 -07:00
irgendwasmitfelixandClaude Opus 5.5 18f0cfe404 #1985: a Timeline closed while floating floats again too
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 17:11:14 +02:00
irgendwasmitfelixandClaude Opus 5.5 af3263cd9b #2253: Reset Interface Zoom replies with the zoom it set
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 17:04:46 +02:00
irgendwasmitfelixandClaude Opus 5.5 37ec175ced #1362: test Merge Clips from a Timeline selection it can merge, and its explanation for one it can't
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 16:57:33 +02:00
irgendwasmitfelixandClaude Opus 5.5 5510a52a06 #1985: a panel closed while floating opens again floating where it was
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:51:33 +02:00
MichaelandClaude Sonnet 5 ce8c699fe8 fix(mcp): read activeSequence as u64, not i64 (review)
ItemId wraps a u64 (item_p parses the `item` param with u64_p), so
reading activeSequence with as_i64 would silently return None for
any id above i64::MAX and make document()'s sequence go null instead
of inspecting the valid id project.inspect reported. Switches to
as_u64 and adds a regression test for that boundary (proven to fail
against as_i64 first).

Addresses a CodeRabbit review comment on #2480.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-19 20:49:45 +08:00
irgendwasmitfelixandClaude Opus 5.5 6a2516f4fa #2253: Ctrl+Plus goes where Ctrl+= goes, and View > Reset Interface Zoom undoes a session zoom
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:44:21 +02:00
MichaelandClaude Sonnet 5 27b327ab65 fix(mcp): pin doc_inspect's sequence to the reported active id (#1477)
document() composed project.inspect and sequence.inspect as two
separate round trips to the app (two lock scopes in headless mode,
two TCP round trips in bridge mode). sequence.inspect with no `item`
answers for whichever sequence is active *now*, not the one
project.inspect just reported, so if the active sequence changes in
that window (another client, or the app's own UI, switching tabs)
the pair comes back inconsistent: project.activeSequence names one
sequence while sequence describes another.

Reproduced against a running bridge-mode app: a real MCP client
hammering doc_inspect while an independent connection flipped
sequence.open between two sequences mismatched on ~300/300 calls, so
this is a wide window, not a rare edge case.

Fix: read project.inspect's activeSequence id first, then pass it
explicitly as sequence.inspect's `item`, so the second call always
describes the sequence the first one named, regardless of what
becomes active afterward.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-19 20:39:03 +08:00
NetterSilverandClaude Haiku 5.5 405619b417 Fix "-0.000" in Seconds time display for tiny negative times
Found while testing crates/time/src/lib.rs:423 (format_time, TimeDisplay::Seconds)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 12:18:13 +00:00
irgendwasmitfelixandClaude Opus 5.5 838a919663 i18n: German needs only the core menus, like French and Korean; later strings may stay English
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:16:49 +02:00
irgendwasmitfelixandClaude Opus 5.5 52e3c5b9c4 #1362: Create Multi-Camera Source Sequence and Merge Clips work on clips selected in the Timeline
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 13:59:29 +02:00
irgendwasmitfelixandClaude Opus 5.5 63a5a6bb38 #2430: a click in the text being edited on the monitor moves the caret
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 13:48:47 +02:00
NetterSilverandClaude Haiku 5.5 9a93d175a4 Fix AudioSamples time display for negative times
Found while testing crates/time/src/lib.rs:418 (format_time, TimeDisplay::AudioSamples)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 11:27:22 +00:00
irgendwasmitfelixandClaude Opus 5.5 9e778e3693 #2358: the Tracking test checks where the keyframes land
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 13:24:12 +02:00
NetterSilverandClaude Haiku 5.5 e9f4a9ff6b Preserve per-channel shaper domain in .cube round trip
Found while testing crates/color/src/lut.rs:290 (Lut::to_cube, the `both` branch)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 10:42:03 +00:00
irgendwasmitfelixandClaude Opus 5.5 1d7e2238b0 i18n: German has every Spanish entry; scope the coverage claims
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 12:32:36 +02:00
irgendwasmitfelixandClaude Opus 5.5 aa918e739f #2358: "mask": null counts as no mask when creating a missing parameter
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 12:27:28 +02:00
irgendwasmitfelixandClaude Opus 5.5 3d16f9323f #1487: a Graphics tab edit writes keyframed text where it is shown
With the playhead outside a clip the tab shows the clip's text at its
start, but the edit went to graphics.set without a time, which writes at
the playhead clamped into the clip (its last frame). For keyframed text
the shown value stayed and another keyframe changed. Each row now keeps
the time it read its text at and the edit is written there; a new test
covers keyframed text with the playhead past the clip.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 11:15:40 +02:00
irgendwasmitfelixandClaude Opus 5.5 c59917baf9 #2358: Toggle Animation creates a parameter an older instance lacks
The new stopwatches show for every animatable parameter of the layer's
definition, but effects.toggleAnimation only found parameters stored in
the instance, so a layer saved before a parameter existed answered "no
such param". The parameter is now created from its default first (an
existing one and its keyframes are left alone). Engine test included.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 11:06:53 +02:00