Skip to content

chore: update dynamo-protocols to 5.4.1 - #14154

Merged
rmccorm4 merged 2 commits into
mainfrom
doxu/bump-protocols-5.4.1
Sep 3, 2026
Merged

rmccorm4 merged 2 commits into
mainfrom
doxu/bump-protocols-5.4.1

Conversation

@luckyq

@luckyq luckyq commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

Overview:

Bumps the pinned dynamo-protocols dependency from 5.4.0 to 5.4.1, which picks up ai-dynamo/frontend-crates#202 (closes ai-dynamo/frontend-crates#157). That release aligns /v1/chat/completions response serialization with the OpenAI spec: optional fields are omitted when absent instead of being emitted as explicit null, and the required-and-nullable refusal field is always present.

Wire changes visible to clients after this bump:

Field Before After
top-level usage / service_tier / system_fingerprint (non-stream + stream) null when absent omitted
stream tool-call chunk id / type / function.name on continuation chunks null omitted
message.reasoning_content (Dynamo extension) null when absent omitted
usage.prompt_tokens_details.audio_tokens etc. null when absent omitted
message.refusal omitted always present (null when no refusal), matching OpenAI
finish_reason, non-stream logprobs, message.content unchanged unchanged (spec-required)

Deserialization is unaffected in both directions: payloads with or without the keys decode identically, so mixed-version frontend/worker deployments are safe. Official OpenAI SDKs (pydantic/zod models) are unaffected; only raw dict indexing such as chunk["usage"] on intermediate stream chunks would observe the change — and that code already fails against api.openai.com, which never emits those keys.

Details:

Root Cargo.toml moves the pin from =5.4.0 to =5.4.1. That is the only pin site in the tree; lib/llm/Cargo.toml and lib/backend-common/Cargo.toml inherit it via workspace = true.

The three lockfiles are refreshed to match: Cargo.lock, lib/bindings/kvbm/Cargo.lock, and lib/bindings/python/Cargo.lock (the two bindings crates are separate workspaces with their own lockfiles). Each moves exactly one package, dynamo-protocols 5.4.0 -> 5.4.1; no other dependency changes.

No Dynamo source changes: 5.4.1 keeps every public type identity (CompletionUsage etc. remain upstream re-exports), so this is a pure pin bump.

Where should the reviewer start?

Cargo.toml line 71. Everything else is lockfile churn from cargo update -p dynamo-protocols --precise 5.4.1.

Related Issues

🔗 This PR is linked to an issue:

Summary by CodeRabbit

  • Chores
    • Updated the Dynamo protocols package to version 5.4.1.

Picks up ai-dynamo/frontend-crates#202 (frontend-crates#157): chat completion
responses omit absent optional fields instead of emitting null, and always
carry the spec-required refusal field. Pure pin bump; no Dynamo source changes.

Root Cargo.toml pin =5.4.0 -> =5.4.1; Cargo.lock, lib/bindings/python/Cargo.lock
and lib/bindings/kvbm/Cargo.lock each move exactly one package.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: doxu <doxu@nvidia.com>
@luckyq
luckyq requested review from a team as code owners September 2, 2026 01:27
@copy-pr-bot

copy-pr-bot Bot commented Sep 2, 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.

@coderabbitai

coderabbitai Bot commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: eb68e9c9-1632-40bb-afd6-c6e570eb2414

📥 Commits

Reviewing files that changed from the base of the PR and between c6bc7b0 and 3179616.

⛔ Files ignored due to path filters (3)
  • Cargo.lock is excluded by !**/*.lock
  • lib/bindings/kvbm/Cargo.lock is excluded by !**/*.lock
  • lib/bindings/python/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • Cargo.toml

Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.


Walkthrough

The workspace updates the exact dynamo-protocols dependency from 5.4.0 to 5.4.1.

Changes

Protocol dependency update

Layer / File(s) Summary
Update protocol dependency version
Cargo.toml
The workspace now uses dynamo-protocols version 5.4.1.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to 31796

This PR updates the pinned dependency and matching lockfiles without source-code changes or identified behavioral correctness risks. No actionable merge-blocking risk remains beyond normal checks and review.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The dependency update addresses the linked issue's optional-field serialization goal, but the description states that message.refusal is always emitted as null when absent. Direct issue #157 explicitl… Update the protocol behavior or linked issue requirements so that choices[].message.refusal is omitted when absent, as required by issue #157. Also verify the behavior with the issue's synthetic serialization test.
✅ Passed checks (4 passed)
Check name Status Explanation
Out of Scope Changes check ✅ Passed The reviewed Cargo.toml change is directly related to the dependency update. The described lockfile updates are also consistent with that scope, and no unrelated source changes are reported.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Title check ✅ Passed The title clearly and concisely describes the dependency pin update from dynamo-protocols to version 5.4.1.
Description check ✅ Passed The description includes all required sections, explains the dependency and lockfile changes, identifies the reviewer starting point, and links the related issues. It also states the scope and compati…
Full details: Linked Issues check

Explanation

The dependency update addresses the linked issue's optional-field serialization goal, but the description states that message.refusal is always emitted as null when absent. Direct issue #157 explicitly requires choices[].message.refusal to be omitted when absent. This requirement is not met based on the provided evidence.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

Full details: Description check

Explanation

The description includes all required sections, explains the dependency and lockfile changes, identifies the reviewer starting point, and links the related issues. It also states the scope and compatibility impact clearly.

  • Fix all pre-merge checks with AI

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

@rmccorm4

rmccorm4 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

/ok to test 5dab00c

@rmccorm4
rmccorm4 enabled auto-merge (squash) September 3, 2026 17:59
@rmccorm4
rmccorm4 merged commit 228badb into main Sep 3, 2026
197 of 199 checks passed
@rmccorm4
rmccorm4 deleted the doxu/bump-protocols-5.4.1 branch September 3, 2026 19:41
nv-anants pushed a commit that referenced this pull request Sep 14, 2026
Signed-off-by: doxu <doxu@nvidia.com>
nv-nmailhot pushed a commit that referenced this pull request Sep 28, 2026
…namo-protocols to 5.4.1 (#14595, #14154) (#14806)

Signed-off-by: Kay Yan <kay.yan@daocloud.io>
Signed-off-by: doxu <doxu@nvidia.com>
Co-authored-by: Kay Yan <kay.yan@daocloud.io>
Co-authored-by: Dong Xu <168420595@qq.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.

Omit absent optional fields in chat completion responses

3 participants