agent-desktop/Cargo.toml
Lahfir a38bdd22d9 feat(ffi): add release-ffi profile and publish guard for cdylib
Workspace Cargo.toml gains [profile.release-ffi] inheriting from
release with panic = "unwind". Cargo rejects per-package `panic`
overrides (error: panic may not be specified in a package profile —
verified experimentally), so a dedicated profile is the Cargo-supported
path to build the cdylib with unwinding while the CLI stays on
panic = "abort".

crates/ffi/Cargo.toml gains:
- publish = false — prevents accidental `cargo publish` of the cdylib
  crate until the distribution plan intentionally removes the guard.
- libc = "0.2" under the macos target — Unit 11 uses pthread_main_np().

Both profiles coexist:
- target/release/libagent_desktop_ffi.dylib       442 KB (panic=abort)
- target/release-ffi/libagent_desktop_ffi.dylib   464 KB (panic=unwind)

Size delta for unwind metadata (~22 KB, under the 500 KB risk budget).
Prerequisite for Unit 1's panic-boundary macro.
2026-04-16 03:34:28 -07:00

31 lines
860 B
TOML

[workspace]
members = ["crates/core", "crates/macos", "crates/windows", "crates/linux", "crates/ffi", "src"]
resolver = "2"
[workspace.package]
edition = "2021"
rust-version = "1.78"
license = "Apache-2.0"
version = "0.1.11" # x-release-please-version
[workspace.dependencies]
clap = { version = "4.5", features = ["derive"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "2.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
base64 = "0.22"
rustc-hash = "2.1"
agent-desktop-core = { path = "crates/core" }
[profile.release]
opt-level = "z"
lto = true
codegen-units = 1
strip = true
panic = "abort"
[profile.release-ffi]
inherits = "release"
panic = "unwind"