Repository navigation
·
146 commits
to main
since this release
日本語のリリースノートはこちらです。
What's Changed
- Windows (x64)
- Windows (ARM64)
- macOS
- Linux
New Features
- Added Simplified Chinese, Korean, and Spanish translations
- Version control
- Added Git-based version control for editing projects (breaking change)
- Added resumable uploads for large Git LFS objects and parallel multipart uploads to hosted Git
- AI workflows
- Added paid AI-assisted editing workflows (breaking change)
- Added video inputs for AI providers and video editing in the desktop AI workspace (breaking change)
- Added ComfyUI-style AI generation nodes to the node graph
- Added sign-in and Pro-plan guidance and simplified the AI workspace section names
- File browser and packages
- Added materials and templates to the package store
- Added thumbnails for object templates in the file browser (breaking change)
- Added multiple file-browser tabs with separate titles (breaking change)
- Added access to online storage from the file browser
- Added support for opening package details from web installation links
- Added an action to reveal file-browser items in the system file manager
- Editor workflows and layout
- Added recovery and repair workflows for malformed elements (breaking change)
- Enabled automatic saving for all editing sessions (breaking change)
- Added an option to delete projects from disk through the recent-project list
- Added close buttons on hover, inline add buttons, and extension icons to dock tabs
- Unified tool-tab layouts and settings groups and improved property editors at narrow widths
- Improved path editing interactions and the selected-point inspector
- Node graph
- Improved graph editing workflows, property navigation, and hover guidance
- Added input ports for nested object properties
- Added fallback displays for unavailable graph nodes
- Web browser
- Added a built-in web-browser tool tab
- Added ad blocking with external filter lists
- Rendering and effects
- Upgraded rendering to SkiaSharp 4.152 and adopted its updated APIs (breaking change)
- Added support for rendering variable fonts at the requested weight
- Added extension-defined displacement transforms, effect cropping, and resampling for scaled surface copies
- Added asynchronous render-target readback without blocking on the GPU
- Aligned 3D coordinates with 2D and added 2D drawables as cards in 3D scenes (breaking change)
- Added a prewarm duration for particle emitters
- Added audio latency reporting and effect-tail compensation (breaking change)
- Focused agent tools on editing and added custom GLSL rendering passes (breaking change)
- Added lease-based admission for proxy-generation jobs
- Added Flatpak support to the existing updater
- Added detailed desktop usage telemetry
- Developer tools
- Added a cross-platform Nuke development command
- Added analyzer diagnostics for operations that BESG004 could not inspect
Improvements & Refactoring
- Rendering performance and resource limits
- Reworked rendering into a record-then-plan pipeline with fused GPU shader passes (breaking change)
- Reduced CPU synchronization overhead between Vulkan and Skia while retaining the required Skia-to-Vulkan wait on macOS
- Unified buffer-dimension limits in a shared budget type (breaking change)
- Project persistence and lifecycle
- Standardized filesystem path identity using canonical paths (breaking change)
- Propagated migration requirements from persisted project content (breaking change)
- Isolated undo-history transactions (breaking change)
- Simplified project recovery and strengthened save handling
- Centralized cleanup for reusable tool content (breaking change)
- Reduced Git operations and project lifecycle overhead
- Shortened file and browser tab titles
- API and extension development
- Required cancellation tokens for API and store calls and strengthened API and package-tool lifecycles (breaking change)
- Made Resource.GetOriginal() nullable and added RequireOriginal() for callers requiring a value (breaking change)
- Moved output admission under host control and made context commands awaitable (breaking change)
- Migrated controls and dialogs to Avalonia 12 APIs and improved nullable-reference annotations (breaking change)
- Replaced fixed editor-command contracts with optional editor capabilities (breaking change)
- Renamed FilterEffectActivator to FilterEffectExecutor (breaking change)
- Reworked the Agent Editing Toolkit around advisory checks (breaking change)
- Reduced repeated missing-FFmpeg-library errors and increased the interval between availability checks (breaking change)
Bug Fixes
- Playback and media
- Corrected FFmpeg provider disposal and audio/FFmpeg startup cleanup
- Preserved FFmpeg error codes across IPC and translated recognized failures (breaking change)
- Stopped playback loops after editor disposal and awaited pending scene work when pausing
- Corrected media trimming for playback speed and clamped nested trims to their sampled ranges
- Rendering, text, and 3D
- Prevented crashes when a resize requested an empty surface
- Applied backdrop opacity correctly to captured images
- Corrected effect-target disposal, completed-frame material reuse, and Vulkan renderer resource cleanup
- Enforced device attachment and buffer budgets for 3D rendering and nested effect activation (breaking change)
- Corrected replay density calculations in fragment-local coordinates
- Excluded undrawn or unsupported 3D scenes from hit testing
- Aligned Append and Set measurements and hit testing with their rendered positions (breaking change)
- Made default brush and effect colors fully opaque
- Corrected Vulkan image-layout synchronization with the custom Skia library
- Prevented sRGB decoding from altering PBR data maps
- Prevented concurrent KeySpline evaluation races
- Moved 3D model loading off the UI thread
- Preserved ancestor render plans when nested scene structure changed
- Corrected rendering and hit testing for split color glyphs
- Project data, saving, and recovery
- Corrected project recovery, package operations, rendering, and media-processing failures identified in the previous preview
- Waited for project closure before exiting the application
- Restored existing files and persistence state after failed saves, supported traverse-only parent directories, and completed editor cleanup after failures
- Preserved migration requirements from standalone values and file-backed references
- Preserved shared-project assets, existing export files, update rollback, and plugin dependencies during failed or cancelled operations
- Limited settings autosave to the configuration file that had been restored
- Corrected collection replacement and insertion notifications, undo-history recording, and graph value cleanup (breaking change)
- Version control
- Corrected Git path lookups and snapshot publishing and aligned version-control behavior with standard Git
- Restored support for record values in the version-control graph
- Recorded the first project version before opening a new Git-tracked project and displayed progress while enabling version control
- Corrected process-group ownership for Git commands
- File browser and package installation
- Handled duplicate directory entries, avoided unnecessary autosave refreshes, and ignored watcher callbacks after tab disposal
- Applied host workspace write admission to file-browser operations
- Recovered interrupted data-package installations and handled cancelled or streamless package downloads correctly
- Editor interaction and asynchronous state
- Corrected extension menu lookup on macOS
- Prevented unmodified-key shortcuts from intercepting terminal input
- Restored the Windows window-caption button icons
- Corrected selected-tab close-button visibility and horizontal dock spacing
- Kept keyframe menus accessible beneath overlapping control points
- Preserved natural touchpad scrolling in the timeline
- Preserved UI-thread scheduling and corrected dispatcher deadlocks, timer scheduling, and cancellation races
- Prevented cancelled preview and search operations from publishing stale results and preserved file items after atomic saves
- Node graph
- Corrected default values for Scale and Random nodes
- Corrected graph text input and touchpad gestures and made saved node positions independent of locale
- AI and agent integration
- Treated disabled editors as unavailable agent sessions and corrected concurrent endpoint lifecycle handling
- Preserved the selected AI subtitle template when caption templates changed
- Stabilized desktop AI operations on macOS and preserved quoted upload filenames
- Corrected Codex MCP server installation through TOML configuration
- Web browser downloads
- Corrected redirected downloads on macOS and native WebView2 media downloads on Windows
- Platform compatibility and extension tooling
- Corrected Flatpak installation reporting during update checks
- Prevented Linux font initialization from hanging on fonts without names
- Corrected analyzer tracking of query-pattern operators used by metadata callbacks
- Included the appropriate Skia notices for each target runtime
Changelog
- ci: add the Flatpak download link to release notes by @yuto-trd in #2198
- chore(deps): bump anthropics/claude-code-action from 1.0.183 to 1.0.187 by @dependabot[bot] in #2200
- Bump Refit from 14.0.1 to 15.0.0 by @dependabot[bot] in #2207
- Bump Roslynator.Analyzers from 4.15.0 to 4.16.0 by @dependabot[bot] in #2208
- feat: add zh-CN, ko-KR, and es localization by @yuto-trd in #2214
- fix(api): report flatpak installs as zip in the update check by @yuto-trd in #2216
- chore(deps): bump anthropics/claude-code-action from 1.0.187 to 1.0.189 by @dependabot[bot] in #2217
- fix(ffmpegipc): make provider _disposed fields volatile by @yuto-trd in #2213
- refactor!(ffmpeg): suppress missing-libraries error spam and lengthen re-probe cooldown by @yuto-trd in #2212
- Bump Microsoft.Extensions.DependencyModel from 10.0.9 to 10.0.11 by @dependabot[bot] in #2224
- Bump Microsoft.Extensions.Hosting and Microsoft.Extensions.Logging.Console by @dependabot[bot] in #2226
- Bump Microsoft.Extensions.FileSystemGlobbing from 10.0.10 to 10.0.11 by @dependabot[bot] in #2225
- Bump Microsoft.Extensions.DependencyInjection and Microsoft.Extensions.Logging by @dependabot[bot] in #2227
- feat: distribute materials and templates through the package store by @yuto-trd in #2215
- chore(deps): bump anthropics/claude-code-action from 1.0.189 to 1.0.190 by @dependabot[bot] in #2228
- Bump Microsoft.Extensions.ObjectPool from 10.0.10 to 10.0.11 by @dependabot[bot] in #2229
- Bump Microsoft.Extensions.TimeProvider.Testing from 10.8.0 to 10.9.0 by @dependabot[bot] in #2230
- Bump NuGet.Protocol and NuGet.Resolver by @dependabot[bot] in #2234
- Bump NuGet.Packaging from 7.6.0 to 7.9.0 by @dependabot[bot] in #2231
- Bump NuGet.ProjectModel from 7.6.0 to 7.9.0 by @dependabot[bot] in #2232
- build(deps): bump anthropics/claude-code-action from 1.0.190 to 1.0.191 by @dependabot[bot] in #2235
- Bump ModelContextProtocol and ModelContextProtocol.AspNetCore by @dependabot[bot] in #2238
- Bump System.CommandLine from 2.0.10 to 2.0.11 by @dependabot[bot] in #2240
- Bump System.Management from 10.0.10 to 10.0.11 by @dependabot[bot] in #2241
- feat!: Show object template thumbnails in the file browser by @yuto-trd in #2243
- feat!: Support multiple file browser tabs with per-instance titles by @yuto-trd in #2242
- refactor!(api): require CancellationToken on API client and store calls by @yuto-trd in #2244
- feat(engine)!: add audio latency reporting and tail compensation by @yuto-trd in #1998
- refactor!(api): harden API application and package-tools lifecycles by @yuto-trd in #2245
- Bump Refit from 15.0.0 to 15.1.0 by @dependabot[bot] in #2251
- Bump NAudio.Wasapi from 2.3.0 to 3.0.0 by @dependabot[bot] in #2250
- Bump Microsoft.NET.Test.Sdk from 18.8.1 to 18.9.0 by @dependabot[bot] in #2248
- build(deps): bump anthropics/claude-code-action from 1.0.191 to 1.0.193 by @dependabot[bot] in #2246
- Bump Microsoft.Windows.CsWin32 from 0.3.298 to 0.3.321 by @dependabot[bot] in #2256
- Bump Microsoft.CodeAnalysis.Analyzers and Microsoft.CodeAnalysis.CSharp by @dependabot[bot] in #2254
- Bump Microsoft.CodeAnalysis.CSharp.Scripting from 5.6.0 to 5.9.0 by @dependabot[bot] in #2255
- Bump Microsoft.CodeAnalysis.Analyzers from 5.9.0-1.26328.17 to 5.9.0 by @dependabot[bot] in #2260
- Bump NAudio.Wasapi from 3.0.0 to 3.0.1 by @dependabot[bot] in #2261
- build(deps): bump anthropics/claude-code-action from 1.0.193 to 1.0.195 by @dependabot[bot] in #2262
- build(deps): bump anthropics/claude-code-action from 1.0.195 to 1.0.199 by @dependabot[bot] in #2266
- Bump OpenTelemetry and OpenTelemetry.Exporter.OpenTelemetryProtocol by @dependabot[bot] in #2270
- Bump NAudio.Core from 2.3.0 to 3.0.1 by @dependabot[bot] in #2257
- ci: cache .NET intermediate build outputs by @yuto-trd in #2272
- Bump Roslynator.Analyzers from 4.16.0 to 5.0.0 by @dependabot[bot] in #2276
- Bump NUnit3TestAdapter from 6.2.0 to 6.3.0 by @dependabot[bot] in #2274
- build(deps): bump anthropics/claude-code-action from 1.0.199 to 1.0.200 by @dependabot[bot] in #2273
- Bump Refit from 15.1.0 to 15.2.0 by @dependabot[bot] in #2275
- fix(ffmpeg)!: propagate FFmpeg error codes over IPC and translate known failures by @yuto-trd in #2271
- fix(editor): complete the editor-clock bridge subject and guard the playback loop past PlayerViewModel disposal by @yuto-trd in #2265
- refactor(engine)!: GPU pass fusion — record-then-plan pipeline with fused shader passes by @yuto-trd in #2221
- refactor!: make Resource.GetOriginal() nullable and add RequireOriginal() by @yuto-trd in #2205
- ci: integrate Codecov coverage reporting by @yuto-trd in #2306
- Bump Microsoft.Windows.CsWin32 from 0.3.321 to 0.3.330 by @dependabot[bot] in #2297
- Bump System.Security.Cryptography.Xml from 10.0.10 to 10.0.11 by @dependabot[bot] in #2279
- fix(shell): resolve macOS extension menus by header by @yuto-trd in #2315
- feat!: add Git version control for editing projects by @yuto-trd in #2164
- refactor!: Make the Agent Editing Toolkit advisory-first by @yuto-trd in #2150
- Bump NAudio.Core from 3.0.1 to 3.1.0 by @dependabot[bot] in #2328
- Bump NAudio.Wasapi from 3.0.1 to 3.1.0 by @dependabot[bot] in #2329
- Bump Microsoft.Windows.CsWin32 from 0.3.330 to 0.3.333 by @dependabot[bot] in #2327
- test: preserve shared shell across window tests by @yuto-trd in #2335
- refactor: remove repository AI development setup by @yuto-trd in #2333
- feat!: recover malformed elements and preserve repair workflows by @yuto-trd in #2159
- test(rendering): scope renderer pull API census by @yuto-trd in #2314
- refactor(core)!: use canonical filesystem path identity by @yuto-trd in #2316
- fix(agent-host): treat disabled editors as unavailable sessions by @yuto-trd in #2320
- feat(proxy): add lease-based job admission by @yuto-trd in #2321
- ci: reduce .NET workflow turnaround time by @yuto-trd in #2336
- fix(core): remove stale path comparison API references by @yuto-trd in #2339
- fix(tests): avoid shadowed census alias variable by @yuto-trd in #2341
- fix(agent-host): harden concurrent endpoint lifecycle by @yuto-trd in #2323
- fix(file-browser): ignore watcher events after disposal by @yuto-trd in #2322
- refactor(extensibility)!: make output admission host-controlled by @yuto-trd in #2319
- refactor(extensibility)!: make context command execution awaitable by @yuto-trd in #2318
- feat!: add paid AI editing workflows by @yuto-trd in #2305
- refactor(project-system)!: propagate persisted-content migration requirements by @yuto-trd in #2317
- fix(tests): migrate context fixtures to async element addition by @yuto-trd in #2343
- refactor!: isolate HistoryManager transactions by @yuto-trd in #2325
- refactor: simplify recovery workflows and harden saving by @yuto-trd in #2346
- fix: prevent crashes from zero-length resize requests by @yuto-trd in #2347
- fix: address preview 7 review findings by @yuto-trd in #2363
- refactor!: migrate controls and dialogs to Avalonia 12 APIs by @yuto-trd in #2364
- test: avoid racing successful preview recovery by @yuto-trd in #2370
- refactor!: centralize reusable tool content disposal by @yuto-trd in #2369
- test: make proxy notification recording thread-safe by @yuto-trd in #2371
- fix: keep plain-key shortcuts from stealing terminal input by @yuto-trd in #2372
- feat: Add hover close button and inline add button to dock tabs by @yuto-trd in #2374
- feat: add cross-platform Nuke dev command by @yuto-trd in #2375
- chore: update dependencies except SkiaSharp and HarfBuzzSharp by @yuto-trd in #2376
- build(deps): bump anthropics/claude-code-action from 1.0.200 to 1.0.219 by @dependabot[bot] in #2365
- feat: add a web browser tool tab by @yuto-trd in #2377
- docs: correct the render-cache performance record by @yuto-trd in #2384
- fix: apply SourceBackdrop opacity to its captured image by @yuto-trd in #2380
- feat: open DisplacementMapTransform to out-of-tree transforms by @yuto-trd in #2381
- fix: preserve lexical project paths for Git tree lookup by @yuto-trd in #2382
- fix: dispose the targets EffectTargets drops by @yuto-trd in #2383
- feat!: migrate to SkiaSharp 4.152 and adopt its new APIs by @yuto-trd in #2386
- feat: render variable fonts at the requested weight by @yuto-trd in #2392
- feat: add FilterEffectContext.Crop and resample scaled surface blits by @yuto-trd in #2393
- feat: read render targets back without waiting for the GPU by @yuto-trd in #2394
- Bump FluentIcons.Avalonia.Fluent from 2.1.339.1 to 2.1.341 by @dependabot[bot] in #2388
- feat(ui): unify tool tab layouts and settings groups by @yuto-trd in #2395
- fix!: refuse 3D allocations past what the device can attach by @yuto-trd in #2396
- fix: tolerate a directory listing that repeats a name by @yuto-trd in #2399
- fix: stop rejecting record values in the version-control graph by @yuto-trd in #2400
- fix(ui): restore Windows caption button icons by @yuto-trd in #2406
- test: wait for a cancelled storyboard job to release its lease by @yuto-trd in #2403
- fix: show tool tab close button on selected hover by @yuto-trd in #2407
- fix: align version control with plain Git by @yuto-trd in #2398
- fix: derive the replay caller density in the fragment's logical space by @yuto-trd in #2397
- fix: recover interrupted data package installations by @yuto-trd in #2405
- fix: await project close before desktop lifetime Exit by @yuto-trd in #2404
- fix: balance horizontal dock layout gutters by @yuto-trd in #2402
- fix: gate File Browser writes behind the host workspace admission by @yuto-trd in #2409
- fix: restore every file a failed scene save replaced by @yuto-trd in #2411
- fix: save scenes beneath traverse-only ancestors by @yuto-trd in #2412
- fix: stop an undrawn 3D scene from answering hit tests by @yuto-trd in #2413
- fix: publish reftable snapshots through HEAD by @yuto-trd in #2410
- fix: reuse 3D material draw bindings once their frames complete by @yuto-trd in #2414
- refactor!: consolidate the buffer-dimension budget into one type by @yuto-trd in #2415
- fix: follow the query-pattern operators a metadata callback runs by @yuto-trd in #2418
- fix!: measure and hit test Append and Set where they draw by @yuto-trd in #2421
- feat: show each tool tab's extension icon left of its title by @yuto-trd in #2417
- Bump Microsoft.NET.Test.Sdk from 18.10.0 to 18.10.1 by @dependabot[bot] in #2425
- feat: improve responsive property editor layouts by @yuto-trd in #2428
- fix: stop a 3D scene the device cannot attach from answering hit tests by @yuto-trd in #2424
- fix: carry a standalone value's migration into the owner that saves it by @yuto-trd in #2416
- perf: reduce Git and project lifecycle overhead by @yuto-trd in #2426
- fix: clear new build warnings by @yuto-trd in #2431
- fix: open a new Git-tracked project only after its first version is recorded by @yuto-trd in #2433
- feat: let the start page's recent list delete a project from disk by @yuto-trd in #2432
- fix: show progress in place of suspended editors while enabling version control by @yuto-trd in #2436
- fix!: raise Reset or Remove and Add when a CoreList is replaced by @yuto-trd in #2437
- chore(deps): bump codecov/codecov-action from 7.0.0 to 7.1.0 by @dependabot[bot] in #2439
- fix: correct NodeGraph default values for Scale and Random nodes by @yuto-trd in #2450
- refactor: shorten file and browser tab names by @yuto-trd in #2449
- fix: make default brush and effect colors opaque by @yuto-trd in #2451
- Bump HarfBuzzSharp.NativeAssets.Linux from 14.2.1.200 to 14.2.1.201 by @dependabot[bot] in #2445
- Bump SkiaSharp.NativeAssets.Linux from 4.152.0 to 4.152.1 by @dependabot[bot] in #2448
- Bump HarfBuzzSharp, SkiaSharp and SkiaSharp.HarfBuzz by @dependabot[bot] in #2447
- feat: integrate online storage into the file browser by @yuto-trd in #2427
- feat: gate AI workspace behind sign-in and Pro plan with an empty-state panel by @yuto-trd in #2452
- fix: own each Git command's process group from launch by @yuto-trd in #2434
- fix: keep the AI Subtitles template choice when caption templates change by @yuto-trd in #2441
- fix: raise exactly the inserted items from CoreList span inserts by @yuto-trd in #2440
- fix: record Reset notifications of observed lists in history by @yuto-trd in #2442
- feat!: add provider video inputs and desktop video editing by @yuto-trd in #2453
- test: reduce redundant setup and speed up test execution by @yuto-trd in #2454
- fix: show keyframe menus beneath overlapping control points by @yuto-trd in #2463
- refactor!: replace known editor commands with capabilities by @yuto-trd in #2464
- refactor!: rename FilterEffectActivator to FilterEffectExecutor by @yuto-trd in #2461
- chore(deps): bump codecov/codecov-action from 7.1.0 to 7.1.1 by @dependabot[bot] in #2456
- Bump Refit from 15.2.0 to 16.1.0 by @dependabot[bot] in #2459
- Bump Microsoft.Windows.CsWin32 from 0.3.333 to 0.3.335 by @dependabot[bot] in #2471
- Bump OpenTelemetry and OpenTelemetry.Exporter.OpenTelemetryProtocol by @dependabot[bot] in #2473
- feat: add nested object input ports to the node graph by @yuto-trd in #2460
- feat: add WebView ad blocking with external filter lists by @yuto-trd in #2468
- fix: handle redirected browser downloads on macOS by @yuto-trd in #2467
- ci: migrate release-note workflows to opencode by @yuto-trd in #2474
- Bump Avalonia and Avalonia.Skia by @dependabot[bot] in #2479
- Bump Avalonia and Avalonia.Headless by @dependabot[bot] in #2477
- ci: pass discussion fields through env in the release-notes dispatcher by @yuto-trd in #2476
- feat: open package details from web installation links by @yuto-trd in #2465
- Bump Avalonia.Headless.NUnit from 12.1.2 to 12.1.3 by @dependabot[bot] in #2478
- fix: stabilize desktop AI operations on macOS by @yuto-trd in #2485
- test(ui): wait for a rendered frame before hit testing the graph editor by @yuto-trd in #2484
- feat!: always enable auto save by @yuto-trd in #2481
- fix: preserve quoted AI upload filenames by @yuto-trd in #2486
- fix: handle native WebView2 media downloads by @yuto-trd in #2480
- feat: open file browser items in system file manager by @yuto-trd in #2487
- feat: improve node graph editing and property hover guidance by @yuto-trd in #2498
- fix(serialization): follow file-backed references when discovering migration requirements by @yuto-trd in #2483
- fix(rendering): hold typed fallback stages and nested activation to a named buffer budget by @yuto-trd in #2482
- refactor: enable nullable reference types in Beutl.Controls by @yuto-trd in #2502
- Bump AsyncImageLoader.Avalonia from 3.8.0 to 4.0.0 by @dependabot[bot] in #2505
- Bump Moq from 4.20.72 to 4.21.0 by @dependabot[bot] in #2506
- fix: preserve natural timeline scrolling for touchpads by @yuto-trd in #2508
- feat!: align 3D space with 2D and add 2D drawables as 3D cards by @yuto-trd in #2488
- feat(analyzers): report what BESG004 cannot follow instead of treating it as pure by @yuto-trd in #2501
- fix: install Codex MCP servers through TOML configuration by @yuto-trd in #2509
- fix: avoid file browser refreshes during autosave by @yuto-trd in #2514
- feat!: focus agent tools on editing and add custom GLSL passes by @yuto-trd in #2511
- feat: simplify AI workspace section labels by @yuto-trd in #2517
- Bump FluentIcons.Avalonia.Fluent from 2.1.341 to 2.1.343 by @dependabot[bot] in #2520
- Bump coverlet.collector from 10.0.1 to 10.1.0 by @dependabot[bot] in #2519
- Bump Refit from 16.1.0 to 16.3.0 by @dependabot[bot] in #2523
- feat: improve path editor interactions and point inspector by @yuto-trd in #2515
- feat: improve graph editor workflows and property navigation by @yuto-trd in #2518
- feat: add Flatpak updates to the existing updater by @yuto-trd in #2527
- feat: display unavailable graph nodes using IFallback by @yuto-trd in #2530
- fix: correct node graph text input and touchpad gestures by @yuto-trd in #2543
- fix: synchronize Vulkan layouts with custom libSkiaSharp by @yuto-trd in #2538
- feat: Add ComfyUI-style AI generation nodes to the node graph by @yuto-trd in #2542
- fix: harden project sharing, exports, updates, and plugin loading by @yuto-trd in #2539
- ci: lock GitHub Actions dependencies by @yuto-trd in #2545
- fix: make graph node positions culture independent by @yuto-trd in #2546
- test: stabilize path editor selection clicks by @yuto-trd in #2547
- fix: prevent Linux font initialization hangs for nameless fonts by @yuto-trd in #2549
- fix: make ad-block matching tests deterministic by @yuto-trd in #2551
- fix: keep PBR data maps out of sRGB decoding by @yuto-trd in #2550
- fix: prevent races in KeySpline evaluation by @yuto-trd in #2548
- Bump NUnit from 4.6.1 to 5.0.0 by @dependabot[bot] in #2521
- fix: load 3D model files off the UI thread by @yuto-trd in #2552
- fix: migrate ReactiveUI Avalonia while preserving UI scheduling by @dependabot[bot] in #2534
- perf: remove CPU waits between Skia and Vulkan render passes by @yuto-trd in #2560
- fix: run render benchmarks with Beutl's libSkiaSharp by @yuto-trd in #2561
- fix(engine): retain ancestor render plans when nesting changes by @yuto-trd in #2567
- fix: account for media speed in trim modes by @yuto-trd in #2564
- fix: drain scene work before completing playback pause by @yuto-trd in #2568
- perf: keep the CPU wait before Vulkan passes read Skia's Metal output by @yuto-trd in #2574
- feat: collect detailed desktop usage telemetry by @yuto-trd in #2570
- feat: add particle emitter prewarm duration by @yuto-trd in #2563
- fix: clamp nested media trims to their sampled windows by @yuto-trd in #2565
- fix: render and hit-test split color glyphs by @yuto-trd in #2566
- fix: respect playback speed when trimming media by @yuto-trd in #2572
- fix: preserve collection notifications and graph value ownership by @yuto-trd in #2575
- fix: close dispatcher and asynchronous operation lifetimes safely by @yuto-trd in #2576
- fix: preserve Vulkan and renderer resource ownership by @yuto-trd in #2577
- fix: retire audio and FFmpeg startup resources safely by @yuto-trd in #2578
- fix: preserve editor preview and asynchronous UI state by @yuto-trd in #2579
- fix: preserve persistence state and release editor resources by @yuto-trd in #2580
- test: correct portable host and process fixtures by @yuto-trd in #2581
- fix: only auto-save settings to a file the configuration restored by @yuto-trd in #2582
- feat: upload large Git LFS objects through a bundled tus agent by @yuto-trd in #2585
- feat: upload Git LFS parts in parallel to hosted Git by @yuto-trd in #2586
- fix: publish Skia notices for the target runtime by @yuto-trd in #2587
Full Changelog: v2.0.0-preview.7...v2.0.0-preview.8