Skip to content

Take tinyinference's null-tolerant sequence decoder - #138

Merged
senamakel merged 1 commit into
mainfrom
bump-tinyinference-null-sequences
Aug 31, 2026
Merged

Take tinyinference's null-tolerant sequence decoder#138
senamakel merged 1 commit into
mainfrom
bump-tinyinference-null-sequences

Conversation

@senamakel

@senamakel senamakel commented Aug 31, 2026

Copy link
Copy Markdown
Member

What changed

The vendor/tinyinference gitlink, to dbf7897 — the merge of
tinyhumansai/tinyinference#4. Nothing else.

Why

Several OpenAI-compatible endpoints spell "no tool calls" as "tool_calls": null
rather than by omitting the key, and Mistral-family models do it on every
plain-text completion:

{"choices":[{"index":0,"finish_reason":"stop",
  "message":{"role":"assistant","tool_calls":null,"content":"Hi!"}}]}

#[serde(default)] covers an absent key and nothing else — a key present with
null still reaches the Vec visitor and fails the whole response with
invalid type: null, expected a sequence.

The consequence for this crate is not a degraded response, it is a role that
cannot function. Found on a Lean-specialised rung (labs-leanstral-1-5), where
every sub-agent delegation to that model failed with
serialization error: invalid type: null, expected a sequence while the model
itself was answering perfectly. Any agent placed on such a rung could not
complete a single turn.

Public API or behavior changes

None here. One behavior change inherited from the bump, pinned by a test
upstream: a body carrying "choices": null now fails with
Model("openai response contained no choices") rather than a serde error — the
provider fact a caller can act on, rather than the transport being named for a
body it read perfectly.

Validation

cargo check --workspace    ok

Upstream: cargo fmt --check ok, cargo clippy --all-targets -D warnings 0
warnings, cargo test -p tinyinference --lib 266 passed, three new tests for the
null shapes.

Summary by CodeRabbit

  • Maintenance
    • Updated the bundled inference component to a newer revision.
    • No user-facing features or behavior changes.

Several OpenAI-compatible endpoints spell "no tool calls" as
"tool_calls": null rather than by omitting the key, and Mistral-family
models do it on every plain-text completion. #[serde(default)] covers only
an absent key, so such a response failed the whole decode with
"invalid type: null, expected a sequence" — a model that simply answered
in prose surfaced to the harness as a transport fault.

Any agent on such a rung could not complete a single turn. Found on a
Lean-specialised model, where a sub-agent delegation failed 100% of the
time.

tinyhumansai/tinyinference#4.

Co-authored-by: Medulla <medulla@tinyhumans.ai>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 31, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-31T13:12:12.056801Z 41445cb PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@tinysweeper tinysweeper Bot added the priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. label Aug 31, 2026

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

tinysweeper found nothing blocking. Approving.

$0.0002 · 1,785 in / 335 out · 0 cached (0%) · 11 embedded · deepseek/deepseek-v4-flash, openrouter/openai/text-embedding-3-small

@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 0f05c0f5-aa5b-4a5b-ae43-ed62c346718a

📥 Commits

Reviewing files that changed from the base of the PR and between a538888 and 41445cb.

📒 Files selected for processing (1)
  • vendor/tinyinference

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The PR updates the vendor/tinyinference submodule reference from one commit to another.

Changes

Tinyinference update

Layer / File(s) Summary
Update submodule reference
vendor/tinyinference
The submodule now references commit dbf7897e8752a395c376fec563c12552b19032bf.

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

Merge Risk: ⚪ Minimal · up to 41445

This localized dependency update makes OpenAI-compatible responses with null tool-call sequences decode successfully without changing the public API; no actionable merge-blocking risk remains after normal checks and review.

Poem

A rabbit checks the pointer bright
Tinyinference hops in sight
One commit leaves, one takes its place
The vendor path keeps steady pace
Ears up for code, and carrots grace

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: updating tinyinference to use null-tolerant sequence decoding.
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…
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.
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.)

Warning

Your free Security trial is over. An organization admin can activate Security or dismiss this notice.


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

@senamakel
senamakel merged commit b27d716 into main Aug 31, 2026
9 checks passed
@senamakel
senamakel deleted the bump-tinyinference-null-sequences branch August 31, 2026 13:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant