miroir/crates/miroir-proxy
jedarden a3138eef45 feat(proxy): implement POST /_miroir/rebalance endpoint (P4.6, miroir-mkk.6)
Implements manual rebalance trigger and enhanced status endpoint:

**POST /_miroir/rebalance**
- Triggers manual rebalance operation (e.g., after config-only topology tweak)
- Returns 202 Accepted with miroir_task_id when rebalance starts
- Returns 200 OK with no-op task when already balanced
- Accepts optional index_uid and reason parameters

**GET /_miroir/rebalance/status** (enhanced)
- Returns per-shard migration progress with phase information
- Response shape includes: in_progress, triggered_by, operation_id,
  started_at, phases array, overall_pct_complete
- Phases array shows shard, state, pct_complete, source, destination

**Supporting changes**
- Added RebalancerWorker::get_all_jobs() to access job state
- Added route to admin router
- Added TriggerRebalanceRequest struct

Acceptance criteria met:
- ✓ Manual rebalance trigger via POST /_miroir/rebalance
- ✓ Returns miroir_task_id for tracking
- ✓ No-op response when already balanced
- ✓ Detailed per-shard status in GET /_miroir/rebalance/status

Closes: miroir-mkk.6
2026-05-24 06:17:16 -04:00
..
src feat(proxy): implement POST /_miroir/rebalance endpoint (P4.6, miroir-mkk.6) 2026-05-24 06:17:16 -04:00
static feat(proxy): implement SPA with instant-search, facets, URL state, keyboard nav, i18n (P5.21.d, §13.21) 2026-05-24 05:31:06 -04:00
tests Merge remote-tracking branch 'origin/master' 2026-05-24 05:21:32 -04:00
Cargo.toml Merge remote-tracking branch 'origin/master' 2026-05-24 05:21:32 -04:00