Skip to content

fix: drop cancelled tool calls, restore English router copy, prepare 0.4.4 - #17

Merged
TheStreamCode merged 3 commits into
mainfrom
fix/cancel-tool-calls-and-docs
Aug 2, 2026
Merged

fix: drop cancelled tool calls, restore English router copy, prepare 0.4.4#17
TheStreamCode merged 3 commits into
mainfrom
fix/cancel-tool-calls-and-docs

Conversation

@TheStreamCode

@TheStreamCode TheStreamCode commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Summary

Review pass over the extension: two user-facing fixes, a security hardening, the 0.4.4 version bump, and documentation that now matches
how the extension is actually distributed. No breaking changes; no public contract (setting ids, command ids,
vendor id, participant id, model ids) was touched.

Changes

  • fix(provider): cancelling a response mid-stream no longer emits half-assembled tool calls. Stopping the model
    while it was writing tool arguments could surface Chutes AI: invalid arguments returned for tool … on the
    truncated JSON, or hand VS Code a complete tool call the user had just cancelled. The provider now returns before
    the emit loop whenever the cancellation token fired or the request was aborted.
  • fix(models): the virtual Auto (router) picker entry still carried an Italian detail string
    (Auto · routing + fallback nativo); it is now English like every other user-facing string.
  • security(chat): Markdown metacharacters in API-provided usage labels are escaped in one pass, including
    backslashes and table separators. This addresses CodeQL alert js/incomplete-sanitization without changing output.
  • test: two offline regression tests. Each was verified to fail with the fix reverted and pass with it applied.
  • chore(release): 0.4.4 in package.json, package-lock.json (via npm version --no-git-tag-version patch)
    and CITATION.cff, plus the changelog entry.
  • docs: Open VSX badge and install path in the README — the same build is already published under the
    mikesoft namespace on open-vsx.org, so VSCodium and similar editors now have a documented route. Historical
    release dates backfilled in CHANGELOG.md from the release tags. AGENTS.md expanded with the stack/runtime
    baseline, a verified command table, the manual release and publishing procedure, branch-protection rules,
    compatibility rules, protected assets, environment-variable handling, and a definition of done.

Verification

  • npm run check passes — tsc --noEmit, oxlint --deny-warnings, prettier --check ., 28/28 offline tests,
    production bundle, vsce ls.
  • npm run vsixchutes-model-provider-vscode-0.4.4.vsix, 10 files, 29.89 KB, SHA-256 98E78346C787014F56BA11A8F88CA961D0166A2B0CD1B334EA91787DB9B234D4. Contents verified: only
    dist/extension.js, media/icon.png, package.json, README.md, CHANGELOG.md, LICENSE,
    THIRD_PARTY_NOTICES.md, CITATION.cff. Manifest reports version 0.4.4, publisher mikesoft.
  • Smoke tests: the production bundle exports activate/deactivate; the VSIX installs in an isolated VS Code 1.131.0 profile as mikesoft.chutes-model-provider-vscode@0.4.4.
  • npm audit — 0 vulnerabilities.
  • Every public README link and badge endpoint returns HTTP 200 via GET.
  • Manually verified in Extension Development Host — not done; the cancellation path is covered by the offline
    regression test instead.
  • Added regression tests for behavior changes
  • Updated user documentation and CHANGELOG.md
  • No new outbound endpoints

Privacy

None. No change to data flows, credential handling, or network behavior.

Risks and notes

  • The cancellation guard is reached only when the token is cancelled or the AbortController fired, so it cannot
    suppress tool calls from a normally completed stream.
  • @types/node stays on ^22 on purpose (the declared Node baseline); 26.x is available but out of scope here.
  • Tagging, the GitHub release and the Marketplace/Open VSX publish are not part of this PR: no publishing
    credential is available in this environment, and this project keeps tag ⟷ release ⟷ Marketplace ⟷ Open VSX in
    lockstep. After merge: git tag -a v0.4.4 -m v0.4.4 && git push origin v0.4.4, gh release create v0.4.4,
    then npx vsce publish and npx ovsx publish chutes-model-provider-vscode-0.4.4.vsix -p <token>.

🤖 Generated with Claude Code

TheStreamCode and others added 3 commits August 1, 2026 21:57
Stopping a response while the model was still streaming tool-call
arguments left the assembled fragments in place. The provider then either
threw "invalid arguments returned for tool ..." on the truncated JSON, or
handed VS Code a complete tool call the user had just cancelled. Bail out
before emitting whenever the token is cancelled or the request aborted.

The virtual Auto (router) entry also still carried an Italian detail
string in the model picker; every other user-facing string is English.

Both changes are covered by offline regression tests, each verified to
fail without its fix.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Bump to 0.4.4 across package.json, the lockfile and CITATION.cff, and add
the changelog entry for the two fixes above.

Documentation:
- Advertise Open VSX in the README badges and Quick Start. The same build
  is already published there under the mikesoft namespace, so VSCodium
  and other Open VSX editors now have a documented install path.
- Backfill the historical release dates in CHANGELOG.md from the release
  tags, so every entry is dated like 0.4.3.
- Expand AGENTS.md with the stack and runtime baseline, the verified
  command table, the manual release and publishing procedure, branch
  protection, compatibility rules, protected assets, environment-variable
  handling and a definition of done.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@TheStreamCode
TheStreamCode merged commit 5384bcd into main Aug 2, 2026
5 checks passed
@TheStreamCode
TheStreamCode deleted the fix/cancel-tool-calls-and-docs branch August 2, 2026 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant