Files
git.stella-ops.org/docs/features/unchecked/binaryindex/binaryindex-user-configuration-system.md

2.2 KiB

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