v0.6.91: file zoom, Zoom KB connector, error classifications, LiteLLM support, executor code cleanup#4743
Conversation
…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 <arishalam121@gmail.com>
…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
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryMedium Risk Overview 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. |
Greptile SummaryThis 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.
Confidence Score: 5/5Safe 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
Reviews (2): Last reviewed commit: "feat(hosted-keys): add Hunter.io and Peo..." | Re-trigger Greptile |
* 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
…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
|
@greptile |
|
@cursor review |
There was a problem hiding this comment.
✅ 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.
Uh oh!
There was an error while loading. Please reload this page.