1 · cline #14827 — tool calls built from partial argument deltas
- Issue: cline/cline#14827 — CLI
run_commandsreceives{"commands":[]}or fragments like{"commands":[":\""]}on the OpenAI-compatible route; the loop detector then aborts the run. Unclaimed, no PR, Linear CLINE-3548, reproduced by a second reporter on the nightly. - Evidence: the reporter captured 2,333 argument deltas behind a logging proxy — every stream concatenated to valid JSON, and the failure only appears on direct connections where chunk boundaries differ. The adapter emits per-delta events (
sdk/packages/core/src/services/llms/apihandler-agent-model-adapter.ts:49–64), the compat layer re-emits them astool_callschunks (sdk/packages/llms/src/providers/compat.ts:556–576), and the finalize path downstream repairs an incomplete object instead of waiting for the terminal frame. - Fix sketch: accumulate fragments per
toolCallIduntil the finish reason arrives; never materialise a call from a partial object; reject/recover instead of repairing into empty arguments; add a split-delta streaming test at the adapter boundary. - Gate: comment a reproduction plan and ask for approval; do not open the PR first (the two stalled PRs show what happens).