v0.6.19: vllm fixes, loading improevments, reactquery standardization, new gpt 5.4 models, fireworks provider support, launchdarkly, tailscale, extend integrations#3879
Conversation
waleedlatif1
commented
Apr 1, 2026
- fix(vllm): pass env.VLLM_API_KEY to chat requests (fix(vllm): pass env.VLLM_API_KEY to chat requests #3865)
- improvement(ui): fix nav loading flash, skeleton mismatches, and React anti-patterns across resource pages (improvement(ui): fix nav loading flash, skeleton mismatches, and React anti-patterns across resource pages #3864)
- feat(secrets-manager): add AWS Secrets Manager integration (feat(secrets-manager): add AWS Secrets Manager integration #3866)
- feat(infra): add dev environment support (feat(infra): add dev environment support #3867)
- improvement(workflows): replace Zustand workflow sync with React Query as single source of truth (improvement(workflows): replace Zustand workflow sync with React Query as single source of truth #3860)
- feat(tailscale): add Tailscale integration with 20 API operations (feat(tailscale): add Tailscale integration with 20 API operations #3868)
- feat(extend): add Extend AI document processing integration (feat(extend): add Extend AI document processing integration #3869)
- feat(models): add gpt-5.4-mini and gpt-5.4-nano (feat(models): add gpt-5.4-mini and gpt-5.4-nano #3871)
- feat(launchdarkly): add LaunchDarkly integration for feature flag management (feat(launchdarkly): add LaunchDarkly integration for feature flag management #3870)
- improvement(attio): validate integration, fix event bug, add missing tool and triggers (improvement(attio): validate integration, fix event bug, add missing tool and triggers #3872)
- fix(reorder): drag and drop hook (fix(reorder): drag and drop hook #3874)
- fix(chat): align floating chat send button colors with home/mothership chat (fix(chat): align floating chat send button colors with home/mothership chat #3876)
- fix(kb): chunking config persistence (fix(kb): chunking config persistence #3877)
- feat(providers): add Fireworks AI provider integration (feat(providers): add Fireworks AI provider integration #3873)
- improvement(triggers): add tags to all trigger.dev task invocations (improvement(triggers): add tags to all trigger.dev task invocations #3878)
…t anti-patterns across resource pages (#3864) * improvement(ui): fix nav loading flash, skeleton mismatches, and React anti-patterns across resource pages - Convert knowledge, files, tables, scheduled-tasks, and home page.tsx files from async server components to simple client re-exports, eliminating the loading.tsx flash on every navigation - Add client-side permission redirects (usePermissionConfig) to knowledge, files, and tables components to replace server-side checks - Fix knowledge loading.tsx skeleton column count (6→7) and tables loading.tsx (remove phantom checkbox column) - Fix connector document live updates: use isConnectorSyncingOrPending instead of status === 'syncing' so polling activates immediately after connector creation - Remove dead chunk-switch useEffect in ChunkEditor (redundant with key prop remount) - Replace useState+useEffect debounce with useDebounce hook in document.tsx - Replace useRef+useEffect URL init with lazy useState initializers in document.tsx and logs.tsx - Make handleToggleEnabled optimistic in document.tsx (cache first, onError rollback) - Replace mutate+new Promise wrapper with mutateAsync+try/catch in base.tsx - Fix schedule-modal.tsx: replace 15-setter useEffect with useState lazy initializers + key prop remount; wrap parseCronToScheduleType in useMemo - Fix logs search: eliminate mount-only useEffect with eslint-disable by passing initialQuery to useSearchState; parse query once via shared initialParsed state - Add useWorkspaceFileRecord hook to workspace-files.ts; refactor FileViewer to self-fetch - Fix value: any → value: string in useTagSelection and collaborativeSetTagSelection - Fix knowledge-tag-filters.tsx: pass '' instead of null when filters are cleared (type safety) * fix(kb): use active scope in useWorkspaceFileRecord to share cache with useWorkspaceFiles * fix(logs,kb,tasks): lazy-init useRef for URL param, add cold-path docs to useWorkspaceFileRecord, document key remount requirement in ScheduleModal * fix(files): redirect to files list when file record not found in viewer * revert(files): remove useEffect redirect from file-viewer, keep simple null return * fix(scheduled-tasks): correct useMemo dep from schedule?.cronExpression to schedule
* feat(secrets-manager): add AWS Secrets Manager integration * fix(secrets-manager): address PR review feedback - Conditional delete message based on forceDelete flag - Add binary secret detection in getSecretValue * fix(secrets-manager): handle boolean forceDelete and validate numeric inputs - Accept both string 'true' and boolean true for forceDelete - Guard parseInt results with isNaN check for maxResults and recoveryWindowInDays
* feat(infra): add dev environment support * fix(ci): push :dev ECR tag when building from dev branch * fix(feature-flags): simplify isHosted subdomain check * fix(ci,feature-flags): guard URL parse, fix dev AWS creds in images.yml
…y as single source of truth (#3860) * improvement(workflows): replace Zustand workflow sync with React Query as single source of truth * fix(workflows): address PR review feedback — sandbox execution, hydration deadlock, test mock, copy casing * lint * improvement(workflows): adopt skipToken over enabled+as-string for type-safe conditional queries * improvement(workflows): remove dead complexity, fix mutation edge cases - Throw on state PUT failure in useCreateWorkflow instead of swallowing - Use Map for O(1) lookups in duplicate/export loops (3 hooks) - Broaden invalidation scope in update/delete mutations to lists() - Switch workflow-block to useWorkflowMap for direct ID lookup - Consolidate use-workflow-operations to single useWorkflowMap hook - Remove workspace transition guard (sync body, unreachable timeout) - Make switchToWorkspace synchronous (remove async/try-catch/finally) * fix(workflows): resolve cold-start deadlock on direct URL navigation loadWorkflowState used hydration.workspaceId (null on cold start) to look up the RQ cache, causing "Workflow not found" even when the workflow exists in the DB. Now falls back to getWorkspaceIdFromUrl() and skips the cache guard when the cache is empty (letting the API fetch proceed). Also removes the redundant isRegistryReady guard in workflow.tsx that blocked setActiveWorkflow when hydration.workspaceId was null. * fix(ui): prevent flash of empty state while workflows query is pending Dashboard and EmbeddedWorkflow checked workflow list length before the RQ query resolved, briefly showing "No workflows" or "Workflow not found" on initial load. Now gates on isPending first. * fix(workflows): address PR review — await description update, revert state PUT throw - api-info-modal: use mutateAsync for description update so errors are caught by the surrounding try/catch instead of silently swallowed - useCreateWorkflow: revert state PUT to log-only — the workflow is already created in the DB, throwing rolls back the optimistic entry and makes it appear the creation failed when it actually succeeded * move folders over to react query native, restructure passage of data * pass signal correctly * fix types * fix workspace id * address comment * soft deletion accuring --------- Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
* feat(extend): add Extend AI document processing integration * fix(extend): cast json response to fix type error * fix(extend): correct API request body structure per Extend docs * fix(extend): address PR review comments * fix(extend): sync integrations.json bgColor to #000000 * lint
…agement (#3870) * feat(launchdarkly): add LaunchDarkly integration for feature flag management * fix(launchdarkly): guard empty instructions array, trim apiKey in auth header * lint
…tool and triggers (#3872) * improvement(attio): validate integration, fix event bug, add missing tool and triggers * fix(attio): wire new trigger extractors into dispatcher, trim targetUrl Add extractAttioListData and extractAttioWorkspaceMemberData dispatch branches in utils.server.ts so the four new triggers return correct outputs instead of falling through to generic extraction. Also add missing .trim() on targetUrl in update_webhook. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* fix(reorder): drag and drop hook * fix custom tool dropdown color * fix mcp server url change propagation
* fix(kb): persist chunking config correctly * fix kb config as sot * remove dead code * fix doc req bodies * add defaults for async for legacy docs
* feat(providers): add Fireworks AI provider integration * fix(providers): remove unused logger and dead modelInfo from fireworks * lint * feat(providers): add Fireworks BYOK support and official icon * fix(providers): add workspace membership check and remove shared fetch cache for fireworks models
…3878) * improvement(triggers): add tags to all trigger.dev task invocations * fix(triggers): prefix unused type param in buildTags * fix(triggers): remove unused type param from buildTags
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryMedium Risk Overview Adds new backend endpoints: Fireworks model listing ( Standardizes workflow metadata reads away from Zustand as a source of truth toward React Query caches across the workspace UI (home/mothership, logs, sandbox hydration, mentions, resource registry), including new cache invalidation helpers and workspace-scope sync. Also adjusts file/knowledge pages to be client-driven for permission gating and refines knowledge-base upload/processing options (chunking config moved out of request payloads) with small UX fixes. Infra/ops updates: CI and image workflows now run on Written by Cursor Bugbot for commit dcebe3a. Configure here. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 3 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
