feat(skills): gate motion on physical effects - #479
Closed
yuecideng wants to merge 1 commit into
Closed
Conversation
yuecideng
force-pushed
the
feat/effect-failure-reconciliation
branch
from
August 11, 2026 16:09
3a20042 to
2dd7025
Compare
yuecideng
force-pushed
the
feat/physical-effect-phase-gates
branch
from
August 11, 2026 16:09
4affb6b to
f064f26
Compare
4 tasks
4 tasks
yuecideng
marked this pull request as ready for review
August 11, 2026 16:11
Greptile SummaryThe PR adds blocking, correlated physical-effect gates at named trajectory-segment boundaries so Pick, Place, and HandOver cannot begin safety-critical motion until fresh attachment or detachment evidence is available.
Confidence Score: 5/5The PR appears safe to merge; no concrete blocking or independently actionable non-blocking defect was identified. The new gate lifecycle remains correlated across requests and attempts, blocks waypoint advancement while evidence is unresolved, replays the preceding synchronized command, and routes contradiction through bounded retry or recovery with focused test coverage.
|
| Filename | Overview |
|---|---|
| embodichain/lab/sim/atomic_actions/execution.py | Adds the correlated segment-gate state machine, validation, command replay, deadlines, retries, events, and lifecycle cleanup without an identified actionable defect. |
| embodichain/lab/sim/atomic_actions/runner.py | Integrates synchronous gate verification into due-cycle observation and dispatch ordering while preserving external blocked-boundary behavior. |
| embodichain/lab/sim/skills/compiler.py | Grounds independent Pick, Place, and HandOver gate monitors against the intended named segments and physical expectations. |
| embodichain/lab/sim/skills/runtime.py | Correlates gate requests with fresh row-local evidence and converts monitor decisions into retry-aware gate results. |
| embodichain/lab/sim/atomic_actions/invocation.py | Adds validated invocation-local phase-effect gate requirements and preserves them through invocation construction. |
| tests/sim/atomic_actions/test_engine_per_env.py | Covers gate blocking, predecessor-command replay, stale identities, retries, deadlines, and row-local outcomes. |
| tests/sim/skills/test_runtime.py | Covers semantic runtime evidence collection, independent monitor behavior, and gate-result routing. |
Sequence Diagram
sequenceDiagram
participant C as SemanticSkillCompiler
participant R as SkillRuntime
participant E as ExecutionRunner
participant S as ExecutionSession
participant M as Gate EffectMonitor
C->>R: Ground invocation and independent gate monitor
R->>E: Step with gate verifier
E->>S: Tick with fresh observation
S-->>E: PhaseEffectGateRequest at segment entry
E->>R: Verify correlated gate request
R->>M: Observe current physical evidence
M-->>R: Success, failure, or unresolved masks
R-->>E: PhaseEffectGateResult
E->>S: Apply correlated result
alt unresolved
S-->>E: Replay preceding cohort command
else success
S-->>E: Unlock next trajectory segment
else contradiction
S-->>E: Retry action or require recovery
end
Reviews (1): Last reviewed commit: "feat(skills): gate motion on physical ef..." | Re-trigger Greptile
Contributor
Author
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
Stack
feat/effect-failure-reconciliationAdd blocking physical-effect gates at named trajectory-segment entries. Pick verifies attachment before
lift, Place verifies detachment beforeretract, and HandOver verifies destination attachment before sourcerelease.Each gate has a fresh monitor, correlated request/result identity, row-local retry or recovery behavior, and holds the preceding real controller command while evidence is unresolved. Gates observe physics only; they do not commit symbolic state or mutate simulator object state.
Refs #471
Refs #474
Type of change
Screenshots
Not applicable.
Validation
pytest -q tests/sim/atomic_actions/test_engine_per_env.py tests/sim/atomic_actions/test_runner.py tests/sim/skills/test_compiler.py tests/sim/skills/test_runtime.py tests/gym/envs/expert_program/test_simulation_environment.py— 225 passedChecklist