v0.8.19: desktop app upgrade flow improvements, monday.com OAuth fix - #7400
Merged
Conversation
waleedlatif1
commented
Sep 2, 2026
Collaborator
- fix(execution): keep terminal reconnect off runs a Sim run tool owns (fix(execution): keep terminal reconnect off runs a Sim run tool owns #7382)
- fix(monday): support OAuth 2.1 (fix(monday): support OAuth 2.1 #7384)
- improvement(docs): streamline API reference navigation (improvement(docs): streamline API reference navigation #7383)
- fix(files): index generated docs without compiling and fix the docx sandbox bundle (fix(files): index generated docs without compiling and fix the docx sandbox bundle #7386)
- feat(credential-groups): add personal MCP OAuth connections (feat(credential-groups): add personal MCP OAuth connections #7353)
- fix(workflow): preserve canvas and deploy modal behavior (fix(workflow): preserve canvas and deploy modal behavior #7392)
- feat(workflows): expose authenticated run subjects (feat(workflows): expose authenticated run subjects #7088)
- fix(agent): move advanced MCP option to bottom (fix(agent): move advanced MCP option to bottom #7389)
- fix(agent): ignore empty advanced MCP bindings (fix(agent): ignore empty advanced MCP bindings #7397)
- fix(desktop): harden update and quit flows (fix(desktop): harden update and quit flows #7395)
- chore(skills): remove dated patterns and redundancy from skill prompts (chore(skills): remove dated patterns and redundancy from skill prompts #7398)
- fix(billing): coerce COST_MULTIPLIER to a number before sandbox pricing (fix(billing): coerce COST_MULTIPLIER to a number before sandbox pricing #7399)
…7382) * fix(execution): keep terminal reconnect off runs a Sim run tool owns The terminal's reconnect effect treated "execution pointer present and the current execution id matches" as an orphaned run and claimed it. A Chat run tool creates exactly that state before the server has acknowledged the run, and opening the workflow tab in Chat re-runs the effect mid-run, so the reconnect GET raced the execute POST's buffer init, got a 404, and logged "Execution state is no longer available after reconnect" as a Run Error on a run that succeeded. It also tore down the live run's store state and cleared the pointer the tool keeps for reload recovery. The run tool now exposes its ownership (isRunToolActiveForWorkflow) and the reconnect effect skips a workflow whose run it owns, leaving the pointer in place. When the tool gives up an interrupted run it notifies subscribeToRunToolRelease subscribers and the hook re-arms its reconnect, so the terminal re-attaches from the last persisted event the way the manual run path already does on interruption. Runs the tool observed to completion never notify, so a failed completion report still leaves the pointer for bindRunToolToExecution to re-report after a reload. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * fix(execution): classify Chat stream drops and stop async launches writing a terminal pointer Only useExecutionStream.execute wrapped a transport failure as SSEStreamInterruptedError; executeWorkflowWithFullLogging rethrew the raw TypeError, so a mid-run network drop on the Chat run-tool path took the generic branch: the tool reported "error" to Sim, the confirm route marked the row failed, and the pointer was cleared while the server kept running the workflow. The classifier is now one exported helper (toStreamInterruptedError) used by both execute paths and by the shared executor's post-acknowledgement catch, so the run tool reaches its recoverable branch, reports "background", keeps the pointer, and releases the run to the terminal reconnect. Async launches wrote the terminal execution pointer only so bindRunToolToExecution would find something after a reload, but an async run has no reconnectable stream, so any reconnect against that pointer 404'd into the same synthetic Run Error. The tab-local pending completion report already carries the execution id, so async launches no longer touch the pointer and recovery answers from the pending report first, falling back to the pointer only for a live run this tab was observing. The legacy clearExecutionPointerAfterReport flag is still honoured for pointers older clients left behind. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * test(copilot): type the run-tool execution mocks with the real options contract Greptile flagged the new mock's `options: any`; the sibling abort test had the same shape. Export WorkflowExecutionOptions from the shared executor and use it in both, with a helper that fails the test if the run tool ever stops passing an abort signal. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * fix(execution): recognise Firefox's NetworkError form as a stream drop The transport-failure matcher only knew Chrome's "network error" with a space, so Firefox's "NetworkError when attempting to fetch resource." fell through as a plain failure. Now that every live stream shares this classifier, match the browsers' known messages as patterns and cover each form in the executor test. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * fix(execution): keep the stream-error predicates safe for nullish rejections isClientDisconnectError read error.name unguarded, so a stream that rejected with null or undefined would throw inside the catch and mask the original failure. Both predicates now take unknown and bail on non-object values; the executor test covers a nullish body-reader rejection. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * fix(execution): never classify the stream layer's own errors as transport drops An ExecutionStreamHttpError or SSEEventHandlerError whose message happened to contain a browser transport phrase ("Failed to fetch workflow state") would have been re-wrapped as a stream interruption, losing the HTTP status and taking the recovery path for a run that never started. The predicate now excludes the stream layer's typed errors before looking at message text. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* fix(monday): support OAuth 2.1 * fix(monday): address OAuth review feedback --------- Co-authored-by: Bill Leoutsakos <billleoutsakos@Bills-MacBook-Pro.local>
…andbox bundle (#7386) * fix(files): index generated docs without compiling and fix the docx sandbox bundle * fix(files): surface download aborts and sync the copilot artifact bucket to workers
* feat(credential-groups): add personal MCP OAuth connections * fix(credential-groups): update managed MCP test fixtures * fix(credential-groups): harden managed MCP lifecycle * chore(db): squash managed MCP migration * feat(mcp): add credential-scoped agent tools * feat(credential-groups): add managed MCP connector presets * chore: refresh PR merge state * test(openapi): include advanced MCP agent tool * test(mcp): align mocks with scoped execution * test(mcp): update managed connector fixtures
* feat(workflows): expose authenticated run subjects * fix(tests): use typed chat auth requests * fix(auth): harden subject delegation and cookies * fix(workflows): remove duplicate run email metadata
* fix(chat-deploy): restore output picker interactions * fix(pickers): restore modal interactions and surface workflows * fix(chat-deploy): surface child workflow outputs * fix(chat-deploy): distinguish subworkflow output navigation * fix(chat-deploy): keep selected outputs in place
* fix(desktop): harden update and quit flows * fix(desktop): fall back from invalid releases * fix(desktop): reject incomplete update feeds * fix(desktop): classify invalid release feeds
#7398) * chore(skills): remove dated patterns and redundancy from skill prompts * chore(skills): correct provider matrix and repo-specific claims from review
…ng (#7399) * fix(billing): coerce COST_MULTIPLIER to a number before sandbox pricing * fix(config): treat whitespace-only numeric env values as unset in envNumber
Contributor
|
Too many files changed for review (273 files, 100 file limit). Bypass the limit by tagging |
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.