Skip to content

fix(thunderagent): cherry-pick support topology-only wrapped backends (#12175) - #12595

Merged
pvijayakrish merged 1 commit into
release/1.4.0from
dagil-nvidia/cp-12175-thunderagent
Aug 4, 2026
Merged

fix(thunderagent): cherry-pick support topology-only wrapped backends (#12175)#12595
pvijayakrish merged 1 commit into
release/1.4.0from
dagil-nvidia/cp-12175-thunderagent

Conversation

@dagil-nvidia

@dagil-nvidia dagil-nvidia commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

Cherry-pick of #12175 (ab04a7fc05, merged to main 2026-07-31) onto release/1.4.0.

Fixes NVBug 6550880 / DYN-3728, a P0 on the 1.4.0 board: the session-final close request bypasses thunderagent_router and is forwarded straight to the engine.

QA reported the fix as present on main but absent from the release branch. Confirmed: ab04a7fc05 is not an ancestor of release/1.4.0, and no cherry-pick had been opened in the three days since it merged.

Scope

Applies cleanly, no conflicts. Identical to the main commit:

  • components/src/dynamo/common/utils/endpoint_types.py +15/-4
  • components/src/dynamo/common/configuration/groups/runtime_args.py +4/-1
  • components/src/dynamo/common/utils/tests/test_endpoint_types.py +36 (new)
  • components/src/dynamo/thunderagent_router/README.md +7

Original authorship preserved; -x records the source commit.

Validation

Carries the upstream unit tests added in #12175. No behavioural delta from the main commit.


Open in Devin Review

Signed-off-by: cpakkamisaac-sae <cpakkamisaac@nvidia.com>
(cherry picked from commit ab04a7f)
Signed-off-by: Dan Gil <dagil@nvidia.com>
@dagil-nvidia
dagil-nvidia requested review from a team as code owners August 3, 2026 22:17
@github-actions github-actions Bot added fix documentation Improvements or additions to documentation labels Aug 3, 2026

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bad896aca9

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +267 to +270
help="Comma-separated list of endpoint types to enable. Options: "
"'chat', 'completions', or 'none'. Use 'completions' for models "
"without chat templates. Use 'none' for topology-only workers "
"fronted by another Dynamo service.",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Honor none in the unified Rust worker

When this shared option is used by a unified backend, such as python -m dynamo.tokenspeed ... --endpoint-types none, the value bypasses this Python parser and is forwarded through WorkerConfig.from_runtime_config to _backend.Worker; lib/backend-common/src/worker.rs::parse_endpoint_types has no none arm and rejects registration with unknown endpoint type 'none'. Add equivalent parsing and validation in the Rust worker before advertising this option to every DynamoRuntimeArgGroup consumer.

AGENTS.md reference: AGENTS.md:L17-L23

Useful? React with 👍 / 👎.

Comment on lines +42 to +47
if "none" in types:
if len(types) > 1:
raise ValueError(
"Endpoint type 'none' cannot be combined with other endpoint types"
)
return ModelType.Empty

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve the empty surface with the SGLang tokenizer

For an SGLang worker launched with both --endpoint-types none and the supported --use-sglang-tokenizer mode, this returns ModelType.Empty, but _register_model_with_runtime_config subsequently rewrites every non-embedding type to ModelType.Chat. The worker therefore still advertises a public chat surface, allowing frontend traffic—including the session-final request this change is meant to protect—to bypass ThunderAgent; preserve Empty in that override or reject the incompatible option combination.

Useful? React with 👍 / 👎.

Comment on lines +42 to +47
if "none" in types:
if len(types) > 1:
raise ValueError(
"Endpoint type 'none' cannot be combined with other endpoint types"
)
return ModelType.Empty

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep vLLM LoRA registrations topology-only

When a vLLM worker uses --endpoint-types none with LoRA enabled, this hides only its base-model card. Loading an adapter later reaches VllmWorkerHandler.load_lora, where decode and aggregated workers unconditionally publish the adapter as ModelType.Chat | ModelType.Completions instead of honoring config.endpoint_types; requests for that adapter can therefore route directly to the wrapped backend and bypass ThunderAgent. Propagate the empty surface to dynamically registered LoRA cards as well.

Useful? React with 👍 / 👎.

@datadog-official

datadog-official Bot commented Aug 3, 2026

Copy link
Copy Markdown

Pipelines

⚠️ Warnings

🚦 2 Pipeline jobs failed

Docs link check | lychee   View in Datadog   GitHub Actions

See error 404 errors due to missing documentation links in README.md.

PR | backend-status-check   View in Datadog   GitHub Actions

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: bad896a | Docs | Datadog PR Page | Give us feedback!

@pvijayakrish
pvijayakrish merged commit afdad3f into release/1.4.0 Aug 4, 2026
170 of 174 checks passed
@pvijayakrish
pvijayakrish deleted the dagil-nvidia/cp-12175-thunderagent branch August 4, 2026 00:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation fix size/M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants