Skip to content

🦋 New version release - #462

Merged
brentrager merged 1 commit into
mainfrom
changeset-release/main
Aug 18, 2026
Merged

🦋 New version release#462
brentrager merged 1 commit into
mainfrom
changeset-release/main

Conversation

@brentrager

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@smooai/smooth-operator@1.51.1

Patch Changes

  • f89f5a6: fix(dotnet): cancel discards a HITL-parked confirmation so the parked turn drops cleanly

    Cancelling a turn parked at a write-confirmation (HITL) freed the slot and emitted cancelled
    correctly, but left the parked Task lingering: the park awaits a bare TaskCompletionSource<bool>
    from ConfirmationRegistry.Register that is NOT linked to the per-turn cancellation token, so
    cancelling the CTS never completed that await. The parked task stayed alive (silently gagged by the
    Cancelled flag) until the next Register/disconnect evicted its pending confirmation.

    FrameDispatcher.TryCancelActiveTurn now discards the cancelled turn's pending confirmation
    (_confirmations.Resolve(turn.SessionId, approved: false)) after cancelling the CTS, so the parked
    await unblocks immediately (resolves denied; the result is dropped because the sink is gagged and
    _turn is already null). To reach the session id from the cancel path, ActiveTurn now carries a
    SessionId, stamped where the turn is created in HandleSendMessageAsync. Mirrors the Rust
    reference dropping the confirmation future on handle.abort(). No behavior change for a non-parked
    cancel or the no-active-turn no-op. An xUnit parity test drives a turn to write_confirmation_required,
    cancels it, and asserts cancelled is emitted, a later confirm_tool_action returns
    NO_PENDING_CONFIRMATION, the slot is freed, and no stray events leak from the abandoned turn.

@smooai/smooth-operator-web-chat-example@0.0.87

Patch Changes

  • Updated dependencies [f89f5a6]
    • @smooai/smooth-operator@1.51.1

@brentrager
brentrager merged commit c5e87a3 into main Aug 18, 2026
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