Draft
Conversation
- GlobalConfig.exit_on_eof: new flag; when set, ReplayConnection streams run once with loop=False and the GO2Connection module signals SIGINT to main process (DIMOS_MAIN_PID env) once all three streams reach EOF, so coordinator.loop() unblocks and stops cleanly - Apply cli_config_overrides to global_config in run() BEFORE autoconnect() so blueprint top-level viewer branching (unitree_go2_basic.py) sees the override — previously --viewer=none was ignored because the blueprint was imported before the CLI kwarg landed on the singleton - ReplayConnection: add no-op stop() (prev would AttributeError on stop_timer since super().__init__ is bypassed)
…_cpu - Move to flat autoresearch/ layout: eval.py, optimizations.py, program.md, GUIDELINES.md, run.sh, .gitignore - Delete autoresearch/go2_cpu/ (prior nested version — only diffs were license headers + formatting; no logic rescued) - program.md describes branch-based commit-per-experiment flow (Karpathy pattern): ruthwik/autoresearch branch, results.jsonl ledger, reset --hard to discard candidates - GUIDELINES.md documents test-venv requirement, current DimOS hooks (--exit-on-eof, --viewer=none, DIMOS_MAIN_PID), and remaining §6 gaps
…t-on-eof - BASE_REPLAY_CMD: drop `uv run`, invoke test-venv/bin/dimos directly so subprocess env isolation matches GUIDELINES - Add --exit-on-eof: replay ends at EOF instead of hitting the 300s timeout; enables fixed-work benchmarking - Target unitree-go2-basic instead of the smart blueprint. Smart adds 5 modules (mapping, planning, exploration, patrolling) that are CPU noise for an autoresearch CPU-footprint target; PatrollingModule also has a 5s graceful-stop bug that inflates wall time. Basic covers the LCM/RPC/ replay stack we actually want to optimize. - Fix REPO_ROOT: parents[2] → parents[0] after flattening go2_cpu layout - DEFAULT_TIMEOUT: 300s → 180s safety cap (EOF runs are ~10-30s) - program.md / GUIDELINES.md: align with unitree-go2-basic target; drop PatrollingModule rough-edge note (no longer in the active blueprint)
Replace ad-hoc startup_code string with a documented catalog of tunable knobs — each with a top-level constant (easy for the agent to grep), source citation, safe range, and upstream default. apply() composes only the enabled knobs into cli_args/env/startup_code. Baseline: all ENABLE_* flags False → apply() returns empty dict-ish. Matches program.md's "Re-baseline with a clean optimizations.py" rule. Knobs exposed: 1. LCM_LOOP_TIMEOUT_MS (lcmservice._LCM_LOOP_TIMEOUT, 50ms → tunable) 2. RPC_POOL_MAX_WORKERS (PubSubRPCBase._call_thread_pool_max_workers, 50 → tunable) 3. CAMERA_INFO_MODE (go2 1Hz daemon thread: default|slow|once) 4. N_WORKERS (--n-workers CLI flag) 5. BLAS_PINNING (OMP/MKL/OPENBLAS_NUM_THREADS env) 6. LOG_LEVEL (DIMOS_LOG_LEVEL env; reduces formatter CPU) Source citations point at dimos/ paths so the agent can grep back to first principles when choosing values.
…source-gated knobs 7-10 Expand eval harness with TTFM (time to first message via I/O detection), context switch tracking, and multi-score reporting. Add 4 new optimization knobs gated behind env vars so the agent can toggle them from optimizations.py without touching DimOS source each run: - DIMOS_SKIP_WEBSOCKET_VIS: skip WebsocketVisModule in blueprint - DIMOS_SKIP_CLOCK_SYNC: skip ClockSyncConfigurator during replay - DIMOS_LAZY_ASYNCIO: lazy asyncio loop creation in ModuleBase - DIMOS_REPLAY_PREFETCH: background prefetch for LegacyPickleStore
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.
Problem
Closes DIM-XXX
Solution
Breaking Changes
How to Test
Contributor License Agreement