Skip to content

Recover mixed DeepSeek DSML tool calls - #235

Merged
senamakel merged 1 commit into
mainfrom
issue/204
Sep 30, 2026
Merged

senamakel merged 1 commit into
mainfrom
issue/204

Conversation

@senamakel

Copy link
Copy Markdown
Member

Summary

Update the TinyTools parser submodule to recover tool calls inside an unterminated text <tool_call> when DeepSeek emits JSON arguments followed by DSML parameter name metadata. It also preserves calls that carry their name inside the JSON object and keeps prose after the DSML calls wrapper. Parsing JSON boundaries first means tag-like argument text such as </script> remains data.

The parser change is in tinyhumansai/tinytools#37; this PR updates the vendored TinyTools gitlink to that branch commit.

Closes #204

Validation

  • cargo fmt --check — passed
  • cargo build --workspace --all-targets — passed
  • cargo clippy --workspace --all-targets -- -D warnings — passed
  • cargo test --workspace — passed
  • cargo test --manifest-path vendor/tinytools/Cargo.toml -p tinytools-agent — passed (374 tests)
  • cargo clippy --manifest-path vendor/tinytools/Cargo.toml -p tinytools-agent --lib --all-features -- -D warnings — passed
  • cargo clippy --manifest-path vendor/tinytools/Cargo.toml -p tinytools-agent --all-targets --all-features -- -D warnings — blocked by the existing manual_assert_eq lint at crates/tinytools-agent/src/parse/test/regressions.rs:130; workspace clippy above passed

Scope

The recovery is limited to the malformed DeepSeek DSML name-parameter shape in the text <tool_call> parser. This does not add new diagnostics; upstream TinyAgents already handles diagnostics and bounded retries for unparsed text calls.

Updated the pinned commit for the tinytools vendored dependency to incorporate upstream changes.

Auto-committed-on: dragonfly
Co-authored-by: Medulla <medulla@tinyhumans.ai>
@coderabbitai

coderabbitai Bot commented Sep 30, 2026

Copy link
Copy Markdown

Warning

Review limit reached

  • Run on-demand review

This review includes 1 billable file and costs up to $0.25.

Or wait 1 minute for your next included review.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 58ed66b3-c780-454f-8ca0-8ea415ba4079

📥 Commits

Reviewing files that changed from the base of the PR and between 7a4e941 and 0f0d113.

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

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

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 30, 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-09-30T06:48:57.868421Z 0f0d113 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.

@senamakel
senamakel merged commit 8f58f33 into main Sep 30, 2026
9 checks passed
@tinysweeper

tinysweeper Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Tiny Sweeper review

Tiny Sweeper reviewed this change across 6 lane(s) and found 0 active actionable finding(s). Detailed lane evidence and any incomplete work are listed below.

State: Ready for maintainer review
Priority: none
Reviewed head: 0f0d113e9b3f
Updated: 1790751902 (Unix time)

Review snapshot

Change surface Files Review signal Count
Production 0 Active findings 0
Tests 0 Noted findings 0
Documentation 0 Resolved findings 0
Configuration 0 Pending checks/questions 0

Completeness: Complete
Test assessment: No supported feature-to-test mapping was available; this does not mean tests are absent or passed.

What changed

The review could not produce a supported behavioral summary; inspect the cited changed surface and lane details below.

Features

None identified with supported citations.

Tests

No supported feature-to-test mapping was produced. Test execution is not inferred.

Findings

No active actionable findings.

Before merge

None.

Agent review details

critique

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: No added or modified lines to review.

security

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: No added or modified lines to review.

tests

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: No added or modified lines to review.

commits

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: Nothing sensitive found in what this pull request commits.

description

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: No added or modified lines to review.

e2e

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: No added or modified lines to review.
Evidence and run details
  • Models: ladder/vectors
  • Spend: $0.000000
  • Tokens: 0 input · 0 output · 0 cached · 14 embedding
Head State Pass summary
0f0d113e9b3f ready for maintainer review 0 active finding(s), 0 resolved finding(s) (at 1790751902)

tinysweeper 0.1.0

@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.0000 · 0 in / 0 out · 14 embedded · ladder/vectors

@tinysweeper tinysweeper Bot added the priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. label Sep 30, 2026
@senamakel
senamakel deleted the issue/204 branch September 30, 2026 09:21
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.

DeepSeek DSML control tokens leak into text-dialect tool calls; the call is dropped without a diagnostic

1 participant