Skip to content

refactor(planner): Clean up planner core, abstract out peripheral logic - #10767

Merged
sachalmalick merged 6 commits into
mainfrom
sachalmalick/connectors-refactor__LLM-139
Jul 17, 2026
Merged

refactor(planner): Clean up planner core, abstract out peripheral logic#10767
sachalmalick merged 6 commits into
mainfrom
sachalmalick/connectors-refactor__LLM-139

Conversation

@sachalmalick

@sachalmalick sachalmalick commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Overview:

Hello Hongkuan...

So this PR is the first step in my effort to clean up Planner Core and the logic around how we initiate and validate deployments.

The heart of this new design pattern is that we abstract all of what I call the "peripherals" outside of Planner Core. This is the trajectory that Planner was already headed with the connector interface, this takes it a step further by

a) Also abstracting out observation (FPM and Traffic metrics) behind a generic interface for a TrafficMetricsProvider and FpmProvider
b) Letting PlannerCore be a consumer of a new interface called PlannerEnvironment which lets Planner not have to own any specific connector logic at all!

PlannerCore, just needs to know a PlannerEnvironment will be provided to me which I can use to

  1. Making scaling decisions
  2. Know the current deployment state (number of workers and their configurations)
  3. Ask for metrics it needs, Fpm or Traffic

So in addition to this being cleaner, this also sets up Planner long term for a wider "total addressable market" / wide adoption.

Planner is a brilliant state of the art prediction and decision engine, but it need not be environment specific at all.

Someone can go ahead and write your own FpmProvider that will just read events from the cloud if you want! Or a PlannerConnector that makes scaling actions through a generic API call rather than to the Kubernetes management API.

Related Issues

⚠️ This section is required. Choose one path below and delete the other.

🔗 This PR is linked to an issue:

  • Closes #

🚫 This PR is NOT linked to an issue:

  • Confirmed — no related issue

Open in Devin Review

Summary by CodeRabbit

  • Refactor

    • Restructured planner architecture to use protocol-based interfaces instead of abstract base classes for connectors.
    • Separated planner initialization concerns: deployment state management, metrics collection, and scaling operations now handled via a dedicated environment abstraction layer.
    • Refactored native planner core to delegate lifecycle and diagnostics to the planner environment.
  • New Features

    • Added factory functions for constructing connectors, environments, and planners from configuration.
    • Introduced runtime namespace binding for dynamic worker endpoint resolution.

@sachalmalick
sachalmalick requested review from a team as code owners June 17, 2026 00:11
@copy-pr-bot

copy-pr-bot Bot commented Jun 17, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@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 found 4 potential issues.

Open in Devin Review

Comment thread components/src/dynamo/planner/environment/base.py Outdated
Comment thread components/src/dynamo/planner/environment/base.py
Comment thread components/src/dynamo/planner/environment/base.py Outdated
@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

The PR introduces a PlannerEnvironment abstraction layer in the Dynamo planner. PlannerConnector and WorkerInfoProvider are converted from ABCs to Protocols with expanded method contracts. New DeploymentState dataclasses, PlannerEnvironment/RuntimeNamespaceSource protocols, PlannerEnvironmentImpl, PrometheusTrafficProvider, RuntimeFpmProvider, RuntimeNamespaceBinding, and a planner_factory module are added. NativePlannerBase is refactored to delegate all I/O to the environment, and adapter subclasses, connectors, and tests are updated accordingly.

Changes

Planner Environment Abstraction

Layer / File(s) Summary
Connector protocol contracts and conforming implementations
components/src/dynamo/planner/connectors/base.py, connectors/kubernetes.py, connectors/global_planner.py, connectors/virtual.py
PlannerConnector and WorkerInfoProvider are redefined as Protocols; KubernetesConnector and GlobalPlannerConnector add async_init and get_gpu_counts; VirtualConnector drops MDC parsing, gains injected WorkerInfoProvider, and adds get_actual_worker_counts/get_worker_runtime_namespace.
Environment state dataclasses, interface protocols, and change-detection utilities
environment/state.py, environment/interface.py, environment/metrics_provider/interface.py, core/util.py
Defines ReplicaState, ComponentState, DeploymentState dataclasses; PlannerEnvironment, DeploymentStateSource, RuntimeNamespaceSource, TrafficMetricsProvider, FpmMetricsProvider protocols; and worker_info_changed/deployment_state_changed helpers.
Runtime namespace resolver and binding
environment/runtime.py, connectors/runtime.py
Adds RuntimeNamespaceResolver protocol and RuntimeNamespaceBinding class that re-resolves the worker namespace with exception handling; adds a compatibility re-export shim in the connectors package.
Prometheus traffic provider and runtime FPM provider
environment/metrics_provider/prometheus_traffic_provider.py, environment/metrics_provider/runtime_provider.py
Implements PrometheusTrafficProvider (queries Prometheus for TTFT, ITL, KV hit rate, accept length) and RuntimeFpmProvider (subscribes to FPM event streams, parses MDC model cards, implements get_worker_info and collect_fpm).
PlannerEnvironmentImpl: deployment state management and lifecycle
environment/base.py
Implements PlannerEnvironmentImpl as an async facade over PlannerConnector: initializes/validates/waits-for-readiness, refreshes worker info, GPU counts with config fallbacks, replica stability flags, and model name; delegates traffic/FPM collection and scaling to providers.
Planner factory: connector, environment, and planner construction
core/planner_factory.py
New construct_connector, construct_environment, and construct_planner factory functions wire the connector, PlannerEnvironmentImpl, PrometheusTrafficProvider, RuntimeNamespaceBinding, and RuntimeFpmProvider from PlannerConfig.
NativePlannerBase and adapter subclasses refactored to environment-driven
core/base.py, core/adapters.py
NativePlannerBase now accepts PlannerEnvironment, delegates tick I/O (traffic, FPM, worker counts, GPU hours, scaling) to it, and uses deployment state change detection to refresh engine capabilities; adapter subclasses derive worker info via _required_worker_info() instead of cached attributes.
Tests updated for environment-backed planner and renamed public APIs
tests/integration/test_virtual_connector.py, tests/unit/test_kube.py, tests/unit/test_load_based_scaling.py, tests/unit/test_metric_publication.py, tests/unit/test_remote_planner.py
Integration and unit tests updated to use PlannerEnvironmentImpl, the renamed async_init, environment-sourced deployment state/GPU counts, and AsyncMock for environment observation calls.

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 19.88% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The PR description provides a clear overview of the changes, explains the new design pattern, lists the three key abstractions introduced, and includes a fully completed 'Related Issues' section. All required template sections are present and complete.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title matches the main refactor: planner core cleanup and abstraction of peripheral logic.

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai 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.

Actionable comments posted: 9

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
components/src/dynamo/planner/connectors/global_planner.py (1)

129-131: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Update the stale initialization hint in the RuntimeError message.

Line 130 still instructs callers to invoke _async_init(), but the method is now async_init(). This makes failure guidance misleading.

Proposed fix
-                "GlobalPlannerConnector not initialized. Call _async_init() first."
+                "GlobalPlannerConnector not initialized. Call async_init() first."
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@components/src/dynamo/planner/connectors/global_planner.py` around lines 129
- 131, The RuntimeError message in the GlobalPlannerConnector class is providing
stale guidance by instructing callers to invoke _async_init(), but this method
has been renamed to async_init(). Update the error message string in the
RuntimeError to reference the correct method name async_init() instead of
_async_init() so that users receive accurate initialization instructions when
this error is raised.
🧹 Nitpick comments (3)
components/src/dynamo/planner/core/base.py (1)

152-154: ⚡ Quick win

Keep engine adapter import at module top.

Line 152 introduces a local import inside _ensure_engine, which conflicts with the repository Python rule for import placement.

As per coding guidelines, "keep all imports at module top (flag imports inside functions/classes)."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@components/src/dynamo/planner/core/base.py` around lines 152 - 154, The
import of OrchestratorEngineAdapter inside the _ensure_engine function violates
the module-level import rule. Move the import statement from inside the
_ensure_engine function to the top of the file where other imports are declared,
placing it with the other dynamo.planner imports to maintain consistency with
the codebase conventions.

Source: Coding guidelines

components/src/dynamo/planner/core/planner_factory.py (1)

133-138: ⚡ Quick win

Move adapter imports to module scope.

Function-scoped imports in Line 133 violate the repository Python import placement rule.

As per coding guidelines, "keep all imports at module top (flag imports inside functions/classes)."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@components/src/dynamo/planner/core/planner_factory.py` around lines 133 -
138, The imports of AggPlanner, DecodePlanner, DisaggPlanner, and PrefillPlanner
from dynamo.planner.core.adapters are currently located inside a function scope,
which violates the repository's import placement rules. Move these imports to
the top of the module file with the other imports at module scope to comply with
the coding guidelines that require all imports to be placed at the module level.

Source: Coding guidelines

components/src/dynamo/planner/environment/metrics_provider/runtime_provider.py (1)

132-133: ⚡ Quick win

Move function-local imports to module scope.

Please move these imports to the top-level import section to match repo Python rules.

As per coding guidelines: "keep all imports at module top (flag imports inside functions/classes)."

Proposed fix
 from typing import Optional
 
 from dynamo.common.forward_pass_metrics import ForwardPassMetrics
+from dynamo.common.forward_pass_metrics import decode as decode_fpm
+from dynamo.llm import FpmEventSubscriber
 from dynamo.planner.config.defaults import SubComponentType
@@
     async def _init_fpm_subscriber(self, component: str):
-        from dynamo.llm import FpmEventSubscriber
-
         if self.state_source is None or self.namespace_source is None:
@@
     def _decode_fpm_bytes(
         self, subscriber
     ) -> dict[tuple[str, int], ForwardPassMetrics]:
-        from dynamo.common.forward_pass_metrics import decode as decode_fpm
-
         if subscriber is None:

Also applies to: 180-181

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@components/src/dynamo/planner/environment/metrics_provider/runtime_provider.py`
around lines 132 - 133, Move the function-local import statement `from
dynamo.llm import FpmEventSubscriber` from inside the function (around line
132-133) to the top-level import section of the module with other imports. Apply
the same fix to the other local import statement mentioned at lines 180-181.
Remove these imports from their current function-local locations and consolidate
them with the module-level imports at the beginning of the file to comply with
the repository's Python style guidelines.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@components/src/dynamo/planner/connectors/virtual.py`:
- Line 43: Remove the `super().__init__(model_name)` call in the __init__ method
because PlannerConnector is now a Protocol and does not provide an __init__
implementation. Simply delete this line as Protocols are structural types that
don't require parent class initialization, and this will prevent the TypeError
that occurs at runtime when attempting to call __init__ on a Protocol.

