@@ -8,6 +8,7 @@ members = [
88 " domain" ,
99 " ports" ,
1010 " windows" ,
11+ " testkit" ,
1112 " core" ,
1213 " ffi" ,
1314 " core-client" ,
@@ -19,17 +20,26 @@ members = [
1920]
2021
2122[workspace .package ]
22- version = " 2.0.0-alpha.3 "
23+ version = " 2.0.0-alpha.4 "
2324edition = " 2024"
2425rust-version = " 1.96"
2526publish = false
2627
28+ # The `// SAFETY:` note the `windows/`, `ffi/`, `broker/`, and `ui/` crate
29+ # headers require on every unsafe block. A Cargo lint rather than a crate-root
30+ # attribute because it has to reach the integration-test targets too, which are
31+ # crates of their own; the cost is that every member has to opt in with
32+ # `[lints] workspace = true`, which testkit/tests/state_rules.rs gates.
33+ [workspace .lints .clippy ]
34+ undocumented_unsafe_blocks = " deny"
35+
2736[workspace .dependencies ]
2837# Internal crates.
2938windhawk-core-protocol = { path = " protocol" }
3039windhawk-core-domain = { path = " domain" }
3140windhawk-core-ports = { path = " ports" }
3241windhawk-core-windows = { path = " windows" }
42+ windhawk-core-testkit = { path = " testkit" }
3343windhawk-core = { path = " core" }
3444# The raw C ABI transport shared by the bridge and the CLI. Outside the core
3545# layering, like the bridge; depends on libloading alone.
@@ -75,9 +85,11 @@ thiserror = "2.0"
7585# keeps the last value. default-features off drops the `encoding` feature
7686# (encoding_rs); the core feeds the parser &str it decoded itself.
7787yaml-rust2 = { version = " 0.11" , default-features = false }
78- # Raw Win32 bindings for the adapter and ffi crates. Pinned to the version other
79- # dependencies already resolve to so cargo-deny sees no duplicate. Features are
80- # enabled per consuming crate.
88+ # Raw Win32 bindings for the adapter and ffi crates. Pinned to the version the
89+ # rest of the tree already resolves to, so the workspace edge adds no version of
90+ # its own; the Tauri UI and the embed-resource build chain still pull 0.59/0.60,
91+ # which cargo-deny reports as a duplicate warning. Features are enabled per
92+ # consuming crate.
8193windows-sys = " 0.61"
8294libloading = " 0.9"
8395tempfile = " 3"
@@ -95,9 +107,9 @@ clap = { version = "4", default-features = false, features = [
95107] }
96108# The CLI's Windows console control handler: a safe wrapper over
97109# SetConsoleCtrlHandler so the `cli` crate keeps `forbid(unsafe_code)`. On
98- # Windows it depends on `windows-sys` ALONE, pinned to the workspace's 0.61 (no
99- # duplicate version); the Unix/Apple deps it declares are not pulled for the
100- # *-pc-windows-msvc targets the CLI builds for.
110+ # Windows it depends on `windows-sys` ALONE, resolved to the workspace's 0.61
111+ # (no version of its own ); the Unix/Apple deps it declares are not pulled for
112+ # the *-pc-windows-msvc targets the CLI builds for.
101113ctrlc = " 3"
102114# The Windows version-resource compiler, a BUILD dependency of the cli and ffi
103115# crates. Their build scripts generate a VERSIONINFO .rc from Cargo's version
0 commit comments