[workspace] resolver = "2" members = [ "crates/assemblash-liveness", "crates/assemblash-core", "crates/assemblash-renderer", "crates/assemblash-server", "crates/assemblash-mcp", "crates/assemblash-cli", ] [workspace.package] version = "1.13.0" edition = "2021" rust-version = "1.92" license = "Apache-2.0" repository = "https://github.com/VidGuiCode/assemblash" authors = ["VidGuiCode"] [workspace.dependencies] assemblash-liveness = { path = "crates/assemblash-liveness", version = "1.13.0" } assemblash-core = { path = "crates/assemblash-core", version = "1.13.0" } assemblash-renderer = { path = "crates/assemblash-renderer", version = "1.13.0" } assemblash-server = { path = "crates/assemblash-server", version = "1.13.0" } assemblash-mcp = { path = "crates/assemblash-mcp", version = "1.13.0" } [workspace.lints.rust] unsafe_code = "forbid" missing_debug_implementations = "warn" unreachable_pub = "warn" [workspace.lints.clippy] # Structured errors, never panics, is a product requirement (NFR-4). unwrap_used = "warn" expect_used = "warn" panic = "warn" todo = "warn" [profile.dev] # The editor renders through Rust after every committed visual action. Keeping # debug assertions while enabling light optimization makes direct manipulation # responsive during development instead of making each 1080p preview wait on # debug-speed rasterization and PNG encoding. opt-level = 1 [profile.release] # One small static binary is the deployment story (PRD ยง14). opt-level = "z" lto = true codegen-units = 1 panic = "abort" strip = true