From 60b6aed220aedf4ddf02f5337e85385f019aa2ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 May 2025 19:30:33 +0530 Subject: [PATCH 1/7] chore: bump net.snowflake:snowflake-jdbc from 3.22.0 to 3.23.1 in /app/server/appsmith-plugins/snowflakePlugin (#39727) Bumps [net.snowflake:snowflake-jdbc](https://github.com/snowflakedb/snowflake-jdbc) from 3.22.0 to 3.23.1.
Release notes

Sourced from net.snowflake:snowflake-jdbc's releases.

v3.23.1

v3.23.0

Changelog

Sourced from net.snowflake:snowflake-jdbc's changelog.

JDBC Driver 3.23.1

JDBC Driver 3.23.0

JDBC Driver 3.22.0

JDBC Driver 3.21.0

JDBC Driver 3.20.0

JDBC Driver 3.19.1

JDBC Driver 3.19.0

JDBC Driver 3.18.0

JDBC Driver 3.17.0

JDBC Driver 3.16.1

JDBC Driver 3.16.0

JDBC Driver 3.15.1

JDBC Driver 3.15.0

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=net.snowflake:snowflake-jdbc&package-manager=maven&previous-version=3.22.0&new-version=3.23.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/appsmithorg/appsmith/network/alerts).
> [!WARNING] > Tests have not run on the HEAD e50a86a9f1873c6089579f2e9b56abdb2903d636 yet >
Thu, 13 Mar 2025 19:01:48 UTC Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- app/server/appsmith-plugins/snowflakePlugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/server/appsmith-plugins/snowflakePlugin/pom.xml b/app/server/appsmith-plugins/snowflakePlugin/pom.xml index 30c9245c3a..b91626e575 100644 --- a/app/server/appsmith-plugins/snowflakePlugin/pom.xml +++ b/app/server/appsmith-plugins/snowflakePlugin/pom.xml @@ -18,7 +18,7 @@ net.snowflake snowflake-jdbc - 3.22.0 + 3.23.1 From 3212d738caf2aabd2267d6f0fa3e5c7a722c9da4 Mon Sep 17 00:00:00 2001 From: Diljit Date: Mon, 5 May 2025 09:40:45 +0530 Subject: [PATCH 2/7] chore: remove extra reset in auto-commit (#40405) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description > [!TIP] > _Add a TL;DR when the description is longer than 500 words or extremely technical (helps the content, marketing, and DevRel team)._ > > _Please also include relevant motivation and context. List any dependencies that are required for this change. Add links to Notion, Figma or any other documents that might be relevant to the PR._ Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: > Commit: 9c004ca65ac0842a24dea725dde539c176a6dba6 > Cypress dashboard. > Tags: `@tag.All` > Spec: >
Wed, 30 Apr 2025 05:08:47 UTC ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No ## Summary by CodeRabbit - **New Features** - Introduced a new feature flag to control the enablement of updated Git API contracts. - **Enhancements** - Improved the logic for reconstructing pages from Git repositories, allowing for more granular control based on feature flags. - Enhanced compatibility with future Git-related optimizations by adding support for additional parameters in page reconstruction operations. --- .../com/appsmith/git/files/FileUtilsCEImpl.java | 14 ++++++++++++-- .../appsmith/external/enums/FeatureFlagEnum.java | 1 + .../com/appsmith/external/git/FileInterface.java | 7 ++++++- .../server/helpers/ce/CommonGitFileUtilsCE.java | 13 +++++++++++-- 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/app/server/appsmith-git/src/main/java/com/appsmith/git/files/FileUtilsCEImpl.java b/app/server/appsmith-git/src/main/java/com/appsmith/git/files/FileUtilsCEImpl.java index e36eea10f8..2aa964d5c4 100644 --- a/app/server/appsmith-git/src/main/java/com/appsmith/git/files/FileUtilsCEImpl.java +++ b/app/server/appsmith-git/src/main/java/com/appsmith/git/files/FileUtilsCEImpl.java @@ -1268,7 +1268,12 @@ public class FileUtilsCEImpl implements FileInterface { @Override public Mono reconstructPageFromGitRepo( - String pageName, String branchName, Path baseRepoSuffixPath, Boolean resetToLastCommitRequired) { + String pageName, + String branchName, + Path baseRepoSuffixPath, + Boolean resetToLastCommitRequired, + Boolean useFSGitHandler, + Boolean keepWorkingDirChanges) { Mono pageObjectMono; try { Mono resetToLastCommit = Mono.just(Boolean.TRUE); @@ -1276,7 +1281,12 @@ public class FileUtilsCEImpl implements FileInterface { if (Boolean.TRUE.equals(resetToLastCommitRequired)) { // instead of checking out to last branch we are first cleaning the git repo, // then checking out to the desired branch - resetToLastCommit = gitExecutor.resetToLastCommit(baseRepoSuffixPath, branchName, false); + if (Boolean.TRUE.equals(useFSGitHandler)) { + resetToLastCommit = + fsGitHandler.resetToLastCommit(baseRepoSuffixPath, branchName, keepWorkingDirChanges); + } else { + resetToLastCommit = gitExecutor.resetToLastCommit(baseRepoSuffixPath, branchName, true); + } } pageObjectMono = resetToLastCommit.map(isSwitched -> { diff --git a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/enums/FeatureFlagEnum.java b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/enums/FeatureFlagEnum.java index fcb8ab2c15..5aa764d353 100644 --- a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/enums/FeatureFlagEnum.java +++ b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/enums/FeatureFlagEnum.java @@ -24,6 +24,7 @@ public enum FeatureFlagEnum { * Feature flag to detect if the RTS git reset is enabled */ ab_rts_git_reset_enabled, + release_git_api_contracts_enabled, // Deprecated CE flags over here release_git_autocommit_feature_enabled, diff --git a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/git/FileInterface.java b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/git/FileInterface.java index 7d4443f9a2..9203832403 100644 --- a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/git/FileInterface.java +++ b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/git/FileInterface.java @@ -80,7 +80,12 @@ public interface FileInterface { Mono reconstructPackageJsonFromGitRepository(Path repoSuffix); Mono reconstructPageFromGitRepo( - String pageName, String branchName, Path repoSuffixPath, Boolean checkoutRequired); + String pageName, + String branchName, + Path repoSuffixPath, + Boolean checkoutRequired, + Boolean useFSGitHandler, + Boolean keepWorkingDirChanges); /** * Once the user connects the existing application to a remote repo, we will initialize the repo with Readme.md - diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/helpers/ce/CommonGitFileUtilsCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/helpers/ce/CommonGitFileUtilsCE.java index fdeae3e1ba..3d52dd1239 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/helpers/ce/CommonGitFileUtilsCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/helpers/ce/CommonGitFileUtilsCE.java @@ -933,6 +933,9 @@ public class CommonGitFileUtilsCE { String defaultArtifactId = gitArtifactMetadata.getDefaultArtifactId(); String refName = gitArtifactMetadata.getRefName(); String repoName = gitArtifactMetadata.getRepoName(); + Mono useFSGitHandlerMono = featureFlagService.check(FeatureFlagEnum.release_git_api_contracts_enabled); + Mono keepWorkingDirChangesMono = + featureFlagService.check(FeatureFlagEnum.release_git_reset_optimization_enabled); if (!hasText(workspaceId)) { return Mono.error(new AppsmithException(AppsmithError.INVALID_PARAMETER, FieldName.WORKSPACE_ID)); @@ -957,8 +960,14 @@ public class CommonGitFileUtilsCE { ArtifactGitFileUtils artifactGitFileUtils = getArtifactBasedFileHelper(artifactType); Path baseRepoSuffix = artifactGitFileUtils.getRepoSuffixPath(workspaceId, defaultArtifactId, repoName); - Mono jsonObjectMono = fileUtils - .reconstructPageFromGitRepo(pageDTO.getName(), refName, baseRepoSuffix, isResetToLastCommitRequired) + Mono jsonObjectMono = Mono.zip(useFSGitHandlerMono, keepWorkingDirChangesMono) + .flatMap(tuple -> fileUtils.reconstructPageFromGitRepo( + pageDTO.getName(), + refName, + baseRepoSuffix, + isResetToLastCommitRequired, + tuple.getT1(), + tuple.getT2())) .onErrorResume(error -> Mono.error( new AppsmithException(AppsmithError.GIT_ACTION_FAILED, RECONSTRUCT_PAGE, error.getMessage()))) .map(pageJson -> { From b310d751e497c863917988f72b208f9db49aa174 Mon Sep 17 00:00:00 2001 From: Ashit Rath Date: Mon, 5 May 2025 12:56:09 +0530 Subject: [PATCH 3/7] chore: Added isRenameDisabled and filtered UI modules from widgets section (#40553) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description Adds support for disabling widget renaming in the property pane through a `isRenameDisabled` property. When enabled, it displays a tooltip explaining this limitation when hovering over the widget name. Additionally, this PR hides module widgets from the widget card selection by filtering out widgets whose type starts with "MODULE_WIDGET_". Fixes https://github.com/appsmithorg/appsmith/issues/40495 ## Automation /ok-to-test tags="@tag.Widget" ### :mag: Cypress test results > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: > Commit: 3f94eafdef52b4d0543de99f9472fb3970ee415e > Cypress dashboard. > Tags: `@tag.Widget` > Spec: >
Fri, 02 May 2025 13:12:08 UTC ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No ## Summary by CodeRabbit - **New Features** - Added the ability to disable renaming for certain widget titles, displaying a tooltip when renaming is not allowed. - **Improvements** - Widgets identified as module widgets are now excluded from the widget cards list in the UI. --- app/client/src/ce/constants/messages.ts | 2 + .../Editor/PropertyPane/PropertyPaneTitle.tsx | 51 +++++++++++++------ .../Editor/PropertyPane/PropertyPaneView.tsx | 1 + app/client/src/selectors/editorSelectors.tsx | 6 ++- 4 files changed, 43 insertions(+), 17 deletions(-) diff --git a/app/client/src/ce/constants/messages.ts b/app/client/src/ce/constants/messages.ts index 7967bb21fb..e5e35b8558 100644 --- a/app/client/src/ce/constants/messages.ts +++ b/app/client/src/ce/constants/messages.ts @@ -1627,6 +1627,8 @@ export const PROPERTY_PANE_EMPTY_SEARCH_RESULT_MESSAGE = "No properties found based on your search"; export const PROPERTY_SEARCH_INPUT_PLACEHOLDER = "Search for controls, labels etc"; +export const PROPERTY_PANE_TITLE_RENAME_DISABLED = () => + "This widget cannot be renamed"; export const EXPLORER_BETA_ENTITY = () => "BETA"; export const BINDING_WIDGET_WALKTHROUGH_TITLE = () => "Widget properties"; export const BINDING_WIDGET_WALKTHROUGH_DESC = () => diff --git a/app/client/src/pages/Editor/PropertyPane/PropertyPaneTitle.tsx b/app/client/src/pages/Editor/PropertyPane/PropertyPaneTitle.tsx index 21ee25646f..8b059c69f3 100644 --- a/app/client/src/pages/Editor/PropertyPane/PropertyPaneTitle.tsx +++ b/app/client/src/pages/Editor/PropertyPane/PropertyPaneTitle.tsx @@ -23,6 +23,10 @@ import { getIsCurrentWidgetRecentlyAdded, getPropertyPaneWidth, } from "selectors/propertyPaneSelectors"; +import { + createMessage, + PROPERTY_PANE_TITLE_RENAME_DISABLED, +} from "ee/constants/messages"; interface PropertyPaneTitleProps { title: string; @@ -31,6 +35,7 @@ interface PropertyPaneTitleProps { updatePropertyTitle?: (title: string) => void; onBackClick?: () => void; isPanelTitle?: boolean; + isRenameDisabled?: boolean; actions: Array<{ tooltipContent: string; icon: ReactElement; @@ -186,22 +191,36 @@ const PropertyPaneTitle = memo(function PropertyPaneTitle( className="flex-grow" onKeyDown={handleTabKeyDown} > - + {props.isRenameDisabled ? ( +
+ +
{name}
+
+
+ ) : ( + + )} {/* ACTIONS */} diff --git a/app/client/src/pages/Editor/PropertyPane/PropertyPaneView.tsx b/app/client/src/pages/Editor/PropertyPane/PropertyPaneView.tsx index c6143c68bb..f1663bc579 100644 --- a/app/client/src/pages/Editor/PropertyPane/PropertyPaneView.tsx +++ b/app/client/src/pages/Editor/PropertyPane/PropertyPaneView.tsx @@ -287,6 +287,7 @@ function PropertyPaneView( > [string], +) => config.type.startsWith("MODULE_WIDGET_"); + export const getWidgetCards = createSelector( getIsAutoLayout, getIsAnvilLayout, @@ -357,7 +361,7 @@ export const getWidgetCards = createSelector( return config.widgetName !== "Map" && !config.hideCard; } - return !config.hideCard; + return !config.hideCard && !isModuleWidget(config); }); const _cards: WidgetCardProps[] = cards.map((config) => { From 4eae26879bb26cc1efd57c6241d70cdc24e536a0 Mon Sep 17 00:00:00 2001 From: Diljit Date: Mon, 5 May 2025 17:55:25 +0530 Subject: [PATCH 4/7] chore: add feature flag for app computation cache (#40543) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description > [!TIP] > _Add a TL;DR when the description is longer than 500 words or extremely technical (helps the content, marketing, and DevRel team)._ > > _Please also include relevant motivation and context. List any dependencies that are required for this change. Add links to Notion, Figma or any other documents that might be relevant to the PR._ Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: > Commit: 8c69931e4d5fb6b319883e8d1ba33f553029f346 > Cypress dashboard. > Tags: `@tag.All` > Spec: >
Fri, 02 May 2025 07:00:53 UTC ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No ## Summary by CodeRabbit - **New Features** - Introduced a new feature flag to control the computation cache capability. - **Enhancements** - Added checks to ensure computation caching only occurs when the corresponding feature flag is enabled. --- app/client/src/ce/entities/FeatureFlag.ts | 2 ++ .../AppComputationCache/AppComputationCache.test.ts | 5 +++++ .../src/workers/common/AppComputationCache/index.ts | 10 +++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/client/src/ce/entities/FeatureFlag.ts b/app/client/src/ce/entities/FeatureFlag.ts index c9ed5ba670..b16c34ca15 100644 --- a/app/client/src/ce/entities/FeatureFlag.ts +++ b/app/client/src/ce/entities/FeatureFlag.ts @@ -58,6 +58,7 @@ export const FEATURE_FLAG = { release_git_package_enabled: "release_git_package_enabled", license_external_saas_plugins_enabled: "license_external_saas_plugins_enabled", + release_computation_cache_enabled: "release_computation_cache_enabled", } as const; export type FeatureFlag = keyof typeof FEATURE_FLAG; @@ -106,6 +107,7 @@ export const DEFAULT_FEATURE_FLAG_VALUE: FeatureFlags = { release_table_custom_sort_function_enabled: false, release_git_package_enabled: false, license_external_saas_plugins_enabled: false, + release_computation_cache_enabled: false, }; export const AB_TESTING_EVENT_KEYS = { diff --git a/app/client/src/workers/common/AppComputationCache/AppComputationCache.test.ts b/app/client/src/workers/common/AppComputationCache/AppComputationCache.test.ts index 223097799c..5f6369dc74 100644 --- a/app/client/src/workers/common/AppComputationCache/AppComputationCache.test.ts +++ b/app/client/src/workers/common/AppComputationCache/AppComputationCache.test.ts @@ -7,6 +7,8 @@ import { APP_MODE } from "entities/App"; import localforage from "localforage"; import loglevel from "loglevel"; import { AppComputationCache } from "./index"; +import { WorkerEnv } from "workers/Evaluation/handlers/workerEnv"; +import type { FeatureFlags } from "ee/entities/FeatureFlag"; jest.useFakeTimers(); @@ -68,6 +70,9 @@ describe("AppComputationCache", () => { beforeEach(() => { jest.clearAllMocks(); AppComputationCache.resetInstance(); + WorkerEnv.setFeatureFlags({ + release_computation_cache_enabled: true, + } as FeatureFlags); // Now instantiate the singleton after mocks are set up appComputationCache = AppComputationCache.getInstance(); diff --git a/app/client/src/workers/common/AppComputationCache/index.ts b/app/client/src/workers/common/AppComputationCache/index.ts index f872a6b6c8..7b1a2b926b 100644 --- a/app/client/src/workers/common/AppComputationCache/index.ts +++ b/app/client/src/workers/common/AppComputationCache/index.ts @@ -9,6 +9,7 @@ import { } from "./types"; import debounce from "lodash/debounce"; import { isFinite, isNumber, isString } from "lodash"; +import { WorkerEnv } from "workers/Evaluation/handlers/workerEnv"; interface ICachedData { value: T; @@ -82,6 +83,12 @@ export class AppComputationCache { 5000, ); + isComputationCacheFeatureEnabled() { + const featureFlags = WorkerEnv.getFeatureFlags(); + + return featureFlags["release_computation_cache_enabled"] || false; + } + /** * Check if the computation result should be cached based on the app mode configuration * @returns - A boolean indicating whether the cache should be enabled for the given app mode @@ -95,7 +102,8 @@ export class AppComputationCache { if ( !this.isAppModeValid(appMode) || !this.isTimestampValid(timestamp) || - !this.isDSLVersionValid(dslVersion) + !this.isDSLVersionValid(dslVersion) || + !this.isComputationCacheFeatureEnabled() ) { return false; } From 119eb524d03eadef56fd301becbd1c41f839e053 Mon Sep 17 00:00:00 2001 From: vadim Date: Mon, 5 May 2025 16:56:39 +0200 Subject: [PATCH 5/7] chore: Adjust WDS border neutral subtle (light mode) (#40578) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description Slightly more subtle and nicer-looking border. ## Automation /ok-to-test tags="@tag.Sanity" ### :mag: Cypress test results > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: > Commit: ba34566ae70e97803acd3ecf3a8fe726633a4fac > Cypress dashboard. > Tags: `@tag.Sanity` > Spec: >
Mon, 05 May 2025 14:09:11 UTC ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No ## Summary by CodeRabbit - **Style** - Adjusted the subtle neutral border color in light mode to appear less bright, affecting the appearance of outlined buttons. --- .../design-system/theming/src/color/src/LightModeTheme.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/client/packages/design-system/theming/src/color/src/LightModeTheme.ts b/app/client/packages/design-system/theming/src/color/src/LightModeTheme.ts index 6b480526ea..5840db599d 100644 --- a/app/client/packages/design-system/theming/src/color/src/LightModeTheme.ts +++ b/app/client/packages/design-system/theming/src/color/src/LightModeTheme.ts @@ -1063,7 +1063,7 @@ export class LightModeTheme implements ColorModeTheme { // Slightly subtler version of neutral border, used in outlined buttons const color = this.bdNeutral.clone(); - color.oklch.l += 0.47; + color.oklch.l += 0.35; return color; } From b7a2f5c2611523d52ae2c5142fcaefc7f819b41d Mon Sep 17 00:00:00 2001 From: Hetu Nandu Date: Tue, 6 May 2025 16:02:38 +0530 Subject: [PATCH 6/7] chore: Add placeholder AI Integrations form (#40583) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description Adds a new AI integrations form and a feature flag to control it ## Automation /ok-to-test tags="@tag.Sanity" ### :mag: Cypress test results > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: > Commit: 047893cddfa36128ca4b07263ef2e49afba40fe1 > Cypress dashboard. > Tags: `@tag.Sanity` > Spec: >
Tue, 06 May 2025 06:16:52 UTC ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No ## Summary by CodeRabbit - **New Features** - Introduced a new AI Chat Integrations form control component. - Added a feature flag to enable or disable AI Chat Integrations. - **Chores** - Registered the new form control type and component in the form control registry. - Updated feature flag override capabilities to include the new AI Chat Integrations flag. --- .../formControls/AIChatIntegrationsControl.tsx | 18 ++++++++++++++++++ .../src/ce/components/formControls/index.ts | 1 + app/client/src/ce/entities/FeatureFlag.ts | 2 ++ .../AIChatIntegrationsControl/index.ts | 1 + .../utils/formControl/FormControlRegistry.tsx | 9 +++++++++ .../src/utils/formControl/formControlTypes.ts | 1 + .../src/utils/hooks/useFeatureFlagOverride.ts | 1 + 7 files changed, 33 insertions(+) create mode 100644 app/client/src/ce/components/formControls/AIChatIntegrationsControl.tsx create mode 100644 app/client/src/ce/components/formControls/index.ts create mode 100644 app/client/src/ee/components/formControls/AIChatIntegrationsControl/index.ts diff --git a/app/client/src/ce/components/formControls/AIChatIntegrationsControl.tsx b/app/client/src/ce/components/formControls/AIChatIntegrationsControl.tsx new file mode 100644 index 0000000000..39a0550f3f --- /dev/null +++ b/app/client/src/ce/components/formControls/AIChatIntegrationsControl.tsx @@ -0,0 +1,18 @@ +import React from "react"; +import BaseControl, { + type ControlProps, +} from "components/formControls/BaseControl"; +import type { ControlType } from "constants/PropertyControlConstants"; + +interface AIChatIntegrationsControlProps extends ControlProps {} + +class AIChatIntegrationsControl extends BaseControl { + getControlType(): ControlType { + return "AI_CHAT_INTEGRATIONS_FORM"; + } + public render() { + return
AIChatIntegrationsControl
; + } +} + +export default AIChatIntegrationsControl; diff --git a/app/client/src/ce/components/formControls/index.ts b/app/client/src/ce/components/formControls/index.ts new file mode 100644 index 0000000000..977f194275 --- /dev/null +++ b/app/client/src/ce/components/formControls/index.ts @@ -0,0 +1 @@ +export { default } from "./AIChatIntegrationsControl"; diff --git a/app/client/src/ce/entities/FeatureFlag.ts b/app/client/src/ce/entities/FeatureFlag.ts index b16c34ca15..63f151e0e7 100644 --- a/app/client/src/ce/entities/FeatureFlag.ts +++ b/app/client/src/ce/entities/FeatureFlag.ts @@ -59,6 +59,7 @@ export const FEATURE_FLAG = { license_external_saas_plugins_enabled: "license_external_saas_plugins_enabled", release_computation_cache_enabled: "release_computation_cache_enabled", + release_ai_chat_integrations_enabled: "release_ai_chat_integrations_enabled", } as const; export type FeatureFlag = keyof typeof FEATURE_FLAG; @@ -108,6 +109,7 @@ export const DEFAULT_FEATURE_FLAG_VALUE: FeatureFlags = { release_git_package_enabled: false, license_external_saas_plugins_enabled: false, release_computation_cache_enabled: false, + release_ai_chat_integrations_enabled: false, }; export const AB_TESTING_EVENT_KEYS = { diff --git a/app/client/src/ee/components/formControls/AIChatIntegrationsControl/index.ts b/app/client/src/ee/components/formControls/AIChatIntegrationsControl/index.ts new file mode 100644 index 0000000000..eb7d8e90e0 --- /dev/null +++ b/app/client/src/ee/components/formControls/AIChatIntegrationsControl/index.ts @@ -0,0 +1 @@ +export { default } from "ce/components/formControls/AIChatIntegrationsControl"; diff --git a/app/client/src/utils/formControl/FormControlRegistry.tsx b/app/client/src/utils/formControl/FormControlRegistry.tsx index 06ae0c609c..0dc64d91a7 100644 --- a/app/client/src/utils/formControl/FormControlRegistry.tsx +++ b/app/client/src/utils/formControl/FormControlRegistry.tsx @@ -56,6 +56,7 @@ import { AiChatSystemInstructionsControl, type AiChatSystemInstructionsControlProps, } from "components/formControls/AIChatSystemInstructionsControl"; +import AIChatIntegrationsControl from "ee/components/formControls/AIChatIntegrationsControl"; /** * NOTE: If you are adding a component that uses FormControl @@ -253,6 +254,14 @@ class FormControlRegistry { }, }, ); + FormControlFactory.registerControlBuilder( + formControlTypes.AI_CHAT_INTEGRATIONS_FORM, + { + buildPropertyControl(controlProps): JSX.Element { + return ; + }, + }, + ); FormControlFactory.registerControlBuilder( formControlTypes.DATASOURCE_LINK, { diff --git a/app/client/src/utils/formControl/formControlTypes.ts b/app/client/src/utils/formControl/formControlTypes.ts index 7564fd922d..c5f9468aff 100644 --- a/app/client/src/utils/formControl/formControlTypes.ts +++ b/app/client/src/utils/formControl/formControlTypes.ts @@ -27,4 +27,5 @@ export default { DATASOURCE_LINK: "DATASOURCE_LINK", CUSTOM_ACTIONS_CONFIG_FORM: "CUSTOM_ACTIONS_CONFIG_FORM", AI_CHAT_SYSTEM_INSTRUCTIONS: "AI_CHAT_SYSTEM_INSTRUCTIONS", + AI_CHAT_INTEGRATIONS_FORM: "AI_CHAT_INTEGRATIONS_FORM", }; diff --git a/app/client/src/utils/hooks/useFeatureFlagOverride.ts b/app/client/src/utils/hooks/useFeatureFlagOverride.ts index ab30f18f42..03dbe071a0 100644 --- a/app/client/src/utils/hooks/useFeatureFlagOverride.ts +++ b/app/client/src/utils/hooks/useFeatureFlagOverride.ts @@ -16,6 +16,7 @@ export const AvailableFeaturesToOverride: FeatureFlag[] = [ "release_anvil_enabled", "release_layout_conversion_enabled", "license_ai_agent_enabled", + "release_ai_chat_integrations_enabled", ]; export type OverriddenFeatureFlags = Partial>; From c57cc56775e8e97f023fad1d39e00e5d05eba162 Mon Sep 17 00:00:00 2001 From: vadim Date: Wed, 7 May 2025 12:06:40 +0200 Subject: [PATCH 7/7] chore: WDS adjust neutral subtle colors (#40595) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description Fixes #39932 | Before | After | |--------|--------| | Screenshot 2025-05-07 at 10 38 06 | Screenshot 2025-05-07 at 10 36 39 | ## Automation /ok-to-test tags="@tag.Sanity" ### :mag: Cypress test results > [!IMPORTANT] > 🟣 🟣 🟣 Your tests are running. > Tests running at: > Commit: f691f26b504269eaaa960626392789db7ff7f0f3 > Workflow: `PR Automation test suite` > Tags: `@tag.Sanity` > Spec: `` >
Wed, 07 May 2025 08:48:38 UTC ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No ## Summary by CodeRabbit - **Style** - Adjusted the brightness of subtle neutral background and foreground colors in light mode for improved visual appearance. - **Tests** - Updated expected color values in tests to match the new brightness adjustments. --- .../theming/src/color/src/LightModeTheme.ts | 4 ++-- .../theming/src/color/tests/LightModeTheme.test.ts | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/client/packages/design-system/theming/src/color/src/LightModeTheme.ts b/app/client/packages/design-system/theming/src/color/src/LightModeTheme.ts index 5840db599d..dfcf36aa3a 100644 --- a/app/client/packages/design-system/theming/src/color/src/LightModeTheme.ts +++ b/app/client/packages/design-system/theming/src/color/src/LightModeTheme.ts @@ -413,7 +413,7 @@ export class LightModeTheme implements ColorModeTheme { } if (!this.seedIsVeryLight) { - color.oklch.l = 0.97; + color.oklch.l = 0.975; } if (this.seedChroma > 0.002) { @@ -785,7 +785,7 @@ export class LightModeTheme implements ColorModeTheme { private get fgNeutralSubtle() { const color = this.fgNeutral.clone(); - color.oklch.l += 0.12; + color.oklch.l += 0.1; return color; } diff --git a/app/client/packages/design-system/theming/src/color/tests/LightModeTheme.test.ts b/app/client/packages/design-system/theming/src/color/tests/LightModeTheme.test.ts index da4a6f7557..861c1199d3 100644 --- a/app/client/packages/design-system/theming/src/color/tests/LightModeTheme.test.ts +++ b/app/client/packages/design-system/theming/src/color/tests/LightModeTheme.test.ts @@ -358,7 +358,7 @@ describe("bgNeutralSubtle color", () => { "oklch(0.92 0.03 170)", ).getColors(); - expect(bgNeutralSubtle).toEqual("rgb(95.592% 96.251% 95.981%)"); + expect(bgNeutralSubtle).toEqual("rgb(96.247% 96.906% 96.636%)"); }); it("should return correct color when seedChroma > 0.01", () => { @@ -366,7 +366,7 @@ describe("bgNeutralSubtle color", () => { "oklch(0.92 0.1 170)", ).getColors(); - expect(bgNeutralSubtle).toEqual("rgb(95.592% 96.251% 95.981%)"); + expect(bgNeutralSubtle).toEqual("rgb(96.247% 96.906% 96.636%)"); }); it("should return correct color when chroma < 0.04", () => { @@ -374,7 +374,7 @@ describe("bgNeutralSubtle color", () => { "oklch(0.92 0.03 170)", ).getColors(); - expect(bgNeutralSubtle).toEqual("rgb(95.592% 96.251% 95.981%)"); + expect(bgNeutralSubtle).toEqual("rgb(96.247% 96.906% 96.636%)"); }); }); @@ -384,7 +384,7 @@ describe("bgNeutralSubtleHover color", () => { "oklch(0.92 0.1 170)", ).getColors(); - expect(bgNeutralSubtleHover).toEqual("rgb(97.164% 97.825% 97.554%)"); + expect(bgNeutralSubtleHover).toEqual("rgb(97.82% 98.482% 98.21%)"); }); }); @@ -394,7 +394,7 @@ describe("bgNeutralSubtleActive color", () => { "oklch(0.92 0.1 170)", ).getColors(); - expect(bgNeutralSubtleActive).toEqual("rgb(94.286% 94.944% 94.674%)"); + expect(bgNeutralSubtleActive).toEqual("rgb(94.939% 95.597% 95.327%)"); }); }); @@ -692,7 +692,7 @@ describe("fgNeutralSubtle color", () => { "oklch(0.45 0.03 60)", ).getColors(); - expect(fgNeutralSubtle).toEqual("rgb(43.337% 43.337% 43.337%)"); + expect(fgNeutralSubtle).toEqual("rgb(41.086% 41.086% 41.086%)"); }); });