add SPA config UI, wire media/rss adapters, event-driven layout push

- React SPA: dashboard, data sources CRUD, widgets CRUD, layout builder,
  presets. TanStack Router + Query, shadcn/ui, Vite proxy to :3000
- wire media + rss adapters into polling loop, remove xtb source type
- media adapter: read username/password from headers, proper subsonic auth
- event handler: subscribe to LayoutChanged, push screen update to clients
- fix clippy warnings across workspace (Default impls, collapsible ifs,
  redundant closures, is_none_or, unused imports)
This commit is contained in:
2026-06-19 00:12:42 +02:00
parent 21c08911df
commit 26ebfad3a2
175 changed files with 12338 additions and 801 deletions

10
Cargo.lock generated
View File

@@ -166,6 +166,8 @@ dependencies = [
"dotenvy",
"http-api",
"http-json",
"media-adapter",
"rss-adapter",
"tcp-server",
"tokio",
"tracing",
@@ -1102,12 +1104,20 @@ dependencies = [
"digest",
]
[[package]]
name = "md5"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
[[package]]
name = "media-adapter"
version = "0.1.0"
dependencies = [
"axum",
"domain",
"fastrand",
"md5",
"reqwest",
"serde_json",
"thiserror",