Scaffold workspace, shared types and requirements spec

Cargo workspace with core/ble/fit/probe crates. crates/core/src/types.rs
is the fixed contract between the BLE layer, ride engine and UI.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-05 13:11:32 +02:00
co-authored by Claude Opus 5
commit eb216dd9e6
21 changed files with 2910 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
[package]
name = "bikecontrol-app"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
description = "BikeControl desktop shell: Tauri commands and the event bridge to the UI"
[lib]
# Tauri v2 convention: the app lives in a lib so the same code can be reused by
# the Android/iOS entry points later (G-4).
name = "bikecontrol_app_lib"
crate-type = ["staticlib", "cdylib", "rlib"]
[build-dependencies]
tauri-build = { version = "2", features = [] }
[dependencies]
bikecontrol-core = { workspace = true }
tauri = { version = "2", features = [] }
tauri-plugin-dialog = "2"
serde = { workspace = true }
serde_json = { workspace = true }
serde_yaml_ng = { workspace = true }
tokio = { workspace = true }
anyhow = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
[features]
default = ["mock-ride"]
# Drive the UI from the synthetic ride simulator in `src/mock.rs`. This is what
# ships today, while `crates/core` and `crates/ble` are still being written.
mock-ride = []
# Drive the UI from `bikecontrol_core::RideSession` fed by real FTMS telemetry.
# Swap `default` to this once core's `session`/`physics` are implemented.
real-session = []