Skip to content

feat(decisions): initialize native read workers - #17136

Draft
biswapanda wants to merge 1 commit into
bis/vllm-decisions-v6-head-workersfrom
bis/vllm-decisions-v7-read-workers
Draft

biswapanda wants to merge 1 commit into
bis/vllm-decisions-v6-head-workersfrom
bis/vllm-decisions-v7-read-workers

Conversation

@biswapanda

@biswapanda biswapanda commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Part of #15961; architecture #15843 and executor DEP #15967, with causal execution context #15274. Slice V7 of V8, stacked on its immediate parent.

Wire Liquid/diffusion read initialization, lifecycle, error and health handling into decode workers, and carry read-profile metadata without advertising native capability. Final activation stays atomic in the next slice.

This parent-relative diff is +644 / -4 = 648 changed lines, including tests and intermediate scaffolding. The complete eight-slice stack preserves the original #17122 source tree exactly. Narrow staging annotations and capability guards are removed in final activation.

Compatibility and dependencies

Public contracts remain OpenAI POST /v1/decisions and Jev POST /v1/systemone. No nvext.format, SGLang-native Decisions wire schema, HTTP proxy, or new public route is introduced. Preserve typed values, question order, accounting, revision fencing, placement, admission, deadlines, and cancellation.

The existing core train through #15857 remains the base. Separately owned #16757 is the production-image upgrade prerequisite. This stack changes no container, dependency pin, Cargo manifest, or lockfile; frontend crates remain published dynamo-decisions =0.1.0 and dynamo-protocols =8.2.0.

Specialized adapters target pinned upstream 9da5f2d3103df460dfca53df4ab4884def5c935f / 0.32.1rc1.dev172+g9da5f2d31, not an implied upgrade of the released 0.32.0 causal profile. Worker initialization does not imply release qualification or capability publication.

Validation

226 combined CPU helper tests, 74 actual-Config/AST-handler registration/dispatch/health tests, and 29 selected AST-extracted factory contract tests passed. Selections overlap and are not summed; no CUDA or real-engine construction attempts.

Applicable repository-pinned pre-commit hooks and whitespace checks passed. All new commits are signed and DCO-signed-off. Historical GPU campaigns predate the final source and are not evidence for these heads. Live-model, released-image, distributed-lifecycle, and CI release gates remain open in #17122. No GPU campaign or benchmark was launched for this split.

Stack navigation

Merge in the order below; each PR targets its immediate parent. V4 enables causal vLLM execution; V6/V7 initialize native workers without advertising them, and V8 enables native request dispatch and capability publication together. The stack begins at #15857, not main.

Order PR Scope Additions Deletions Total
V1 #17130 Execution contracts +1,145 -3 1,148
V2 #17131 Native head adapter +1,356 -0 1,356
V3 #17132 Causal runtime readiness +813 -0 813
V4 #17133 Causal serving and discovery +745 -140 885
V5 #17134 Native read adapters +1,476 -0 1,476
V6 #17135 Head worker integration +814 -6 820
V7 #17136 Read worker integration +644 -4 648
V8 #17122 Native activation and HTTP SDK tests +1,307 -17 1,324
flowchart TB
  D7["#15857 decision core"] --> V1["#17130 contracts"]
  V1 --> V2["#17131 head adapter"]
  V2 --> V3["#17132 causal readiness"]
  V3 --> V4["#17133 causal serving"]
  V4 --> V5["#17134 read adapters"]
  V5 --> V6["#17135 head workers"]
  V6 --> V7["#17136 read workers"]
  V7 --> V8["#17122 native activation"]
Loading

Signed-off-by: Biswa Panda <biswa.panda@gmail.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor

❌ Dynamo PR CI failed — run 39853688018 (attempt 1) on 0808b95b44

Gate checks: ✅ backend-status-check · ✅ deploy-status-check · ❌ dynamo-status-check

Other Jobs
dynamo-runtime ❌ 1 ✅ 6

Failure details

1 job failed: mypy reports 5 type errors in components/src/dynamo/vllm/ (decision_heads.py, decision_reads.py, decision_execution.py, handlers.py), mostly str | None values used where str is required.

❌ dynamo-runtime / mypy: 5 mypy errors in components/src/dynamo/vllm

Job: dynamo-runtime / mypy · Failed step: Run mypy (components) · Logs: gh run view --job 120095814096 -R ai-dynamo/dynamo --log-failed

components/src/dynamo/vllm/decision_heads.py:124: error: Unsupported operand types for in ("str | None" and "Generator[str, None, None]")  [operator]
components/src/dynamo/vllm/decision_heads.py:148: error: Argument 1 to "Path" has incompatible type "str | None"; expected "str | PathLike[str]"  [arg-type]
components/src/dynamo/vllm/decision_reads.py:99: error: Argument 1 to "Path" has incompatible type "str | None"; expected "str | PathLike[str]"  [arg-type]
components/src/dynamo/vllm/decision_execution.py:166: error: Argument 1 to "Path" has incompatible type "str | None"; expected "str | PathLike[str]"  [arg-type]
components/src/dynamo/vllm/handlers.py:3811: error: Argument 1 to "get" of "dict" has incompatible type "Any | None"; expected "str"  [arg-type]
Found 5 errors in 4 files (checked 975 source files)

Mypy on components fails with 5 errors: optional (str | None / Any | None) values are passed to Path(...), used with in, and used as a dict.get key without narrowing. Narrowing or checking these values for None at the listed lines should fix the job.

For agents
{"pr": 17136, "run_id": 39853688018, "run_attempt": 1, "head_sha": "0808b95b44d6c91d454c39138dbe3941761bc5cf",
 "failures": [{"job": "dynamo-runtime / mypy", "job_id": 120095814096, "failed_step": "Run mypy (components)", "signature": "mypy: 5 errors in 4 files (str | None arg-type/operator in components/src/dynamo/vllm)", "tests": [], "files": ["components/src/dynamo/vllm/decision_heads.py:124", "components/src/dynamo/vllm/decision_heads.py:148", "components/src/dynamo/vllm/decision_reads.py:99", "components/src/dynamo/vllm/decision_execution.py:166", "components/src/dynamo/vllm/handlers.py:3811"], "log_cmd": "gh run view --job 120095814096 -R ai-dynamo/dynamo --log-failed"}]}

Posted automatically by Devin for run 39853688018. Updated on every full-CI run of this PR.

This branch has not been deployed

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

Labels

backend::vllm Relates to the vllm backend feat size/XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant