- Admission fails fast with AdmissionInfeasible on infeasible/deadlocked reservations instead of a 10M-iteration busy-spin: no-progress detection in run_to_completion/run_interleaved via a real progress token, plus feasibility pre-checks (need > pool capacity). - Compute budget is now a refundable concurrency gate (release() refunds spent), not a never-refunded lifetime cap that silently deadlocks. - §7.1: the text-encoder feature CacheKey carries adapter_versions + precision (no stale serve across te-LoRA stacks); per-component weight versions mean a transformer-only RL weight sync no longer flushes the frozen text-encoder cache (component-scoped invalidation, not wholesale). - Interleave gate flags symmetric-empty output instead of passing it vacuously. - skipped_steps counted only when the override is actually consumed; BatchScheduler wired for round batch-accounting (metric renamed stepped_units); ResidualCache.get cleanup; stream chunks carry a latent preview payload; dead progress-vars removed. - 5 regression tests added for the previously-untested paths. 54 tests pass (pytest + zero-dep runner).
17 lines
511 B
Python
17 lines
511 B
Python
"""Execution plane — engine + scheduler (design_v3 §6)."""
|
|
from __future__ import annotations
|
|
|
|
from .context import RuntimeLoopContext
|
|
from .engine import Engine, ProgramRunner
|
|
from .scheduler import (
|
|
AdmissionController,
|
|
AdmissionInfeasible,
|
|
BatchScheduler,
|
|
SchedulerMetrics,
|
|
StepTicket,
|
|
WorkUnit,
|
|
)
|
|
|
|
__all__ = ["Engine", "ProgramRunner", "RuntimeLoopContext", "AdmissionController",
|
|
"AdmissionInfeasible", "BatchScheduler", "SchedulerMetrics", "StepTicket", "WorkUnit"]
|