-
Notifications
You must be signed in to change notification settings - Fork 86
chore(DATAGO-122087): WF PR 23 - review cleanup for Workflows featur… #888
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
solace-pjones
wants to merge
1
commit into
ed/prescriptive-workflows
from
solace-pjones/DATAGO-121927/revert
Closed
chore(DATAGO-122087): WF PR 23 - review cleanup for Workflows featur… #888
solace-pjones
wants to merge
1
commit into
ed/prescriptive-workflows
from
solace-pjones/DATAGO-121927/revert
Conversation
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
… stack (#825) * feat(workflows): Add foundation data models and constants Adds the foundational data models and utilities required by the Prescriptive Workflows feature: - StructuredInvocationRequest/Result data parts - WorkflowExecution* data parts for visualization - Extension URI constants - Agent card schema utilities * feat(workflows): Add workflow definition Pydantic models Adds the Pydantic models that define the YAML schema for workflow definitions with Argo Workflows-compatible syntax: - Node types: AgentNode, ConditionalNode, SwitchNode, LoopNode, MapNode - WorkflowDefinition with DAG validation - RetryStrategy and ExitHandler models * feat(workflows): Add structured invocation support for agents Enables agents to be invoked with schema-validated input/output: - StructuredInvocationHandler for schema validation and retry - Integration with SamAgentComponent - Result embed pattern for structured output - A2A event handler integration for structured invocation detection * feat(workflows): Add workflow tool for agent invocation Adds ADK Tool that allows agents to invoke workflows: - Dynamic tool generation from workflow schema - Dual-mode invocation (parameters or artifact) - Long-running execution with polling - LLM callback integration for workflow tool instructions * feat(workflows): Add workflow orchestrator component Adds the WorkflowExecutorComponent that coordinates execution: - Component lifecycle and message routing - Agent card generation with schemas - Event publishing for visualization - A2A protocol message handlers * feat(workflows): Add DAG executor core logic Adds the core DAG execution engine: - Dependency graph building and validation - Node execution dispatch - Template resolution for data flow - Conditional expression evaluation - Execution context management * feat(workflows): Add agent caller for A2A invocation Adds the AgentCaller for invoking agents via A2A: - Input template resolution - A2A message construction - Artifact creation for input data * feat(workflows): Add integration, examples, and tests Adds backend integration and comprehensive test coverage: - Gateway workflow event forwarding - Example workflows (all_node_types, jira_bug_triage) - Unit tests for pure functions (~1,770 lines) - Integration tests for error scenarios (~2,000 lines) - Declarative test workflows (8 YAML files) - Test fixtures for workflow apps * feat(workflows): Add frontend workflow visualization Adds all frontend changes for workflow visualization: - Layout engine for positioning nodes - FlowChart components (panel, renderer, edges) - Node components for all node types - NodeDetailsCard sidebar - Task visualizer processor - Provider updates - Agent utilities for workflow detection - Mermaid diagram modal * refactor(ui): Remove old FlowChart components Remove legacy FlowChart visualization files that were replaced by the new workflow activities visualization system. These files are no longer needed with the new Activities-based architecture. Files removed: - FlowChart/customEdges/GenericFlowEdge.tsx - FlowChart/customNodes/*.tsx (6 node types) - FlowChart/edgeAnimationService.ts - FlowChart/taskToFlowData.helpers.ts - FlowChart/taskToFlowData.ts - FlowChartPanel.tsx * chore(DATAGO-120348): Introduce a template to PRs (#690) * DATAGO-120348: Introduce a template to PRs so authors highlight what problem the PR is trying to solve, how it is solving the problem, and how it has been tested. * DATAGO-120348: enhance the template * fix(DATAGO-118177) - Manage memory usage for uploading large files (#683) * fix(DATAGO-118675): Start the user in AI mode when editing a prompt (#678) * Set default to ai mode when editing prompts and new unit test * added back fragment to make code change more readible * Missed file..before loading prompts for edit, set builder mode to ai-assisted * ci(ui): bump version to ui-v1.24.3 [skip ci] * fix: use BrokerOutput component for direct publisher initialization (#717) * fix: use BrokerOutput component for direct publisher initialization The direct publisher for deployer commands was failing because: 1. _init_direct_publisher() referenced self.broker_output which was never set 2. publish_a2a() used message_builder().build() which created empty messages Fixed by: - Finding BrokerOutput component via flow.component_groups (same pattern as App.send_message) - Storing _messaging_service reference for creating the publisher - Passing payload as bytearray directly to publish() instead of using message_builder - Adding lazy initialization in publish_a2a() as fallback * fix: Platform service agent registry cleanup and timer cancellation - Change agent_registry.cleanup() to agent_registry.clear() (correct method name) - Add cancel_timer() call before clearing registry during shutdown - Ensures health check timer is properly cancelled during cleanup * [ci skip] Bump version to 1.11.4 * fix: prevent double response in AuthMiddleware when token validation fails (#718) When _handle_authenticated_request sent an error response (401/500) and returned, the __call__ method would still call self.app(), causing a second response to be sent. This resulted in: "RuntimeError: Unexpected ASGI message 'http.response.start' sent, after response already completed." Fix: _handle_authenticated_request now returns a boolean indicating whether an error response was sent. The caller checks this and returns early to prevent calling self.app() after an error response. * ref: added image tools to the document (#696) * ref: update built-in tools document (#695) * ref: update python tools (#694) * ref: added custom artifact to documents (#693) * chore(DATAGO-117985): Refactoring chat provider for better encapsulation (#716) * chore: refactoring chat provider * chore: removing extraneous changes * chore: updating type name * chore: using extracted taskMigration * chore: using extracted artifact preview * chore: removing unused hooks * chore: using artifact operations * chore: tidying imports * chore: tidying imports * ci(ui): bump version to ui-v1.24.4 [skip ci] * chore: update storybook to 10.1.10 (#722) * ci(ui): bump version to ui-v1.24.5 [skip ci] * chore(DATAGO-120523): Update platform service API path from /enterprise to /platform (#721) * refactor: Update platform service API path from /enterprise to /platform Update Vite dev server proxy configuration and platform service architecture to use /api/v1/platform instead of /api/v1/enterprise. Changes: - Add PLATFORM_SERVICE_PREFIX constant in community main.py - Community now owns and applies the platform service prefix - Update router mounting logic to use community-defined prefix - Update vite.config.ts proxy for local development - Update documentation comments in examples and app.py Architecture: Community defines PLATFORM_SERVICE_PREFIX as single source of truth. Both community and enterprise platform routers use this prefix, ensuring consistent API structure under /api/v1/platform/*. * fix: Allow OPTIONS requests through OAuth2 middleware for CORS preflight * feat(DATAGO-120523): Add platform service health endpoint at /api/v1/platform/health - Create health_router.py with /health endpoint - Register health router in community routers - Remove old root-level /health endpoint from main.py - Update tests to use new /api/v1/platform/health path This aligns with the platform service API structure where all platform endpoints are under /api/v1/platform prefix. Related PRs: - Enterprise: https://github.com/SolaceDev/solace-agent-mesh-enterprise/pull/460 - K8s: https://github.com/SolaceDev/sam-kubernetes/pull/41 * fix(tests): Align test factory with production platform API prefix pattern Updated PlatformServiceFactory to use centralized PLATFORM_SERVICE_PREFIX instead of expecting prefix in router configs. This matches the production pattern where all platform service endpoints (community and enterprise) are consistently mounted under /api/v1/platform. Changes: - Test factory now uses hard-coded PLATFORM_SERVICE_PREFIX = "/api/v1/platform" - Removed fallback /health endpoint from test factory (now properly registered via community router) - Updated docstring to reflect that community routers are no longer empty * ci(ui): bump version to ui-v1.25.0 [skip ci] * [ci skip] Bump version to 1.11.5 * docs(DATAGO-118501): Document platform migration (#677) * docs: Platform service migration * docs: migration slight rewording * docs: move platform migration right under migrations/ and update enterprise version the migration applies to * docs: platform migration doc improvements * chore: trigger PR size validation workflow * fix: linking platform.yaml rather than copying in docs * fix: Update enterprise version now that enterprise PR has been merged * fix: link to platform.yaml in a way that works everywhere including CI/CD pipeline * feat(DATAGO-119380): Return the list of built-in tools using CLI command (#733) * feat: list tools using cli command * feat: add unit tests * fix: update a unit test to count cli commands * feat: document tools CLI command * chore: tidying ui (#737) * ci(ui): bump version to ui-v1.25.1 [skip ci] * refactor(DATAGO-119380): Update logging document (#691) * ref: update logging document * fix: cleaned log configuration document * ref(DATAGO-119380): Add vibe coding page to documents (#689) * ref: added vibe coding to documents * fix: update vibe coding page location * fix: moved vibe coding under Get Started menu * ref(DATAGO-119380): Improve context7 rules for vibe coding (#734) * fix: improve rules of context7 * ref: update context7 rules * ref: update context7 rules * fix: update context7 url * feat(DATAGO-118652): Add generic gateway auth framework + better agent registeration management (#610) * docs: add generic gateway adapter implementation plan Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * docs: add implementation checklist for generic gateway adapter framework Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * feat: add generic gateway adapter framework core types and interfaces Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * feat: implement GenericGatewayApp with adapter loading schema Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * feat: implement GenericGatewayComponent with adapter orchestration Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * feat: add user feedback submission mechanism to gateway adapter framework Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * feat: add Slack gateway adapter using generic framework Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * fix: add missing SamTextPart import to slack adapter Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: move adapter config validation to pydantic models Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: remove try-except wrapper for slack_bolt imports Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * chore: cleanup * refactor: remove abstract requirement for handle_text_chunk method Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: prioritize child class parameters in schema merging Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: move common gateway configs to base class Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: migrate slack gateway config to generic adapter framework Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: fix slack handler registration to use explicit signatures Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * fix: align SlackAdapter method signatures with GatewayAdapter base class Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: align AuthClaims model with framework identity expectations Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * fix: handle default values in cache service get methods Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: decouple Slack adapter from A2A protocol and filter data parts Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * feat: filter duplicate text and file parts from final streaming responses Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * fix: prevent duplicate content in slack final status messages Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: remove unused generate_a2a_session_id function * refactor: improve slack markdown formatting and feedback button placement Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: add underline and newline to Slack heading formatting Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: simplify Slack markdown heading format by removing separator * feat: implement multi-step feedback flow with text input in Slack adapter Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: separate feedback buttons into distinct message from status Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * feat: add standardized feedback event publishing to gateway Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: remove redundant context from feedback events Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: remove platform_context and task_context from SamFeedback model Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * chore: clean up the slack launch target * feat: enhance artifact creation progress display in Slack adapter Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: implement stateful artifact progress messages with sequential processing Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * feat: add artifact content loading helper to gateway context Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: rename conversation_id to session_id and sanitize Slack IDs Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: use artifact helper for loading content in generic gateway Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: implement three-step external upload for Slack file ordering Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: associate file upload with descriptive message using initial_comment Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: format code with consistent line breaks and spacing * fix: add user_id_for_artifacts to external_request_context for artifact resolution Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: use individual a2a helper functions for FilePart processing Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * chore: Fix issue with text/file ordering for slack results * feat: add /artifacts command to slack adapter with download support Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * fix: handle missing thread_ts in artifacts command to prevent crash Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: implement command framework with !artifacts keyword trigger Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * feat: add help command and fix artifacts to post in thread with truncated descriptions Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * fix: handle user identity extraction from Slack action events and post errors to thread Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: remove ephemeral status message from download action Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * refactor: improve artifact list UI and fix help command threading Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * chore: cleanup docs * chore: cleanup docs * refactor: rename a2a_ prefixed constants to slack_ in Slack gateway utils Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * chore: create CLI based gateway as an example * Add rich formatting * chore: Added a simple CLI gateway * chore: add example MCP gateway * chore: add some oauths support to MCP server * chore: add some more auth stuff * chore: debugging * chore: a few fixes for auth * fix: Require PKCE and remove any details from client auth failure responses * chore: remove cli and slack gateway examples * chore: cleanup * fix: update Slack adapter reference in configuration and clean up component initialization * fix: update logging config path in launch.json and adjust MCP client usage examples in mcp_gateway_example.yaml * fix: update launch configurations to use solace_agent_mesh.cli.main and adjust args for execution * fix: update MCP gateway example to listen on localhost and remove unused AuthClaims import in adapter * Remove utility functions for MCP Gateway Adapter from utils.py * add tool filtering configuration to MCP gateway example * fix: Improve logging for OAuth proxy route setup in gateway authentication * fix: Update .gitignore to include .sam and *.key files * feat: Implement user identity extraction method in GenericGatewayComponent * Add unit tests for authentication features and OAuth utilities - Implement unit tests for the AuthHandler interface in `test_auth_interface.py`, covering abstract methods, concrete implementations, and error handling. - Create tests for authentication setup and header injection in `test_component_auth.py`, ensuring proper behavior of the BaseGatewayComponent. - Develop tests for agent registry callbacks and agent listing functionality in `test_component_auth_and_callbacks.py`, validating interactions with the agent registry. - Introduce integration tests for OAuth utilities in `test_oauth_utils_integration.py`, verifying behavior with and without the enterprise package. * Add enterprise package checks and conditional OAuth tests * refactor: remove MCP gateway example configuration and related launch settings * refactor: streamline authentication setup and improve logging for agent registration * refactor: update OAuth proxy handling to use global variable and improve test coverage * refactor: update user info retrieval test to include query parameters * refactor: remove outdated comments from authentication endpoints * refactor: replace direct attribute access with setter methods for agent callbacks * refactor: remove unused global OAuth proxy functions and related tests * refactor: remove deprecated Gateway OAuth proxy endpoint from auth middleware * refactor: remove OAuth proxy functions and related middleware from main.py * refactor: remove unused OAuth-related tests and classes from integration tests * refactor: remove unused TestGetUserInfoWithEnterprise class from integration tests * refactor: update app module path and clean up unused tests in gateway components --------- Co-authored-by: Edward Funnekotter <[email protected]> Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> * [ci skip] Bump version to 1.12.0 * fix(DATAGO-119380): Update Context7 URL (#743) * fix: update url * fix: update the unit test * ci(DATAGO-120987): fix release workflow with skipped security checks (#745) * feat(DATAGO-121014): Add cli command for adding proxy (#746) * feat(DATAGO-121014): Add cli command for adding proxy * minor changes * fix(DATAGO-120949): Move migrations to __init__ for sequential execution (#741) Both Platform and WebUI migrations now run in __init__() during component creation, ensuring sequential execution and preventing Alembic/SQLAlchemy race conditions. Changes: - Platform: Migrations in __init__() via _run_database_migrations() - WebUI: Migrations in __init__() via _run_database_migrations() - Removed unused component parameter from _setup_database() - Simplified comments and docstrings - Added Alembic log prefixing for better debugging * [ci skip] Bump version to 1.12.1 * feat(DATAGO-119367): Add wide logs for auditing MCP server usage (#742) Adds structured logging for MCP tool calls to enable tracking usage per user/agent. The log includes user_id, agent_id, tool_name, and session_id both in the message and as structured extra fields for easy filtering and auditing. * feat(DATAGO-120289): Add stepper ui component (#744) * Add stepper ui component * Add storybook test * ci(ui): bump version to ui-v1.26.0 [skip ci] * feat(DATAGO-118768): Support remote MCP server configuration in sam add agent --gui (#735) * feat: new ui * fix: config file formatting bugs * fix: remove oauth2 configuration, alter headers * fix: remove duplicate env variables input * fix: remove blocking deletion, description * fix: copilot requests * fix: remove redundant deletion logic * chore: log message * Cleanup of orginal change. * Updated help text * revert help text back to original --------- Co-authored-by: Robert Zuchniak <[email protected]> * Testing fix for env (#751) * fix: update module path in launch configurations to use relative import (#750) * chore(DATAGO-120962): deleting unused projects code (#747) * chore: deleting unused code * chore: removing more unused code * ci(ui): bump version to ui-v1.26.1 [skip ci] * fix: Updating expected test result based on PEP8 standard (#752) * [ci skip] Bump version to 1.12.2 * feat(DATAGO-121143): Exclude Platform Service health endpoint from authentication (#755) - Add /api/v1/platform/health to skip_paths in OAuth middleware - Allows load balancers and monitoring systems to check Platform Service health without authentication - Gateway health endpoints (/api/v1/platform/gateways/health) still require authentication 🤖 Generated with [Claude Code](https://claude.com/claude-code) * chore: clearning tokens and tidying (#758) * ci(ui): bump version to ui-v1.26.2 [skip ci] * chore(DATAGO-120962): replacing custom components with standard ones in project (and prompt) UI (#740) * chore: replacing custom components with standard ones * chore: tidying * chore: tidying * chore: tidying * chore: responding to UX feedback * chore: switching to standard dialog to support linear progress display * chore: tidying * chore: making titles uniform * chore: tidying delete dialog * chore: tidying * chore: making dialog more consistent with prompt import * chore: improving badge for ux feedback * chore: tweaking for dark mode * ci(ui): bump version to ui-v1.26.3 [skip ci] * feat(DATAGO-116403): add sam_access_token validation to middleware (#738) * feat: add sam_access_token validation to middleware - Validate sam_access_token before falling back to IdP token - Extract roles from token, resolve scopes via authorization_service - Feature flag controlled via trust_manager.config.access_token_enabled - Fully backwards compatible with existing IdP token flow 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> * fix trust manager property * logging update * update logs --------- Co-authored-by: Claude <[email protected]> * feat: add cors_allowed_origin_regex config for Platform Service (#760) Add support for regex-based CORS origin matching in Platform Service. This enables local development scenarios where ports are dynamically assigned (e.g., minikube service), by allowing a regex pattern like 'https?://(localhost|127\.0\.0\.1):\d+' to match any localhost port. Changes: - Add cors_allowed_origin_regex config option to Platform Service schema - Pass allow_origin_regex to CORSMiddleware when configured - Add unit tests for regex functionality Usage in values.yaml: cors_allowed_origin_regex: "https?://(localhost|127\\.0\\.0\\.1):\\d+" * feat(DATAGO-117225): Web Search and Deep Research (#574) * wip(deep-research): initial commit * fix(deep-research): fix search metadata pass-through from frontend to tool * fix(deep-research): UI styling updates * chore: update RAG sources icon * feat(deep-research): render citations as clickable links in the markdown output * chore: restrict source types to web and kb * feat: web search UI and agent * fix(web search): ui fixes * feat(web-search): tools ui * chore: remove logging_config.ini from version control * fix(deep research): remove UI toggle * fix(deep research): UI/UX updates * fix(deep-research): backend tool cleanup * UI updates to Sources Moved the location and changed styling of the sources button under chat responses * Added completed research progress state Combined research timeline with completed research progress state. * Updated behaviour for active progress state * add closing animation to accordion * Fixed visual bug on closing animation * fix: example agents * fix(deep-research): sidepanel sources were cumulative * fix: should not render sources for user messages * fix: updated agent in examples * fix: web sources UI * fix: change frontend to use camelCase vars * fix: modify agent prompt to not show sources separately * fix: camelCase for source citation IDs * fix(web-search): image source cards styling * fix: remove duplicate image links * fix: simplify sources component * fix: UI styling updates * fix: show confirmation dialog when navigating away from active deep research session * fix: web search citation markers in peer agent responses should be kept * fix: return deep research report result as an artifact from the tool * fix: remove deep research warning when navigating away, will be handled by background tasks * feat: integration test suite, support for Brave and Exa web search APIs * fix: show image sources in side panel * fix: add pytest markers * fix: move rag dto to common * fix: Replace ADKToolWrapper with direct artifact service call in deep_research_tools, refactor filename sanitization * fix: simplify the deep research agent configuration * fix: remove hardcoded LLM config from deep research agent configuration * fix: add max response size limit for web request * fix: minor ephemeral source ordering issue * fix: removed Tavily, Exa, Brave web search integrations * fix: remove Tavily fallback from deep research tool * fix: report rendering updates for better UX * fix: group deep research web sources (full vs. partial) * fix: remove redundant description * refactor: extract publish_data_signal_from_thread to component.py * chore: Rename _web_search_google to web_search_google * feat: update docs for web search and deep research * fix: add TTS and copy support for deep research reports * fix: clear sources when switching chat sessions * fix: deep research links in preview panel were not clickable * fix: address minor issue for rendering of deep research artifacts during background tasks * fix: citation styling * fix: allow ask followup on deep research reports * chore: theme colors for web links * fix: update tests * fix: update deep research invoke criteria in prompt * fix: the trio selectordid not look right at the minimum width of the panel * fix: conditionally render sources tab * feat: new research agent example * fix: deep research report artifact reload form URI * fix: error handling for artifact failing to be saved * fix: ariakit refactor, other minor fixes * fix: LLM-geenrated sources tab title * fix: auto title generation for Sources panel, minor agent updates * fix: support comma-separated citation markers like [[cite:search1, search2]] * fix: deep research progress shows query-URL pairs correctly during research * fix: filter intermediate web_content_ artifacts from workflow visualization * fix: resolve report duplication due to partial response appending in deep research tool, also filter out intermediate web artifacts * fix: increase max_output_tokens for Gemini 2.5 Pro reasoning tokens * fix: keep artifact info in peer deep research response for delegating agent to use artifact_return * chore: remove unused tool_config_status and frontend settings components for web_search and deep_research * fix: fixed JSON parsing errors in deep research tool for Gemini 2.5 Pro compatibility. * fix: refactor duplicated frontend code * fix: re-enable background tasks * fix: reset peer timeout on status signal forwarding and add task flags * fix: handle multi citation formats * fix: replaced regex for cleaning up of LLM response * chore: unit tests * chore: increase test coverage * chore: further increase test coverage * chore: additional unit test for deep research --------- Co-authored-by: jessieli-ux <[email protected]> * ci(ui): bump version to ui-v1.27.0 [skip ci] * [ci skip] Bump version to 1.13.0 * fix(DATAGO-120298): Investigate and fix garbled conversation displayed in AI Assistant (#724) * fix(STT): add STT to AI prompt builder, bugfix for STT language settings * fix: snake_case to camelCase for prompt text * fix: AI builder returns camelCase now * fix: production_prompt to camelCase in frontend * fix: more casing fixes * fix: is_pinned casing * fix(DATAGO-118327): pasted text artifact fix * fix: updated text selection menu options and flow * fix: add mimeType to PastedArtifactItem model * fix: reorder highlighted context and prompt * fix: editable badges for large pasted text input * fix: long import fields breaking the UI * fix: limit number of large text paste badges to 5 * fix: hide non-configured STT/TTS providers * chore: update Start New Chat on prompt detail page to "Use in Chat" * fix: experimental badge, prompts usage from prompts page starts new chat * fix: update prompt icon to notepad-text * revert: remove limit on number of pasted text badges * fix: add scrolling for pasted text badges * fix: should not allow to save empty artifact * fix: Ask Followup popup should always stay above the highlighted textand be left aligned with the start of the highlight * fix: import validation on field max lengths * feat: added syntax-highlighting to the prompt content field * fix: increase font size of experimental badge * fix: remove toast notification when pinning or on un-pinning prompts * fix: change artifact to file in paste action dialog * fix: version metadata fields of prompt templates as well * fix: address update problem when using prompt in new chat * fix: auto detect pasted text artifact MIME type * fix: confirmation dialog for artifact overwrite * fix: text selection bug, paste action auto detection removed * fix: experimental badge colors * refactor: refactor the PromptImportDialog to use the zod schema with react-hook-form * fix: auto upload pasted text badge as artifact * fix: remove redundant artifact save toast * fix: nullish values for prompt import * fix: change category to tag in import dialog * fix: increase toast duration, unify toast messages * fix: inform user about truncation of prompt in import dialog * fix: switch to warning variant for prompt truncation on import * fix: improve artifacts upload UX for large pasted text * fix: warn on duplicate filenames across pending pasted text items * fix: tooltip placement * fix: reset form state on new creation * fix: prompt import UX improvements * fix: update error message colours * fix: minor styling * fix: conflicting fields should remain editable * fix: remove asterisk on required fields on import if no conflicts * fix: minor import ui fixes * fix(DATAGO-120298): Investigate and fix garbled conversation displayed in AI Assistant * ci(ui): bump version to ui-v1.28.0 [skip ci] * fix(DATAGO-120962): tidying format and improving ui when added files to projects (#765) * chore: fixing dialog closure and improving formatting * chore: removing inaccessible fileupload section from UI * chore: more formatting * ci(ui): bump version to ui-v1.28.1 [skip ci] * feat(DATAGO-118201): Add React Query (#736) * feat: migrate from Context-based data fetching to React Query * refactor: remove obsolete migration guide and example usage files; update query hooks for improved handling * feat: integrate React Query for data fetching and add query client configuration * refactor: remove unnecessary comments from project hooks for clarity * refactor: simplify query client configuration by removing retry logic and unnecessary comments * fix: update React Query and ESLint plugin versions to remove caret (^) for consistency * feat: implement QueryProvider for React Query integration and remove obsolete queryClient file * fix: add documentation comments for shared QueryClient instance in QueryProvider * refactor: rename useProjectArtifacts to useProjectArtifactsNew for clarity * feat: update hooks documentation to clarify development status and usage warnings * feat: add QueryClient and refactor QueryProvider to utilize shared instance * ci(ui): bump version to ui-v1.29.0 [skip ci] * chore(DATAGO-108909): Add adaptive stream rendering of chat result text to smooth it out (#759) ### What is the purpose of this change? Smooth out the rendering of streaming chunks of text from the backend. This is done to improve the user experience in cases where the chunk size is large and the rendering becomes very stuttery. With this change, we are now able to greatly increase the batching size in the backend to reduce the large number of status update messages we are getting today, which are only there to improve the smooth rendering. * ci(ui): bump version to ui-v1.29.1 [skip ci] * fix(DATAGO-121140): Fix loss of embedded templates in sub-agent responses (#756) Fixes an issue where `template_liquid` blocks in LLM responses were being stripped when responses were sent back to calling agents in peer-to-peer communication. This caused confusion in the calling agent as they couldn't see or forward the template blocks to the gateway for resolution. **Root Cause:** When an LLM generates a response containing `template_liquid` blocks, the stream parser extracts the template content and emits a `TemplateBlockData` signal for the gateway to resolve. However, for RUN_BASED sessions (peer-to-peer agent requests), the calling agent only receives the aggregated response text—which had the template blocks stripped out. **Fix:** For RUN_BASED sessions, when a `TemplateBlockCompletedEvent` is processed, we now preserve the original template block text in the response at its original position. This allows calling agents to forward templates to the gateway for resolution. * fix: Change MCP results to 'all or none' and allow full configuration of schema discovery depth * Revert "fix: Change MCP results to 'all or none' and allow full configuration of schema discovery depth" This reverts commit 1aa2af0423a60eadadf8c369eb031c33ccc8937b. * fix(DATAGO-121333): Change MCP results to 'all or none' and allow full configuration of schema discovery depth (#767) - **All-or-nothing approach for large MCP responses**: When MCP tool responses exceed the LLM return size limit, the data is now completely withheld rather than being truncated. This prevents LLM hallucination caused by partial data - LLMs tend to confidently fill in gaps when given truncated content. - **Configurable schema inference depth**: Added `schema_inference_depth` configuration (default: 4, range: 1-10) that can be set at the agent level or per-tool level via `tool_config`. This controls how deeply nested structures are inspected when generating artifact metadata. - **Improved LLM guidance**: When data is withheld, the LLM receives explicit instructions to use `template_liquid` (for displaying to users) or `load_artifact` (for processing) to access the full data from the saved artifact. * chore: remove conditional node type from worklfows * chore: Remove mermaid diagram from workflow agent-card * test: Add unit tests for workflow agent card JSON config Add tests to verify that workflow configurations are correctly serialized to JSON for inclusion in agent card extensions. Tests cover: - Simple agent workflows - Workflows with input/output schemas - Switch nodes with cases and defaults - Map nodes with items - Loop nodes with conditions and max_iterations - Agent nodes with explicit input mappings - JSON serialization round-trip * feat(ui): Add Workflows tab to Agent Mesh page - Rename sidebar navigation from "Agents" to "Agent Mesh" - Add tabbed navigation with "Agents" and "Workflows" tabs - Create WorkflowList component with table view, filtering, and pagination - Create WorkflowDetailPanel with markdown description and JSON schema viewer - Create WorkflowOnboardingBanner with dismissible intro and docs link - Filter agents by type using isWorkflowAgent() helper - Remove stale MermaidDiagramModal export * chore: some consistency fixes * fix(DATAGO-118655) - Auth Enabled MCP gateway (part 2) (#772) * feat: Add unit testing configuration and dependencies (#778) - Updated vitest.config.ts to include a new project configuration for unit tests. - Modified package.json to add necessary dependencies for testing, including @testing-library/react and jsdom. - Enhanced vitest.setup.ts with a workaround for window.matchMedia. - Updated package-lock.json to reflect the new dependencies and their versions. * ci(ui): bump version to ui-v1.30.0 [skip ci] * feat(workflows): Add instruction field to workflow agent nodes Add optional instruction field to AgentNode that allows workflow creators to provide additional context/guidance to target agents. The instruction supports template expressions (e.g., {{workflow.input.context}}) that are resolved at runtime. Changes: - Add instruction field to AgentNode model in app.py - Add _resolve_string_with_templates() to handle embedded templates - Update workflow_schema.json with instruction property - Add unit tests for instruction field - Add integration test validating instruction appears in LLM requests - Add example usage in all_node_types_workflow.yaml - Fix deprecated conditional node type in test fixtures DATAGO-121520 * chore: added a version config to the workflow config schema * fix(DATAGO-121435) Web search citations not properly mapped to sources with parallel tool calls (#769) * fix: parallel tool call citation handling * fix: improve web search citation accuracy with unique turn-based IDs * fix: more backend tests * ci(ui): bump version to ui-v1.30.1 [skip ci] * chore(DATAGO-117142): improving logout clearing (#782) * chore: improving logout * chore: rename test for conflict * ci(ui): bump version to ui-v1.30.2 [skip ci] * fix(DATAGO-118139): fix vulnerable regex found in Sonarqube hotspot (#660) * fix: regex * rename a unit test file name to avoid the conflict with integration test --------- Co-authored-by: ZiyangWang <[email protected]> * chore: first cut at workflow diagram * fix(security): update dependencies to address vulnerabilities (#784) - Update @remix-run/node, @remix-run/react, @remix-run/dev to 2.17.4 (fixes CVEs in react-router, cookie, mdast-util-to-hast) - Update react-router-dom to 7.12.0 (fixes 4 security issues) Note: urllib3 vulnerability cannot be fixed yet as solace-ai-connector==3.2.0 pins urllib3==2.6.0. Will require upstream update. * ci(ui): bump version to ui-v1.30.3 [skip ci] * chore: fix a few workflow rendering issues * Fix minor issues with the proxy template (#781) * chore(DATAGO-121164): Upversion aiohttp and pdfminer.six (#770) * DATAGO-121164 fix vulnerabilities CVE-2025-69227, CVE-2025-69223 (aiohttp) * DATAGO-121164 upversion connector * chore: Add always-run status check for UI CI workflow (#779) * chore: Add always-run status check for UI CI workflow The UI CI workflow uses path filters and only runs when frontend code changes. This causes issues with required status checks in GitHub - when only backend code is modified, the check doesn't run and isn't marked as passed, blocking PRs unnecessarily. Changes: - Add check-paths job to detect UI file changes using dorny/paths-filter - Make ui-build-and-test conditional based on path filter results - Add ui-ci-status job that always runs and reports final status: - Passes when UI files unchanged (allows backend-only PRs) - Passes when UI tests run and succeed - Fails when UI tests run and fail - Update bump-version to only run when UI files changed To use: Set "UI CI Status" as the required status check in GitHub branch protection rules instead of "Build and Test UI". Co-Authored-By: Claude <[email protected]> * Remove path filters from workflow triggers Since we're now using the dorny/paths-filter action within the workflow to detect UI changes, we no longer need the path filters on the workflow triggers. The workflow will now always run, but the check-paths job determines whether UI tests execute. Co-Authored-By: Claude <[email protected]> * chore: Pin GitHub Actions to specific commit hashes Pin all GitHub Actions to specific commit hashes for security using pinact. This follows security best practices by ensuring actions are immutable. Actions pinned: - actions/checkout@v4 -> v4.3.1 - dorny/paths-filter@v3 -> v3.0.2 - amannn/action-semantic-pull-request@v5 - actions/setup-node@v4 -> v4.4.0 - actions/cache@v4 -> v4.3.0 - webfactory/[email protected] Note: Some actions (@main, @master) cannot be pinned and remain as-is. Co-Authored-By: Claude <[email protected]> * Rollback some version changes * . * Adjust messages --------- Co-authored-by: Claude <[email protected]> * chore: Many changes done to the workflow visualization * ci(DATAGO-121651): fix idendical image digests (#789) * chore: more updates to the workflow diagrams * Adjust the workflow list for the onboarding and table size * chore(DATAGO-121602): swapping out dialogs for standard in order to show linear progress (#792) * chore: swapping out dialogs to show linear progress * chore: updating storybook * ci(ui): bump version to ui-v1.30.4 [skip ci] * chore: fix agent status * chore: Some workflow diagram fixes to align better with the HLM * feat(DATAGO-118825): Add success/failure logging with duration for MCP tool calls (#766) * feat: Add success logging with duration for MCP tool calls Adds structured logging when MCP tools complete successfully to enable complete tool lifecycle auditing (call + success). The success log includes user_id, agent_id, tool_name, session_id, and execution duration in milliseconds. This complements the existing call logging (from commit 1715f911a) by tracking when tools finish executing and how long they took, enabling performance monitoring and usage auditing per user/agent. * feat: Add failure logging for MCP tool execution errors Adds error logging when MCP tools fail execution, complementing the existing success logging. The failure log includes execution duration and error details to enable performance monitoring and error tracking. Changes: - Added _log_mcp_tool_failure function for error logging - Wrapped tool execution in try/catch to capture and log failures - Exception re-raised after logging to maintain existing behavior - Added comprehensive tests verifying exception propagation The failure log includes user_id, agent_id, tool_name, session_id, duration_ms, and error message in both the log message and structured extra dict. * undo uv lock * refactor: Extract MCP tool audit logging into dedicated method Refactored logging logic into _execute_tool_with_audit_logs method to reduce duplication and improve maintainability. The new method handles start/success/failure logging with duration tracking in a single location. - Extract audit logging into _execute_tool_with_audit_logs method - Add type annotation for _original_mcp_tool field - Use lambda to simplify tool execution call - Import log helper functions in test file * test: Add tests for _execute_tool_with_audit_logs method Replace error handling tests with focused audit logging tests: - test_logs_success_with_duration: Verifies success logging with duration - test_logs_failure_with_duration: Verifies failure logging with duration - test_run_async_impl_calls_audit_logs: Verifies integration with _run_async_impl * fix: enable task_logging in webui config template (#797) * ci: add ability to release exact version (#796) * ci: add ability to release exact version * update version * [ci skip] Bump version to 1.13.2 * chore: workflow node added * docs(DATAGO-118857): Adding documentation covering connectors (#687) * docs(DATAGO-118857): Adding documentation covering connectors * docs: Fixing typo * docs: Provide PR suggestions (#723) * Update docs * docs: remove trailing periods from connector documentation lists * docs: Add coming soon banner to openapi connectors --------- Co-authored-by: Jack Clarke <[email protected]> * chore: remove the node_id tooltip for nodes in the workflow diagram * fix(DATAGO-121281): Fix Pydantic Schema Validation for Enum values (#800) * fix: Adding new function to normalize schema dict * fix: Adding test coverage * [ci skip] Bump version to 1.13.3 * feat(DATAGO-118823): Add audit logging for open api tool calls. (#768) * feat: Implement OpenAPI audit logging callbacks and integrate with tool invocation lifecycle * refactor: Enhance OpenAPI audit logging with error details and consolidate into callbacks.py - Add endpoint path and error type to failed OpenAPI tool call logs - Extract full URI (base URL + path template) for better debugging - Classify error types (auth_error, not_found, timeout, network_error) - Detect and log pending auth responses as WARNING (not success) - Consolidate OpenAPI audit code from separate file into callbacks.py - Extract _extract_openapi_metadata() helper to reduce code duplication - Update tests to match current implementation (7/7 passing) - Security: Log only path templates, never resolved values with sensitive params Log format improvements: - Success: [openapi-tool] [corr:xxx] POST: operation completed - Latency: Xms - Error: [openapi-tool] [corr:xxx] POST: operation failed - Path: /posts, Error Type: auth_error, Latency: Xms - Pending: [openapi-tool] [corr:xxx] POST: operation pending auth - Latency: Xms 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> * chore: Reset uv.lock to main branch version 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> * refactor: Simplify OpenAPI metadata extraction by removing unused arguments * refactor: Update OpenAPI tool origin check for audit logging * refactor: Simplify OpenAPI tool origin check in callbacks.py --------- Co-authored-by: Claude <[email protected]> * feat(DATAGO-120931): Gateway Auto-Registration via A2A Discovery (#719) * [ci skip] Bump version to 1.13.4 * refactor(DATAGO-119380): Improve vibe coding doc (#791) * fix: update examples * fix: add vibe coding to the readme * fix: add vibe coding to the readme * fix: add vibe coding to the readme * fix: add vibe coding to the readme * fix: update vibe coding doc * fix: update context7 rules and vide coding doc * fix: update vibe coding doc * fix: update vibe coding document * fix: update vibe coding document * fix: move vibe coding menu * Update README.md Improve writing Signed-off-by: Ali Parvizi <[email protected]> --------- Signed-off-by: Ali Parvizi <[email protected]> * Add note about the new LLM Cache env var for agent builder. (#795) * fix: skip confirmation dialog when clicking Discard Changes button during prompt edits (#731) * ci(ui): bump version to ui-v1.30.5 [skip ci] * chore: some refactoring with workflow calls * fix(DATAGO-121519): Develop a preprocessor to clean input data before TTS submission (#777) * feat(tts): add markdown preprocessing and fix streaming playback * fix: remove redundant lines to meet PR size check requirement * fix: add max input length limit * fix: meet PR size check * fix: markdown parsing via marked library * fix: add new endpoint for markdown stripping * fix: remove redundant comment * refactor: use markdown-it-py and BeautifulSoup for TTS preprocessing, add /preprocess endpoint * chore: remove redundant fallbacks * fix: use commonmark preset * fix: ordered list parsing * fix: code block placeholoder for TTS * fix: parallelize TTS chunk generation to reduce playback gaps * ci(ui): bump version to ui-v1.31.0 [skip ci] * feat(DATAGO-121021): Add OAuth 2.0 Authentication Support to MCP Configuration Portal UI (#793) * feat(DATAGO-121021): Add OAuth 2.0 support to MCP config UI initial commit * Updated example to be more generic * fixed up duplicate code * chore: first version of feedback fixes * chore: more updates after testing * chore: project file version fixes (#798) * ci(ui): bump version to ui-v1.31.1 [skip ci] * fix: remove tooltip from cancel button in ChatInputArea component (#805) Co-authored-by: Claude <[email protected]> * ci(ui): bump version to ui-v1.31.2 [skip ci] * chore: fixed some sub-node things * chore: fix some info in the runtime graph * chore: Fixed issue with breadcrumbs with nested workflows * chore: Change Workflow to Activity for viewing the task's activity * chore: fix the table styling for workflows * chore(DATAGO-121940): Address PR review comments for Workflows feature stack Fixes from PR review comments: - Use ArtifactRef in StructuredInvocationResult instead of separate artifact_name and artifact_version fields - Improve loop delay description with format examples - Add on_cancel field to ExitHandler for cancellation handling - Update _execute_exit_handlers to handle cancelled outcome - Validate result embed has artifact OR explicit error status - Add header comment to new_node_types_test.yaml Co-Authored-By: Claude Opus 4.5 <[email protected]> * chore: some tests were out of date with recent code changes * chore: a couple more adjustmenst post merge * chore: Made a few style adjustments * chore: replaced simpleeval with a custom built evaluator * docs(DATAGO-121452): Add Workflows documentation Add documentation for the Workflows feature: - Add components/workflows.md reference documentation covering node types, template expressions, error handling, and configuration options - Add developing/creating-workflows.md tutorial guide with step-by-step examples for building workflows - Update components/components.md and developing/developing.md index pages with links to new documentation Also: - Move workflow_schema.json to common/schemas/ for better discoverability - Add missing onCancel/on_cancel fields to exitHandler in schema * chore: reordered components in the overview * chore: some more doc corrections * chore(DATAGO-122096): Clean up remaining conditional node type references Remove references to the deprecated "conditional" node type which was replaced by the "switch" node type. Changes: - Remove "conditional" pytest marker from pyproject.toml - Change nodeType check from "conditional" to "switch" in VisualizerStepCard - Update node type description in data_parts.py to list current types - Update condition field description from "conditional/loop" to "switch/loop" - Remove dead conditional node validation block in app.py - Update comment in all_node_types_workflow.yaml - Rename test ID from "conditional_wf" to "guarded_wf" * chore(DATAGO-122087): Remove authenticatedFetch export, use api.webui.get Refactor to use the existing api.webui.get pattern with fullResponse: true instead of exporting authenticatedFetch directly. Changes: - Remove export from authenticatedFetch in client.ts - Remove re-export from api/index.ts - Update NodeDetailsCard.tsx to use api.webui.get with fullResponse: true * refactor: use named React imports instead of namespace imports Replace `import React from 'react'` with named imports like `import { type FC, useState, ... } from 'react'` across workflow visualization and activity components. Also replaces `React.FC` with `FC`, `React.useState` with `useState`, etc. Part of DATAGO-122087 * chore: fixed an unintentional absolute file path --------- Signed-off-by: Ali Parvizi <[email protected]> Co-authored-by: moodiRealist <[email protected]> Co-authored-by: enavitan <[email protected]> Co-authored-by: Paul Jones <[email protected]> Co-authored-by: Automated Version Bump <[email protected]> Co-authored-by: Mohamed Radwan <[email protected]> Co-authored-by: GitHub Action <[email protected]> Co-authored-by: Ali Parvizi <[email protected]> Co-authored-by: Linda Hillis <[email protected]> Co-authored-by: Carol Morneau <[email protected]> Co-authored-by: Cyrus Mobini <[email protected]> Co-authored-by: aider (openai/gemini-2.5-pro) <[email protected]> Co-authored-by: Art Morozov <[email protected]> Co-authored-by: Tamimi Ahmad <[email protected]> Co-authored-by: Jack Clarke <[email protected]> Co-authored-by: Ziyang Wang <[email protected]> Co-authored-by: Robert Zuchniak <[email protected]> Co-authored-by: Hugo Paré <[email protected]> Co-authored-by: Mackenzie Stewart <[email protected]> Co-authored-by: Claude <[email protected]> Co-authored-by: Amir Ghasemi <[email protected]> Co-authored-by: jessieli-ux <[email protected]> Co-authored-by: Jamie Karam <[email protected]> Co-authored-by: Raman Gupta <[email protected]> Co-authored-by: Rudraneel Chakraborty <[email protected]> Co-authored-by: Michael Du Plessis <[email protected]> Co-authored-by: evenjessie <[email protected]> Co-authored-by: Greg Meldrum <[email protected]>
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.
…e stack (#825)
Adds the foundational data models and utilities required by the Prescriptive Workflows feature:
Adds the Pydantic models that define the YAML schema for workflow definitions with Argo Workflows-compatible syntax:
Enables agents to be invoked with schema-validated input/output:
Adds ADK Tool that allows agents to invoke workflows:
Adds the WorkflowExecutorComponent that coordinates execution:
Adds the core DAG execution engine:
Adds the AgentCaller for invoking agents via A2A:
Adds backend integration and comprehensive test coverage:
Adds all frontend changes for workflow visualization:
Remove legacy FlowChart visualization files that were replaced by the new workflow activities visualization system. These files are no longer needed with the new Activities-based architecture.
Files removed:
chore(DATAGO-120348): Introduce a template to PRs (chore(DATAGO-120348): Introduce a template to PRs #690)
DATAGO-120348: Introduce a template to PRs so authors highlight what problem the PR is trying to solve, how it is solving the problem, and how it has been tested.
DATAGO-120348: enhance the template
fix(DATAGO-118177) - Manage memory usage for uploading large files (fix(DATAGO-118177) - Manage memory usage for uploading large files #683)
fix(DATAGO-118675): Start the user in AI mode when editing a prompt (fix(DATAGO-118675): Start the user in AI mode when editing a prompt #678)
Set default to ai mode when editing prompts and new unit test
added back fragment to make code change more readible
Missed file..before loading prompts for edit, set builder mode to ai-assisted
ci(ui): bump version to ui-v1.24.3 [skip ci]
fix: use BrokerOutput component for direct publisher initialization (fix: use BrokerOutput component for direct publisher initialization #717)
fix: use BrokerOutput component for direct publisher initialization
The direct publisher for deployer commands was failing because:
Fixed by:
[ci skip] Bump version to 1.11.4
fix: prevent double response in AuthMiddleware when token validation fails (fix: prevent double response in AuthMiddleware when token validation fails #718)
When _handle_authenticated_request sent an error response (401/500) and returned, the call method would still call self.app(), causing a second response to be sent. This resulted in:
"RuntimeError: Unexpected ASGI message 'http.response.start' sent, after response already completed."
Fix: _handle_authenticated_request now returns a boolean indicating whether an error response was sent. The caller checks this and returns early to prevent calling self.app() after an error response.
ref: added image tools to the document (refactor(DATAGO-119380): Add image tools to the document #696)
ref: update built-in tools document (refactor(DATAGO-119380): Update built-in tools document #695)
ref: update python tools (refactor(DATAGO-119380): Update python tools document #694)
ref: added custom artifact to documents (refactor(DATAGO-119380): Added custom artifact scope to documents #693)
chore(DATAGO-117985): Refactoring chat provider for better encapsulation (chore(DATAGO-117985): Refactoring chat provider for better encapsulation #716)
chore: refactoring chat provider
chore: removing extraneous changes
chore: updating type name
chore: using extracted taskMigration
chore: using extracted artifact preview
chore: removing unused hooks
chore: using artifact operations
chore: tidying imports
chore: tidying imports
ci(ui): bump version to ui-v1.24.4 [skip ci]
chore: update storybook to 10.1.10 (chore(DATAGO-120564): update storybook to 10.1.10 #722)
ci(ui): bump version to ui-v1.24.5 [skip ci]
chore(DATAGO-120523): Update platform service API path from /enterprise to /platform (chore(DATAGO-120523): Update platform service API path from /enterprise to /platform #721)
refactor: Update platform service API path from /enterprise to /platform
Update Vite dev server proxy configuration and platform service architecture to use /api/v1/platform instead of /api/v1/enterprise.
Changes:
Architecture:
Community defines PLATFORM_SERVICE_PREFIX as single source of truth. Both community and enterprise platform routers use this prefix, ensuring consistent API structure under /api/v1/platform/*.
fix: Allow OPTIONS requests through OAuth2 middleware for CORS preflight
feat(DATAGO-120523): Add platform service health endpoint at /api/v1/platform/health
This aligns with the platform service API structure where all platform endpoints are under /api/v1/platform prefix.
Related PRs:
Updated PlatformServiceFactory to use centralized PLATFORM_SERVICE_PREFIX instead of expecting prefix in router configs. This matches the production pattern where all platform service endpoints (community and enterprise) are consistently mounted under /api/v1/platform.
Changes:
ci(ui): bump version to ui-v1.25.0 [skip ci]
[ci skip] Bump version to 1.11.5
docs(DATAGO-118501): Document platform migration (docs(DATAGO-118501): Document platform migration #677)
docs: Platform service migration
docs: migration slight rewording
docs: move platform migration right under migrations/ and update enterprise version the migration applies to
docs: platform migration doc improvements
chore: trigger PR size validation workflow
fix: linking platform.yaml rather than copying in docs
fix: Update enterprise version now that enterprise PR has been merged
fix: link to platform.yaml in a way that works everywhere including CI/CD pipeline
feat(DATAGO-119380): Return the list of built-in tools using CLI command (feat(DATAGO-119380): Return the list of built-in tools using CLI command #733)
feat: list tools using cli command
feat: add unit tests
fix: update a unit test to count cli commands
feat: document tools CLI command
chore: tidying ui (fix(DATAGO-117142): adding await to ensure logout doesn't get logged immediately back in #737)
ci(ui): bump version to ui-v1.25.1 [skip ci]
refactor(DATAGO-119380): Update logging document (refactor(DATAGO-119380): Update logging document #691)
ref: update logging document
fix: cleaned log configuration document
ref(DATAGO-119380): Add vibe coding page to documents (ref(DATAGO-119380): Add vibe coding page to documents #689)
ref: added vibe coding to documents
fix: update vibe coding page location
fix: moved vibe coding under Get Started menu
ref(DATAGO-119380): Improve context7 rules for vibe coding (ref(DATAGO-119380): Improve context7 rules for vibe coding #734)
fix: improve rules of context7
ref: update context7 rules
ref: update context7 rules
fix: update context7 url
feat(DATAGO-118652): Add generic gateway auth framework + better agent registeration management (feat(DATAGO-118652): Add generic gateway auth framework + better agent registeration management #610)
docs: add generic gateway adapter implementation plan
docs: add implementation checklist for generic gateway adapter framework
feat: add generic gateway adapter framework core types and interfaces
feat: implement GenericGatewayApp with adapter loading schema
feat: implement GenericGatewayComponent with adapter orchestration
feat: add user feedback submission mechanism to gateway adapter framework
feat: add Slack gateway adapter using generic framework
fix: add missing SamTextPart import to slack adapter
refactor: move adapter config validation to pydantic models
refactor: remove try-except wrapper for slack_bolt imports
chore: cleanup
refactor: remove abstract requirement for handle_text_chunk method
refactor: prioritize child class parameters in schema merging
refactor: move common gateway configs to base class
refactor: migrate slack gateway config to generic adapter framework
refactor: fix slack handler registration to use explicit signatures
fix: align SlackAdapter method signatures with GatewayAdapter base class
refactor: align AuthClaims model with framework identity expectations
fix: handle default values in cache service get methods
refactor: decouple Slack adapter from A2A protocol and filter data parts
feat: filter duplicate text and file parts from final streaming responses
fix: prevent duplicate content in slack final status messages
refactor: remove unused generate_a2a_session_id function
refactor: improve slack markdown formatting and feedback button placement
refactor: add underline and newline to Slack heading formatting
refactor: simplify Slack markdown heading format by removing separator
feat: implement multi-step feedback flow with text input in Slack adapter
refactor: separate feedback buttons into distinct message from status
feat: add standardized feedback event publishing to gateway
refactor: remove redundant context from feedback events
refactor: remove platform_context and task_context from SamFeedback model
chore: clean up the slack launch target
feat: enhance artifact creation progress display in Slack adapter
refactor: implement stateful artifact progress messages with sequential processing
feat: add artifact content loading helper to gateway context
refactor: rename conversation_id to session_id and sanitize Slack IDs
refactor: use artifact helper for loading content in generic gateway
refactor: implement three-step external upload for Slack file ordering
refactor: associate file upload with descriptive message using initial_comment
refactor: format code with consistent line breaks and spacing
fix: add user_id_for_artifacts to external_request_context for artifact resolution
refactor: use individual a2a helper functions for FilePart processing
chore: Fix issue with text/file ordering for slack results
feat: add /artifacts command to slack adapter with download support
fix: handle missing thread_ts in artifacts command to prevent crash
refactor: implement command framework with !artifacts keyword trigger
feat: add help command and fix artifacts to post in thread with truncated descriptions
fix: handle user identity extraction from Slack action events and post errors to thread
refactor: remove ephemeral status message from download action
refactor: improve artifact list UI and fix help command threading
chore: cleanup docs
chore: cleanup docs
refactor: rename a2a_ prefixed constants to slack_ in Slack gateway utils
chore: create CLI based gateway as an example
Add rich formatting
chore: Added a simple CLI gateway
chore: add example MCP gateway
chore: add some oauths support to MCP server
chore: add some more auth stuff
chore: debugging
chore: a few fixes for auth
fix: Require PKCE and remove any details from client auth failure responses
chore: remove cli and slack gateway examples
chore: cleanup
fix: update Slack adapter reference in configuration and clean up component initialization
fix: update logging config path in launch.json and adjust MCP client usage examples in mcp_gateway_example.yaml
fix: update launch configurations to use solace_agent_mesh.cli.main and adjust args for execution
fix: update MCP gateway example to listen on localhost and remove unused AuthClaims import in adapter
Remove utility functions for MCP Gateway Adapter from utils.py
add tool filtering configuration to MCP gateway example
fix: Improve logging for OAuth proxy route setup in gateway authentication
fix: Update .gitignore to include .sam and *.key files
feat: Implement user identity extraction method in GenericGatewayComponent
Add unit tests for authentication features and OAuth utilities
test_auth_interface.py, covering abstract methods, concrete implementations, and error handling.test_component_auth.py, ensuring proper behavior of the BaseGatewayComponent.test_component_auth_and_callbacks.py, validating interactions with the agent registry.test_oauth_utils_integration.py, verifying behavior with and without the enterprise package.Add enterprise package checks and conditional OAuth tests
refactor: remove MCP gateway example configuration and related launch settings
refactor: streamline authentication setup and improve logging for agent registration
refactor: update OAuth proxy handling to use global variable and improve test coverage
refactor: update user info retrieval test to include query parameters
refactor: remove outdated comments from authentication endpoints
refactor: replace direct attribute access with setter methods for agent callbacks
refactor: remove unused global OAuth proxy functions and related tests
refactor: remove deprecated Gateway OAuth proxy endpoint from auth middleware
refactor: remove OAuth proxy functions and related middleware from main.py
refactor: remove unused OAuth-related tests and classes from integration tests
refactor: remove unused TestGetUserInfoWithEnterprise class from integration tests
refactor: update app module path and clean up unused tests in gateway components
[ci skip] Bump version to 1.12.0
fix(DATAGO-119380): Update Context7 URL (fix(DATAGO-119380): Update Context7 URL #743)
fix: update url
fix: update the unit test
ci(DATAGO-120987): fix release workflow with skipped security checks (ci(DATAGO-120987): fix release workflow with skipped security checks #745)
feat(DATAGO-121014): Add cli command for adding proxy (feat(DATAGO-121014): Add cli command for adding proxy #746)
feat(DATAGO-121014): Add cli command for adding proxy
minor changes
fix(DATAGO-120949): Move migrations to init for sequential execution (fix(DATAGO-120949): Move Platform Service migrations to __init__ to prevent race conditions #741)
Both Platform and WebUI migrations now run in init() during component creation, ensuring sequential execution and preventing Alembic/SQLAlchemy race conditions.
Changes:
[ci skip] Bump version to 1.12.1
feat(DATAGO-119367): Add wide logs for auditing MCP server usage (feat(DATAGO-119367): Add wide logs for auditing MCP server usage #742)
Adds structured logging for MCP tool calls to enable tracking usage per user/agent. The log includes user_id, agent_id, tool_name, and session_id both in the message and as structured extra fields for easy filtering and auditing.
feat(DATAGO-120289): Add stepper ui component (feat(DATAGO-120289): Add stepper ui component #744)
Add stepper ui component
Add storybook test
ci(ui): bump version to ui-v1.26.0 [skip ci]
feat(DATAGO-118768): Support remote MCP server configuration in sam add agent --gui (feat(DATAGO-118768): Support remote MCP server configuration in sam add agent --gui #735)
feat: new ui
fix: config file formatting bugs
fix: remove oauth2 configuration, alter headers
fix: remove duplicate env variables input
fix: remove blocking deletion, description
fix: copilot requests
fix: remove redundant deletion logic
chore: log message
Cleanup of orginal change.
Updated help text
revert help text back to original
Testing fix for env (fix(DATAGO-121085): Adding Platform OAuth Callback endpoint to list of skipped paths #751)
fix: update module path in launch configurations to use relative import (chore: update module path in launch configurations to use relative import #750)
chore(DATAGO-120962): deleting unused projects code (chore(DATAGO-120962): deleting unused projects code #747)
chore: deleting unused code
chore: removing more unused code
ci(ui): bump version to ui-v1.26.1 [skip ci]
fix: Updating expected test result based on PEP8 standard (fix(DATAGO-121107): Updating expected test result based on PEP8 standard #752)
[ci skip] Bump version to 1.12.2
feat(DATAGO-121143): Exclude Platform Service health endpoint from authentication (feat(DATAGO-121143): Exclude Platform Service health endpoint from authentication #755)
🤖 Generated with Claude Code
chore: clearning tokens and tidying (fix(DATAGO-117142): clearing tokens and tidying empty states #758)
ci(ui): bump version to ui-v1.26.2 [skip ci]
chore(DATAGO-120962): replacing custom components with standard ones in project (and prompt) UI (chore(DATAGO-120962): replacing custom components with standard ones in project (and prompt) UI #740)
chore: replacing custom components with standard ones
chore: tidying
chore: tidying
chore: tidying
chore: responding to UX feedback
chore: switching to standard dialog to support linear progress display
chore: tidying
chore: making titles uniform
chore: tidying delete dialog
chore: tidying
chore: making dialog more consistent with prompt import
chore: improving badge for ux feedback
chore: tweaking for dark mode
ci(ui): bump version to ui-v1.26.3 [skip ci]
feat(DATAGO-116403): add sam_access_token validation to middleware (feat(DATAGO-116403): add sam_access_token validation to middleware #738)
feat: add sam_access_token validation to middleware
🤖 Generated with Claude Code
fix trust manager property
logging update
update logs
Add support for regex-based CORS origin matching in Platform Service. This enables local development scenarios where ports are dynamically assigned (e.g., minikube service), by allowing a regex pattern like 'https?://(localhost|127.0.0.1):\d+' to match any localhost port.
Changes:
Usage in values.yaml:
cors_allowed_origin_regex: "https?://(localhost|127\.0\.0\.1):\d+"
feat(DATAGO-117225): Web Search and Deep Research (feat(DATAGO-117225): Web Search and Deep Research #574)
wip(deep-research): initial commit
fix(deep-research): fix search metadata pass-through from frontend to tool
fix(deep-research): UI styling updates
chore: update RAG sources icon
feat(deep-research): render citations as clickable links in the markdown output
chore: restrict source types to web and kb
feat: web search UI and agent
fix(web search): ui fixes
feat(web-search): tools ui
chore: remove logging_config.ini from version control
fix(deep research): remove UI toggle
fix(deep research): UI/UX updates
fix(deep-research): backend tool cleanup
UI updates to Sources
Moved the location and changed styling of the sources button under chat responses
Combined research timeline with completed research progress state.
Updated behaviour for active progress state
add closing animation to accordion
Fixed visual bug on closing animation
fix: example agents
fix(deep-research): sidepanel sources were cumulative
fix: should not render sources for user messages
fix: updated agent in examples
fix: web sources UI
fix: change frontend to use camelCase vars
fix: modify agent prompt to not show sources separately
fix: camelCase for source citation IDs
fix(web-search): image source cards styling
fix: remove duplicate image links
fix: simplify sources component
fix: UI styling updates
fix: show confirmation dialog when navigating away from active deep research session
fix: web search citation markers in peer agent responses should be kept
fix: return deep research report result as an artifact from the tool
fix: remove deep research warning when navigating away, will be handled by background tasks
feat: integration test suite, support for Brave and Exa web search APIs
fix: show image sources in side panel
fix: add pytest markers
fix: move rag dto to common
fix: Replace ADKToolWrapper with direct artifact service call in deep_research_tools, refactor filename sanitization
fix: simplify the deep research agent configuration
fix: remove hardcoded LLM config from deep research agent configuration
fix: add max response size limit for web request
fix: minor ephemeral source ordering issue
fix: removed Tavily, Exa, Brave web search integrations
fix: remove Tavily fallback from deep research tool
fix: report rendering updates for better UX
fix: group deep research web sources (full vs. partial)
fix: remove redundant description
refactor: extract publish_data_signal_from_thread to component.py
chore: Rename _web_search_google to web_search_google
feat: update docs for web search and deep research
fix: add TTS and copy support for deep research reports
fix: clear sources when switching chat sessions
fix: deep research links in preview panel were not clickable
fix: address minor issue for rendering of deep research artifacts during background tasks
fix: citation styling
fix: allow ask followup on deep research reports
chore: theme colors for web links
fix: update tests
fix: update deep research invoke criteria in prompt
fix: the trio selectordid not look right at the minimum width of the panel
fix: conditionally render sources tab
feat: new research agent example
fix: deep research report artifact reload form URI
fix: error handling for artifact failing to be saved
fix: ariakit refactor, other minor fixes
fix: LLM-geenrated sources tab title
fix: auto title generation for Sources panel, minor agent updates
fix: support comma-separated citation markers like [[cite:search1, search2]]
fix: deep research progress shows query-URL pairs correctly during research
fix: filter intermediate web_content_ artifacts from workflow visualization
fix: resolve report duplication due to partial response appending in deep research tool, also filter out intermediate web artifacts
fix: increase max_output_tokens for Gemini 2.5 Pro reasoning tokens
fix: keep artifact info in peer deep research response for delegating agent to use artifact_return
chore: remove unused tool_config_status and frontend settings components for web_search and deep_research
fix: fixed JSON parsing errors in deep research tool for Gemini 2.5 Pro compatibility.
fix: refactor duplicated frontend code
fix: re-enable background tasks
fix: reset peer timeout on status signal forwarding and add task flags
fix: handle multi citation formats
fix: replaced regex for cleaning up of LLM response
chore: unit tests
chore: increase test coverage
chore: further increase test coverage
chore: additional unit test for deep research
ci(ui): bump version to ui-v1.27.0 [skip ci]
[ci skip] Bump version to 1.13.0
fix(DATAGO-120298): Investigate and fix garbled conversation displayed in AI Assistant (fix(DATAGO-120298): Investigate and fix garbled conversation displayed in AI Assistant #724)
fix(STT): add STT to AI prompt builder, bugfix for STT language settings
fix: snake_case to camelCase for prompt text
fix: AI builder returns camelCase now
fix: production_prompt to camelCase in frontend
fix: more casing fixes
fix: is_pinned casing
fix(DATAGO-118327): pasted text artifact fix
fix: updated text selection menu options and flow
fix: add mimeType to PastedArtifactItem model
fix: reorder highlighted context and prompt
fix: editable badges for large pasted text input
fix: long import fields breaking the UI
fix: limit number of large text paste badges to 5
fix: hide non-configured STT/TTS providers
chore: update Start New Chat on prompt detail page to "Use in Chat"
fix: experimental badge, prompts usage from prompts page starts new chat
fix: update prompt icon to notepad-text
revert: remove limit on number of pasted text badges
fix: add scrolling for pasted text badges
fix: should not allow to save empty artifact
fix: Ask Followup popup should always stay above the highlighted textand be left aligned with the start of the highlight
fix: import validation on field max lengths
feat: added syntax-highlighting to the prompt content field
fix: increase font size of experimental badge
fix: remove toast notification when pinning or on un-pinning prompts
fix: change artifact to file in paste action dialog
fix: version metadata fields of prompt templates as well
fix: address update problem when using prompt in new chat
fix: auto detect pasted text artifact MIME type
fix: confirmation dialog for artifact overwrite
fix: text selection bug, paste action auto detection removed
fix: experimental badge colors
refactor: refactor the PromptImportDialog to use the zod schema with react-hook-form
fix: auto upload pasted text badge as artifact
fix: remove redundant artifact save toast
fix: nullish values for prompt import
fix: change category to tag in import dialog
fix: increase toast duration, unify toast messages
fix: inform user about truncation of prompt in import dialog
fix: switch to warning variant for prompt truncation on import
fix: improve artifacts upload UX for large pasted text
fix: warn on duplicate filenames across pending pasted text items
fix: tooltip placement
fix: reset form state on new creation
fix: prompt import UX improvements
fix: update error message colours
fix: minor styling
fix: conflicting fields should remain editable
fix: remove asterisk on required fields on import if no conflicts
fix: minor import ui fixes
fix(DATAGO-120298): Investigate and fix garbled conversation displayed in AI Assistant
ci(ui): bump version to ui-v1.28.0 [skip ci]
fix(DATAGO-120962): tidying format and improving ui when added files to projects (fix(DATAGO-120962): tidying format and improving ui when added files to projects #765)
chore: fixing dialog closure and improving formatting
chore: removing inaccessible fileupload section from UI
chore: more formatting
ci(ui): bump version to ui-v1.28.1 [skip ci]
feat(DATAGO-118201): Add React Query (feat(DATAGO-118201): Add React Query #736)
feat: migrate from Context-based data fetching to React Query
refactor: remove obsolete migration guide and example usage files; update query hooks for improved handling
feat: integrate React Query for data fetching and add query client configuration
refactor: remove unnecessary comments from project hooks for clarity
refactor: simplify query client configuration by removing retry logic and unnecessary comments
fix: update React Query and ESLint plugin versions to remove caret (^) for consistency
feat: implement QueryProvider for React Query integration and remove obsolete queryClient file
fix: add documentation comments for shared QueryClient instance in QueryProvider
refactor: rename useProjectArtifacts to useProjectArtifactsNew for clarity
feat: update hooks documentation to clarify development status and usage warnings
feat: add QueryClient and refactor QueryProvider to utilize shared instance
ci(ui): bump version to ui-v1.29.0 [skip ci]
chore(DATAGO-108909): Add adaptive stream rendering of chat result text to smooth it out (chore(DATAGO-108909): Add adaptive stream rendering of chat result text to smooth it out #759)
What is the purpose of this change?
Smooth out the rendering of streaming chunks of text from the backend. This is done to improve the user experience in cases where the chunk size is large and the rendering becomes very stuttery.
With this change, we are now able to greatly increase the batching size in the backend to reduce the large number of status update messages we are getting today, which are only there to improve the smooth rendering.
ci(ui): bump version to ui-v1.29.1 [skip ci]
fix(DATAGO-121140): Fix loss of embedded templates in sub-agent responses (fix(DATAGO-121140): Fix loss of embedded templates in sub-agent responses #756)
Fixes an issue where
template_liquidblocks in LLM responses were being stripped when responses were sent back to calling agents in peer-to-peer communication. This caused confusion in the calling agent as they couldn't see or forward the template blocks to the gateway for resolution.Root Cause: When an LLM generates a response containing
template_liquidblocks, the stream parser extracts the template content and emits aTemplateBlockDatasignal for the gateway to resolve. However, for RUN_BASED sessions (peer-to-peer agent requests), the calling agent only receives the aggregated response text—which had the template blocks stripped out.Fix: For RUN_BASED sessions, when a
TemplateBlockCompletedEventis processed, we now preserve the original template block text in the response at its original position. This allows calling agents to forward templates to the gateway for resolution.fix: Change MCP results to 'all or none' and allow full configuration of schema discovery depth
Revert "fix: Change MCP results to 'all or none' and allow full configuration of schema discovery depth"
This reverts commit 1aa2af0.
fix(DATAGO-121333): Change MCP results to 'all or none' and allow full configuration of schema discovery depth (fix(DATAGO-121333): Change MCP results to 'all or none' and allow full configuration of schema discovery depth #767)
schema_inference_depthconfiguration (default: 4, range: 1-10) that can be set at the agent level or per-tool level viatool_config. This controls how deeply nested structures are inspected when generating artifact metadata.template_liquid(for displaying to users) orload_artifact(for processing) to access the full data from the saved artifact.chore: remove conditional node type from worklfows
chore: Remove mermaid diagram from workflow agent-card
test: Add unit tests for workflow agent card JSON config
Add tests to verify that workflow configurations are correctly serialized to JSON for inclusion in agent card extensions.
Tests cover:
chore: some consistency fixes
fix(DATAGO-118655) - Auth Enabled MCP gateway (part 2) (fix(DATAGO-118655) - Auth Enabled MCP gateway (part 2) #772)
feat: Add unit testing configuration and dependencies (test(DATAGO-120269): Add unit testing to frontend #778)
ci(ui): bump version to ui-v1.30.0 [skip ci]
feat(workflows): Add instruction field to workflow agent nodes
Add optional instruction field to AgentNode that allows workflow creators to provide additional context/guidance to target agents. The instruction supports template expressions (e.g., {{workflow.input.context}}) that are resolved at runtime.
Changes:
DATAGO-121520
chore: added a version config to the workflow config schema
fix(DATAGO-121435) Web search citations not properly mapped to sources with parallel tool calls (fix(DATAGO-121435) Web search citations not properly mapped to sources with parallel tool calls #769)
fix: parallel tool call citation handling
fix: improve web search citation accuracy with unique turn-based IDs
fix: more backend tests
ci(ui): bump version to ui-v1.30.1 [skip ci]
chore(DATAGO-117142): improving logout clearing (chore(DATAGO-117142): improving logout clearing #782)
chore: improving logout
chore: rename test for conflict
ci(ui): bump version to ui-v1.30.2 [skip ci]
fix(DATAGO-118139): fix vulnerable regex found in Sonarqube hotspot (fix(DATAGO-118139): fix vulnerable regex found in Sonarqube hotspot #660)
fix: regex
rename a unit test file name to avoid the conflict with integration test
chore: first cut at workflow diagram
fix(security): update dependencies to address vulnerabilities (fix(security): update dependencies to address vulnerabilities #784)
Note: urllib3 vulnerability cannot be fixed yet as solace-ai-connector==3.2.0 pins urllib3==2.6.0. Will require upstream update.
ci(ui): bump version to ui-v1.30.3 [skip ci]
chore: fix a few workflow rendering issues
Fix minor issues with the proxy template (Fix minor issues with the proxy template #781)
chore(DATAGO-121164): Upversion aiohttp and pdfminer.six (chore(DATAGO-121164): Upversion aiohttp and pdfminer.six #770)
DATAGO-121164 fix vulnerabilities CVE-2025-69227, CVE-2025-69223 (aiohttp)
DATAGO-121164 upversion connector
chore: Add always-run status check for UI CI workflow (chore: Add always-run status check for UI CI workflow #779)
chore: Add always-run status check for UI CI workflow
The UI CI workflow uses path filters and only runs when frontend code changes. This causes issues with required status checks in GitHub - when only backend code is modified, the check doesn't run and isn't marked as passed, blocking PRs unnecessarily.
Changes:
To use: Set "UI CI Status" as the required status check in GitHub branch protection rules instead of "Build and Test UI".
Since we're now using the dorny/paths-filter action within the workflow to detect UI changes, we no longer need the path filters on the workflow triggers. The workflow will now always run, but the check-paths job determines whether UI tests execute.
Pin all GitHub Actions to specific commit hashes for security using pinact. This follows security best practices by ensuring actions are immutable.
Actions pinned:
Note: Some actions (@main, @master) cannot be pinned and remain as-is.
Rollback some version changes
.
Adjust messages
chore: Many changes done to the workflow visualization
ci(DATAGO-121651): fix idendical image digests (ci(DATAGO-121651): fix idendical image digests #789)
chore: more updates to the workflow diagrams
Adjust the workflow list for the onboarding and table size
chore(DATAGO-121602): swapping out dialogs for standard in order to show linear progress (chore(DATAGO-121602): swapping out dialogs for standard in order to show linear progress #792)
chore: swapping out dialogs to show linear progress
chore: updating storybook
ci(ui): bump version to ui-v1.30.4 [skip ci]
chore: fix agent status
chore: Some workflow diagram fixes to align better with the HLM
feat(DATAGO-118825): Add success/failure logging with duration for MCP tool calls (feat(DATAGO-118825): Add success/failure logging with duration for MCP tool calls #766)
feat: Add success logging with duration for MCP tool calls
Adds structured logging when MCP tools complete successfully to enable complete tool lifecycle auditing (call + success). The success log includes user_id, agent_id, tool_name, session_id, and execution duration in milliseconds.
This complements the existing call logging (from commit 1715f91) by tracking when tools finish executing and how long they took, enabling performance monitoring and usage auditing per user/agent.
Adds error logging when MCP tools fail execution, complementing the existing success logging. The failure log includes execution duration and error details to enable performance monitoring and error tracking.
Changes:
The failure log includes user_id, agent_id, tool_name, session_id, duration_ms, and error message in both the log message and structured extra dict.
undo uv lock
refactor: Extract MCP tool audit logging into dedicated method
Refactored logging logic into _execute_tool_with_audit_logs method to reduce duplication and improve maintainability. The new method handles start/success/failure logging with duration tracking in a single location.
Replace error handling tests with focused audit logging tests:
fix: enable task_logging in webui config template (fix: enable task_logging in webui config template #797)
ci: add ability to release exact version (ci: add ability to release exact version #796)
ci: add ability to release exact version
update version
[ci skip] Bump version to 1.13.2
chore: workflow node added
docs(DATAGO-118857): Adding documentation covering connectors (docs(DATAGO-118857): Adding documentation covering connectors #687)
docs(DATAGO-118857): Adding documentation covering connectors
docs: Fixing typo
docs: Provide PR suggestions (docs: Provide PR suggestions #723)
Update docs
docs: remove trailing periods from connector documentation lists
docs: Add coming soon banner to openapi connectors
chore: remove the node_id tooltip for nodes in the workflow diagram
fix(DATAGO-121281): Fix Pydantic Schema Validation for Enum values (fix(DATAGO-121281): Fix Pydantic Schema Validation for Enum values #800)
fix: Adding new function to normalize schema dict
fix: Adding test coverage
[ci skip] Bump version to 1.13.3
feat(DATAGO-118823): Add audit logging for open api tool calls. (feat(DATAGO-118823): Add audit logging for open api tool calls. #768)
feat: Implement OpenAPI audit logging callbacks and integrate with tool invocation lifecycle
refactor: Enhance OpenAPI audit logging with error details and consolidate into callbacks.py
Log format improvements:
🤖 Generated with Claude Code
🤖 Generated with Claude Code
refactor: Simplify OpenAPI metadata extraction by removing unused arguments
refactor: Update OpenAPI tool origin check for audit logging
refactor: Simplify OpenAPI tool origin check in callbacks.py
feat(DATAGO-120931): Gateway Auto-Registration via A2A Discovery (feat(DATAGO-120931): Gateway Auto-Registration via A2A Discovery #719)
[ci skip] Bump version to 1.13.4
refactor(DATAGO-119380): Improve vibe coding doc (refactor(DATAGO-119380): Improve vibe coding doc #791)
fix: update examples
fix: add vibe coding to the readme
fix: add vibe coding to the readme
fix: add vibe coding to the readme
fix: add vibe coding to the readme
fix: update vibe coding doc
fix: update context7 rules and vide coding doc
fix: update vibe coding doc
fix: update vibe coding document
fix: update vibe coding document
fix: move vibe coding menu
Update README.md
Improve writing
Add note about the new LLM Cache env var for agent builder. (docs(DATAGO-121629): Add LLM_CACHE_STRATEGY note to Agent Builder docs #795)
fix: skip confirmation dialog when clicking Discard Changes button during prompt edits (fix(DATAGO-120524) Prompt Templates "Discard Changes" button should not ask for confirmation #731)
ci(ui): bump version to ui-v1.30.5 [skip ci]
chore: some refactoring with workflow calls
fix(DATAGO-121519): Develop a preprocessor to clean input data before TTS submission (fix(DATAGO-121519): Develop a preprocessor to clean input data before TTS submission #777)
feat(tts): add markdown preprocessing and fix streaming playback
fix: remove redundant lines to meet PR size check requirement
fix: add max input length limit
fix: meet PR size check
fix: markdown parsing via marked library
fix: add new endpoint for markdown stripping
fix: remove redundant comment
refactor: use markdown-it-py and BeautifulSoup for TTS preprocessing, add /preprocess endpoint
chore: remove redundant fallbacks
fix: use commonmark preset
fix: ordered list parsing
fix: code block placeholoder for TTS
fix: parallelize TTS chunk generation to reduce playback gaps
ci(ui): bump version to ui-v1.31.0 [skip ci]
feat(DATAGO-121021): Add OAuth 2.0 Authentication Support to MCP Configuration Portal UI (feat(DATAGO-121021): Add OAuth 2.0 Authentication Support to MCP Configuration Portal UI #793)
feat(DATAGO-121021): Add OAuth 2.0 support to MCP config UI initial commit
Updated example to be more generic
fixed up duplicate code
chore: first version of feedback fixes
chore: more updates after testing
chore: project file version fixes (fix(DATAGO-121369): project file version fixes #798)
ci(ui): bump version to ui-v1.31.1 [skip ci]
fix: remove tooltip from cancel button in ChatInputArea component (fix(DATAGO-121894): remove tooltip from cancel button in ChatInputArea component #805)
ci(ui): bump version to ui-v1.31.2 [skip ci]
chore: fixed some sub-node things
chore: fix some info in the runtime graph
chore: Fixed issue with breadcrumbs with nested workflows
chore: Change Workflow to Activity for viewing the task's activity
chore: fix the table styling for workflows
chore(DATAGO-121940): Address PR review comments for Workflows feature stack
Fixes from PR review comments:
chore: some tests were out of date with recent code changes
chore: a couple more adjustmenst post merge
chore: Made a few style adjustments
chore: replaced simpleeval with a custom built evaluator
docs(DATAGO-121452): Add Workflows documentation
Add documentation for the Workflows feature:
Also:
chore: reordered components in the overview
chore: some more doc corrections
chore(DATAGO-122096): Clean up remaining conditional node type references
Remove references to the deprecated "conditional" node type which was replaced by the "switch" node type.
Changes:
Refactor to use the existing api.webui.get pattern with fullResponse: true instead of exporting authenticatedFetch directly.
Changes:
Replace
import React from 'react'with named imports likeimport { type FC, useState, ... } from 'react'across workflow visualization and activity components. Also replacesReact.FCwithFC,React.useStatewithuseState, etc.Part of DATAGO-122087
What is the purpose of this change?
How was this change implemented?
Key Design Decisions (optional - delete if not applicable)
How was this change tested?
Is there anything the reviewers should focus on/be aware of?