Skip to content

v0.6.91: file zoom, Zoom KB connector, error classifications, LiteLLM support, executor code cleanup#4743

Merged
waleedlatif1 merged 10 commits into
mainfrom
staging
May 26, 2026
Merged

v0.6.91: file zoom, Zoom KB connector, error classifications, LiteLLM support, executor code cleanup#4743
waleedlatif1 merged 10 commits into
mainfrom
staging

Conversation

@waleedlatif1
Copy link
Copy Markdown
Collaborator

@waleedlatif1 waleedlatif1 commented May 26, 2026

waleedlatif1 and others added 4 commits May 26, 2026 10:10
…resh token rotation (#4735)

* feat(zoom): add KB connector for cloud recording transcripts, fix refresh token rotation

* fix(zoom): trim maxRecordings within page, relax VTT cue-id parsing

* fix(zoom): widen incremental sync overlap to 30 days for late transcripts
* feat: add LiteLLM as AI gateway provider

* fix: add litellm to attachments, provider store, utils, and block guards

* fix: add frontend model discovery pipeline for litellm provider

Add API route, contract, query hook case, and ProviderModelsLoader
entry so litellm models are fetched and synced to the store on
workspace load, matching the vllm/ollama/openrouter/fireworks pattern.

Also fixes defaultModel to empty string and adds litellm/ prefix
early-return in blocks/utils.ts (reviewer feedback).

* fix: remove azureEndpoint fallback from LiteLLM provider

Copy-paste artifact from vLLM provider. LiteLLM should only use
LITELLM_BASE_URL, not fall back to azureEndpoint which could cause
requests to be routed to the wrong server.

* fix(litellm): close audit gaps from PR #4644

- byok.ts: add litellm branch to getApiKeyWithBYOK so workflow
  block execution can resolve the proxy key instead of throwing
  "API key is required for litellm ..."
- check-api-validation-contracts.ts: bump route baseline 755 -> 756
  to account for the new /api/providers/litellm/models route
- .env.example: document LITELLM_BASE_URL / LITELLM_API_KEY
- copilot edit-workflow validation: include LiteLLM in the list of
  user-configured prefixed providers shown to the model
- providers/utils.ts: drop stray optional-chain on providers.litellm
  to match the vllm pattern
- lint: apply biome formatting fixes (multi-line if, SVG path,
  multi-line DYNAMIC_MODEL_PROVIDERS)

* fix(litellm): final parity gaps from second audit

- blocks/utils.ts getModelOptions(): include litellm models in the
  combined model dropdown — was previously dropping any
  proxy-discovered models from the agent block model picker.
- get-blocks-metadata-tool.ts mockProvidersState: add litellm bucket
  so the server-side copilot block-metadata fallback can render
  model options when the providers store is not initialized.
- blocks/utils.test.ts: add litellm to mock providers state (initial
  + beforeEach reset) and add a parallel store-bucket guard test
  mirroring the vLLM case.
- providers/utils.test.ts: add parallel getApiKey test for litellm.

* feat(litellm): use official LiteLLM brand icon and color

- icons.tsx: replace the placeholder letterform with the official
  LiteLLM brand mark embedded as a PNG data URI in an SVG image.
- models.ts: set color: #040229 on the litellm provider definition
  to match the brand background.

* chore(litellm): validate /v1/models response with shared schema in initialize()

Match the API route handler — both code paths now run the same
vllmUpstreamResponseSchema.parse() over the upstream /v1/models
JSON instead of a raw type-cast, so malformed upstream payloads
surface a descriptive ZodError instead of a downstream TypeError.

Addresses Greptile review feedback on PR #4739.

---------

Co-authored-by: RheagalFire <[email protected]>
…rrect HTTP status (#4740)

* fix(api): classify access-denied and sandbox user-code errors with correct HTTP status

* fix(api): gate typed-error message exposure behind publicMessage opt-in

* refactor(api): match NestJS/Spring convention for typed-error message exposure
* fix(files): zoom file viewer content, not the browser page

* fix(files): use effect lifecycle for SVG blob URL to survive strict mode
@vercel
Copy link
Copy Markdown

vercel Bot commented May 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Skipped Skipped May 26, 2026 10:58pm

Request Review

@cursor
Copy link
Copy Markdown

cursor Bot commented May 26, 2026

PR Summary

Medium Risk
Touches OAuth/token rotation, AI routing, HTTP error classification, and executor subflow/HITL paths—moderate blast radius but mostly additive fixes and integrations.

Overview
Release v0.6.91 bundles integrations, API behavior fixes, file-viewer UX, executor cleanup, and hosted API keys.

Zoom gains a knowledge-base connector for cloud recording transcripts, with refresh token rotation fixed so long-lived Zoom connections stay valid.

LiteLLM is added as an AI gateway provider, routing model calls through LiteLLM alongside existing gateways.

API errors now map access denied and sandbox user-code failures to the correct HTTP status codes instead of generic errors.

File preview zoom applies to viewer content (e.g. PDFs), not the whole browser page—addressing broken zoom on Zoom-related files.

The workflow executor sees subflow and human-in-the-loop handling refactors for clearer control flow.

Hosted keys add Hunter.io and People Data Labs so workspaces can use those enrichment APIs without bringing your own keys.

Reviewed by Cursor Bugbot for commit 2b8068c. Configure here.

Comment thread apps/sim/connectors/zoom/zoom.ts Fixed
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 26, 2026

Greptile Summary

This release bundles six distinct improvements: a Zoom KB connector for cloud recording transcripts, LiteLLM as an OpenAI-compatible AI gateway, HTTP 422 classification for user sandbox errors, SVG file viewer zoom fixes, executor/HITL subflow cleanup, and hosted-key support for Hunter.io and People Data Labs.

  • Zoom KB connector (connectors/zoom/zoom.ts): windowed cursor pagination over the Recordings API, VTT parsing, incremental sync with overlap, and a concurrent fix enabling Zoom OAuth refresh-token rotation (supportsRefreshTokenRotation: true).
  • LiteLLM provider (providers/litellm/): full OpenAI-compatible provider with streaming, tool-call iteration, forced-tool sequencing, and a server-side models discovery route.
  • Executor cleanup (executor/execution/): edge keys migrated from an ambiguous dash-delimited string to a JSON array, deactivatedEdges and nodesWithActivatedEdge now persisted into pause snapshots and restored on resume, HITL resume outputs propagated into loop/parallel aggregation buffers, and getBlockOutput scoping rewritten for nested parallel branches.

Confidence Score: 5/5

Safe to merge; all changed paths have matching tests and the refactoring is isolated to the executor and connector layers.

The executor refactoring is substantial but is paired with extensive test coverage across edge-manager, engine, executor, and orchestrator files. The new Zoom connector, LiteLLM provider, and Hunter/PDL hosted-key additions are additive and follow established patterns. The error-classification fix (422 vs 500) and OAuth token-rotation fix are small, targeted corrections with clear rationale.

No files require special attention; the snapshot migration in edge-manager.ts (normalizeSerializedEdgeKey) and the HITL aggregation buffer update in human-in-the-loop-manager.ts are the most complex additions but both are well-guarded.

Important Files Changed

Filename Overview
apps/sim/connectors/zoom/zoom.ts New Zoom KB connector for cloud recording transcripts; well-structured with windowed cursor pagination, VTT parsing, incremental sync support, and proper error handling.
apps/sim/providers/litellm/index.ts New LiteLLM AI gateway provider following the same pattern as other OpenAI-compatible providers; supports streaming, tool calls, forced tool sequencing, and cost tracking.
apps/sim/executor/execution/edge-manager.ts Significant refactoring: fixes ambiguous edge key format (string → JSON array), adds deactivatedEdges persistence/restoration, unifies loop/parallel sentinel detection via subflowType/subflowId.
apps/sim/executor/execution/executor.ts Adds edgeManager to buildExecutionPipeline, restores deactivatedEdges from snapshot, and registers cloned subflow parent maps for parallel branch resume correctness.
apps/sim/lib/workflows/executor/human-in-the-loop-manager.ts Adds updateResumeOutputInAggregationBuffers to propagate HITL resume outputs into loop and parallel aggregation scopes, fixing stale outputs in nested subflow contexts.
apps/sim/executor/execution/state.ts Rewrites getBlockOutput scoping logic to correctly resolve outputs across nested parallel branches using extractOuterBranchIndex and branch/loop suffix matching.
apps/sim/app/api/function/execute/route.ts Changes user sandbox code errors from HTTP 500 to 422 for correct error classification; 422 is semantically appropriate for user code execution failures.
apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/preview-panel.tsx Replaces sandboxed iframe with blob-URL img for SVG preview; properly guards render with {blobUrl && ...} and revokes the URL on cleanup.
apps/sim/executor/execution/engine.ts Passes edgeManager to snapshot serializer, calls handleNodeCompletion before pause processing, and correctly handles PARALLEL_CONTINUE in the stop-after-block check.
apps/sim/executor/execution/snapshot-serializer.ts Serializes deactivatedEdges and nodesWithActivatedEdge into pause snapshots so they can be restored on resume.

Reviews (2): Last reviewed commit: "feat(hosted-keys): add Hunter.io and Peo..." | Re-trigger Greptile

Comment thread apps/sim/lib/core/utils/with-route-handler.ts
* improvement(subflows): orchestration consolidation

* address comments

* fix hitl cases

* address comments

* subflow results output extraction

* hitl fallback case

* more cleanup

* add test

* fix type issue

* add test case for hitl resume

* address comments

* fix test

* fix snapshot for nested subflows
* fix(files): attach wheel listener before paint and guard SVG src

* chore(deps): upgrade turbo to 2.9.14
@icecrasher321 icecrasher321 changed the title v0.6.91: file zoom, Zoom KB connector, error classifications, LiteLLM support v0.6.91: file zoom, Zoom KB connector, error classifications, LiteLLM support, executor code cleanup May 26, 2026
…plete-sanitization gap (#4745)

* fix(zoom): iteratively strip tags to close incomplete-sanitization gap

* test(zoom): cover iterative sanitization in transcript parser
…ping (#4746)

* improvement(api): use HttpError base class for typed-error status mapping

* chore(api): drop unreachable runtime check after HttpError instanceof guard
…ort (#4742)

* fix(db): disable statement_timeout for migrations

* fix(ci): route migration workflow through guarded migrate.ts

* feat(hosted-keys): add Hunter.io and People Data Labs hosted key support
@waleedlatif1
Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1
Copy link
Copy Markdown
Collaborator Author

@cursor review

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 2b8068c. Configure here.

@waleedlatif1 waleedlatif1 merged commit e532e0a into main May 26, 2026
15 checks passed
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.

4 participants