- Add NodeClient trait for HTTP calls to Meilisearch nodes (seam between pure miroir-core and networked miroir-proxy) - Add ScatterPlan struct containing chosen_group, target_shards, shard_to_node mapping, deadline_ms, hedging_eligible - Implement plan_search_scatter() pure function that constructs the covering set without I/O - Implement execute_scatter() async function that fans out to nodes with partial-failure handling - Add MockNodeClient for testing with pre-programmed responses/errors - Add unit tests for plan construction, query group rotation, shard-to-node mapping, hedging eligibility, and scatter execution Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
18 lines
460 B
TOML
18 lines
460 B
TOML
[workspace]
|
|
resolver = "2"
|
|
members = ["crates/miroir-core", "crates/miroir-proxy", "crates/miroir-ctl"]
|
|
|
|
[workspace.package]
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
license = "MIT"
|
|
repository = "https://github.com/jedarden/miroir"
|
|
rust-version = "1.87"
|
|
|
|
[workspace.dependencies]
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
thiserror = "2.0"
|
|
tracing = "0.1"
|
|
pretty_assertions = "1.4"
|
|
rusqlite = { version = "0.39", features = ["bundled"] }
|