# BinaryIndex User Configuration System ## Module BinaryIndex ## Status IMPLEMENTED ## Description Comprehensive user configuration for B2R2 lifter pooling, LowUIR enablement, Valkey function cache behavior, PostgreSQL persistence, with ops endpoints for health/bench/cache/config and redaction rules for operator visibility. ## Implementation Details - **Modules**: `src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Configuration/`, `src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/`, `src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Cache/` - **Key Classes**: - `BinaryIndexOptions` (`src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Configuration/BinaryIndexOptions.cs`) - top-level config with sections for B2R2Pool, SemanticLifting, cache, persistence - `B2R2PoolOptions` (`src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Disassembly.B2R2/B2R2LifterPoolOptions.cs`) - MaxPoolSizePerIsa (1-64), EnableWarmPreload, AcquireTimeout, EnableMetrics, WarmPreloadIsas - `SemanticLiftingOptions` - B2R2Version, Enabled flag, function limits - `BinaryCacheOptions` (`src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Cache/BinaryCacheOptions.cs`) - Valkey cache configuration - `CacheOptionsValidation` (`src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Cache/CacheOptionsValidation.cs`) - validates cache config at startup - `FunctionIrCacheOptions` - function IR cache TTL and size limits - `BinaryIndexOpsOptions` (`src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Core/Configuration/BinaryIndexOpsModels.cs`) - redacted keys list for operator visibility, bench rate limits - **Source**: SPRINT_20260112_007_BINIDX_binaryindex_user_config.md ## E2E Test Plan - [ ] Configure B2R2 pool with custom MaxPoolSizePerIsa and verify pool initializes with correct size - [ ] Configure SemanticLifting as disabled and verify LowUIR lifting is skipped - [ ] Configure Valkey cache options and verify function IR cache respects TTL settings - [ ] Verify configuration binding from `StellaOps:BinaryIndex:*` config sections - [ ] Verify redacted keys do not appear in ops config endpoint responses - [ ] Verify CacheOptionsValidation rejects invalid configuration at startup