Add support for defining ranking profiles in schema YAML, allowing deployments to override builtin profiles with deployment-specific signal names and tuning parameters. - Add override_register() to ProfileRegistry for clean builtin replacement - Add with_profiles() to TidalDbBuilder to thread schema profiles - Parse profiles section in config.rs with full sort/strategy/agg support - Validate that profile signal references exist in schema at startup - Change load_schema() to return (Schema, Vec<RankingProfile>) This closes the gap where the builtin for_you profile referenced signals (view, like, share) that don't exist in deployment schemas, causing all feed scores to normalize to 1.0. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
29 lines
738 B
TOML
29 lines
738 B
TOML
[package]
|
|
name = "tidal-server"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
|
|
[lib]
|
|
name = "tidal_server"
|
|
path = "src/lib.rs"
|
|
|
|
[dependencies]
|
|
axum = "0.8"
|
|
clap = { version = "4.5", features = ["derive", "env"] }
|
|
subtle = "2"
|
|
tower = { version = "0.5", features = ["limit"] }
|
|
tower-http = { version = "0.6", features = ["timeout", "trace", "request-id"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
serde_yaml = "0.9"
|
|
thiserror = "2"
|
|
tokio = { version = "1", features = ["macros", "rt-multi-thread", "signal"] }
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
tidaldb = { path = "../tidal" }
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|