DataSourceConfig refactored to enum: External/Clock/StaticText. Clock generates formatted time via chrono, static text emits configured string. ESP32: connection status indicator (green/red dot bottom-right), per-widget clear before redraw, RenderEvent enum for local + server messages. Polling uses DataUpdate instead of ScreenUpdate to avoid wiping widget state. Empty mappings passthrough raw source data for internal sources.
62 lines
2.2 KiB
TOML
62 lines
2.2 KiB
TOML
[workspace]
|
|
members = [
|
|
"crates/domain",
|
|
"crates/protocol",
|
|
"crates/application",
|
|
"crates/client-domain",
|
|
"crates/client-application",
|
|
"crates/adapters/config-memory",
|
|
"crates/adapters/tcp-server",
|
|
"crates/adapters/tcp-client",
|
|
"crates/adapters/display-terminal",
|
|
"crates/adapters/config-sqlite",
|
|
"crates/adapters/http-api",
|
|
"crates/adapters/http-json",
|
|
"crates/adapters/rss",
|
|
"crates/adapters/media",
|
|
"crates/adapters/auth",
|
|
"crates/adapters/secret-store",
|
|
"crates/api-types",
|
|
"crates/bootstrap",
|
|
"crates/client-desktop",
|
|
]
|
|
exclude = [
|
|
"crates/client-esp32",
|
|
]
|
|
resolver = "2"
|
|
|
|
[workspace.dependencies]
|
|
domain = { path = "crates/domain" }
|
|
protocol = { path = "crates/protocol" }
|
|
application = { path = "crates/application" }
|
|
client-domain = { path = "crates/client-domain" }
|
|
client-application = { path = "crates/client-application" }
|
|
config-memory = { path = "crates/adapters/config-memory" }
|
|
tcp-server = { path = "crates/adapters/tcp-server" }
|
|
tcp-client = { path = "crates/adapters/tcp-client" }
|
|
display-terminal = { path = "crates/adapters/display-terminal" }
|
|
config-sqlite = { path = "crates/adapters/config-sqlite" }
|
|
http-json = { path = "crates/adapters/http-json" }
|
|
http-api = { path = "crates/adapters/http-api" }
|
|
media-adapter = { path = "crates/adapters/media" }
|
|
rss-adapter = { path = "crates/adapters/rss" }
|
|
kframe-auth = { path = "crates/adapters/auth" }
|
|
secret-store = { path = "crates/adapters/secret-store" }
|
|
axum = { version = "0.8", features = ["macros"] }
|
|
tower-http = { version = "0.6", features = ["cors", "fs"] }
|
|
api-types = { path = "crates/api-types" }
|
|
thiserror = "2.0"
|
|
anyhow = "1.0"
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
dotenvy = "0.15"
|
|
serde = { version = "1.0", default-features = false, features = ["derive", "alloc"] }
|
|
serde_json = "1.0"
|
|
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "sqlite"] }
|
|
postcard = { version = "1.1", default-features = false, features = ["alloc"] }
|
|
tokio = { version = "1.0", features = ["macros", "rt", "rt-multi-thread", "net", "sync", "time", "io-util"] }
|
|
tower = "0.5"
|
|
reqwest = { version = "0.12", features = ["json"] }
|
|
chrono = "0.4"
|
|
chrono-tz = "0.10"
|