Skip to content

[Misc] Route LingBot-World example action root through stage-scoped model config - #9315

Open
dongyang1006 wants to merge 1 commit into
vllm-project:mainfrom
dongyang1006:lingbot-example-stage-scoped-action-root
Open

dongyang1006 wants to merge 1 commit into
vllm-project:mainfrom
dongyang1006:lingbot-example-stage-scoped-action-root

Conversation

@dongyang1006

@dongyang1006 dongyang1006 commented Oct 23, 2026 •

Copy link
Copy Markdown

1. What outcome do you want to achieve?

The LingBot-World v2 example should deliver its trusted action root (lingbot_action_root) to the diffusion pipeline in a form that is independent of the config resolution path and of the revision the user runs — no correctly configured run should ever hit the pipeline's fail-closed action_path requires a trusted action root... error.

2. What is the highest-leverage variable for that outcome?

The kwargs form used to pass model config to Omni(...). The flat global model_config key only reaches diffusion stages on revisions carrying #8289's routing fix; the stage-scoped stage_0_model_config key is honored on both the runtime and the structured resolution paths, on any recent revision.

3. How will this work move that variable?

build_omni_kwargs now emits the stage-scoped stage_0_model_config key instead of the flat model_config key, and a new CPU test (test_action_root_uses_stage_scoped_model_config) locks the form in — asserting the routing key, the removal of the flat key, and that the other five kwargs are unchanged.

4. Whose customer or user needs does this address, and what are those needs?

Users running the LingBot-World v2 offline example with camera-action inputs, including on deployments pinned to revisions predating #8289. They configure the checkpoint, --action-dir, and the trusted action root exactly as documented, and need the run to be accepted — not rejected by the fail-closed action-root check — regardless of which resolution path or revision serves the request.

Purpose

build_omni_kwargs in the LingBot-World v2 example passed lingbot_action_root (the trusted action root) through the flat global model_config kwarg. That kwarg's routing to diffusion stages is resolution- and revision-dependent: the structured config projection dropped it for diffusion stages until #8289 restored the global CLI route, so the example's action root only reached OmniDiffusionConfig.model_config on revisions that carry that fix. When the kwarg is dropped, the pipeline fails closed with:

action_path requires a trusted action root configured by
model_config.lingbot_action_root or VLLM_OMNI_LINGBOT_ACTION_ROOT

This switches the example to the stage-scoped stage_0_model_config key, which is honored on both the runtime and the structured resolution paths (the structured path is covered by test_nested_stage_override_deep_merges_structured_model_config), so the trusted action root reaches the pipeline regardless of resolution path or revision.

Behavior before/after on current main: identical results — both forms reach the diffusion stage since #8289. The stage-scoped form additionally works on revisions predating #8289 and makes the routing target explicit in the example. Scope: example + CPU test only; no runtime code changes.

Test Plan

vLLM Version: 0.30.0

vLLM-Omni Commit: 4aa8984 (based on e12f297)

  • New CPU test test_action_root_uses_stage_scoped_model_config asserts build_omni_kwargs emits stage_0_model_config carrying the action root, emits no flat model_config key, and leaves the other five keys unchanged.
  • Existing test_offline_ulysses_argument (ulysses/tp validation) is unaffected by the change.

Test Result

  • Local independent verification of 7 assertions passed (key routing, old key removal, remaining 5 keys unchanged)

🤖 Assisted by opencode (AI-assisted contribution, human-reviewed)

…odel config

build_omni_kwargs passed lingbot_action_root through the flat global model_config kwarg. That kwarg's routing to diffusion stages is resolution- and revision-dependent: the structured config projection dropped it for diffusion stages until vllm-project#8289 restored the global CLI route, so the trusted action root only reached OmniDiffusionConfig.model_config on revisions that carry that fix.

The stage-scoped stage_0_model_config key is honored on both the runtime and structured resolution paths, so the trusted action root reaches the pipeline regardless of resolution path.

Assert the routing form in the CPU example test.

Signed-off-by: dongyang1006 <40831215@qq.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-23T20:00:09.885707Z
We couldn’t complete this review. Comment @codex review to try again.
4aa8984 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

@dongyang1006 dongyang1006 changed the title [Bugfix] Route LingBot-World example action root through stage-scoped model config [Misc] Route LingBot-World example action root through stage-scoped model config Oct 23, 2026
@vllm-omni-review-bot

Copy link
Copy Markdown

This PR matches CODEOWNERS paths: /tests/.

Code owners: @NickCao @yenuo26

Routing: @NickCao via CODEOWNERS; @yenuo26 via CODEOWNERS

@dongyang1006, please review your own changes and leave a short self-review comment describing what you checked. PRs without author self-review may not be assigned a reviewer.

Please take a look when you have a chance. If you would like an automated review, mention @vllm-omni-review-bot in a comment.

@hsliuustc0106 hsliuustc0106 added world model enhancement New feature or request labels Oct 25, 2026 — with Cursor
@vllm-omni-review-bot

Copy link
Copy Markdown

Omni ReviewBot: no human activity for 8 days

@dongyang1006 this pull request has had no human commit, comment or review since 2026-10-23. Please confirm the current plan and next step. The author or a maintainer decides whether to change the PR state.

To keep it moving, any one of these is enough: push an update, reply to the open blocker, or post the current plan and timeline.

@dongyang1006

Copy link
Copy Markdown
Author

Self-review notes (also answering the stale-check above).

What I checked:

  1. Routing form: stage_0_model_config is honored on both resolution paths — the structured path is covered by the existing test_nested_stage_override_deep_merges_structured_model_config, and the runtime path picks up stage-scoped kwargs on any recent revision (the flat global model_config key only routes to diffusion stages on revisions carrying [bugfix] Fix CLI flags that modify model_config when using --deploy-config #8289).
  2. Old key fully removed: the flat model_config key is gone from build_omni_kwargs output; no remaining call site or doc in the example references it.
  3. No collateral change: the other five kwargs are unchanged — asserted explicitly by the new test.
  4. Tests: test_action_root_uses_stage_scoped_model_config passes locally (7 assertions: routing key emitted, old key absent, five remaining keys unchanged); existing test_offline_ulysses_argument unaffected. Scope is example + CPU test only — no runtime code touched.
  5. Behavior on current main: both forms reach the diffusion stage since [bugfix] Fix CLI flags that modify model_config when using --deploy-config #8289, so results are identical before/after; the stage-scoped form additionally works on revisions predating [bugfix] Fix CLI flags that modify model_config when using --deploy-config #8289 and makes the routing target explicit.

Current plan / next step: the PR is ready for review as-is; no further changes planned unless reviewers request them. CC @NickCao @yenuo26 (CODEOWNERS for **/tests/**) — happy to address any feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request world model

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants