Repository navigation
Conversation
This was referenced Oct 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Protected ODS consumers currently reproduce refill, quota-readiness, wait and pacing loops in application code. Add an opt-in
ODSFlowControllerthat applies an existing measured configuration in the owner process/thread, drains lifecycle events during bounded waits, propagates worker failures and respects whole-cache production ceilings. Source and Dataset sampling retain their immediate error contracts.Add compact
get_flow_status()and publiccheck_health()APIs without constructing a full quota audit on each update. Migrate the BC demo and direct LeRobot collector to the controller, remove duplicate polling and obsolete learner branches, and move resource sampling alongside application accounting. The trainer is 226 lines shorter.The application retains engine start/stop, optimizer, evaluation and checkpoint ownership. This applies a static measured plan; it does not calibrate throughput, qualify a safe reuse profile or provide distributed/replay recovery. Update ODS/API docs and project context while retaining the simple architecture diagram.
Refs #788. No new dependencies.
Type of change
Validation
py311: 571 passed acrosstests/data_pipeline, API-doc tooling and agent-context tests. Tests cover bounded waits, terminal errors, owner restrictions, refill races, quota limits and real forkserver production with a backpressured lifecycle log. Final focused runtime rerun: 66 passed (included in the 571 cases).cd5589255: identical sampled batches, model/optimizer/RNG state, checkpoint save times/selection and stop reasons. Uses real CPU BC/source/checkpoint code with deterministic simulator/evaluator and clock substitutes; includes budget boundaries, resident/frozen paths, final supply exhaustion and cross-round refill.py311with the host's matching DexSim runtime: online control completed generation 2, 4 optimizer updates and 16 delivered chunks; cold offline collection wrote/reloaded 4 LeRobot episodes and completed one protected update. Both performed independent student evaluation and closed all owned workers without cleanup errors. These are engineering smoke checks with reduced scene counts and a synthetic online capacity packet, not learning-quality or throughput qualification. An initial invalid synthetic cache/production-cap pairing was correctly rejected before simulation; the corrected run passed and both attempts were retained.black .), API coverage 2792/2792, Python 3.10 syntax,git diff --check, context validation and a scoped ODS Sphinx build passed. The full repository suite and full-site documentation build were not run.Checklist
black .command to format the code base.python docs/scripts/check_api_docs.py).