Skip to content

Conversation

@lgh-solace
Copy link
Collaborator

@lgh-solace lgh-solace commented Jan 6, 2026

What is the purpose of this change?

Removing unused code.

How was this change implemented?

Deleted unused files. 

How was this change tested?

  • Manual testing: [describe scenarios]
  • Unit tests: [new/modified tests]
  • Integration tests: [if applicable]
  • Known limitations: [what wasn't tested]

Is there anything the reviewers should focus on/be aware of?

I checked enterprise too - I don't think any project related "stuff" is used outside of community code.

@github-actions
Copy link

github-actions bot commented Jan 6, 2026

WhiteSource Policy Violation Summary

✅︎ No Blocking Whitesource Policy Violations found in solaceai/solace-agent-mesh-ui-pr-747!

export { CreateProjectCard } from "./CreateProjectCard";
export { AddProjectFilesDialog } from "./AddProjectFilesDialog";
export { ProjectCard } from "./ProjectCard";
export { ProjectList } from "./ProjectList";
Copy link
Collaborator Author

@lgh-solace lgh-solace Jan 6, 2026

Choose a reason for hiding this comment

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

None of the above files were used. According to AI:

... all 8 unused files were part of the initial Projects feature implementation. They represent different iterations of the UI design during development (three-panel layout, various detail views) that were ultimately replaced by the current card-based design using ProjectCards and ProjectDetailView.

@lgh-solace lgh-solace requested a review from JKaram January 6, 2026 21:33
@lgh-solace lgh-solace marked this pull request as ready for review January 6, 2026 21:33
@sonarqube-solacecloud
Copy link

Quality Gate passed Quality Gate passed

Issues
0 New issues
0 Fixed issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
No data about Duplication

See analysis details on SonarQube

@lgh-solace lgh-solace requested a review from ziyanwan January 7, 2026 14:19
@lgh-solace lgh-solace merged commit 149cb38 into main Jan 7, 2026
25 of 27 checks passed
@lgh-solace lgh-solace deleted the lgh-removingUnusedCode branch January 7, 2026 15:45
solace-pjones added a commit that referenced this pull request Jan 23, 2026
… 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) <aider@aider.chat>

* docs: add implementation checklist for generic gateway adapter framework

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* feat: add generic gateway adapter framework core types and interfaces

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* feat: implement GenericGatewayApp with adapter loading schema

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* feat: implement GenericGatewayComponent with adapter orchestration

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* feat: add user feedback submission mechanism to gateway adapter framework

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* feat: add Slack gateway adapter using generic framework

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* fix: add missing SamTextPart import to slack adapter

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: move adapter config validation to pydantic models

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: remove try-except wrapper for slack_bolt imports

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* chore: cleanup

* refactor: remove abstract requirement for handle_text_chunk method

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: prioritize child class parameters in schema merging

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: move common gateway configs to base class

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: migrate slack gateway config to generic adapter framework

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: fix slack handler registration to use explicit signatures

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* fix: align SlackAdapter method signatures with GatewayAdapter base class

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: align AuthClaims model with framework identity expectations

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* fix: handle default values in cache service get methods

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: decouple Slack adapter from A2A protocol and filter data parts

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* feat: filter duplicate text and file parts from final streaming responses

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* fix: prevent duplicate content in slack final status messages

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* 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) <aider@aider.chat>

* refactor: add underline and newline to Slack heading formatting

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* 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) <aider@aider.chat>

* refactor: separate feedback buttons into distinct message from status

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* feat: add standardized feedback event publishing to gateway

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: remove redundant context from feedback events

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: remove platform_context and task_context from SamFeedback model

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* 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) <aider@aider.chat>

* refactor: implement stateful artifact progress messages with sequential processing

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* feat: add artifact content loading helper to gateway context

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: rename conversation_id to session_id and sanitize Slack IDs

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: use artifact helper for loading content in generic gateway

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: implement three-step external upload for Slack file ordering

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: associate file upload with descriptive message using initial_comment

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* 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) <aider@aider.chat>