In `@components/src/dynamo/planner/core/base.py`:
- Around line 100-102: Replace the broad Exception handler at lines 100-102 that
catches Prometheus server startup failures with a specific exception type and
add a defensive check before calling prometheus_metrics.sla_target_ttft_ms.set()
to verify the metrics server is running, or restructure to fail fast if
initialization fails. Similarly, narrow the broad exception handlers at lines
494-495 (diagnostics handler) and lines 129-130 (live dashboard) to catch
specific exceptions and either re-raise after logging or validate state before
continuing execution. Additionally, move the function-scoped import at lines
150-155 to module level to follow standard import conventions.

In `@components/src/dynamo/planner/core/planner_factory.py`:
- Line 33: Replace the assert statement that checks
config.global_planner_namespace is not None with an explicit validation that
raises an appropriate exception (such as ValueError or ConfigError). The assert
statement will be stripped out when Python runs with the -O optimization flag,
allowing None values to flow into the GlobalPlannerConnector initialization.
Instead, use an if statement that explicitly raises an exception with a clear
error message when config.global_planner_namespace is None.

In `@components/src/dynamo/planner/core/util.py`:
- Line 1: The file util.py is missing the required SPDX license header at the
top, which is causing the CI copyright check to fail. Add the appropriate SPDX
header comment before the `from __future__ import annotations` line at the
beginning of the file. The header should be placed as the first line(s) of the
file to comply with the repository's copyright requirements.

In `@components/src/dynamo/planner/environment/base.py`:
- Around line 177-183: The try-except block around the get_worker_info call is
catching a broad Exception type and silently returning, which masks failures.
Replace the generic Exception catch with specific exception types that
get_worker_info can raise, log the error details, and re-raise the exception to
fail fast rather than continuing with stale state. This same pattern needs to be
fixed in all locations mentioned, including the handler at line 241-243.
- Around line 12-16: The import statement for PlannerConnector from
dynamo.planner.environment.interface is incorrect because PlannerConnector is
not exported from that module. Find the correct module where PlannerConnector is
actually defined and exported, then update the import statement in the file to
import PlannerConnector from the correct location instead of from
dynamo.planner.environment.interface.

In
`@components/src/dynamo/planner/environment/metrics_provider/prometheus_traffic_provider.py`:
- Around line 83-95: The logger.info call with %.2f format specifiers for
m.num_req, m.isl, and m.osl is executed before the m.is_valid() validation
check. If Prometheus returns None for these fields, the float formatting will
fail. Move the m.is_valid() check and early return to occur before the
logger.info call so that metrics are validated before attempting to format them
with float specifiers, preventing formatting errors on None values.

In `@components/src/dynamo/planner/environment/state.py`:
- Line 1: The file state.py is missing the required SPDX license header at the
very beginning, which is causing the copyright check CI job to fail. Add the
appropriate SPDX copyright and license header comment block at the top of the
file, before the existing from __future__ import annotations line. The header
should match the format and licensing used by other files in the same project
directory to ensure consistency and pass the copyright check validation.

In `@components/src/dynamo/planner/tests/unit/test_load_based_scaling.py`:
- Around line 38-39: The import of PlannerEnvironmentImpl from
dynamo.planner.environment.base at lines 38-39 is triggering a circular
dependency chain where base.py attempts to import a non-existent
PlannerConnector from dynamo.planner.environment.interface, causing test
collection to fail with ImportError. Either remove the PlannerEnvironmentImpl
import if it is not used in the test file, or defer the import by wrapping it in
a TYPE_CHECKING block from the typing module and using string annotations in
type hints where PlannerEnvironmentImpl is referenced, allowing the test file to
be imported without executing the problematic dependency chain at collection
time.

---

Outside diff comments:
In `@components/src/dynamo/planner/connectors/global_planner.py`:
- Around line 129-131: The RuntimeError message in the GlobalPlannerConnector
class is providing stale guidance by instructing callers to invoke
_async_init(), but this method has been renamed to async_init(). Update the
error message string in the RuntimeError to reference the correct method name
async_init() instead of _async_init() so that users receive accurate
initialization instructions when this error is raised.

---

Nitpick comments:
In `@components/src/dynamo/planner/core/base.py`:
- Around line 152-154: The import of OrchestratorEngineAdapter inside the
_ensure_engine function violates the module-level import rule. Move the import
statement from inside the _ensure_engine function to the top of the file where
other imports are declared, placing it with the other dynamo.planner imports to
maintain consistency with the codebase conventions.

In `@components/src/dynamo/planner/core/planner_factory.py`:
- Around line 133-138: The imports of AggPlanner, DecodePlanner, DisaggPlanner,
and PrefillPlanner from dynamo.planner.core.adapters are currently located
inside a function scope, which violates the repository's import placement rules.
Move these imports to the top of the module file with the other imports at
module scope to comply with the coding guidelines that require all imports to be
placed at the module level.

In
`@components/src/dynamo/planner/environment/metrics_provider/runtime_provider.py`:
- Around line 132-133: Move the function-local import statement `from dynamo.llm
import FpmEventSubscriber` from inside the function (around line 132-133) to the
top-level import section of the module with other imports. Apply the same fix to
the other local import statement mentioned at lines 180-181. Remove these
imports from their current function-local locations and consolidate them with
the module-level imports at the beginning of the file to comply with the
repository's Python style guidelines.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 5a740f70-227b-4dbb-b481-b5dabbc9f0d6

📥 Commits

Reviewing files that changed from the base of the PR and between a919289 and e41f191.

📒 Files selected for processing (23)
  • components/src/dynamo/planner/connectors/base.py
  • components/src/dynamo/planner/connectors/clients/kubernetes_api.py
  • components/src/dynamo/planner/connectors/clients/remote_client.py
  • components/src/dynamo/planner/connectors/global_planner.py
  • components/src/dynamo/planner/connectors/kubernetes.py
  • components/src/dynamo/planner/connectors/runtime.py
  • components/src/dynamo/planner/connectors/virtual.py
  • components/src/dynamo/planner/core/adapters.py
  • components/src/dynamo/planner/core/base.py
  • components/src/dynamo/planner/core/planner_factory.py
  • components/src/dynamo/planner/core/util.py
  • components/src/dynamo/planner/environment/base.py
  • components/src/dynamo/planner/environment/interface.py
  • components/src/dynamo/planner/environment/metrics_provider/interface.py
  • components/src/dynamo/planner/environment/metrics_provider/prometheus_traffic_provider.py
  • components/src/dynamo/planner/environment/metrics_provider/runtime_provider.py
  • components/src/dynamo/planner/environment/runtime.py
  • components/src/dynamo/planner/environment/state.py
  • components/src/dynamo/planner/tests/integration/test_virtual_connector.py
  • components/src/dynamo/planner/tests/unit/test_kube.py
  • components/src/dynamo/planner/tests/unit/test_load_based_scaling.py
  • components/src/dynamo/planner/tests/unit/test_metric_publication.py
  • components/src/dynamo/planner/tests/unit/test_remote_planner.py

Comment thread components/src/dynamo/planner/connectors/virtual.py Outdated
Comment thread components/src/dynamo/planner/core/base.py
Comment thread components/src/dynamo/planner/core/planner_factory.py Outdated
Comment thread components/src/dynamo/planner/core/util.py
Comment thread components/src/dynamo/planner/environment/base.py
Comment thread components/src/dynamo/planner/environment/base.py
Comment thread components/src/dynamo/planner/environment/state.py
Comment thread components/src/dynamo/planner/tests/unit/test_load_based_scaling.py
Comment thread components/src/dynamo/planner/connectors/base.py
Comment thread components/src/dynamo/planner/connectors/base.py
Comment thread components/src/dynamo/planner/connectors/base.py
Comment thread components/src/dynamo/planner/connectors/kubernetes.py Outdated
Comment thread components/src/dynamo/planner/connectors/runtime.py Outdated
Comment thread components/src/dynamo/planner/connectors/virtual.py

@dynamo-review-agent dynamo-review-agent 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.

components/src/dynamo/planner/main.pystart_planner still constructs planner classes with (runtime, config), but NativePlannerBase.__init__ now requires an environment, so the planner worker fails on startup. Fix: construct planners through the new planner factory.

🤖 AI Fix

In components/src/dynamo/planner/__main__.py, import construct_planner from dynamo.planner.core.planner_factory and replace the mode switch in start_planner with planner = construct_planner(runtime=runtime, config=config).

components/src/dynamo/global_planner/scale_handler.py — This file still imports dynamo.planner.connectors.kubernetes_api after the module was moved, so importing the global-planner scale handler fails. Fix: update the import to the new clients package path.

🤖 AI Fix

In components/src/dynamo/global_planner/scale_handler.py, change from dynamo.planner.connectors.kubernetes_api import KubernetesAPI to from dynamo.planner.connectors.clients.kubernetes_api import KubernetesAPI.

Comment thread components/src/dynamo/planner/environment/base.py Outdated
Comment thread components/src/dynamo/planner/environment/base.py
Comment thread components/src/dynamo/planner/connectors/virtual.py
@sachalmalick
sachalmalick force-pushed the sachalmalick/connectors-refactor__LLM-139 branch from e41f191 to 8f93077 Compare June 30, 2026 21:25
@datadog-official

This comment has been minimized.

@sachalmalick
sachalmalick requested a review from a team July 1, 2026 01:03

@tedzhouhk tedzhouhk 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.

Great work! Overall LGTM, a few focused questions on the new Environment/observer boundary and its contracts.

Comment thread components/src/dynamo/planner/connectors/virtual.py
Comment thread components/src/dynamo/planner/connectors/base.py
Comment thread components/src/dynamo/planner/core/planner_factory.py Outdated
Comment thread components/src/dynamo/planner/plugins/orchestrator/engine_adapter.py Outdated
Comment thread components/src/dynamo/planner/core/base.py Outdated
@sachalmalick
sachalmalick force-pushed the sachalmalick/connectors-refactor__LLM-139 branch from 08ba733 to 7bc39f7 Compare July 2, 2026 21:26
@sachalmalick sachalmalick changed the title refactor and clean up planner core, abstract out peripheral logic refactor(planner): Clean up planner core, abstract out peripheral logic Jul 2, 2026
@sachalmalick
sachalmalick force-pushed the sachalmalick/connectors-refactor__LLM-139 branch 2 times, most recently from e056fdc to 53fb741 Compare July 7, 2026 22:14
@sachalmalick

Copy link
Copy Markdown
Contributor Author

/ok to test 53fb741

Signed-off-by: Sachal Malick <s@chal.ai>
Signed-off-by: Sachal Malick <s@chal.ai>
Signed-off-by: Sachal Malick <s@chal.ai>
Signed-off-by: Sachal Malick <s@chal.ai>
Signed-off-by: Sachal Malick <s@chal.ai>
@sachalmalick
sachalmalick force-pushed the sachalmalick/connectors-refactor__LLM-139 branch from 53fb741 to ca00b82 Compare July 17, 2026 09:44
@sachalmalick
sachalmalick requested review from a team as code owners July 17, 2026 09:44
@sachalmalick
sachalmalick enabled auto-merge (squash) July 17, 2026 09:55
@sachalmalick

Copy link
Copy Markdown
Contributor Author

/ok to test ca00b82

@sachalmalick
sachalmalick merged commit e69e5fd into main Jul 17, 2026
105 checks passed
@sachalmalick
sachalmalick deleted the sachalmalick/connectors-refactor__LLM-139 branch July 17, 2026 11:15
pvijayakrish added a commit that referenced this pull request Jul 30, 2026
…FA variants

Extends the operator/planner nightly pattern (#11443) to the remaining
container images, with the same invariants:

- nightly-ci builds each image itself (frontend via shared-build-image
  target=frontend; snapshot agent via build-deploy-component with the
  artifact_tag input; vllm/sglang/trtllm EFA via make_efa: true) so the
  compliance-<sha>-<token> artifacts land on the nightly run id that
  GitLab's OSRB attach resolves, and the -nightly ECR tag suffix keeps a
  failed build from ever falling through to a post-merge image.
- All five jobs are ORDERING-ONLY needs of the release job — outside its
  success gate, so a flake in any optional image cannot block the runtime
  nightly — and are added to clean-k8s-builder so the shared builder
  outlives them.
- release.yml: the per-image copy blocks are refactored into a generic
  stage_optional() helper (result gate -> crane probe -> copy -> floating
  tag) now covering seven optional images. New workflow_call string inputs
  frontend/snapshot/vllm_efa/sglang_efa/trtllm_efa_build_result forward
  needs.<job>.result; empty (direct dispatch) falls back to probe-only,
  matching the runtimes.
- NGC layout: dynamo-frontend-nightly / snapshot-agent-nightly get their
  own -nightly staging repos (dated tag + :nightly floating alias on the
  stable repo); EFA variants stage into the existing runtime -nightly repos
  as <dated>-efa plus a <stable>:nightly-efa floating alias, mirroring the
  RC convention vllm-runtime:<ver>-efa.
- Step summary lists all seven optional images and their floating tags with
  per-image NOT-staged annotations.

Snapshot agent stays amd64-only (cuda-checkpoint has no arm64 binary); the
EFA and frontend images are multi-arch.

Also: ALL eight shared-build-image nightly jobs (vllm/sglang/trtllm base +
EFA, planner, frontend) now take dev_version_suffix from compute-dev-version
— previously only dynamo-pipeline did. apply_dev_version.py stamps the
checkout before the build, so the wheels (and Cargo versions) embedded in
every nightly image report X.Y.Z.devYYYYMMDD, matching the
Artifactory-published nightly wheels and the dynamo-runtime image. This
closes the "nightly image contains stable-versioned packages" gap for the
entire image set at once; stamping only one image would have created skew.
Operator and snapshot agent are excluded by nature (Go-only, wheel-free,
built via build-deploy-component which has no such input). Note: OSRB CSV
diffs will now show first-party version churn night-over-night — the same
behavior dynamo-pipeline's image already has.

Depends on #11443 (artifact_tag input, stage-optional structure). Pairs
with the release-automation branch of the same name (probe/nSpect/scan/
bundle wiring).

feat(release): mutable :nightly floating tags for operator and planner

Runtime parity: every nightly repushes vllm-runtime:nightly /
sglang-runtime:nightly / tensorrtllm-runtime:nightly floating aliases on the
stable staging repos, but the operator and planner images only received the
dated immutable tag in their -nightly repos. Consumers pulling from staging
could compose the runtimes by floating tag but had to scrape the newest
date-sha tag for the operator that manages them.

Push kubernetes-operator:nightly and dynamo-planner:nightly onto the stable
staging repos after each successful dated copy, mirroring the runtime
pattern (no cuda alias — neither image has cuda variants). The pushes are
guarded by the staged-success branch, so a skipped night leaves the floating
tag pointing at the last successfully staged nightly instead of going stale
silently — same semantics as a runtime-build failure night, where the whole
release job is gated off and the runtime floating tags also stay put.
`|| true` keeps a floating-tag miss non-fatal (recorded in FAILED_COPIES by
copy_image) so it cannot abort the copy step under set -e.

Step summary lists the two new floating tags with the same NOT-staged
annotation used for their dated tags.

The published (prod NGC) side already had parity: the nightly bundle MR
publishes <image>-nightly:latest alongside the dated tag for all five
images.

Merge branch 'main' into pvijayakrish/support-planner-operator-nightly
rework(release): build operator + planner in nightly-ci for OSRB from day one

The previous approach reused the post-merge images at the same SHA. That
left the compliance-<sha>-operator / -dynamo-planner artifacts on the
post-merge run id, while GitLab's nvbug:attach-compliance resolves artifacts
on the GITHUB_RUN_ID this workflow forwards — the nightly run — so the OSRB
NVBugs (5329715 / 6123727) would never receive their CSVs. It also broke the
nightly tag-isolation invariant (a stale post-merge image could be staged).

- nightly-ci.yml: add operator-build (build-deploy-component, multi-arch,
  image <sha>-operator-nightly) and planner-build (shared-build-image,
  framework dynamo / target planner, image_tag_suffix -nightly,
  inline_compliance) with diff_event_context: nightly. Both are
  ORDERING-ONLY needs of the release job — deliberately outside its success
  gate, so a flake in either cannot block the runtime nightly. Added to
  clean-k8s-builder needs so the shared builder outlives them.
- build-deploy-component: new optional artifact_tag input so the suffixed
  nightly image tag keeps the canonical compliance-<sha>-operator artifact
  name that OSRB tokens and diff-baseline lookups key on (planner needs no
  equivalent: shared-build-image already names its artifact from
  target_tag_plain, which excludes the tag suffix).
- release.yml: nightly copy sources switch to the -nightly ECR tags built by
  this run; warn-skip messages now point at the build jobs, not post-merge
  timing.
- release.yml gains operator_build_result / planner_build_result
  workflow_call string inputs, forwarded from nightly-ci as
  needs.<job>.result. The copy step gates on the result BEFORE the crane
  probe: non-success -> skip (SHA-keyed tags alone can't tell tonight's
  build from yesterday's on a quiet-repo day, and a failed build must never
  republish a previous run's image); empty -> direct workflow_dispatch with
  no builds in this run, so the probe alone decides — a manual nightly
  re-stage copies whatever nightly-built -nightly tags exist for the SHA,
  matching the runtimes.

Wheel versioning note: like the vllm/sglang/trtllm image builds, the planner
build takes no dev_version_suffix (only dynamo-pipeline's published wheels
are dev-versioned), so embedded wheel versions stay consistent across all
five nightly images.

test(operator): add Kind-backed controller manifest tests (#12009)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
chore: bump trtllm to v1.3.0rc22 (#12071)

Signed-off-by: dynamo-ops <170655669+dynamo-ops@users.noreply.github.com>
Signed-off-by: Anant Sharma <anants@nvidia.com>
Co-authored-by: Anant Sharma <anants@nvidia.com>
fix: recreate allocation export handles after CUDA restore (#12216)

Signed-off-by: Hannah Zhang <hannahz@nvidia.com>
fix(protocols): preserve media in tool results (#12180)
feat(skills): add visual review dashboard (#11602)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
fix(kv-router): restore multinode SGLang KV events (#12185)

Signed-off-by: Ryan McCormick <rmccormick@nvidia.com>
perf(mocker): drive only ready offline worker groups (#12242)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
docs(mocker): document eager replay execution (#12245)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
Merge branch 'main' into pvijayakrish/support-planner-operator-nightly
docs(release): correct the operator/planner nightly reuse comment

"Operator and planner carry no dev-versioned wheels" was wrong for the
planner: its image bundles the dynamo wheels from the wheel_builder stage,
and post-merge passes no dev_version_suffix — so the planner nightly's
embedded wheels are plain-versioned while the runtime nightlies at the same
tag carry dev-versioned wheels. State that explicitly; only the operator
(Go-only) is wheel-free.

Merge origin/main into pvijayakrish/support-planner-operator-nightly

Refresh the 19-day-old branch: main has not touched release.yml since the
merge-base, so the merge is clean — this re-bases CI on current main and
re-runs the stale checks.

perf(mocker): avoid cloning offline worker groups (#12240)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
feat(aisimulate): move experimental Spica into Dynamo (#11923)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
Signed-off-by: Hongkuan Zhou <tedzhouhk@gmail.com>
Co-authored-by: Harrison Saturley-Hall <hsaturleyhal@nvidia.com>
fix(ci): provision the model cache PVC on post-merge (#12114)

Signed-off-by: Tushar Sharma <tusharma@nvidia.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
fix(container): workaround for devtools repo error (404) on nsight-systems (#12232)

Co-authored-by: Claude <noreply@anthropic.com>
recipes: publish Kimi-K3 to main (#12228)

Signed-off-by: Ben Hamm <ben.hamm@gmail.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
docs: add Kimi-K3 recipe page (#12210)

Signed-off-by: Ben Hamm <ben.hamm@gmail.com>
Signed-off-by: Yogendra Pandey <ypandey@nvidia.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Yogendra Pandey <ypandey@nvidia.com>
Co-authored-by: Yogendra Pandey <20666257+ynpandey-nv@users.noreply.github.com>
fix(docs): deliver site CSS from CustomFooter so it survives the global theme (#12212)

Signed-off-by: Dan Gil <dagil@nvidia.com>
ci(nightly): add H100 test lanes for vLLM and TensorRT-LLM (#12045)

Signed-off-by: Tushar Sharma <tusharma@nvidia.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
docs: restructure docs site into tab-based navigation (#10855)

Signed-off-by: Jont828 <jt572@cornell.edu>
Signed-off-by: Dan Gil <dagil@nvidia.com>
Co-authored-by: alimaazamat <alima.azamat2003@gmail.com>
Co-authored-by: akshatha-k <akshutk@gmail.com>
Co-authored-by: Dan Gil <dagil@nvidia.com>
Co-authored-by: Ben Hamm <ben.hamm@gmail.com>
Co-authored-by: Harry Kim <harryk@nvidia.com>
perf(tokens): remove redundant inner DashMap sharding (#12161)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
fix(operator): preserve DGDSA-owned replica counts (#12087)
feat(epp): reconcile standalone worker topology with the embedded selector (#11074)

Signed-off-by: Anna Tchernych <atchernych@nvidia.com>
Signed-off-by: Thomas Montfort <tjmontfort12@gmail.com>
Co-authored-by: Thomas Montfort <tjmontfort12@gmail.com>
docs: add KV router offloading support matrix and vLLM native offloading guide (#11973)

Signed-off-by: Change72 <changg@nvidia.com>
Signed-off-by: Chang Guo <changg@nvidia.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
build(deps): Change parser for performance dependency (#12147)

Signed-off-by: Harrison King Saturley-Hall <hsaturleyhal@nvidia.com>
feat(router): add active-request decode cost (#12158)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
docs(dynosim): clarify offline and live simulation workflows (#12172)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
docs: update Fern CLI link (#12173)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
fix(runtime): restrict event publisher IDs to 63 bits (#12170)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
fix(snapshot): disable service-mesh sidecar injection on checkpoint Job pods (#11396)

Signed-off-by: Ron Kahn <rkahn@nvidia.com>
feat(frontend): add image-token count metrics (#12065)

Signed-off-by: Krishnan Prashanth <kprashanth@nvidia.com>
Signed-off-by: Krishnan Prashanth <140860868+KrishnanPrash@users.noreply.github.com>
Co-authored-by: Ryan McCormick <rmccormick@nvidia.com>
feat(router): warn on missing KV event publishers (#12095)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
fix(trtllm): preserve unset KV cache config fields (#12117)

Signed-off-by: Alec Flowers <aflowers@nvidia.com>
fix(mocker): model SGLang KV allocation by page (#12108)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
fix(profiler): fail closed on interpolation errors (#12118)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
chore(vllm): remove deprecated worker role flags (#12089)

Signed-off-by: Alec Flowers <aflowers@nvidia.com>
ci: run dynamo_llm rust-gpu tests single-threaded to fix teardown SIGSEGV (OPS-7753) (#11853)

Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
feat(mocker): add selectable native G1 manager (#12033)

Signed-off-by: Yongming Ding <yongmingd@nvidia.com>
perf(benchmarks): restore local prefix hashing (#12104)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
fix: count only generate workers in kv router bench (#12086)

Signed-off-by: Olga Andreeva <oandreeva@nvidia.com>
feat(container/AWS): Update to EFA Installer 1.49.0 (#12010)

Signed-off-by: Erez Zarum <erezz@amazon.com>
fix(recipes): make gpt-oss-120b disagg + perf run as shipped (#12070)

Signed-off-by: Roman Ageev <rageev@nvidia.com>
feat(vllm): add custom encoder adapter (#11847)

Signed-off-by: furionw <qiwa@nvidia.com>
refactor(planner): decouple global planner decision logic from K8s and drt (#12061)

Signed-off-by: Sachal Malick <s@chal.ai>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
fix(codeowners): assign squeeze-evolve to router (#12101)

Signed-off-by: Harrison King Saturley-Hall <hsaturleyhal@nvidia.com>
feat(vllm): add mock gRPC server for sidecar tests (#11873)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
feat(operator): support Recreate strategy for managed rolling updates (#11909)
build(grove): bump dependency to v0.1.0-alpha.12-rc1 (#11994)
fix(vllm): publish configured KV events from decode workers (#12084)

Signed-off-by: Alec Flowers <aflowers@nvidia.com>
fix(mocker): bound offline replay memory growth (#12049)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
fix(llm): return 400 for max_tokens: 0 on chat completions (#11394)

Signed-off-by: AmeenP <ameenp360@gmail.com>
Co-authored-by: Ryan McCormick <rmccormick@nvidia.com>
perf(trtllm): batch worker KV event drains (#11783)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
feat: experimental squeeze_evolve (multi-model evolutionary test-time scaling) (#10785)

Signed-off-by: Monishwaran Maheswaran <monishwaran@berkeley.edu>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
feat(deploy-test): optionally mount a shared model cache on worker pods (#11786)

Signed-off-by: Tushar Sharma <tusharma@nvidia.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
perf(logging): warn when dynamic filters disable fast path (#11974)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
feat(trtllm): native multimodal KV routing on rc21 (#11737)

Signed-off-by: Krishnan Prashanth <kprashanth@nvidia.com>
feat(router): add provider-keyed tracking hashes (#11548)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
Signed-off-by: PeaBrane <yanrpei@gmail.com>
Co-authored-by: Yan Ru Pei <yanrpei@gmail.com>
fix(mocker): preserve Mooncake hash identities (#12046)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
chore: bump version 10 1.4.0 post 1.3.0 (#12040)

Signed-off-by: pvijayakrish <pvijayakrish@nvidia.com>
feat(frontend): pass multimodal UUIDs through to vLLM Part 3 (#11958)

Signed-off-by: Zhuangcheng(Jesse) Gu <zcgu@connect.hku.hk>
feat: add batch API skeleton (#11707)

Signed-off-by: Hannah Zhang <hannahz@nvidia.com>
feat(runtime): configure worker inhibition with direct-routing bypass (#11993)

Signed-off-by: Jacky <18255193+kthui@users.noreply.github.com>
fix(sglang): warm every prefill DP rank before serving (#11526)

Signed-off-by: weireweire <20922698+weireweire@users.noreply.github.com>
Co-authored-by: weireweire <20922698+weireweire@users.noreply.github.com>
feat(replay): add Poisson synthetic arrivals (#12062)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
fix(mocker): restore KVBM test imports (#12075)

Signed-off-by: Hannah Zhang <hannahz@nvidia.com>
fix(profiler): honor requested replay router mode (#12044)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
ci(nightly): run GitLab trigger in parallel with tests (#11798)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat: add Get Dynamo install-command selector to docs  (#11950)

Signed-off-by: Anant Sharma <anants@nvidia.com>
feat(operator): make Tilt target architecture configurable (#12008)

Signed-off-by: carlory <baofa.fan@daocloud.io>
feat(ext-proc): embed SelectionService in standalone EPP (#11541)

Signed-off-by: Anna Tchernych <atchernych@nvidia.com>
Signed-off-by: Thomas Montfort <tjmontfort12@gmail.com>
Co-authored-by: Thomas Montfort <tjmontfort12@gmail.com>
fix(operator): cap k8s discovery RBAC label values to 63 chars (#11709)

Signed-off-by: Sameer Kulkarni <skulkarni@coreweave.com>
Signed-off-by: Sameer Kulkarni <kulkarnisameer7@gmail.com>
fix(router): serialize active sequence publishing (#11992)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
fix(frontend): Force streaming usage behind toggle (#12017)

Signed-off-by: Ace Eldeib <aeldeib@coreweave.com>
feat: update dynamo protocols to 3.1.0 (#11978)

Signed-off-by: Hannah Zhang <hannahz@nvidia.com>
perf(mocker): streamline SGLang radix scheduling (#12043)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
fix(planner): discover MDC for truncated Grove names (#12047)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
refactor(mocker): isolate offline replay policies (#11942)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
feat(mocker): add live request engine (#11917)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
feat: add GMS shadow-failover observability (metrics + dashboard) (#11664)

Signed-off-by: mohammedabdulwahhab <furkhan324@berkeley.edu>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
perf(operator): reduce memory retained by the shared Pod cache (#12014)

Signed-off-by: Julien Mancuso <jmancuso@nvidia.com>
chore(deps): bump helm.sh/helm/v3 from 3.17.3 to 3.20.2 in /deploy/operator (#11956)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
fix(sglang): register all sidecar DP ranks (#12039)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
fix(operator): wait for JobComplete before DynamoCheckpoint Ready (#11901)

Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
fix(mocker): repair replay request lifecycles (#12025)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
Signed-off-by: PeaBrane <yanrpei@gmail.com>
Co-authored-by: Yan Ru Pei <yanrpei@gmail.com>
fix(backends): reject unsupported multimodal UUIDs Part 2 (#11944)

Signed-off-by: Zhuangcheng(Jesse) Gu <zcgu@connect.hku.hk>
feat(gms): surface scratch-KV engagement in shadow worker logs (#11724)

Signed-off-by: mohammedabdulwahhab <furkhan324@berkeley.edu>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(trtllm): publish KV cache capacity (#12023)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
feat: PR 3 Worker Pod Discovery for the EPP and standalone Selector Router Integration (#11072)

Signed-off-by: Anna Tchernych <atchernych@nvidia.com>
Co-authored-by: Thomas Montfort <tjmontfort12@gmail.com>
fix: use SGLang host for bootstrap discovery (#12026)
feat(ext-proc): add vLLM render client for standalone EPP (#11827)

Signed-off-by: Thomas Montfort <tjmontfort12@gmail.com>
Signed-off-by: Thomas Montfort <61255722+tmonty12@users.noreply.github.com>
Co-authored-by: Dmitry Tokarev <dtokarev@nvidia.com>
test: allocate dynamic ports for disaggregated vllm tests (#11819)

Signed-off-by: Wenxin Zhang <wenxin.zhang@intel.com>
feat(mocker): add targeted request cancellation (#11964)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
fix: TRT-LLM backend skips SSRF validation for video_url (#12002)

Signed-off-by: weizhoublue <weizhou.lan@daocloud.io>
Co-authored-by: Ryan McCormick <rmccormick@nvidia.com>
fix: relay CPATH and TRITON_PTXAS_PATH to multi-node TRTLLM launch (#11999)

Signed-off-by: Yunzhou Liu <232973175+yunzhoul-nv@users.noreply.github.com>
feat(vllm): support cached multimodal UUID passthrough Part 1 (#11943)

Signed-off-by: Zhuangcheng(Jesse) Gu <zcgu@connect.hku.hk>
feat(operator): scaffold DGD placement score status wiring (#11057)

Signed-off-by: ashnamehrotra <ashnamehrotra@gmail.com>
docs: add Model Early Access Builds reference page (#11898)

Signed-off-by: Dan Gil <dagil@nvidia.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
chore: bump version references to v1.3.0 (#11897)

Signed-off-by: Dan Gil <dagil@nvidia.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
docs(xpu): add XPU paths to getting-started and Kubernetes docs (#11894)

Signed-off-by: Yi Yao <yi.a.yao@intel.com>
Signed-off-by: Yi Yao <joshua.yao.sh@gmail.com>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
fix(docs): restore NVIDIA global theme via SiteStyles component (#11952)

Signed-off-by: Dan Gil <dagil@nvidia.com>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
fix(global-planner): read v1beta1 DGD components (#11990)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
perf(replay): defer Dynamo prompt materialization (#11989)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
feat(skills): add KV replay parity workflow (#11959)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
perf(router): ingest active sequence updates concurrently (#11967)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
fix(router): use prefill EAGLE mode for KV routing (#11764)
fix(helm): disable bundled NATS by default (#11951)

Signed-off-by: Julien Mancuso <jmancuso@nvidia.com>
docs: add vLLM agentic targets to GPT-OSS-120B recipe (#11980)

Signed-off-by: shwetha-krishnamurthy <shwetha.krishnamurthy27@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(gms): reduce footprint of scratch KV during failover (#11911)

Signed-off-by: mohammedabdulwahhab <furkhan324@berkeley.edu>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(trtllm): support video_url multimodal inputs (#11896)

Signed-off-by: Krishnan Prashanth <kprashanth@nvidia.com>
feat(vllm): support multiple served model names (#11611)

Signed-off-by: Fengyu Li <fengyul@nvidia.com>
Co-authored-by: Fengyu Li <fengyul@nvidia.com>
docs: add GLM-5.2 recipe page (#11972)

Signed-off-by: shwetha-krishnamurthy <shwetha.krishnamurthy27@gmail.com>
Co-authored-by: shwetha-krishnamurthy <shwetha.krishnamurthy27@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
refactor(mocker): share live scheduler loop (#11960)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
feat(http): Python-loadable frontend route extensions (#11626)

Signed-off-by: Anish Kumar <aniskumar@nvidia.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(trtllm): add TensorRT-LLM native gRPC sidecar backend (#11840)

Signed-off-by: tanmayv25 <tanmay2592@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(multimodal): force vLLM V1 model runner in disaggregated EPD encode worker (OPS-7720) (#11913)

Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
fix: DYN-3361: Update ray documentation to recommend mp instead (#11259)

Signed-off-by: Dillon Cullinan <dcullinan@nvidia.com>
feat(router): add conditional disagg policy kernel (#11718)

Signed-off-by: Karen Chung <karenc@nvidia.com>
perf(router): batch active sequence replica events (#11920)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
perf(bench): slim dependencies and complete CKF integration (#11900)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
test(operatorenv): exercise operator admission through envtest (#11237)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
feat: PR 1: EPP config for the EPP and standalone Selector Router Integration (#11070)

Signed-off-by: Anna Tchernych <atchernych@nvidia.com>
Signed-off-by: Thomas Montfort <tjmontfort12@gmail.com>
Co-authored-by: Thomas Montfort <tjmontfort12@gmail.com>
fix(snapshot): write rootfs-diff.tar atomically, handle empty archive (#11883)

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
refactor(snapshot): run restore FD cleanup after cuda unlock (#11777)

Signed-off-by: dfeigin-nv <dfeigin@nvidia.com>
perf(kv-router): ingest direct ZMQ events concurrently (#11938)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
docs: make translation snapshots survive commits and dev syncs

Independent review of the release flow found the snapshot's persistence
path broken end to end:

- the release commit staged only the base artifacts, so the snapshot
  published once from the working tree and was never pushed to
  docs-website
- the dev sync replaced fern/translations wholesale, so even a
  committed snapshot was deleted (and the deletion committed) on the
  next docs change to main

The release commit now stages fern/translations/*/pages-<tag>, and the
dev sync replaces only each locale's pages-dev mirror, preserving
versioned snapshots (retiring a locale still drops its dev mirror).
Also capability-gate the release resolver invocation so
workflow_dispatch rebuilds of tags whose resolver predates --pages-dir
skip link resolution with a warning instead of failing, and document
the release invocation in the script usage.

Verified with a git-backed persistence test: snapshot present in the
release commit, survives a subsequent dev sync (which still refreshes
the dev mirror and deletes nothing), and locale retirement keeps
snapshots. Dev-flow replica regression unchanged (87 links + 2
fallbacks, fern check 0 errors).

Signed-off-by: Dan Gil <dagil@nvidia.com>

docs: pin GitHub-fallback links to the tag explicitly

GITHUB_SHA is only the tag commit on tag-push triggers; on a
workflow_dispatch rebuild it is the dispatching branch head, so
fallback links would pin to an arbitrary main commit. Pass the ref
explicitly: the resolver gains --github-ref (defaulting to GITHUB_SHA,
dev sync unchanged) and the release job passes the tag.

Signed-off-by: Dan Gil <dagil@nvidia.com>

docs: note versioned translation snapshots in the dynamo-docs skill

Signed-off-by: Dan Gil <dagil@nvidia.com>

docs: snapshot zh-CN translations at version cut

Translations were structurally dev-only: the release-version job built
pages-<tag> solely from the tagged docs/ tree while the language picker
renders on every version, so the first tag cut after native localization
would ship a Latest whose 简体中文 toggle silently re-renders English,
and the dev translations would keep drifting instead of being frozen.

The release job now snapshots fern/translations/<lang>/pages-dev into
fern/translations/<lang>/pages-<tag> (the mirror-path convention Fern
pairs per version), includes the snapshot in GitHub-link pinning and
callout conversion, and runs resolve_translation_links.py with the
tag's version slug via a new --pages-dir argument (default pages-dev,
so the dev sync is unchanged). GITHUB_SHA at the tag ref pins
GitHub-fallback links to the release commit.

Fixes #11195

Signed-off-by: Dan Gil <dagil@nvidia.com>

fix(recipes): use public GLM-5.2 SGLang image

Point all GLM-5.2 SGLang deployment profiles at the public NGC
registry so the release recipes do not require nvstaging access.

Signed-off-by: Yogendra Pandey <ypandey@nvidia.com>

feat(recipes): DSV4 Flash/Pro vLLM agentic recipes (#11429)

Signed-off-by: Sungsoo Ha <sungsooh@nvidia.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
feat(recipes): Add GLM-5.2 SGLang agg/disagg h200/b200 recipes + review fixes (#11926)

Signed-off-by: Alexandre Milesi <milesial@users.noreply.github.com>
Signed-off-by: milesial <milesial@users.noreply.github.com>
Signed-off-by: Roman Ageev <rageev@nvidia.com>
Signed-off-by: Yogendra Pandey <ypandey@nvidia.com>
Co-authored-by: milesial <milesial@users.noreply.github.com>
Co-authored-by: Roman Ageev <rageev@nvidia.com>
Co-authored-by: Yogendra Pandey <ypandey@nvidia.com>
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
feat: add gpt-oss-120b vLLM recipes (agg + disagg, B200/H200) (#11506)

Signed-off-by: Roman Ageev <rageev@nvidia.com>
Signed-off-by: Yogendra Pandey <ypandey@nvidia.com>
Co-authored-by: Roman Ageev <rageev@nvidia.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Yogendra Pandey <ypandey@nvidia.com>
Co-authored-by: Yogendra Pandey <20666257+ynpandey-nv@users.noreply.github.com>
feat(vLLM): support benchmark grid override in vLLM selfbenchmarking (#11713)
fix(frontend): disable tokenizer.json baked-in truncation (#11792)

Signed-off-by: Chanh Nguyen <chanhnguyen@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(mocker): stop zeroing cache hits between prefills [DYN-3449] (#11893)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
docs(router): fix stale router user documentation [DYN-3476] (#11892)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
feat: inline license/SBOM compliance for frontend and snapshot image (#11533)

Signed-off-by: Anant Sharma <anants@nvidia.com>
fix(mocker): make replay outputs deterministic (#11902)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
fix(llm): normalize disabled top-k sentinels [DYN-3579] (#11871)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
feat: preserve eager-tail samples and reorder prefill sweep (#11824)

Signed-off-by: YZLi <yuanli@nvidia.com>
fix(mocker): publish native ZMQ KV batches (#11860)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
refactor(router): make policy-class admission class-local (#11787)
feat(global-router): route aggregate pools by input sequence length (#11835)

Signed-off-by: Ishan Dhanani <ishandhanani@gmail.com>
fix(gms): make gpu_memory_service logs visible in the vLLM worker (#11809)

Signed-off-by: mohammedabdulwahhab <furkhan324@berkeley.edu>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
refactor(sidecars): extract shared gRPC infrastructure (#11844)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
refactor(operator): extract webhook setup (#11907)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
chore: bump trtllm to v1.3.0rc21 (#11763)

Signed-off-by: dynamo-ops <170655669+dynamo-ops@users.noreply.github.com>
Signed-off-by: Anant Sharma <anants@nvidia.com>
Co-authored-by: Anant Sharma <anants@nvidia.com>
refactor(operator): extract reconciler setup functions (#11828)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
feat(kv-router): add sequenced DC Relay and domain-scoped CKF consumer [DYN-3586] (#11793)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
fix(vllm): register LoRA MDCs with the main-attention KV block size (#11867)

Signed-off-by: AmeenP <ameenp360@gmail.com>
feat(runtime): add endpoint-scoped event transport (#11841)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
refactor(vllm): derive prompt usage from request output (#11861)
refactor(backends): remove experimental unified backend engines (#11831)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
test(bindings): fix flaky test_chat_completion_success readiness race (#11810)
feat(planner): support Dynamo traces for load predictor warmup (#11842)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
fix(preprocessor): preserve special tokens for Inkling parsers (#11823)
feat(kv-router): configure active request expiry (#11303)

Signed-off-by: inf-yasong <yasong.wang@inferact.ai>
Signed-off-by: PeaBrane <yanrpei@gmail.com>
Co-authored-by: PeaBrane <yanrpei@gmail.com>
feat(vllm): add minimal grpc sidecar (#11754)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
fix(lora): make disaggregated prefill lifecycle-aware (#11520)

Signed-off-by: Biswa Panda <biswa.panda@gmail.com>
perf(logging): avoid dynamic filter span locks (#11820)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
fix(kv-router): scrub lookup entry when a remove can't resolve its node (#11785)

Signed-off-by: Shang-Pin <shang-pin@deepinfra.com>
Co-authored-by: Shang-Pin <shang-pin@deepinfra.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
refactor(operator): complete structural validation migration (#11788)

Signed-off-by: Julien Mancuso <jmancuso@nvidia.com>
chore: add Community Events section with Google Calendar auto-sync (#11757)

Signed-off-by: Harry Kim <harryk@nvidia.com>
Signed-off-by: Harry Kim <harry_kim@live.com>
Co-authored-by: Harry Kim <harryk@nvidia.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
test(fault-tolerance): make cancellation max_tokens configurable (#11716)

Signed-off-by: Wenxin Zhang <wenxin.zhang@intel.com>
test(llm): cover non-streaming force_nonempty_content aggregation (DYN-3525) (#11717)

Signed-off-by: Tzu-Ling <tzulingk@nvidia.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(operator): enforce checkpoint feature gate (#11765)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
refactor(planner): Clean up planner core, abstract out peripheral logic (#10767)

Signed-off-by: Sachal Malick <s@chal.ai>
fix(llm): propagate chat completion token details (#11027)

Signed-off-by: aishwaryabandapelly-ai <aishwaryabandapelly@gmail.com>
fix(frontend): apply --default-chat-template-kwargs in vLLM processor (#11731)

Signed-off-by: Krishnan Prashanth <kprashanth@nvidia.com>
refactor(sglang): use Rust executable for sidecar (#11636)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
feat(lora): support Hugging Face Hub sources for LoRA (#11431)

Signed-off-by: Biswa Panda <biswa.panda@gmail.com>
refactor(router): remove durable KV events (#11805)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
fix(router): warn on deprecated enforce-disagg inputs (#11800)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
chore(kv-router): slim dependencies and localize features (#11795)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
fix(profiler): enable TRT-LLM chunked prefill in generated configs (#11780)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
fix(frontend): preserve SGLang reasoning delimiters (#11748)

Signed-off-by: Alexandre Milesi <milesial@users.noreply.github.com>
docs(operator): document structural validation (#11771)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
perf(kv-router): batch event-plane KV events (#11776)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
test(serve): de-flake test_sample_deployment CPU timeout (OPS-7728) (#11727)

Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
fix(planner): share tick timestamp for observation scheduling (#11784)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
fix(frontend): reject nested chat_template in chat_template_args (#11755)
fix(sglang): forward multimodal config and audio inputs (#11747)

Signed-off-by: Alexandre Milesi <milesial@users.noreply.github.com>
Signed-off-by: milesial <milesial@users.noreply.github.com>
fix(event-plane): stop retired ZMQ subscriber pumps (#11730)

Signed-off-by: zhongdaor <zhongdaor@nvidia.com>
test(serve): add aggregated_spec_decoding launch scenario (#11440)

Signed-off-by: Tushar Sharma <tusharma@nvidia.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
feat(router): sync session affinity across replicas (#11750)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
docs(recipes): Inkling NVFP4 day-0 recipe page [DYN-3523] (#11749)

Signed-off-by: Ben Hamm <ben.hamm@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
chore: bump cudarc version to support CUDA 13.2 build environment (#11758)

Signed-off-by: Guan Luo <41310872+GuanLuo@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(trtllm): update how to pull engine arg default for TRTLLM API change (#11741)

Signed-off-by: Guan Luo <41310872+GuanLuo@users.noreply.github.com>
feat(recipes): add Inkling (thinkingmachines/Inkling-NVFP4) SGLang agg B200 recipe (#11743)

Signed-off-by: Vanshil Shah <vanshils@nvidia.com>
Signed-off-by: Fadi Saady <fsaady@nvidia.com>
Co-authored-by: Fadi Saady <fsaady@nvidia.com>
chore(runtime): consolidate truthy/bool flag parsing into one helper (#11683)

Signed-off-by: Keiven Chang <keivenchang@users.noreply.github.com>
Co-authored-by: Keiven Chang <keivenchang@users.noreply.github.com>
refactor(operator): centralize feature gates (#11672)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
fix(benchmarks): drop synthetic-only flag from trace runs [DYN-3379] (#11733)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
fix(trtllm): expose env var to force engine side conversation dp assignment (#11705)

Signed-off-by: Guan Luo <41310872+GuanLuo@users.noreply.github.com>
Co-authored-by: Pei Li <peili@nvidia.com>
fix(frontend): forward request chat_template_kwargs to vLLM template (#11729)

Signed-off-by: Krishnan Prashanth <kprashanth@nvidia.com>
fix(profiler): defer aiconfigurator import in replay bench (#11732)

Signed-off-by: Krishnan Prashanth <kprashanth@nvidia.com>
refactor(operator): retire legacy DGDR annotation readers (#11663)
test(sglang): cover aggregated OTLP tracing (#11675)

Signed-off-by: Kavita Narang <knarang@nvidia.com>
feat(router): add live admission request progress (#11615)

Signed-off-by: Ishan Dhanani <ishandhanani@gmail.com>
feat(kv-router): allow amplified overlap credit (#11714)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
fix(profiler): restore vLLM disaggregation flags in DGDR output (#11710)

Signed-off-by: Julien Mancuso <jmancuso@nvidia.com>
fix(operator): stop bundling CRDs in the Helm subchart (#11689)
fix: Fix multi-turn reasoning in Kimi (#11653)

Signed-off-by: Indrajit Bhosale <iamindrajitb@gmail.com>
docs(disaggregated-serving): fix broken aiconfigurator support-matrix link (OPS-7722) (#11711)

Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(planner): use admitted router demand (#11693)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
feat(multimodal): ThreadedMicroBatcher + batcher-backed AsyncVisionEncoder (cross-request batching) (#11037)

Signed-off-by: Qi Wang <qiwa@nvidia.com>
fix(frontend): honor reasoning effort in templates (#11691)

Signed-off-by: Ace Eldeib <aeldeib@coreweave.com>
Co-authored-by: Krishnan Prashanth <140860868+KrishnanPrash@users.noreply.github.com>
fix(trtllm): handle visible stop tokens in unified backend (#11671)

Signed-off-by: Zhuangcheng(Jesse) Gu <zcgu@connect.hku.hk>
fix: make EPP eviction-resistant under node DiskPressure (#11550)

Signed-off-by: Anna Tchernych <atchernych@nvidia.com>
test(vllm): re-enable agg-router and agg-router-approx serve tests (#11681)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix: add AgentHeaderMapping lookup in session_affinity_header_value() (#11677)

Signed-off-by: Guan Luo <41310872+GuanLuo@users.noreply.github.com>
Co-authored-by: Dmitry Tokarev <dtokarev@nvidia.com>
test(trtllm): cap mm_overlap KV pool with token lever, not byte budget (OPS-7716) (#11688)

Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
fix(vllm): update Qwen3-TTS prompt estimator (#11595)

Signed-off-by: Piotr Tarasiewicz <ptarasiewicz@nvidia.com>
refactor(codeowners): decouple CODEOWNERS emission from the live tree (#11614)

Signed-off-by: Dan Gil <dagil@nvidia.com>
Signed-off-by: Daniel Gil <dagil@nvidia.com>
fix(trtllm): size omitted max_tokens for multimodal via expanded prompt length (#11513)

Signed-off-by: Brian Westphal <bwestphal@nvidia.com>
Signed-off-by: Krishnan Prashanth <140860868+KrishnanPrash@users.noreply.github.com>
Co-authored-by: Ryan McCormick <rmccormick@nvidia.com>
Co-authored-by: Krishnan Prashanth <140860868+KrishnanPrash@users.noreply.github.com>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Dmitry Tokarev <dtokarev@nvidia.com>
fix(trtllm): log deprecation notices so operators see them (#11694)

Signed-off-by: tanmayv25 <tanmay2592@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
test: lower cancellation max_tokens for xpu fault tolerance (#11592)

Signed-off-by: Wenxin Zhang <wenxin.zhang@intel.com>
fix(mocker): model MTP prefix block recomputation (#11558)

Signed-off-by: Neal Vaidya <nealv@nvidia.com>
test(replay): focus AIC capacity coverage on config layer (#11686)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
perf(kv-router): compress block tracker prompt paths (#11644)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
feat(bindings): expose Client.instances() with instance/transport snapshot (#11617)

Generalize #11540 into an object model: Client.instances() returns a read-only snapshot of an endpoint's registered instances, each with instance_id, namespace, component, endpoint, transport (kind + address), and device_type. Covers all transports (TCP and NATS); frozen/read-only, value-comparable. Tests cover both the tcp and nats request planes.

Builds on the approach and use case from #11540 by @jyizheng.

Co-authored-by: Yizheng Jiao <jyizheng@gmail.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(vllm): bound RL weight-update initialization (#11418)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
ci: Split Dynamo CI port ranges by workload (#11587)

Signed-off-by: Wenxin Zhang <wenxin.zhang@intel.com>
ci: disable Datadog ITR/code-coverage for subprocess-based tests (#11553)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(mocker): model offline attention DP per rank (#11153)

Signed-off-by: Yongming Ding <yongmingd@nvidia.com>
Co-authored-by: hongkuanz <hongkuanz@nvidia.com>
chore(deps): vllm bump to 0.25.1 (#11606)

Signed-off-by: Karen Chung <karenc@nvidia.com>
chore: update aggregated examples for vllm xpu 0.24.0 (#11229)

Signed-off-by: Yi Yao <yi.a.yao@intel.com>
Co-authored-by: Ryan McCormick <rmccormick@nvidia.com>
docs(snapshot): update support matrix (#11674)

Signed-off-by: Anish Maddipoti <amaddipoti@nvidia.com>
Co-authored-by: Anish Maddipoti <amaddipoti@nvidia.com>
chore: upgrade azure/setup-helm from 4.3.0 to 5.0.1 (OPS-7670) (#11676)

Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
feat(sglang): add Python sidecar entrypoint (#11623)

Signed-off-by: Ishan Dhanani <ishandhanani@gmail.com>
Signed-off-by: ishandhanani <82981111+ishandhanani@users.noreply.github.com>
Co-authored-by: Dmitry Tokarev <dtokarev@nvidia.com>
feat: support sglang with global router. (#7897)

Signed-off-by: baihuitian <baihuitian.bht@gmail.com>
fix(observability): migrate Grafana dashboards from deprecated frontend gauges to replacements (#11497)
fix(kvbm): disable HMA for incompatible PdConnector children (#11608)

Signed-off-by: Karen Chung <karenc@nvidia.com>
fix(snapshot): preserve NCCL P2P setting (#11639)

Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
Signed-off-by: Schwinn Saereesitthipitak <17022745+galletas1712@users.noreply.github.com>
fix(snapshot): pin CRIU revision (#11659)

Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
chore(codeowners): assign snapshot common code to GMS (#11660)

Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
feat(trtllm): engine-owned conversation-aware ADP routing (#11609)

Signed-off-by: Yuewei Na <nv-yna@users.noreply.github.com>
Signed-off-by: krishung5 <krish@nvidia.com>
Co-authored-by: Yuewei Na <nv-yna@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix(profiler): auto-inject --trust-remote-code for custom-code HF models (#10372)

Signed-off-by: Ashna Mehrotra <ashnamehrotra@gmail.com>
Signed-off-by: ashnamehrotra <ashnamehrotra@gmail.com>
feat: inline license/SBOM compliance for planner and operator images (#11328)

Signed-off-by: Anant Sharma <anants@nvidia.com>
docs(sglang): fix broken lychee link in sglang-diffusion.md (#11658)

Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
refactor(operator): isolate legacy DGDR read compatibility (#11598)

Signed-off-by: Julien Mancuso <jmancuso@nvidia.com>
fix(bindings): restore trace context across the Python chat-processor boundary (#11480)

Signed-off-by: Renan Florez <florez.renan@gmail.com>
fix(operator): isolate namespaced admission and CRD ownership (#11597)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
Co-authored-by: Julien Mancuso <161955438+julienmancuso@users.noreply.github.com>
feat(gms): introduce VMMDevice abstraction for XPU (Phase 1) (#9788)

Signed-off-by: Zhan Xue <zhan.xue@intel.com>
fix(profiler): remove invalid AIPerf nvext input (#11629)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
feat(vllm): make self-benchmark sampling graph aware (#11509)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
fix(planner): remove ineffective prefill SLA floor (#11624)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
fix(replay): honor planner replay concurrency (#11633)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
revert(vllm): remove worker-side max-token budget rejection (#11564)

Signed-off-by: Ryan McCormick <rmccormick@nvidia.com>
fix(tokenspeed): align FlashInfer JIT cache version (#11465)

Signed-off-by: William Arnold <7565007+Aphoh@users.noreply.github.com>
chore(sglang): bump to 0.5.15 (#11596)

Signed-off-by: Ishan Dhanani <ishandhanani@gmail.com>
fix(llm): route structured JSON responses to content with reasoning parser (#11512)

Signed-off-by: Zhuangcheng(Jesse) Gu <zcgu@connect.hku.hk>
fix: Fix MiniMax M2 forced/named tool calling when reasoning is enabled. (#11554)

Signed-off-by: Indrajit Bhosale <iamindrajitb@gmail.com>
Co-authored-by: Ryan McCormick <rmccormick@nvidia.com>
perf(kv-router): streamline block release cleanup (#11568)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
test(serve): add sglang disaggregated_router launch scenario (#11442)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(tests): prevent port-forward EADDRINUSE flake in TRTLLM checkpoint test (#11560)

Signed-off-by: Rini Gupta <rinig@nvidia.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
feat(selection): cache `select()` booking inputs so `create_reservation` replays by id (#11416)

Cache bounded selection booking inputs by selection ID so reservations can replay without resending or rehashing prompt data.
feat(snapshot): capture checkpoints via PodSnapshot + node agent (#10951)

Signed-off-by: Ron Kahn <rkahn@nvidia.com>
docs(planner): align configuration descriptions with behavior (#11613)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
perf(trtllm): skip duplicate text prompt metadata (#11202)

Signed-off-by: Ryan McCormick <rmccormick@nvidia.com>
docs(profiler): clarify infeasible SLA behavior (#11612)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
fix(router): disable queueing by default (#11599)

Signed-off-by: Ishan Dhanani <ishandhanani@gmail.com>
perf(runtime): avoid copying received ZMQ frames (#11574)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
feat(sglang): support multiple served model names (#11141)

Signed-off-by: Fengyu Li <fengyul@nvidia.com>
Co-authored-by: Fengyu Li <fengyul@nvidia.com>
docs(kubernetes): document DGD scale-to-zero limitation (#11536)
fix: cover root CLAUDE.md in codeowners and match main/pr triggers (#11603)

Signed-off-by: Anant Sharma <anants@nvidia.com>
feat(compliance): add OSRB CSV diffs to compliance artifacts (#11240)

Signed-off-by: Harrison King Saturley-Hall <hsaturleyhal@nvidia.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat: DGD status observability from Grove fields - status reasons fine grained (#11131)

Signed-off-by: devivasudevan <49675305+devivasudevan@users.noreply.github.com>
feat(router): define queue admission strategy API (#11434)

Signed-off-by: Ishan Dhanani <ishandhanani@gmail.com>
ci: await PR reminder comment creation (#11545)

Signed-off-by: Harrison King Saturley-Hall <hsaturleyhal@nvidia.com>
refactor(operator): lazily converge worker hashes to v2 (#11529)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
fix(frontend): map backend invalid arguments to HTTP 400 (#11453)

Signed-off-by: Ryan McCormick <rmccormick@nvidia.com>
chore: Support XPU in multimodal embedding cache connector (#9938)

Signed-off-by: Yi Yao <yi.a.yao@intel.com>
feat: add CODEOWNERS generated as Infrastructure-as-Code (#10715)

Signed-off-by: Dan Gil <dagil@nvidia.com>
Signed-off-by: Daniel Gil <dagil@nvidia.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
perf(llm): reduce ITL metrics overhead (#11569)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
fix(router): make rejection thresholds independently opt-in (#11276)

Signed-off-by: Jie Hao <jihao@nvidia.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
feat(multimodal): pluggable vision encoder interface for custom VLMs (#10832)

Signed-off-by: Qi Wang <qiwa@nvidia.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
refactor(selection): use `selection_id` as the single reservation id (#11561)

Signed-off-by: Jeffrey Wang <jeffreywang@anyscale.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
feat(sglang): add native gRPC sidecar (#11408)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
Co-authored-by: ishandhanani <82981111+ishandhanani@users.noreply.github.com>
test(sglang): add diffusion_llada scenario on a new nightly H100 lane (#11441)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(vllm): support unified KV block clearing (#11451)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
fix: XPU marker composition for post-merge and nightly (#11519)

Signed-off-by: wenxin.zhang <wenxin.zhang@intel.com>
Co-authored-by: Rini Gupta <rinig@nvidia.com>
perf(kv-router): remove prompt membership hash lookup (#11515)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
perf(runtime): avoid copying MessagePack event payloads (#11539)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
ci(checkpoint): add TRTLLM DynamoCheckpoint coverage (#10918)

Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
Signed-off-by: Hannah Zhang <hannahz@nvidia.com>
Co-authored-by: Hannah Zhang <hannahz@nvidia.com>
feat(llm): route requests through encode workers (#11460)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
perf(kv-router): use arena block ownership counts (#11508)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
ci: restore PR reminder write permission (#11538)

Signed-off-by: Harrison King Saturley-Hall <hsaturleyhal@nvidia.com>
fix(ci): reserve VRAM for CUDA-stream logits adapter test (#11209)

Signed-off-by: zhongdaor <zhongdaor@nvidia.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
chore(deps): bump golang.org/x/crypto from 0.50.0 to 0.52.0 in /deploy/operator (#11413)

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dmitry Tokarev <dtokarev@nvidia.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
chore(frontend): update parser and renderer crates (#11535)

Signed-off-by: Ryan McCormick <rmccormick@nvidia.com>
feat(request-trace): sink-agnostic HTTP request-header capture via allowlist (#11386)

Signed-off-by: Yuting Wu (DLAlgo) <yutwu@nvidia.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
refactor(operator): stop emitting legacy DGDR conversion annotations (#11531)
fix(deps): cap mpmath<1.4 in trtllm extra (DYN-3348) (#11402)

Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
fix(planner): read worker runtime namespace from DGD status (#11352)

Signed-off-by: Thomas Montfort <tjmontfort12@gmail.com>
docs: require KV events for cache-aware routing (#11505)
feat(frontend): enable tokenizer cache for tiktoken (#11499)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
fix(vllm): reject over-budget max tokens (#11384)

Signed-off-by: Tianhe Zhang <tianhez@nvidia.com>
fix(runtime): resync etcd watchers after reconnect (#11146)

Signed-off-by: Michael Feil <63565275+michaelfeil@users.noreply.github.com>
feat: enable XPU 2-card serve tests with dedicated runner and device assignment (#10917)

Signed-off-by: Wenxin Zhang <wenxinz@nvidia.com>
Signed-off-by: VincyZhang <wenxin.zhang@intel.com>
Signed-off-by: Zhang, Wenxin <wenxin.zhang@intel.com>
Signed-off-by: wenxin.zhang <wenxin.zhang@intel.com>
fix(llm): parse config.json with JSON5 when deriving max context length (#11445)

Signed-off-by: ssojrani@nvidia.com <ssojrani@nvidia.com>
docs(kubernetes): align installation examples with v1.2.1 (#11486)

Signed-off-by: 구명수 <audtn256699@gmail.com>
perf(kv-router): preserve native KV event batches (#11466)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
perf(frontend): reduce generate request copies (#11483)

Signed-off-by: jthomson04 <64760228+jthomson04@users.noreply.github.com>
Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
fix: refresh vllm xpu baseline sbom and drop stale entry (#11488)

Signed-off-by: Anant Sharma <anants@nvidia.com>
feat(kv-router): add relay-shaped transposed CKF indexer (#11435)

Co-authored-by: Nikita Sukharev <kaonael@gmail.com>
docs(dgdr): document versioned DGD override semantics (#11487)
fix(mocker): fall back when AIC memory estimator is unavailable (#11490)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
fix(trtllm): complete unified guided decoding parity (#11423)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
perf(router): avoid rebuilding blocked lane index (#11484)

Signed-off-by: jthomson04 <64760228+jthomson04@users.noreply.github.com>
Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
feat(kv-router): rename worker tenancy to routing groups (#11471)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
feat(snapshot): add CRIU imageIoMode (O_DIRECT) knob (#11476)

Signed-off-by: Dan Feigin <dfeigin@nvidia.com>
feat(kv-router): inline sparse CRTC children (#11459)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
ci: enforce .agents/skills SKILL.md frontmatter conventions in pre-commit (#11230)

Signed-off-by: Dan Gil <dagil@nvidia.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
docs(trtllm): clarify NVENC requirement for MP4 video output (#11457)

Signed-off-by: Zhuangcheng(Jesse) Gu <zcgu@connect.hku.hk>
refactor(validation): make DCD validation structural (#11479)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
fix(operator): generate Helm RBAC from controller markers (#11322)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
fix(operator): emit Grove alpha.11 topology constraints (#11405)
feat(trace): convert request traces to SATF (#11375)

Signed-off-by: Ishan Dhanani <ishandhanani@gmail.com>
test(validation): unify DCD admission coverage (#11234)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
feat(frontend): dispatch forward-compatible /inference/v1/generate requests (#11167)

Signed-off-by: Qi Wang <qiwa@nvidia.com>
fix(tests): close gRPC streaming clients (#11446)

Signed-off-by: Jie Hao <jihao@nvidia.com>
ci: grant actions: read to notify-slack caller jobs (fix reusable-workflow permission error) (#11456)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
feat(planner): Add kv reads dimension to self-benchmarking grid (#11150)

Signed-off-by: Sachal Malick <s@chal.ai>
test(vllm): cover unified guided decoding (#11424)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
fix(kv-router): scope KvRouter cancellation to a child token (#11390)

Signed-off-by: davilu-nvidia <134493379+davilu-nvidia@users.noreply.github.com>
Signed-off-by: PeaBrane <yanrpei@gmail.com>
Co-authored-by: PeaBrane <yanrpei@gmail.com>
ci: extract shared Slack notifier into a reusable workflow (#11365)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
fix: fix the needs_nixl flag to true when multimodal disagg is enabled (#11373)
fix(sglang): complete unified guided decoding parity (#11422)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
docs: point DEP references to issue-based workflow on ai-dynamo/dynamo (#11232)

Signed-off-by: Dan Gil <dagil@nvidia.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
fix(ci): redirect CARGO_HOME to writable path in rust-gpu job (#11433)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
docs: add DynoSim Apple Silicon and trace-format notes (#11430)

Signed-off-by: Yongming Ding <yongmingd@nvidia.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
fix(benchmarks): run the in-cluster benchmark Job on the frontend image (DYN-3395) (#11368)

Signed-off-by: Daniel Gil <dagil@nvidia.com>
feat(release): stage nightly kubernetes-operator and dynamo-planner containers to NGC

Signed-off-by: pvijayakrish <pvijayakrish@nvidia.com>

perf: Optimize request path on TCP request plane (#10519)

Signed-off-by: Jacky <18255193+kthui@users.noreply.github.com>
perf(kv-router): strengthen trace replay benchmarks (#11415)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
fix:  Fix guided decoding for force-reasoning parsers (#11205)

Signed-off-by: Indrajit Bhosale <iamindrajitb@gmail.com>
Co-authored-by: Ryan McCormick <rmccormick@nvidia.com>
feat(frontend): make overload rejection status code configurable (#11249)

Signed-off-by: nnshah1 <neelays@nvidia.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(router): add exact-worker policy queue lanes (#11363)

Signed-off-by: Ishan Dhanani <ishandhanani@gmail.com>
feat(power-agent): add DCGM dual actuator (opt-in; NVML remains default) (#9790)

Adds an opt-in DCGM dual actuator to the Power Agent (NVML remains the default), with fail-closed GPU identity verification, durable orphan recovery, and a bounded pod-listing path during SIGTERM shutdown.

Signed-off-by: Kai Ma <kaim@nvidia.com>
chore: update vllm-omni version to 0.24 to match with vllm version (#11248)

Signed-off-by: Thanaji Rao Thakkalapelli <thanaji.rao.thakkalapelli@intel.com>
test(lora): add allocation simulation harness (#8192)

Signed-off-by: Biswa Panda <biswa.panda@gmail.com>
feat(profiler): apply DGD overrides with the shared Go engine (#11187)

Signed-off-by: Julien Mancuso <jmancuso@nvidia.com>
fix(gms): defer vLLM publication until after memory profiling (#11302)

Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
fix(planner): gate predicted-load & engine-capacity gauges on throughput ticks (#10804)

Signed-off-by: jooe0824 <jooe0824@sk.com>
Co-authored-by: jooe0824 <jooe0824@sk.com>
Co-authored-by: Ryan McCormick <rmccormick@nvidia.com>
test(trtllm): fix multimodal encoder test stub (#11383)

Signed-off-by: Kavita Narang <knarang@nvidia.com>
chore: bump trtllm to v1.3.0rc20 (#11086)

Signed-off-by: dynamo-ops <170655669+dynamo-ops@users.noreply.github.com>
Signed-off-by: Anant Sharma <anants@nvidia.com>
Co-authored-by: Anant Sharma <anants@nvidia.com>
feat(omni): Enable NIXL connector for vllm OMNI AR/DIT (#10071)

Signed-off-by: Thanaji Rao Thakkalapelli <thanaji.rao.thakkalapelli@intel.com>
Signed-off-by: Daniel Socek <daniel.socek@intel.com>
Co-authored-by: Daniel Socek <daniel.socek@intel.com>
fix(global-planner): reject scaling when dgd is not ready (#10526)

Signed-off-by: Yu Huang <yuhuang@nvidia.com>
feat: integrate cache_salt with KV routing for multi-tenant isolation [DYN-3178] (#8197)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
docs(observability): update OTLP export docs for endpoint fallback and HTTP protocol (#11337)

Signed-off-by: Jie Hao <jihao@nvidia.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
feat(vllm): support unified multimodal prefill decode (#11270)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
test: add TRT-LLM Qwen3-VL dtype regression coverage (#11292)

Signed-off-by: Kavita Narang <knarang@nvidia.com>
fix(container): install zstandard in sglang runtime image (DYN-3398) (#11362)

Signed-off-by: Daniel Gil <dagil@nvidia.com>
feat(vllm): support unified frontend multimodal processing (#11269)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
fix(test): use matching 2B model for trtllm disagg multimodal test (#10891)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chore(ci): ignore intermittent Bitnami Helm repository 503s (#11370)
feat(frontend): expose tokenizer cache token metrics (#11353)

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
feat(vllm): enable unified multimodal embedding cache (#11268)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
fix(snapshot): preserve CUDA ordinal mapping for DRA GPUs (#11325)

Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
ci: skip sequential GPU tests cleanly when checkout/container init fails (#11346)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
ci: harden Slack notifier against null jobs payload (#11335)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
fix(profiler): remove deprecated AIC WebApp integration (#11342)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
fix(operator): preserve Grove component kinds before creation (#11314)

Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
feat(frontend): add per-request image/video/audio count metrics (#11166)
perf: small improvement to local monitor performance and hidden-tab traffic (#11336)

Signed-off-by: Keiven Chang <keivenchang@users.noreply.github.com>
fix(operator): fix linter (#11354)
fix(multimodal): thread trust_remote_code from engine config instead of hardcoding True (#10738)

Signed-off-by: nnshah1 <neelays@nvidia.com>
Co-authored-by: Ryan McCormick <rmccormick@nvidia.com>
feat(router): expose native offloading capacity (#11321)

Signed-off-by: Ishan Dhanani <ishandhanani@gmail.com>
fix(profiler): warn when fallback cannot verify SLA (#11338)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
perf(gms): share CUDA initialization across tags (#11285)

Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
fix(multimodal): return 4xx for SSRF-blocked media URLs instead of 500 (#11312)

Signed-off-by: Krishnan Prashanth <kprashanth@nvidia.com>
fix(vllm): propagate embedding prompt truncation (#11099)

Signed-off-by: Praateek <praateekm@gmail.com>
Co-authored-by: Ryan McCormick <rmccormick@nvidia.com>
feat(request-trace): unify payload logging (#11180)

Signed-off-by: Thomas Montfort <tjmontfort12@gmail.com>
Signed-off-by: Thomas Montfort <61255722+tmonty12@users.noreply.github.com>
Co-authored-by: Neelay Shah <neelays@nvidia.com>
feat(vllm): support unified aggregated multimodal (#11267)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
feat(operator): add volcano scheduler support for grove (#8225)

Signed-off-by: xianlubird <xianlubird@gmail.com>
Co-authored-by: Dan Gil <dagil@nvidia.com>
Co-authored-by: Ryan McCormick <rmccormick@nvidia.com>
perf(python): intern request-plane envelope keys (#11331)

Signed-off-by: Codex Performance Agent <codex@openai.com>
Co-authored-by: Codex Performance Agent <codex@openai.com>
fix(operator): preserve service volume mounts during conversion (#11263)
docs: fix GitHub stars links that 404 for anonymous readers (#11334)

Signed-off-by: Dan Gil <dagil@nvidia.com>
fix(operator): avoid duplicate compilation cache mounts (#11264)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
Co-authored-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
fix(operator): prevent DGDR stalls after profiling (#11250)

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
Co-authored-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
fix: kvbm ci test failure (#11307)

Signed-off-by: Lavanya <lvijayakrish@nvidia.com>
refactor(vllm): extract multimodal request processor (#11266)

Signed-off-by: Connor Carpenter <connorc@nvidia.com>
fix(event-plane): share one ZMQ context across all sockets (#11246)

Signed-off-by: joeltg <joel@reflection.ai>
chore: rewrite AGENTS.md, fix skill frontmatter, drop gh-issue-bug (#11231)

Signed-off-by: Dan Gil <dagil@nvidia.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
fix(recipes): add build tools for ARM recipes on aiperf>=0.8.0 (#11278)

Signed-off-by: Karen Chung <karenc@nvidia.com>
ci: trust maintainer updates to fork PRs (#11122)
feat(operator): support Grove OnDelete update strategy (#11085)

Signed-off-by: xianlubird <xianlubird@gmail.com>
fix(router): disclose selected worker in non-KV modes (#11245)

Signed-off-by: Ishan Dhanani <ishandhanani@gmail.com>
refactor(router): unify selection service lifecycle (#11298)

Signed-off-by: PeaBrane <yanrpei@gmail.com>
fix(planner): handle zero-traffic metrics (#11294)

Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
fix(sglang): support tensor image sizes for multimodal P/D (#11255)

Signed-off-by: Zhuangcheng(Jesse…
dagil-nvidia added a commit that referenced this pull request Aug 1, 2026
components/src/dynamo/planner/connectors/kubernetes_api.py moved to
connectors/clients/kubernetes_api.py in #10767, but the shared glob was
never repointed, so operator silently lost the file. shared entries are
additive and droppable, so no gate fired.

- repoint the shared planner+operator entry to the live path
- declare the pairing under required_owners so it is non-droppable and a
  future move fails the stale-glob gate instead of orphaning it again

Signed-off-by: Dan Gil <dagil@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants