mirror of
https://github.com/storytold/effectcraft.git
synced 2026-11-08 11:31:25 +00:00
* plugins: install effect plug-in bundles (wasm + ScriptUI panels) in one go * plugins: address review - keep listing errors, refuse replacing an installed plug-in * plugins: report unreadable bundle entries when their metadata cannot be read * plugins: surface partial install errors in the menu bar, cover the install flow with tests * plugins: surface partial install errors for async dialog answers too * plugins: show result errors as compact status text * plugins: harden installs - confined automation, no panel overwrite, size cap, cleanup errors * plugins: bound install reads from one handle, detect unreadable panels, clarify install docs * plugins: drop an unneeded mut in the bounded read * plugins: saturate the bounded read limit * plugins: install into the session's Plug-ins folder, refuse hidden single installs and case-variant panels - Install .wasm files into Session::plugins_dir() (the folder the Plug-in Library from #2524 uses), not a path rebuilt from the settings folder; the host tests now point both at their temp folder so they never touch the real settings. - A single install of a hidden file (".x.wasm") was skipped and reported as a success that installed nothing: it is now an error. - Installed names must be bare file names (and not Windows device names on Windows), as file.installScript requires, so every installed panel is listed and can be uninstalled. - A panel whose name differs from an installed one only in case replaced it on Windows and macOS: compare ignoring case and check the file on disk too. - The loaded plug-in's source is the installed copy, not the file it came from. - Document the `bundle` menu parameter, so checked execution accepts it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * plugins: drop needless to_vec in the bundle install test (clippy) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * plugins: keep the loader test's byte vectors, drop to_vec in the install test (clippy) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: STAR Web Studio <hello.starwebstudio@gmail.com> Co-authored-by: FredApps <153173854+FredApps@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
42 lines
1.4 KiB
TOML
42 lines
1.4 KiB
TOML
[package]
|
|
name = "effectcraft-host"
|
|
description = "Builds a fully wired EffectCraft session: media decoding (FilmCraft codecs), importer, the expression engine and scripting"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
rust-version.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
effectcraft-engine = { workspace = true }
|
|
effectcraft-project = { workspace = true }
|
|
log = { workspace = true }
|
|
effectcraft-media = { workspace = true }
|
|
effectcraft-expr = { workspace = true }
|
|
effectcraft-script = { workspace = true }
|
|
effectcraft-export = { workspace = true }
|
|
effectcraft-plugin = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
|
|
# WebAssembly effect plug-ins run in wasmi on native builds.
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
effectcraft-plugin = { workspace = true, features = ["wasm"] }
|
|
# External effect helpers: separate processes, so their native code can't take the app down.
|
|
effectcraft-helper-host = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
serde_json = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
effectcraft-psd = { workspace = true }
|
|
effectcraft-svg = { workspace = true }
|
|
effectcraft-pdf = { workspace = true }
|
|
effectcraft-raster = { workspace = true }
|
|
effectcraft-time = { workspace = true }
|
|
effectcraft-interchange = { workspace = true }
|
|
image = { workspace = true }
|
|
gif = { workspace = true }
|
|
exr = { workspace = true }
|
|
rayon = { workspace = true }
|