[package] name = "unlucky-app" description = "Unlucky-Launcher 桌面壳:Slint + Metro 视觉(唯一允许依赖 UI 框架的 crate)" version.workspace = true edition.workspace = true license.workspace = true authors.workspace = true repository.workspace = true rust-version.workspace = true publish.workspace = true [[bin]] name = "unlucky-launcher" path = "src/main.rs" [dependencies] slint.workspace = true # 跨界 DTO 必须可序列化(AGENTS §6 / 01c §5):事件与快照是 IPC 契约, # 序列化能力由 derive 钉住,测试里做 round-trip 断言。 serde.workspace = true # host 层要读 core 设置/事件里的 JSON 值(serde_json 是 workspace 既有依赖) serde_json.workspace = true # 边界(01c §5 / D3):app 只经 DTO 消费 core/agent,**不 import 内部类型**。 # P0 的 host 是 src/mock.rs 的假后端;这两个依赖在这里登记,是为了后续把真实 host # (core 的快照/事件流翻译成 src/dto 的类型)落位时不必再动 workspace 契约。 unlucky-core = { path = "../core", version = "0.1" } unlucky-agent = { path = "../agent", version = "0.1" } # M82:同一个二进制也带 CLI 子命令(`unlucky-launcher instances list` …)。 # 依赖方向 app → cli → core/agent 不违反 core 零 UI 铁律(guards.yml 的 core-no-ui 只查 # `cargo tree -p unlucky-core`,core 不依赖 cli)。零 UI 依赖的 `ull` 仍在 `crates/cli`, # 给没有图形库的机器用——两者不是重复品。 unlucky-cli = { path = "../cli", version = "0.1" } [build-dependencies] slint-build.workspace = true [dev-dependencies] [lints] workspace = true