* refactor: use individual a2a helper functions for FilePart processing

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* 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) <aider@aider.chat>

* fix: handle missing thread_ts in artifacts command to prevent crash

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: implement command framework with !artifacts keyword trigger

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* feat: add help command and fix artifacts to post in thread with truncated descriptions

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* fix: handle user identity extraction from Slack action events and post errors to thread

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: remove ephemeral status message from download action

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* refactor: improve artifact list UI and fix help command threading

Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* 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) <aider@aider.chat>

* 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 <efunneko@gmail.com>
Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>

* [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 <robert.zuchniak@solace.com>

* 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 <noreply@anthropic.com>

* fix trust manager property

* logging update

* update logs

---------

Co-authored-by: Claude <noreply@anthropic.com>

* 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 <104792472+jessieli-ux@users.noreply.github.com>

* 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 <ziyang.wang@solace.com>

* 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 <noreply@anthropic.com>

* 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 <noreply@anthropic.com>

* 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/ssh-agent@v0.9.1

Note: Some actions (@main, @master) cannot be pinned and remain as-is.

Co-Authored-By: Claude <noreply@anthropic.com>

* Rollback some version changes

* .

* Adjust messages

---------

Co-authored-by: Claude <noreply@anthropic.com>

* 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 <48411623+m9p909@users.noreply.github.com>

* 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 <noreply@anthropic.com>

* chore: Reset uv.lock to main branch version

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* 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 <noreply@anthropic.com>

* 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 <91437594+alimosaed@users.noreply.github.com>

---------

Signed-off-by: Ali Parvizi <91437594+alimosaed@users.noreply.github.com>

* 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 <noreply@anthropic.com>

* 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 <noreply@anthropic.com>

* 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 <91437594+alimosaed@users.noreply.github.com>
Co-authored-by: moodiRealist <40175386+moodiRealist@users.noreply.github.com>
Co-authored-by: enavitan <eugene.navitaniuc@solace.com>
Co-authored-by: Paul Jones <paul.jones@solace.com>
Co-authored-by: Automated Version Bump <gh-action-bump-version@users.noreply.github.com>
Co-authored-by: Mohamed Radwan <104789800+mo-radwan1@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Ali Parvizi <91437594+alimosaed@users.noreply.github.com>
Co-authored-by: Linda Hillis <101145690+lgh-solace@users.noreply.github.com>
Co-authored-by: Carol Morneau <5495913+carolmorneau@users.noreply.github.com>
Co-authored-by: Cyrus Mobini <68962752+cyrus2281@users.noreply.github.com>
Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>
Co-authored-by: Art Morozov <art.morozov@solace.com>
Co-authored-by: Tamimi Ahmad <TamimiGitHub@users.noreply.github.com>
Co-authored-by: Jack Clarke <48411623+m9p909@users.noreply.github.com>
Co-authored-by: Ziyang Wang <ziyang.wang@solace.com>
Co-authored-by: Robert Zuchniak <robert.zuchniak@solace.com>
Co-authored-by: Hugo Paré <hugo.pare@solace.com>
Co-authored-by: Mackenzie Stewart <mackenzie.stewart@solace.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Amir Ghasemi <amir.ghasemi@solace.com>
Co-authored-by: jessieli-ux <104792472+jessieli-ux@users.noreply.github.com>
Co-authored-by: Jamie Karam <jamiekaram16@gmail.com>
Co-authored-by: Raman Gupta <gr.gupta.raman@gmail.com>
Co-authored-by: Rudraneel Chakraborty <97415665+rudraneel-chakraborty@users.noreply.github.com>
Co-authored-by: Michael Du Plessis <michael.duplessis@solace.com>
Co-authored-by: evenjessie <jessie.wang@solace.com>
Co-authored-by: Greg Meldrum <greg.meldrum@solace.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants