Repository navigation
Pull request/24 - #24
Merged
Merged
Conversation
Add live-reloaded file sources for KV DC Relay namespace selection and expose readiness and source revisions through /engine/state. Preserve applied membership on invalid updates, coalesce discovery refreshes, and isolate native integration tests in forked processes. Signed-off-by: Nikita Sukharev <kaonael@gmail.com>
…ynamo#14032) Signed-off-by: xianlubird <xianlubird@gmail.com>
…i-dynamo#14860) Signed-off-by: hongkuanz <hongkuanz@nvidia.com>
Signed-off-by: William Arnold <7565007+Aphoh@users.noreply.github.com> Co-authored-by: Zero Rains <57100978+zeroRains@users.noreply.github.com>
…d recipes for B200 (ai-dynamo#14376) Signed-off-by: Sandhya Rani Narravula <snarravula@nvidia.com>
…LM (ai-dynamo#14428) Signed-off-by: Karen Chung <karenc@nvidia.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
…namo#14857) Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
Signed-off-by: Wenxin Zhang <wenxin.zhang@intel.com> Signed-off-by: VincyZhang <wenxin.zhang@intel.com>
…4653) Signed-off-by: krishung5 <krish@nvidia.com>
…es (ai-dynamo#14435) The sglang image-diffusion and video-generation handlers passed the client-supplied input_reference through to the generator's image_path after only a non-empty check. Validate it first, and for remote references materialize it locally before the generator sees it, so the generator is always handed a trusted local path. This brings the sglang diffusion path in line with the vLLM/omni and trtllm backends, which already validate the same field. Behavior change: local I2I/I2V references now require DYN_MM_LOCAL_PATH to be set to the allowed directory; previously any path was accepted. common/http: - validate_media_reference() returns a plain filesystem path for local references; local_media_reference() is an async context manager that fetches a remote one through fetch_bytes(policy=...), which revalidates every redirect hop, into a temp file removed on exit. data: is rejected -- a URI is not a path. - fetch_bytes() gained max_bytes, streaming through collect_capped at an explicit read granularity so the cap is an allocation bound and not only a rejection: a 128 MiB-decoded gzip body against the 64 MiB cap peaks at 68,032,217 bytes rather than the whole decompressed body. Content-Length is caller-controlled and absent when chunked, and aiohttp's read(n) returns at most n bytes, so neither a header check nor a single capped read suffices. Defaults to None, leaving existing callers unchanged. - DYN_MM_MAX_FILE_SIZE_MB makes that cap operator-tunable, in megabytes, as the SGLang arg it replaces was. Read per call; empty, unparseable or non-positive falls back to 64 with a warning, so a malformed value neither takes the worker down nor reads as unlimited. - Messages built from caller input are bounded via describe_media_source, moved from multimodal/media_source.py (it pulls in torch) into url_validator.py and re-exported from its old home; a no-op below 120 characters. - HttpStatusError bounds its .message attribute, not only the rendered string: errors.rs::extract_http_like_error reads .status and .message off this class by name and forwards .message on a 4xx without calling str(). Backend exception text is bounded head-and-tail, since aiohttp renders the host before the errno. - validate_local_path uses exc.strerror rather than the raw OSError, whose text repeats the filename, and now catches the ValueError that Path.resolve() raises on an embedded NUL so callers keep their 4xx-vs-5xx decision. Rebased onto ai-dynamo#14563 (single aiohttp backend); the httpx-side half of the max_bytes plumbing went with that backend. Signed-off-by: nnshah1 <neelays@nvidia.com> Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
Signed-off-by: svc-glamr@nvidia.com <svc-glamr@nvidia.com> Signed-off-by: GLAMR <svc-glamr@nvidia.com> Co-authored-by: Anant Sharma <anants@nvidia.com> Co-authored-by: yunzhoul-nv <232973175+yunzhoul-nv@users.noreply.github.com>
Automated refresh from the public Dynamo Google Calendar. Generated by .github/workflows/community-events-refresh.yml. Signed-off-by: dynamo-ops <170655669+dynamo-ops@users.noreply.github.com>
…mo#14206) Signed-off-by: Anant Sharma <anants@nvidia.com>
…o#14783) Signed-off-by: Yingge He <yinggeh@nvidia.com>
…nnot run on (ai-dynamo#14571) Signed-off-by: svc-glamr@nvidia.com <svc-glamr@nvidia.com>
…dynamo#14737) Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
…amo#14878) Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
…o#13599) Signed-off-by: Anant Sharma <anants@nvidia.com>
Signed-off-by: Julien Darve <jdarve@NVIDIA.com>
Throwaway PR to prove the CI merged in #22 actually runs end to end on XPU hardware. Adds only a comment to container/templates/vllm_runtime.Dockerfile, which matches the `vllm` path filter (container/templates/vllm_*) and so makes changed-files set vllm=true, which is what gates build-xpu and the heterog-test-px-dn / heterog-test-pn-dx jobs. What this exercises: - .github/workflows/pr-xpu.yaml (push to pull-request/[0-9]+, needs the xpu label) - .github/workflows/pr-xpu-heterogeneous.yaml (push; its guard deliberately skips the label gate) - .github/workflows/epd-test-template.yml (workflow_call, from the heterog jobs) - .github/scripts/test-filters.js (the brace fix from #22) - container/templates/vllm_runtime.Dockerfile rendered and built for device=xpu Not exercised: .github/workflows/xpu-heterogeneous-dispatch.yaml is workflow_dispatch only and has to be run by hand from the Actions tab. The marker comment must be removed before this branch is ever merged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: J Wyman <jwyman@nvidia.com> Co-authored-by: Rini Gupta <rinig@nvidia.com>
Signed-off-by: bzsuni <bingzhe.sun@daocloud.io>
…4795) Signed-off-by: Sai Kiran Polisetty <spolisetty@nvidia.com>
…rtup (ai-dynamo#14568) Signed-off-by: svc-glamr@nvidia.com <svc-glamr@nvidia.com> Co-authored-by: yunzhoul-nv <232973175+yunzhoul-nv@users.noreply.github.com>
…i-dynamo#14843) Signed-off-by: xianlubird <xianlubird@gmail.com>
Signed-off-by: Matej Kosec <mkosec@nvidia.com>
…[DYN-4310] (ai-dynamo#14756) Signed-off-by: Anna Tchernych <atchernych@nvidia.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…king (ai-dynamo#14135) Signed-off-by: Dan Gil <dagil@nvidia.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
…i-dynamo#14429) Signed-off-by: nnshah1 <neelays@nvidia.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Wenxin Zhang <wenxin.zhang@intel.com>
…o#13893) Signed-off-by: Jie Hao <jihao@nvidia.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
…ai-dynamo#14872) Signed-off-by: Jacky <18255193+kthui@users.noreply.github.com>
Signed-off-by: Guan Luo <gluo@nvidia.com> Co-authored-by: Guan Luo <gluo@nvidia.com>
Signed-off-by: Guan Luo <gluo@nvidia.com> Co-authored-by: Guan Luo <gluo@nvidia.com>
Signed-off-by: Guan Luo <gluo@nvidia.com> Signed-off-by: GuanLuo <41310872+GuanLuo@users.noreply.github.com> Co-authored-by: Guan Luo <gluo@nvidia.com> Co-authored-by: GuanLuo <41310872+GuanLuo@users.noreply.github.com> Co-authored-by: Ryan McCormick <rmccormick@nvidia.com>
Signed-off-by: VincyZhang <wenxin.zhang@intel.com>
Signed-off-by: Wenxin Zhang <wenxin.zhang@intel.com>
Signed-off-by: Wenxin Zhang <wenxin.zhang@intel.com>
aung-san-i
had a problem deploying
to
external_collaborator
September 21, 2026 21:56 — with
GitHub Actions
Failure
| "MultimodalEncodeWorkerHandler", | ||
| "MultimodalPrefillWorkerHandler", | ||
| "MultimodalWorkerHandler", | ||
| "PrefillWorkerHandler", |
| "MultimodalPrefillWorkerHandler", | ||
| "MultimodalWorkerHandler", | ||
| "PrefillWorkerHandler", | ||
| "RerankWorkerHandler", |
| "MultimodalWorkerHandler", | ||
| "PrefillWorkerHandler", | ||
| "RerankWorkerHandler", | ||
| "VideoGenerationWorkerHandler", |
| "from-image and baseline resolve to the same digest; reusing the " | ||
| "baseline SBOM instead of re-scanning" | ||
| ) | ||
| from_sbom = baseline_sbom |
| _ASYNC_TOKENIZER_POOL[key] = async_tokenizer | ||
| return async_tokenizer | ||
| try: | ||
| tokenizer_ref = weakref.ref(tokenizer) |
| await waiter | ||
| finally: | ||
| release.set() | ||
| await collection |
| assert not collection.done() | ||
| collection.cancel() | ||
| with pytest.raises(asyncio.CancelledError): | ||
| await collection |
| try: | ||
| if S_ISREG(os.stat(config_path).st_mode): | ||
| return local_path | ||
| except (FileNotFoundError, NotADirectoryError): |
| pytest.skip("vLLM omni dependencies not available", allow_module_level=True) | ||
|
|
||
| try: | ||
| import vllm_omni.model_executor.models.audex.prompt # noqa: F401 |
|
|
||
| try: | ||
| import vllm_omni.model_executor.models.audex.prompt # noqa: F401 | ||
| import vllm_omni.model_executor.models.audex.tta # noqa: F401 |
Extract the XPU heterogeneous P/D pipeline out of pr-xpu-heterogeneous.yaml
into xpu-heterogeneous-run.yml, a workflow_call reusable workflow, and call it
from three thin trigger workflows so all three merge phases run the identical
pipeline instead of drifting copies.
xpu-heterogeneous-run.yml new, reusable. guard, changed-files,
build-xpu, build-nvidia, resolve-images
and both heterog tests, unchanged, plus
7 inputs.
pr-xpu-heterogeneous.yaml reduced to the pre-merge trigger, the
slash-command gate and the reaction.
post-merge-xpu-heterogeneous.yaml new. push to main.
nightly-xpu-heterogeneous.yaml new file, but the cron is MOVED, not
added: it is the 0 23 * * * schedule
that was already in
pr-xpu-heterogeneous.yaml.
No behaviour change per phase. force_all_tests replaces the old
github.event_name == 'schedule' || github.event_name == 'issue_comment'
expression with the same truth table: pre-merge passes
github.event_name == 'issue_comment', nightly passes true. Post-merge also
passes true, because a push to main has no PR base for
.github/actions/changed-files to diff against, and post-merge exists to catch
what per-PR gating missed.
xpu-status-check stays a TOP-LEVEL job in each caller rather than moving into
the reusable workflow. A job contributed by a reusable workflow reports to the
Checks API as "run / xpu-status-check", so hosting it there would rename the
context and leave any branch protection rule requiring xpu-status-check waiting
forever on a check that no longer reports.
The concurrency mapping stays byte-identical across all four workflows that
touch this hardware, now including xpu-heterogeneous-dispatch.yaml. Three files
do NOT get three slots: the cluster, the dynamo-system namespace and the
onexpu-/onenvidia-rdma-kueue ResourceClaimTemplates are one global resource.
The reusable workflow deliberately carries no concurrency block of its own,
which would deadlock against the slot the caller's run already holds.
Parameterised gpu_tag, model, tensor_parallel and runner as inputs so the
callers can diverge; all default to the previously hardcoded values. Added
workflow_dispatch to the nightly, without which a schedule-only workflow cannot
be exercised before it reaches the default branch.
Verified: all files parse; the four concurrency mappings are byte-identical; the
reusable workflow declares no concurrency; every input each caller passes exists
and every required input is supplied; nesting is depth 3 of the 4 GitHub allows.
actionlint was not available to run, and will report queue:max as an unknown key
in all four files, a known false positive.
aung-san-i
had a problem deploying
to
external_collaborator
September 28, 2026 21:13 — with
GitHub Actions
Failure
This branch had an error being deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview:
Details:
Where should the reviewer start?
Related Issues
🔗 This PR is linked to an issue:
🚫 This PR is NOT linked to an issue: