mirror of
https://github.com/simstudioai/sim.git
synced 2026-04-28 03:00:29 -04:00
4d3da794d8a63bec9b68501ee5ed6e3d79e84e85
148 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
5fba724818 | chore(bun): bump bun to 1.3.13 (#4291) | ||
|
|
5f0f0edd63 |
improvement(repo): separate realtime into separate app (#4262)
* improvement(repo): restructuring to make realtime image narrower scoped * improvements * chore(repo): rebase fixes and quality improvements for realtime split Addresses merge-time issues and gaps from the realtime app split: - Retarget stale vi.mock paths to @sim/workflow-persistence/subblocks - Restore README branding, fix AGENTS.md script reference - Restore TSDoc on workflow-persistence subblocks helpers - Use toError() from @sim/utils/errors in save.ts - Add vitest config + local mocks so @sim/audit tests run standalone - Move socket.io-client to devDependencies in apps/realtime - Add missing package COPY steps to docker/app.Dockerfile - Add check:boundaries/check:realtime-prune scripts and wire into CI Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * refactor(security): consolidate crypto primitives into @sim/security Move general-purpose crypto primitives out of apps/sim into the @sim/security package so both apps/sim and apps/realtime can share them. @sim/security exports (all pure, dependency-free): ./compare safeCompare (constant-time HMAC-wrapped equality) ./encryption encrypt/decrypt (AES-256-GCM, iv:cipher:tag format) ./hash sha256Hex ./tokens generateSecureToken (base64url) Migrate apps/sim call sites to use these + @sim/utils helpers: crypto.randomUUID() -> generateId() from @sim/utils/id createHash('sha256').digest -> sha256Hex timingSafeEqual on hashed hex -> safeCompare new Promise(setTimeout) -> sleep from @sim/utils/helpers No behavior change: encryption format, digest output, and token length are preserved exactly. * refactor(copilot): use toError in remaining otel/finalize sites Replace the last two `error instanceof Error ? error : new Error(String(error))` patterns with toError from @sim/utils/errors. Completes the sweep of clean candidates — no behavior change. * refactor(security): consolidate HMAC-SHA256 primitives into @sim/security Adds hmacSha256Hex and hmacSha256Base64 to @sim/security/hmac and migrates 15 webhook providers plus 5 other hot paths (deployment token signing, outbound webhook requests, workspace notification delivery, notification test route, Shopify OAuth callback) off bare `createHmac` calls. Secret parameter accepts `string | Buffer` to cover base64-decoded Svix-style secrets (Resend) and MS Teams' HMAC scheme. AWS SigV4 signing in S3 and Textract tools intentionally retains direct `createHmac` usage — its multi-step key derivation chain doesn't fit a generic helper. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore(packages): post-audit test + packaging polish - Add safeCompare unit tests (identity, length mismatch, hex-nibble diff). - Add Buffer-secret cases to hmac tests to lock in Svix/MS-Teams contract. - Declare `reactflow` as a peerDependency on @sim/workflow-types — only used for type imports. - Add a barrel export to @sim/workflow-persistence for consumers that prefer package-level imports; subpath exports retained. - Document the data-field invariant in load.ts for loop/parallel subflow patching. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore(realtime): address PR review feedback - Remove redundant SOCKET_PORT=3002 env from Dockerfile runner stage (env.PORT already defaults to 3002 via zod schema). - Reorder PORT fallback so an explicitly-set SOCKET_PORT wins over the schema default for PORT; keeps SOCKET_PORT functional as an override instead of dead code. - Add dedicated type-check CI step for @sim/realtime so TS errors surface pre-deploy (the Dockerfile runs source TS via Bun and has no implicit build-time type check). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore(realtime): remove unused SOCKET_PORT env var SOCKET_PORT has lived in the socket server since the June 2025 refactor but was never actually set in any deploy config — docker-compose.prod, helm values/templates, .env.example, and docs all use PORT or the 3002 default exclusively. No self-hoster was ever pointed at SOCKET_PORT, so removing it is safe. Simplifies realtime port resolution to `env.PORT` (zod-validated with a 3002 default) and drops the orphaned sim-side schema entry. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Waleed Latif <walif6@gmail.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
0aeab026a8 | feat(observability): add mothership tracing (#4253) | ||
|
|
45bf396968 |
fix(deps): bump drizzle-orm 0.45.2 + adopt MCP SDK 1.25.3 native types (#4252)
* fix(deps): bump drizzle-orm to 0.45.2 (GHSA-gpj5-g38j-94v9) Resolves Dependabot alert #98. Drizzle ORM <0.45.2 improperly escaped quoted SQL identifiers, allowing SQL injection via untrusted input passed to APIs like sql.identifier() or .as(). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore(mcp): adopt native SDK types after @modelcontextprotocol/sdk 1.25.3 bump Replace hand-written schema/annotation shapes with the SDK's exported Tool, JSONRPCResultResponse, and Tool['annotations'] types so changes upstream flow through automatically. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * refactor(types): use drizzle $inferSelect for row types Replace hand-written interfaces that duplicated schema shape with typeof table.$inferSelect aliases for webhook, workflow, and workspaceFiles rows. Also simplify metadata insert/update to use .returning() instead of field-by-field copies. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(uploads): fall through to INSERT if restore-deleted row races a hard delete If a hard delete races between the initial SELECT and the restore UPDATE, .returning() yields no row. Previously the function would return undefined and silently violate the Promise<FileMetadataRecord> contract. Now the function falls through to the INSERT path, which already handles uniqueness races via the 23505 catch. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore(uploads): align metadata.ts with global standards Replace dynamic uuid import with generateId() per @sim/utils/id convention, narrow the error catch off `any`, and convert the inline comment to TSDoc. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
9c1b0bc15f |
improvement(ui): remove anti-patterns, fix follow-up auto-scroll, move CopyCodeButton to emcn (#4148)
* improvement(ui): restore smooth streaming animation, fix follow-up auto-scroll, move CopyCodeButton to emcn * fix(ui): restore delayed animation, handle tilde fences, fix follow-up scroll root cause * fix(ui): extract useStreamingReveal to followup, keep cleanup changes * fix(ui): restore hydratedStreamingRef for reconnect path order-of-ops * fix(ui): restore full hydratedStreamingRef effect for reconnect path * fix(ui): use hover-hover prefix on CopyCodeButton callers to correctly override ghost variant * fix(logs): remove destructive color from cancel execution menu item * feat(logs): optimistic cancelling status on cancel execution * feat(logs): allow cancellation of pending (paused) executions * fix(hitl): cancel paused executions directly in DB Paused HITL executions are idle in the DB — they don't poll Redis or run in-process, so the existing cancel signals had no effect. The DB status stayed 'pending', causing the optimistic 'cancelling' update to revert on refetch. - Add PauseResumeManager.cancelPausedExecution: atomically sets paused_executions.status and workflow_execution_logs.status to 'cancelled' inside a FOR UPDATE transaction - Guard enqueueOrStartResume against resuming a cancelled execution - Include pausedCancelled in the cancel route success check * upgrade turbo * test(hitl): update cancel route tests for paused execution cancellation - Mock PauseResumeManager.cancelPausedExecution to prevent DB calls - Add pausedCancelled to all expected response objects - Add test for HITL paused execution cancellation path - Add missing auth/authz tests - Switch to vi.hoisted pattern for all mocks * fix(hitl): set endedAt when cancelling paused execution Without endedAt, the logs API running filter (isNull(endedAt)) would keep cancelled paused executions in the running view indefinitely. * fix(hitl): emit execution:cancelled event to canvas when cancelling paused execution Paused HITL executions have no active SSE stream, so the canvas never received the cancellation event. Now writes execution:cancelled to the event buffer and updates the stream meta so the canvas reconnect path picks it up and shows 'Execution Cancelled'. * fix(hitl): isolate cancelPausedExecution failure from successful cancellation Wrap cancelPausedExecution in try/catch so a DB error does not mask a prior successful Redis or in-process cancellation. Also move the resource-collapse side effect in home.tsx to a useEffect to avoid the stale closure on the resources array. * fix(hitl): add .catch() to fire-and-forget event buffer calls in cancel route |
||
|
|
0abcc6e813 |
improvement(mothership): restructured stream, tool structures, code typing, file write/patch/append tools, timing issues (#4090)
* fix build error * improvement(mothership): new agent loop (#3920) * feat(transport): replace shared chat transport with mothership-stream module * improvement(contracts): regenerate contracts from go * feat(tools): add tool catalog codegen from go tool contracts * feat(tools): add tool-executor dispatch framework for sim side tool routing * feat(orchestrator): rewrite tool dispatch with catalog-driven executor and simplified resume loop * feat(orchestrator): checkpoint resume flow * refactor(copilot): consolidate orchestrator into request/ layer * refactor(mothership): reorganize lib/copilot into structured subdirectories * refactor(mothership): canonical transcript layer, dead code cleanup, type consolidation * refactor(mothership): rebase onto latest staging * refactor(mothership): rename request continue to lifecycle * feat(trace): add initial version of request traces * improvement(stream): batch stream from redis * fix(resume): fix the resume checkpoint * fix(resume): fix resume client tool * fix(subagents): subagent resume should join on existing subagent text block * improvement(reconnect): harden reconnect logic * fix(superagent): fix superagent integration tools * improvement(stream): improve stream perf * Rebase with origin dev * fix(tests): fix failing test * fix(build): fix type errors * fix(build): fix build errors * fix(build): fix type errors * feat(mothership): add cli execution * fix(mothership): fix function execute tests * Force redeploy * feat(motheship): add docx support * feat(mothership): append * Add deps * improvement(mothership): docs * File types * Add client retry logic * Fix stream reconnect * Eager tool streaming * Fix client side tools * Security * Fix shell var injection * Remove auto injected tasks * Fix 10mb tool response limit * Fix trailing leak * Remove dead tools * file/folder tools * Folder tools * Hide function code inline * Dont show internal tool result reads * Fix spacing * Auth vfs * Empty folders should show in vfs * Fix run workflow * change to node runtime * revert back to bun runtime * Fix * Appends * Remove debug logs * Patch * Fix patch tool * Temp * Checkpoint * File writes * Fix * Remove tool truncation limits * Bad hook * replace react markdown with streamdown * Checkpoitn * fix code block * fix stream persistence * temp * Fix file tools * tool joining * cleanup subagent + streaming issues * streamed text change * Tool display intetns * Fix dev * Fix tests * Fix dev * Speed up dev ci * Add req id * Fix persistence * Tool call names * fix payload accesses * Fix name * fix snapshot crash bug * fix * Fix * remove worker code * Clickable resources * Options ordering * Folder vfs * Restore and mass delete tools * Fix * lint * Update request tracing and skills and handlers * Fix editable * fix type error * Html code * fix(chat): make inline code inherit parent font size in markdown headers Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * improved autolayout * durable stream for files * one more fix * POSSIBLE BREAKAGE: SCROLLING * Fixes * Fixes * Lint fix * fix(resource): fix resource view disappearing on ats (#4103) Co-authored-by: Theodore Li <theo@sim.ai> * Fixes * feat(mothership): add execution logs as a resource type Adds `log` as a first-class mothership resource type so copilot can open and display workflow execution logs as tabs alongside workflows, tables, files, and knowledge bases. - Add `log` to MothershipResourceType, all Zod enums, and VALID_RESOURCE_TYPES - Register log in RESOURCE_REGISTRY (Library icon) and RESOURCE_INVALIDATORS - Add EmbeddedLog and EmbeddedLogActions components in resource-content - Export WorkflowOutputSection from log-details for reuse in EmbeddedLog - Add log resolution branch in open_resource handler via new getLogById service - Include log id in get_workflow_logs response and extract resources from output - Exclude log from manual add-resource dropdown (enters via copilot tools only) - Regenerate copilot contracts after adding log to open_resource Go enum * Fix perf and message queueing * Fix abort * fix(ui): dont delete resource on clearing from context, set resource closed on new task (#4113) Co-authored-by: Theodore Li <theo@sim.ai> * improvement(mothership): structure sim side typing * address comments * reactive text editor tweaks * Fix file read and tool call name persistence bug * Fix code stream + create file opening resource * fix use chat race + headless trace issues * Fix type issue * Fix mothership block req lifecycle * Fix build * Move copy reqid * Fix * fix(ui): fix resource tag transition from home to task (#4132) Co-authored-by: Theodore Li <theo@sim.ai> * Fix persistence --------- Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai> Co-authored-by: Waleed Latif <walif6@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Theodore Li <theo@sim.ai> Co-authored-by: Theodore Li <theodoreqili@gmail.com> |
||
|
|
85f1d96859 |
feat(ee): enterprise feature flags, permission group platform controls, audit logs ui, delete account (#4115)
* feat(ee): enterprise feature flags, permission group platform controls, audit logs ui, delete account * fix(settings): improve sidebar skeleton fidelity and fix credit purchase org cache invalidation - Bump skeleton icon and text from 16/14px to 24px to better match real nav item visual weight - Add orgId support to usePurchaseCredits so org billing/subscription caches are invalidated on credit purchase, matching the pattern used by useUpgradeSubscription - Polish ColorInput in whitelabeling settings with auto-prefix and select-on-focus UX * revert(settings): remove delete account feature * fix(settings): address pr review — atomic autoAddNewMembers, extract query hook, fix types and signal forwarding * chore(helm): add CREDENTIAL_SETS_ENABLED to values.yaml * fix(access-control): dynamic platform category columns, atomic permission group delete * fix(access-control): restore triggers section in blocks tab * fix(access-control): merge triggers into tools section in blocks tab * upgrade tubro * fix(access-control): fix Select All state when config has stale blacklisted provider IDs * fix(access-control): derive platform Select All from features list; revert turbo schema version * fix(access-control): fix blocks Select All check, filter empty platform columns * revert(settings): restore original skeleton icon and text sizes |
||
|
|
2504bfbaf8 |
feat(athena): add AWS Athena integration (#4034)
* feat(athena): add AWS Athena integration * fix(athena): address PR review comments - Fix variable shadowing: rename inner `data` to `rowData` in row mapper - Fix first-page maxResults off-by-one: request maxResults+1 to compensate for header row - Add missing runtime guard for queryString in create_named_query - Move athena registry entries to correct alphabetical position * fix(athena): alphabetize registry keys and add type re-exports - Reorder athena_* registry keys to strict alphabetical order - Add type re-exports from index.ts barrel * fix(athena): cap maxResults at 999 to prevent overflow with header row adjustment The +1 adjustment for the header row on first-page requests could produce MaxResults=1001 when user requests 1000, exceeding the AWS API hard cap of 1000. |
||
|
|
42fb434354 |
fix(encryption): specify authTagLength on all AES-GCM cipher/decipher calls (#3883)
* fix: specify authTagLength in AES-GCM decipheriv calls Fixes missing authTagLength parameter in createDecipheriv calls using AES-256-GCM mode. Without explicit tag length specification, the application may be tricked into accepting shorter authentication tags, potentially allowing ciphertext spoofing. CWE-310: Cryptographic Issues (gcm-no-tag-length) * fix: specify authTagLength on createCipheriv calls for AES-GCM consistency Complements #3881 by adding explicit authTagLength: 16 to the encrypt side as well, ensuring both cipher and decipher specify the tag length. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: clean up crypto modules - Fix error: any → error: unknown with proper type guard in encryption.ts - Eliminate duplicate iv.toString('hex') calls in both encrypt functions - Remove redundant string split in decryptApiKey (was splitting twice) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * new turborepo version --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Lakee Sivaraya <71339072+lakeesiv@users.noreply.github.com> Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai> Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com> Co-authored-by: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com> Co-authored-by: NLmejiro <kuroda.k1021@gmail.com> |
||
|
|
7d4dd26760 |
fix(knowledge): fix document processing stuck in processing state (#3857)
* fix(knowledge): fix document processing stuck in processing state * fix(knowledge): use Promise.allSettled for document dispatch and fix Copilot OAuth context - Change Promise.all to Promise.allSettled in processDocumentsWithQueue so one failed dispatch doesn't abort the entire batch - Add writeOAuthReturnContext before showing LazyOAuthRequiredModal from Copilot tools so useOAuthReturnForWorkflow can handle the return - Add consumeOAuthReturnContext on modal close to clean up stale context * fix(knowledge): fix type error in useCredentialRefreshTriggers call Pass empty string instead of undefined for connectorProviderId fallback to match the hook's string parameter type. * upgrade turbo * fix(knowledge): fix type error in connectors-section useCredentialRefreshTriggers call Same string narrowing fix as add-connector-modal — pass empty string fallback for providerId. |
||
|
|
8a481b612d |
chore(config): clean up bun, turbo, and next.js config (#3788)
* chore(config): clean up bun, turbo, and next.js config * chore(ci): bump bun to 1.3.11 in dockerfiles and workflows |
||
|
|
951c8fd5e9 |
feat(integrations): add integrationType and tags classification to all blocks (#3702)
* feat(integrations): add integrationType and tags classification to all blocks * improvement(integrations): replace generic api/oauth tags with use-case-oriented tags * lint * upgrade turbo |
||
|
|
8837f14194 |
feat(home): expand template examples with 83 categorized templates (#3592)
* feat(home): expand template examples with 83 categorized templates - Extract template data into consts.ts with rich categorization (category, modules, tags) - Expand from 6 to 83 templates across 7 categories: sales, support, engineering, marketing, productivity, operations - Add show more/collapse UI with category groupings for non-featured templates - Add connector-powered knowledge search templates (Gmail, Slack, Notion, Jira, Linear, Salesforce, etc.) - Add platform-native templates (document summarizer, bulk data classifier, knowledge assistant, etc.) - Optimize prompts for mothership execution with explicit resource creation and integration names - Add tags field for future cross-cutting filtering by persona, pattern, and domain - React 19.2.1 → 19.2.4 upgrade * fix(home): remove WhatsApp customer notifications template * fix(home): add aria-expanded to toggle button, skip popular in expanded view * fix(home): fix category display order, add aria-label to template cards |
||
|
|
5b9f0d73c2 |
feat(mothership): mothership (#3411)
* Fix lint * improvement(sidebar): loading * fix(sidebar): use client-generated UUIDs for stable optimistic updates (#3439) * fix(sidebar): use client-generated UUIDs for stable optimistic updates * fix(folders): use zod schema validation for folder create API Replace inline UUID regex with zod schema validation for consistency with other API routes. Update test expectations accordingly. * fix(sidebar): add client UUID to single workflow duplicate hook The useDuplicateWorkflow hook was missing newId: crypto.randomUUID(), causing the same temp-ID-swap issue for single workflow duplication from the context menu. * fix(folders): avoid unnecessary Set re-creation in replaceOptimisticEntry Only create new expandedFolders/selectedFolders Sets when tempId differs from data.id. In the common happy path (client-generated UUIDs), this avoids unnecessary Zustand state reference changes and re-renders. * Mothership block logs * Fix mothership block logs * improvement(knowledge): make connector-synced document chunks readonly (#3440) * improvement(knowledge): make connector-synced document chunks readonly * fix(knowledge): enforce connector chunk readonly on server side * fix(knowledge): disable toggle and delete actions for connector-synced chunks * Job exeuction logs * Job logs * fix(connectors): remove unverifiable requiredScopes for Linear connector * fix(connectors): remove legacy requiredScopes from Jira and Confluence connectors Jira and Confluence OAuth tokens don't return legacy scope names like read:jira-work or read:confluence-content.all, causing the 'Update access' banner to always appear. Set requiredScopes to empty array like Linear. * feat(tasks): add rename to task context menu (#3442) * Revert "fix(connectors): remove legacy requiredScopes from Jira and Confluence connectors" This reverts commit |
||
|
|
ae887185a1 | fix(memory): upgrade bun from 1.3.9 to 1.3.10 (#3441) | ||
|
|
fcdcaed00d |
fix(memory): add Bun.gc, stream cancellation, and unconsumed fetch drains (#3416)
* fix(memory): add Bun.gc, stream cancellation, and unconsumed fetch drains * fix(memory): await reader.cancel() and use non-blocking Bun.gc * fix(memory): update Bun.gc comment to match non-blocking call * fix(memory): use response.body.cancel() instead of response.text() for drains * fix(executor): flush TextDecoder after streaming loop for multi-byte chars * fix(memory): use text() drain for SecureFetchResponse which lacks body property * fix(chat): prevent premature isExecuting=false from killing chat stream The onExecutionCompleted/Error/Cancelled callbacks were setting isExecuting=false as soon as the server-side SSE stream completed. For chat executions, this triggered a useEffect in chat.tsx that cancelled the client-side stream reader before it finished consuming buffered data — causing empty or partial chat responses. Skip the isExecuting=false in these callbacks for chat executions since the chat's own finally block handles cleanup after the stream is fully consumed. * fix(chat): remove useEffect anti-pattern that killed chat stream on state change The effect reacted to isExecuting becoming false to clean up streams, but this is an anti-pattern per React guidelines — using state changes as a proxy for events. All cleanup cases are already handled by proper event paths: stream done (processStreamingResponse), user cancel (handleStopStreaming), component unmount (cleanup effect), and abort/error (catch block). * fix(servicenow): remove invalid string comparison on numeric offset param * upgrade turborepo |
||
|
|
2c79d0249f |
improvement(executor): support nested loops/parallels (#3398)
* feat(executor): support nested loop DAG construction and edge wiring Wire inner loop sentinel nodes into outer loop sentinel chains so that nested loops execute correctly. Resolves boundary-node detection to use effective sentinel IDs for nested loops, handles loop-exit edges from inner sentinel-end to outer sentinel-end, and recursively clears execution state for all nested loop scopes between iterations. NOTE: loop-in-loop nesting only; parallel nesting is not yet supported. Made-with: Cursor * feat(executor): add nested loop iteration context and named loop variable resolution Introduce ParentIteration to track ancestor loop state, build a loopParentMap during DAG construction, and propagate parent iterations through block execution and child workflow contexts. Extend LoopResolver to support named loop references (e.g. <loop1.index>) and add output property resolution (<loop1.result>). Named references use the block's display name normalized to a tag-safe identifier, enabling blocks inside nested loops to reference any ancestor loop's iteration state. NOTE: loop-in-loop nesting only; parallel nesting is not yet supported. Made-with: Cursor * feat(terminal): propagate parent iteration context through SSE events and terminal display Thread parentIterations through SSE block-started, block-completed, and block-error events so the terminal can reconstruct nested loop hierarchies. Update the entry tree builder to recursively nest inner loop subflow nodes inside their parent iteration rows, using parentIterations depth-stripping to support arbitrary nesting depth. Display the block's store name for subflow container rows instead of the generic "Loop" / "Parallel" label. Made-with: Cursor * feat(canvas): allow nesting subflow containers and prevent cycles Remove the restriction that prevented subflow nodes from being dragged into other subflow containers, enabling loop-in-loop nesting on the canvas. Add cycle detection (isDescendantOf) to prevent a container from being placed inside one of its own descendants. Resize all ancestor containers when a nested child moves, collect descendant blocks when removing from a subflow so boundary edges are attributed correctly, and surface all ancestor loop tags in the tag dropdown for blocks inside nested loops. Made-with: Cursor * feat(agent): add MCP server discovery mode for agent tool input (#3353) * feat(agent): add MCP server discovery mode for agent tool input * fix(tool-input): use type variant for MCP server tool count badge * fix(mcp-dynamic-args): align label styling with standard subblock labels * standardized inp format UI * feat(tool-input): replace MCP server inline expand with drill-down navigation * feat(tool-input): add chevron affordance and keyboard nav for MCP server drill-down * fix(tool-input): handle mcp-server type in refresh, validation, badges, and usage control * refactor(tool-validation): extract getMcpServerIssue, remove fake tool hack * lint * reorder dropdown * perf(agent): parallelize MCP server tool creation with Promise.all * fix(combobox): preserve cursor movement in search input, reset query on drilldown * fix(combobox): route ArrowRight through handleSelect, remove redundant type guards * fix(agent): rename mcpServers to mcpServerSelections to avoid shadowing DB import, route ArrowRight through handleSelect * docs: update google integration docs * fix(tool-input): reset drilldown state on tool selection to prevent stale view * perf(agent): parallelize MCP server discovery across multiple servers * improvement(tests): speed up unit tests by eliminating vi.resetModules anti-pattern (#3357) * improvement(tests): speed up unit tests by eliminating vi.resetModules anti-pattern - convert 51 test files from vi.resetModules/vi.doMock/dynamic import to vi.hoisted/vi.mock/static import - add global @sim/db mock to vitest.setup.ts - switch 4 test files from jsdom to node environment - remove all vi.importActual calls that loaded heavy modules (200+ block files) - remove slow mockConsoleLogger/mockAuth/setupCommonApiMocks helpers - reduce real setTimeout delays in engine tests - mock heavy transitive deps in diff-engine test test execution time: 34s -> 9s (3.9x faster) environment time: 2.5s -> 0.6s (4x faster) * docs(testing): update testing best practices with performance rules - document vi.hoisted + vi.mock + static import as the standard pattern - explicitly ban vi.resetModules, vi.doMock, vi.importActual, mockAuth, setupCommonApiMocks - document global mocks from vitest.setup.ts - add mock pattern reference for auth, hybrid auth, and database chains - add performance rules section covering heavy deps, jsdom vs node, real timers * fix(tests): fix 4 failing test files with missing mocks - socket/middleware/permissions: add vi.mock for @/lib/auth to prevent transitive getBaseUrl() call - workflow-handler: add vi.mock for @/executor/utils/http matching executor mock pattern - evaluator-handler: add db.query.account mock structure before vi.spyOn - router-handler: same db.query.account fix as evaluator * fix(tests): replace banned Function type with explicit callback signature * feat(databricks): add Databricks integration with 8 tools (#3361) * feat(databricks): add Databricks integration with 8 tools Add complete Databricks integration supporting SQL execution, job management, run monitoring, and cluster listing via Personal Access Token authentication. Tools: execute_sql, list_jobs, run_job, get_run, list_runs, cancel_run, get_run_output, list_clusters Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(databricks): throw on invalid JSON params, fix boolean coercion, add expandTasks field - Throw errors on invalid JSON in jobParameters/notebookParams instead of silently defaulting to {} - Always set boolean params explicitly to prevent string 'false' being truthy - Add missing expandTasks dropdown UI field for list_jobs operation * fix(databricks): align tool inputs/outputs with official API spec - execute_sql: fix wait_timeout default description (50s, not 10s) - get_run: add queueDuration field, update lifecycle/result state enums - get_run_output: fix notebook output size (5 MB not 1 MB), add logsTruncated field - list_runs: add userCancelledOrTimedout to state, fix limit range (1-24), update state enums - list_jobs: fix name filter description to "exact case-insensitive" - list_clusters: add PIPELINE_MAINTENANCE to ClusterSource enum * fix(databricks): regenerate docs to reflect API spec fixes --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * feat(luma): add Luma integration for event and guest management (#3364) * feat(luma): add Luma integration for event and guest management Add complete Luma (lu.ma) integration with 6 tools: get event, create event, update event, list calendar events, get guests, and add guests. Includes block configuration with wandConfig for timestamps/timezones/durations, advanced mode for optional fields, and generated documentation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(luma): address PR review feedback - Remove hosts field from list_events transformResponse (not in LumaEventEntry type) - Fix truncated add_guests description by removing quotes that broke docs generator Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(luma): fix update_event field name and add_guests response parsing - Use 'id' instead of 'event_id' in update_event request body per API spec - Fix add_guests to parse entries[].guest response structure instead of flat guests array Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * feat(gamma): add gamma integration for AI-powered content generation (#3358) * feat(gamma): add gamma integration for AI-powered content generation * fix(gamma): address PR review comments - Make credits/error conditionally included in check_status response to avoid always-truthy objects - Replace full wordmark SVG with square "G" letterform for proper rendering in icon slots * fix(gamma): remove imageSource from generate_from_template endpoint The from-template API only accepts imageOptions.model and imageOptions.style, not imageOptions.source (image source is inherited from the template). * fix(gamma): use typed output in check_status transformResponse * regen docs * feat(greenhouse): add greenhouse integration for managing candidates, jobs, and applications (#3363) * feat(ashby): add ashby integration for candidate, job, and application management (#3362) * feat(ashby): add ashby integration for candidate, job, and application management * fix(ashby): auto-fix lint formatting in docs files * improvement(oauth): reordered oauth modal (#3368) * feat(loops): add Loops email platform integration (#3359) * feat(loops): add Loops email platform integration Add complete Loops integration with 10 tools covering all API endpoints: - Contact management: create, update, find, delete - Email: send transactional emails with attachments - Events: trigger automated email sequences - Lists: list mailing lists and transactional email templates - Properties: create and list contact properties Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ran litn --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * feat(resend): expand integration with contacts, domains, and enhanced email ops (#3366) * improvement(blocks): update luma styling and linkup field modes (#3370) * improvement(blocks): update luma styling and linkup field modes * improvement(fireflies): move optional fields to advanced mode * improvement(blocks): move optional fields to advanced mode for 10 integrations * improvement(blocks): move optional fields to advanced mode for 6 more integrations * feat(x): add 28 new X API v2 tool integrations and expand OAuth scopes (#3365) * feat(x): add 28 new X API v2 tool integrations and expand OAuth scopes * fix(x): add missing nextToken param to search tweets and fix XCreateTweetParams type * fix(x): correct API spec issues in retweeted_by, quote_tweets, personalized_trends, and usage tools * fix(x): add missing newestId and oldestId to error meta in get_liked_tweets and get_quote_tweets * fix(x): add missing newestId/oldestId to get_liked_tweets success branch and includes to XTweetListResponse * fix(x): add error handling to create_tweet and delete_tweet transformResponse * fix(x): add error handling and logger to all X tools * fix(x): revert block requiredScopes to match current operations * feat(x): update block to support all 28 new X API v2 tools * fix(x): add missing text output and fix hiddenResult output key mismatch * docs(x): regenerate docs for all 28 new X API v2 tools * improvement(docs): audit and standardize tool description sections, update developer count to 70k (#3371) * improvement(x): align OAuth scopes, add scope descriptions, and set optional fields to advanced mode (#3372) * improvement(x): align OAuth scopes, add scope descriptions, and set optional fields to advanced mode * improvement(skills): add typed JSON outputs guidance to add-tools, add-block, and add-integration skills * improvement(skills): add final validation steps to add-tools, add-block, and add-integration skills * fix(skills): correct misleading JSON array comment in wandConfig example * feat(skills): add validate-integration skill for auditing tools, blocks, and registry against API docs * improvement(skills): expand validate-integration with full block-tool alignment, OAuth scopes, pagination, and error handling checks * improvement(ci): add sticky disk caches and bump runner for faster builds (#3373) * improvement(selectors): make selectorKeys declarative (#3374) * fix(webflow): resolution for selectors * remove unecessary fallback' * fix teams selector resolution * make selector keys declarative * selectors fixes * improvement(selectors): consolidate selector input logic (#3375) * feat(google-contacts): add google contacts integration (#3340) * feat(google-contacts): add google contacts integration * fix(google-contacts): throw error when no update fields provided * lint * update icon * improvement(google-contacts): add advanced mode, error handling, and input trimming - Set mode: 'advanced' on optional fields (emailType, phoneType, notes, pageSize, pageToken, sortOrder) - Add createLogger and response.ok error handling to all 6 tools - Add .trim() on resourceName in get, update, delete URL builders * improvement(mcp): add all MCP server tools individually instead of as single server entry (#3376) * improvement(mcp): add all MCP server tools individually instead of as single server entry * fix(mcp): prevent remove popover from opening inadvertently * fix(sse): fix memory leaks in SSE stream cleanup and add memory telemetry (#3378) * fix(sse): fix memory leaks in SSE stream cleanup and add memory telemetry * improvement(monitoring): add SSE metering to wand, execution-stream, and a2a-message endpoints * fix(workflow-execute): remove abort from cancel() to preserve run-on-leave behavior * improvement(monitoring): use stable process.getActiveResourcesInfo() API * refactor(a2a): hoist resubscribe cleanup to eliminate duplication between start() and cancel() * style(a2a): format import line Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(wand): set guard flag on early-return decrement for consistency --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * improvement(ashby): validate ashby integration and update skill files (#3381) * improvement(luma): expand host response fields and harden event ID inputs (#3383) * improvement(resend): add error handling, authMode, and naming consistency (#3382) * fix(chat-deploy): fix launch chat popup and auth persistence, clean up React anti-patterns (#3380) * fix(chat-deploy): fix launch chat popup and auth persistence, clean up React anti-patterns * lint * fix(greenhouse): fix email_address query param, add .trim() to ID paths, revert onValidationChange to useEffect * fix(chat-deploy): fix stale AuthSelector state, stabilize refetch ref, clean up copy timeout * fix(chat-deploy): reset chatSuccess on modal open to prevent stuck state * improvement(loops): validate loops integration and update skill files (#3384) * improvement(loops): validate loops integration and update skill files * loops icon color * update databricks icon * fix(monitoring): set MemoryTelemetry logger to INFO level for production visibility (#3386) Production defaults to ERROR-only logging. Without this override, memory snapshots would be silently suppressed. * feat(integrations): add amplitude, google pagespeed insights, and pagerduty integrations (#3385) * feat(integrations): add amplitude and google pagespeed insights integrations * verified and regen docs * fix icons * fix(integrations): add pagerduty to tool and block registries Re-add registry entries that were reverted after initial commit. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * more updates * ack comemnts --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * feat(docs): add API reference with OpenAPI spec and auto-generated endpoint pages (#3388) * feat(docs): add API reference with OpenAPI spec and auto-generated endpoint pages * multiline curl * random improvements * cleanup * update docs copy * fix build * cast * fix builg --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Lakee Sivaraya <71339072+lakeesiv@users.noreply.github.com> Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai> Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com> * fix(icons): fix pagerduty icon (#3392) * improvement(executor): audit and harden nested loop/parallel implementation * improvement(executor): audit and harden nested loop/parallel implementation - Replace unsafe _childWorkflowInstanceId cast with typeof type guard - Reuse WorkflowNodeMetadata interface instead of inline type duplication - Rename _executeCore to executeCore (private, no underscore needed) - Add log warning when SSE callbacks are dropped beyond MAX_SSE_CHILD_DEPTH - Remove unnecessary onStream type assertion, use StreamingExecution type - Convert OUTPUT_PROPERTIES/KNOWN_PROPERTIES from arrays to Sets for O(1) lookup - Add type guard in loop resolver resolveOutput before casting - Add TSDoc to edgeCrossesLoopBoundary explaining original-ID usage - Add TSDoc to MAX_SSE_CHILD_DEPTH constant - Update ParentIteration TSDoc to reflect parallel nesting support - Type usageControl as union 'auto'|'force'|'none' in buildMcpTool - Replace (t: any) casts with typed objects in agent-handler tests - Add type guard in builder-data convertArrayItem - Make ctx required in clearLoopExecutionState (only caller always passes it) - Replace Math.random() with deterministic counter in terminal tests - Fix isWorkflowBlockType mock to actually check block types - Add loop-in-loop and workflow block tree tests * improvement(executor): audit fixes for nested subflow implementation - Fix findInnermostLoopForBlock/ParallelForBlock to return deepest nested container instead of first Object.keys() match - Fix isBlockInLoopOrDescendant returning false when directLoopId equals target (should return true) - Add isBlockInParallelOrDescendant with recursive nested parallel checking to match loop resolver behavior - Extract duplicated ~20-line iteration context building from loop/parallel orchestrators into shared buildContainerIterationContext utility - Remove inline import() type references in orchestrators - Remove dead executionOrder field from WorkflowNodeMetadata - Remove redundant double-normalization in findParallelBoundaryNodes - Consolidate 3 identical tree-walk helpers into generic hasMatchInTree - Add empty-array guards for Math.min/Math.max in terminal utils - Make KNOWN_PROPERTIES a Set in parallel resolver for consistency - Remove no-op handleDragEnd callback from toolbar - Remove dead result/results entries from KNOWN_PROPERTIES in loop resolver - Add tests for buildContainerIterationContext Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * finished * improvement(airtable): added more tools (#3396) * fix(layout): polyfill crypto.randomUUID for non-secure HTTP contexts (#3397) * feat(integrations): add dub.co integration (#3400) * feat(integrations): add dub.co integration * improvement(dub): add manual docs description and lint formatting fixes * lint * fix(dub): remove unsupported optional property from block outputs * fix(memory): fix O(n²) string concatenation and unconsumed fetch response leaks (#3399) * fix(monitoring): set MemoryTelemetry logger to INFO level for production visibility Production defaults to ERROR-only logging. Without this override, memory snapshots would be silently suppressed. * fix(memory): fix O(n²) string concatenation and unconsumed fetch response leaks * fix(tests): add text() mock to workflow-handler test fetch responses * fix(memory): remove unused O(n²) join in onStreamChunk callback * chore(careers): remove careers page, redirect to Ashby jobs portal (#3401) * chore(careers): remove careers page, redirect to Ashby jobs portal * lint * feat(integrations): add google meet integration (#3403) * feat(integrations): add google meet integration * lint * ack comments * ack comments * fix(terminal): deduplicate nested container entries in buildEntryTree Filter out container-typed block rows when matching nested subflow nodes exist, preventing nested loops/parallels from appearing twice (once as a flat block and once as an expandable subflow). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * improvement(executor): clean up nested subflow implementation - Fix wireSentinelEdges to use LOOP_EXIT handle for nested loop terminals - Extract buildExecutionPipeline to deduplicate orchestrator wiring - Replace two-phase init with constructor injection for Loop/ParallelOrchestrator - Remove dead code: shouldExecuteLoopNode, resolveForEachItems, isLoopNode, isParallelNode, isSubflowBlockType - Deduplicate currentItem resolution in ParallelResolver via resolveCurrentItem - Type getDistributionItems param as SerializedParallel instead of any - Demote verbose per-reference logger.info to logger.debug in evaluateWhileCondition - Add loop-in-parallel wiring test in edges.test.ts Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(test): update parallel resolver test to use distribution instead of distributionItems The distributionItems fallback was never part of SerializedParallel — it only worked through any typing. Updated the test to use the real distribution property. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(executor): skip loop back-edges in parallel boundary detection and update test findParallelBoundaryNodes now skips LOOP_CONTINUE back-edges when detecting terminal nodes, matching findLoopBoundaryNodes behavior. Without this, a nested loop's back-edge was incorrectly counted as a forward edge within the parallel, preventing terminal detection. Also updated parallel resolver test to use the real distribution property instead of the non-existent distributionItems fallback. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(executor): clean up cloned loop scopes in deleteParallelScopeAndClones When a parallel contains a nested loop, cloned loop scopes (__obranch-N) created by expandParallel were not being deleted, causing stale scopes to persist across outer loop iterations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(executor): remove dead fallbacks, fix nested loop boundary detection, restore executionOrder - Remove unreachable `?? candidateIds[0]` fallbacks in loop/parallel resolvers - Remove arbitrary first-match fallback scan in findEffectiveContainerId - Fix edgeCrossesLoopBoundary to use innermost loop detection for nested loops - Add warning log for missing branch outputs in parallel aggregation - Restore executionOrder on WorkflowNodeMetadata and pipe through child workflow notification - Remove dead sim-drag-subflow classList.remove call - Clean up cloned loop subflowParentMap entries in deleteParallelScopeAndClones Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * leftover * upgrade turborepo * update stagehand icon * fix(tag-dropdown): show contextual loop/parallel tags for deeply nested blocks findAncestorLoops only checked direct loop membership, missing blocks nested inside parallels within loops (and vice versa). Refactored to walk through both loop and parallel containers recursively, so a block inside a parallel inside a loop correctly sees the loop's contextual tags (index, currentItem) instead of the loop's output tags (results). Also fixed parallel ancestor detection to handle nested parallel-in-loop and loop-in-parallel scenarios, collecting all ancestor parallels instead of just the immediate containing one. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * testing * fixed dedicated logs * fix * fix(subflows): enable nested subflow interaction and execution highlighting Remove !important z-index overrides that prevented nested subflows from being grabbed/dragged independently. Z-index is now managed by ReactFlow's elevateNodesOnSelect and per-node zIndex: depth props. Also adds execution status highlighting for nested subflows in both canvas and snapshot preview. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(preview): add cycle guard to recursive subflow status derivation Prevents infinite recursion if subflowChildrenMap contains circular references by tracking visited nodes during traversal. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Lakee Sivaraya <71339072+lakeesiv@users.noreply.github.com> Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai> Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com> Co-authored-by: Vasyl Abramovych <vasyl.abramovych@gmail.com> |
||
|
|
fadbad4085 |
feat(confluence): add get user by account ID tool (#3345)
* feat(confluence): add get user by account ID tool * feat(confluence): add missing tools for tasks, blog posts, spaces, descendants, permissions, and properties Add 16 new Confluence operations: list/get/update tasks, update/delete blog posts, create/update/delete spaces, get page descendants, list space permissions, list/create/delete space properties. Includes API routes, tool definitions, block config wiring, OAuth scopes, and generated docs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(confluence): add missing OAuth scopes to auth.ts provider config The OAuth authorization flow uses scopes from auth.ts, not oauth.ts. The 9 new scopes were only added to oauth.ts and the block config but not to the actual provider config in auth.ts, causing re-auth to still return tokens without the new scopes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * lint * fix(confluence): fix truncated get_user tool description in docs Remove apostrophe from description that caused MDX generation to truncate at the escape character. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(confluence): address PR review feedback - Move get_user from GET to POST to avoid exposing access token in URL - Add 400 validation for missing params in space-properties create/delete - Add null check for blog post version before update to prevent TypeError Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(confluence): add missing response fields for descendants and tasks - Add type and depth fields to page descendants (from Confluence API) - Add body field (storage format) to task list/get/update responses Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * lint * fix(confluence): use validatePathSegment for Atlassian account IDs validateAlphanumericId rejects valid Atlassian account IDs that contain colons (e.g. 557058:6b9c9931-4693-49c1-8b3a-931f1af98134). Use validatePathSegment with a custom pattern allowing colons instead. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ran lint * update mock * upgrade turborepo * fix(confluence): reject empty update body for space PUT Return 400 when neither name nor description is provided for space update, instead of sending an empty body to the Confluence API. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(confluence): remove spaceId requirement for create_space and fix list_tasks pagination - Remove create_space from spaceId condition array since creating a space doesn't require a space ID input - Remove list_tasks from generic supportsCursor array so it uses its dedicated handler that correctly passes assignedTo and status filters during pagination Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ran lint * fixed type errors --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
ab48787422 | chore(deps): upgrade next.js from 16.1.0-canary.21 to 16.1.6 (#3254) | ||
|
|
2979269ac3 |
fix(sidebar): unify workflow and folder insertion ordering (#3250)
* fix(sidebar): unify workflow and folder insertion ordering * ack comments * ack comments * ack * ack comment * upgrade turbo * fix build |
||
|
|
a0afb5d03e |
feat(pipedrive): added sort order to endpoints that support it, upgraded turborepo (#3237)
* feat(pipedrive): added sort order to endpoints that support it * upgraded turborepo * fix |
||
|
|
f5dc180d9f | fix(memory): upgrade bun from 1.3.3 to 1.3.9 (#3186) | ||
|
|
793adda986 |
fix(limits): updated rate limiter to match execution timeouts, adjusted timeouts fallback to be free plan (#3136)
* fix(limits): updated rate limiter to match execution timeouts, adjusted timeouts fallback to be free plan * upgrade turborepo |
||
|
|
f7c3de0591 | fix(streaming): handle multi-byte UTF-8 chars split across chunks (#3083) | ||
|
|
81cbfe7af4 | feat(browseruse): upgraded browseruse endpoints to v2 (#2890) | ||
|
|
0aec9ef571 |
feat(export): added the ability to export workflow (#2777)
* feat(export): added the ability to export workflow * improvement(import): loading animation * fixed flicker on importing multiple workflows * ack pr comments * standardized import/export hooks * upgraded turborepo * cleaned up --------- Co-authored-by: Emir Karabeg <emirkarabeg@berkeley.edu> |
||
|
|
75aca00b6e |
improvement(kb): optimize processes, add more robust fallbacks for large file ops (#2684)
* improvement(kb): optimize processes, add more robust fallbacks for large file ops * stronger typing * comments cleanup * ack PR comments * upgraded turborepo * ack more PR comments * fix failing test * moved doc update inside tx for embeddings chunks upload * ack more PR comments |
||
|
|
71130c8b0a | improvement(monorepo): added tsconfig package, resolved type errors in testing package (#2613) | ||
|
|
88cda3a9ce |
improvement(billing): migrate to decimaljs from number.parseFloat (#2588)
* improvement(billing): migrate to decimaljs from number.parseFloat * ack PR comments * ack pr comment * consistency |
||
|
|
810d2089cf |
feat(schedules): remove save button for schedules, couple schedule deployment with workflow deployment (#2566)
* feat(schedules): remove save button for schedules, couple schedule deployment with workflow deployment * added tests * ack PR comments * update turborepo * cleanup, edge cases * ack PR comment |
||
|
|
8c2c49eb14 |
fix(models): memory fixes, provider code typing, cost calculation cleanup (#2515)
* improvement(memory): should not be block scoped * cleanup provider code * update other providers * cleanup fallback code * remove flaky test * fix memory * move streaming fix to right level * cleanup streaming server * make memories workspace scoped * update docs * fix dedup logic * fix streaming parsing issue for multiple onStream calls for same block * fix(provieders): support parallel agent tool calls, consolidate utils * address greptile comments * remove all comments * fixed openrouter response format handling, groq & cerebras response formats * removed duplicate type --------- Co-authored-by: waleed <walif6@gmail.com> |
||
|
|
7dc48510dc |
fix(tool-input): allow multiple instances of workflow block or kb tools as agent tools (#2495)
* fix(tool-input): allow multiple instances of workflow block or kb tools as agent tools * ack PR comments |
||
|
|
9cf8aaee1b |
fix(sockets): add zod as direct sockets server dep (#2397)
* fix(sockets): add zod as direct sockets server dep * fix bun lock |
||
|
|
f0dc8e81d9 | fix(build): downgrade nextjs from canary to 16.0.9 (#2394) | ||
|
|
a45bb1bf3b |
fix(rce): add 'isolate' to list of trusted deps, fixed custom tools environment resolution (#2387)
* fix(rce): add isolate to list of trusted deps * updated error enchancer in RCE * fixed * fix build * fix failing test * fix build * fix build * remove extraneous comment |
||
|
|
17b2e58c32 |
improvement(rce): updated rce to use isolate pkg for RCE (#2385)
* improvement(rce): updated rce to use isolate pkg for RCE * lazy load isolate instance * update zoom docs |
||
|
|
4da5dd7f74 | fix(nextjs): upgrade nextjs to patch security vuln (#2320) | ||
|
|
2fcd07e82d | feat(triggers): added rss feed trigger & poller (#2267) | ||
|
|
7752beac01 |
fix(import): fix array errors on import/export (#2211)
* Fix import/export * Remove copilot gdrive tools * Null * Fix lint * Add copilot validation * Fix validation |
||
|
|
58251e28e6 |
feat(copilot): superagent (#2201)
* Superagent poc * Checkpoint brokeN * tool call rag * Fix * Fixes * Improvements * Creds stuff * Fix * Fix tools * Fix stream * Prompt * Update sheets descriptions * Better * Copilot components * Delete stuff * Remove db migration * Fix migrations * Fix things * Copilot side superagent * Build workflow from chat * Combine superagent into copilkot * Render tools * Function execution * Max mode indicators * Tool call confirmations * Credential settings * Remove betas * Bump version * Dropdown options in block metadata * Copilot kb tools * Fix lint * Credentials modal * Fix lint * Cleanup * Env var resolution in superagent tools * Get id for workflow vars * Fix insert into subflow * Fix executor for while and do while loops * Fix metadata for parallel * Remove db migration * Rebase * Add migrations back * Clean up code * Fix executor logic issue * Cleanup * Diagram tool * Fix tool naems * Comment out g3p * Remove popup option * Hide o3 * Remove db migration * Fix merge conflicts * Fix lint * Fix tests * Remove webhook change * Remove cb change * Fix lint * Fix * Fix lint * Fix build * comment out gemini * Add gemini back * Remove bad test * Fix * Fix test * Fix * Nuke bad test * Fix lint --------- Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com> Co-authored-by: Waleed <walif6@gmail.com> Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com> |
||
|
|
dcbdcb43aa |
chore(deps): upgrade to nextjs 16 (#2203)
* chore(deps): upgrade to nextjs 16 * upgraded fumadocs * ensure vercel uses bun * fix build * fix bui;d * remove redundant vercel.json |
||
|
|
c864d17991 |
chore(deps): upgrade to bun v1.3 (#2181)
* chore(deps): upgrade to bun v1.3 * ack PR comments |
||
|
|
6d4ba6d5cf | chore(deps): upgrade from nextjs 15.4.1 to 15.4.8 and upgrade turborepo (#2180) | ||
|
|
7bf9251db1 |
feat(tools): added smtp, sendgrid, mailgun, linkedin, fixed permissions in context menu (#2133)
* feat(tools): added twilio sendgrid integration * feat(tools): added smtp, sendgrid, mailgun, fixed permissions in context menu * added top level mocks for sporadically failing tests * incr type safety |
||
|
|
e64b1c9fcd |
feat(tools): added speech to text with openai whisper, elevenlabs, and deepgram (#2068)
* feat(tools): added speech to text with openai whisper, elevenlabs, and deepgram * added new file icons, implemented ffmpeg * updated docs * revert environment |
||
|
|
7c5d625ca5 |
fix(blogs): update sitemap and fix loading strat on blogs to prevent mobile crash (#2067)
* fix(blogs): update sitemap and fix loading strat on blogs to prevent mobile crash * updated sitemap |
||
|
|
becd19bc50 |
improvement(ux): added tab key navigation for agent messages, made variables styling match chat, added neo4j and calendly (#2056)
* improvement(ux): added tab key navigation for agent messages, made variables styling match chat * added neo4j tools, added calendly tools and triggers * more style improvements * consolidate wand generation type * more ui improvements * fix calendly * tested all neo4j tools * added fuzzy search for search modal, tested and fixed calendly * updated docs * fix various broken docs links, neo4j param validation * removed limit from neo4j block |
||
|
|
5457d4bc7b |
feat(settings): added reactquery for settings, removed zustand stores, added apollo, added workflow block selector dropdown search, added add environment variable option to empty env var dropdown (#1971)
* feat(settings): added reactquery for settings, removed zustand stores, added apollo, added workflow block selector dropdown search, added add environment variable option to empty env var dropdown * fix delete dialog for copilot keys * simplify combobox * fix more z indices * consolidated duplicate hooks --------- Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai> |
||
|
|
766c7fbfbb |
feat(drizzle): added ods for analytics from drizzle (#1956)
* feat(drizzle): added ods for analytics from drizzle * clean |
||
|
|
1130befb17 |
fix(local): add missing deps, fix access patterns, update dockerfiles, updated turborepo (#1895)
* fix(local): add missing deps, fix access patterns, update dockerfiles * upgrade turborepo |