Skip to content

[config] Execution modes — strict/seeded/adaptive determinism control #135

@dgenio

Description

@dgenio

Context

Split from #45. Adds an explicit Mode enum controlling determinism guarantees.

Proposal

class Mode(str, Enum):
    strict = "strict"       # Full determinism (current behavior, default)
    seeded = "seeded"       # Deterministic with explicit seed parameter
    adaptive = "adaptive"   # FUTURE: learns from telemetry (placeholder)
  • strict: Current behavior. Identical inputs always produce identical outputs.
  • seeded: Deterministic with an explicit seed parameter, allowing reproducible but varied runs.
  • adaptive: Future placeholder — no implementation needed now.

Acceptance Criteria

  • Mode enum in config.py with strict, seeded, adaptive values
  • ProfileConfig.mode field (default: Mode.strict)
  • Router respects modestrict uses current deterministic logic; seeded uses seed for tie-breaking
  • adaptive raises NotImplementedError if used (future placeholder)
  • to_dict() / from_dict() handles Mode serialization
  • Backward-compatible: omitting mode defaults to current deterministic behavior
  • Tests for each mode value

File Paths

  • src/contextweaver/config.py (edit)
  • src/contextweaver/routing/router.py (edit — respect mode)
  • tests/test_config.py (edit)

Parent Issue

Part of #45 (ProfileConfig).

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/contextContext engine: manager, pipeline, firewallarea/routingRouting engine: catalog, graph, router, cardscomplexity/simpleStraightforward change, minimal riskenhancementNew feature or requestmilestone/v0.4v0.4 Observability & evaluationpriority/mediumMedium priority — production readiness

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions