Uh oh!
There was an error while loading. Please reload this page.
Unify Expert Program runtime integration - #551
Merged
Merged
Conversation
Centralize semantic runtime assembly and validation, add registration-owned lowerers and typed planning diagnostics, and let EmbodiedEnv bind Expert Program adapters after scene initialization. Migrate repeated pick/place and open drawer to the shared path and document the consolidated architecture.
yuecideng
marked this pull request as ready for review
August 26, 2026 04:50
Greptile SummaryThe PR centralizes Expert Program compilation and runtime assembly behind
Confidence Score: 5/5The PR appears safe to merge because no blocking failure remains in the eligible follow-up review scope. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| embodichain/lab/gym/envs/embodied_env.py | Adds registration-injected adapter binding, episode-level program selection, and bridge-aware task-success handling. |
| embodichain/lab/gym/utils/registration.py | Extends environment registration to own and inject an immutable Expert Program adapter factory. |
| embodichain/lab/gym/envs/expert_program/environment.py | Routes Expert Program construction through the shared semantic runtime assembly and registration-owned lowerers. |
| embodichain/lab/gym/envs/expert_program/extensions.py | Defines immutable declarations and factories for registered semantic lowerers. |
| embodichain/lab/gym/envs/expert_program/simulation_environment.py | Implements simulation-backed adapter and lowerer creation from the task registration. |
| embodichain/lab/sim/skills/_assembly.py | Introduces the common provider-free semantic runtime assembly path. |
| embodichain/lab/sim/atomic_actions/plans.py | Adds typed planning-failure metadata with a compatibility default for unclassified failed plans. |
| embodichain/lab/sim/atomic_actions/execution.py | Emits named segment events and handles non-retryable planning failures without charging retry budgets. |
| embodichain/lab/sim/skills/runtime.py | Exposes bound skill and semantic-call availability while using the shared runtime assembly. |
| embodichain_tasks/embodichain_tasks/expert_program/open_drawer.py | Moves the task-specific Slide lowerer into a registration-owned factory and shared environment path. |
Sequence Diagram
sequenceDiagram
participant Caller
participant EnvSpec
participant Env as EmbodiedEnv
participant Adapter
participant Runtime as SkillRuntime
participant Gym
EnvSpec->>Env: construct with adapter factory
Env->>Adapter: create_adapter(live environment)
Caller->>Env: create_demo_segments(program)
Env->>Adapter: compile and create bridge
Adapter->>Runtime: assemble fresh semantic runtime
loop Program segments
Runtime-->>Env: controller action
Env-->>Gym: DemoSegment action
Gym->>Gym: env.step(action)
end
Env-->>Caller: completion mask
Reviews (4): Last reviewed commit: "wip" | Re-trigger Greptile
Too many files changed for review (125 files, 100 file limit). Bypass the limit by tagging |
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 freeto 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
This PR makes
EmbodiedEnvthe shared execution boundary for declarative Expert Programs and removes duplicate runtime assembly across the semantic-skill and task layers.Key changes:
AtomicSkillsand Expert Program execution;Slidecall;EnvSpecinject one immutable Expert Program adapter factory and derive preflight registration metadata from the same owner;EmbodiedEnv.create_demo_segments()accept either static configuration or an episode-levelExpertProgramCfg/CompiledProgram, providing the handoff required by a future MLLM frontend;HandOver and ActionBank are intentionally unchanged. ActionBank deprecation and GPU-backed physical qualification remain outside this PR.
Dependencies: None.
Refs #471
Refs #474
Type of change
Screenshots
Not applicable; this change has no visual UI.
Validation
black .— 815 files unchangedpython docs/scripts/check_api_docs.py— 1709/1709 exports documentedpytest -q tests/sim/atomic_actions -m 'not gpu and not requires_sim' --disable-warnings --maxfail=10— 564 passed, 4 deselectedpytest -q tests/sim/skills -m 'not gpu and not requires_sim' --disable-warnings --maxfail=10— 333 passed, 13 deselectedpytest -q tests/gym/envs/expert_program tests/gym/envs/test_embodied_env_expert_program.py tests/gym/utils/test_gym_utils.py -m 'not gpu and not requires_sim' --disable-warnings --maxfail=10— 321 passed, 1 deselectedpytest -q tests/docs --confcutdir=tests/docs --disable-warnings --maxfail=10— 20 passedgit diff --check HEAD^— passedGPU and real-simulator trajectory qualification were not run locally.
Checklist
black .command to format the code base.python docs/scripts/check_api_docs.py).