fix(config): implement P6.1 pod resource envelope + fix compilation errors
This commit implements P6.1 (Pod resource envelope + limits/requests) per plan §14.8
and fixes several pre-existing compilation errors.
## P6.1 Implementation (plan §14.1-14.3, §14.8)
- Config defaults already match plan §14.8 envelope:
- Server: max_body_bytes=104857600 (100MiB), max_concurrent_requests=500
- Connection pool: max_idle=32, max_total=128, idle_timeout_s=60
- Task registry: cache_size=10000, redis_pool_max=50
- Idempotency: max_cached_keys=1000000, ttl_seconds=86400
- Session pinning: max_sessions=100000
- Query coalescing: max_subscribers=1000, max_pending_queries=10000
- Anti-entropy: max_read_concurrency=2, fingerprint_batch_size=1000
- Resharding: backfill_concurrency=4, backfill_batch_size=1000
- Peer discovery: service_name="miroir-headless", refresh_interval_s=15
- Leader election: lease_ttl_s=10, renew_interval_s=3 (fixed from 30/5)
- Helm values.yaml already has correct resource limits:
- limits: cpu=2000m, memory=3584Mi (3.5GiB under 3.75GB node limit)
- requests: cpu=500m, memory=1Gi
## Compilation Fixes
- Made RebalanceJob, ShardState fields public (for admin API access)
- Added jobs() accessor method to RebalancerWorker
- Added MiroirCode variants: InvalidRequest, NotFound, InternalError
- Fixed AdminUiAssets to be public (for rust-embed)
- Added include-exclude feature to rust-embed dependency
- Fixed DumpImportManager to accept Arc<RwLock<Topology>> (matching proxy state)
- Re-exported DumpImportConfig from dump_import to avoid duplication
- Fixed topology API usage (use .shards instead of .shard_count(), .nodes() instead of .all_nodes())
- Fixed HeaderMap iteration in search.rs (use .as_ref() instead of .as_str())
- Fixed AntiEntropyWorkerConfig defaults to match plan §14.8 (lease_ttl_secs=10, renew_interval_ms=3000)
- Added from_code_str entries for new MiroirCode variants
Closes: miroir-m9q.1
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>