Repository: appsmithorg/appsmith
Pull request #40608: chore: added automatic option to run behaviour behind feature flag
Author: login: AmanAgarwal041
Labels: name: IDE Product
description: Issues related to the IDE Product
name: Core Query Execution
description: Issues related to the execution of all queries
name: Task
description: A simple Todo
name: skip-changelog
description: Adding this label to a PR prevents it from being listed in the changelog
name: IDE Pod
description: Issues that new developers face while exploring the IDE
name: Integrations Product
description: Issues related to a specific integration
name: Query Settings
description: Issues related to the settings of all queries
name: ok-to-test
description: Required label for CI
name: Integrations Pod
name: Query Widgets & IDE Pod
description: All issues related to Query, JS, Eval, Widgets & IDE
Created: 2025-05-08T09:12:08Z | Merged: 2025-05-16T10:59:31Z

## Description
Updated settings for different actions for adding new option (Automatic) to run behaviour drop down behind feature flag `release_reactive_actions_enabled`


Fixes #40456  

## Automation

/ok-to-test tags="@tag.All"

### :mag: Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/15065485800>
> Commit: 4c4074ca8e36222c822f0a6addbe4a81aaa605eb
> <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=15065485800&attempt=1" target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Fri, 16 May 2025 10:58:06 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Introduced a new "Automatic" option for the "Run behavior" setting across multiple plugins, enabling queries and APIs to run automatically on page load or when dependent variables change.
  - Added a feature flag to enable or disable the "Automatic" run behavior in the UI.

- **Enhancements**
  - Improved the structure and type safety of plugin action settings for better configuration and reliability.
  - Updated UI components to conditionally display run behavior options based on the feature flag status.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Linked issue #40456: [Task]: Show or hide automatic option based on flag
### SubTasks

Show or hide `automatic` option in Run behavior settings dropdown on all Queries/APIs/JS objects settings, based on flag as per designs:

https://www.figma.com/design/qFXimqMSH45aviBOdTfDXu/Reactive-Queries-JS?node-id=61-16773&t=rv594VlMSm75Bvcb-0

Diff:
diff --git a/app/client/src/PluginActionEditor/PluginActionContext.tsx b/app/client/src/PluginActionEditor/PluginActionContext.tsx
index 6a4e3672dad8..f267494aed3d 100644
--- a/app/client/src/PluginActionEditor/PluginActionContext.tsx
+++ b/app/client/src/PluginActionEditor/PluginActionContext.tsx
@@ -8,12 +8,13 @@ import type { Action } from "entities/Action";
 import type { Plugin } from "entities/Plugin";
 import type { Datasource, EmbeddedRestDatasource } from "entities/Datasource";
 import type { ActionResponse } from "api/ActionAPI";
+import type { ActionSettingsConfig } from "./types/PluginActionTypes";
 
 interface PluginActionContextType {
   action: Action;
   actionResponse?: ActionResponse;
   editorConfig?: unknown[];
-  settingsConfig?: unknown[];
+  settingsConfig?: ActionSettingsConfig[];
   plugin: Plugin;
   datasource?: EmbeddedRestDatasource | Datasource;
 }
diff --git a/app/client/src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/hooks/useGoogleSheetsSetDefaultProperty.ts b/app/client/src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/hooks/useGoogleSheetsSetDefaultProperty.ts
index c017261fbccf..e012233f4673 100644
--- a/app/client/src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/hooks/useGoogleSheetsSetDefaultProperty.ts
+++ b/app/client/src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/hooks/useGoogleSheetsSetDefaultProperty.ts
@@ -7,6 +7,7 @@ import { getPathAndValueFromActionDiffObject } from "utils/getPathAndValueFromAc
 import { setActionProperty } from "actions/pluginActionActions";
 import { usePluginActionContext } from "../../../../../PluginActionContext";
 import { useDispatch } from "react-redux";
+import type { ActionSettingsConfig } from "PluginActionEditor/types/PluginActionTypes";
 
 export const useGoogleSheetsSetDefaultProperty = () => {
   const {
@@ -30,7 +31,7 @@ export const useGoogleSheetsSetDefaultProperty = () => {
 
         merge(
           initialValues,
-          getConfigInitialValues(settingsConfig as Record<string, unknown>[]),
+          getConfigInitialValues(settingsConfig as ActionSettingsConfig[]),
         );
 
         // initialValues contains merge of action, editorConfig, settingsConfig and will be passed to redux form
diff --git a/app/client/src/PluginActionEditor/components/PluginActionToolbar/components/ActionSettings.tsx b/app/client/src/PluginActionEditor/components/PluginActionToolbar/components/ActionSettings.tsx
index cccd1dfe1404..888a6eb9a5f5 100644
--- a/app/client/src/PluginActionEditor/components/PluginActionToolbar/components/ActionSettings.tsx
+++ b/app/client/src/PluginActionEditor/components/PluginActionToolbar/components/ActionSettings.tsx
@@ -6,6 +6,10 @@ import type { EditorTheme } from "components/editorComponents/CodeEditor/EditorC
 import styled from "styled-components";
 import { Text } from "@appsmith/ads";
 import CenteredWrapper from "components/designSystems/appsmith/CenteredWrapper";
+import { useSelector, type DefaultRootState } from "react-redux";
+import { selectFeatureFlagCheck } from "ee/selectors/featureFlagsSelectors";
+import { updateRunBehaviourForActionSettings } from "utils/PluginUtils";
+import { FEATURE_FLAG } from "ee/entities/FeatureFlag";
 
 interface ActionSettingsProps {
   // TODO: Fix this the next time the file is edited
@@ -41,9 +45,21 @@ const ActionSettingsWrapper = styled.div`
 `;
 
 function ActionSettings(props: ActionSettingsProps): JSX.Element {
+  const featureFlagEnabled: boolean = useSelector((state: DefaultRootState) =>
+    selectFeatureFlagCheck(
+      state,
+      FEATURE_FLAG.release_reactive_actions_enabled,
+    ),
+  );
+
+  const updateSettingsConfig = updateRunBehaviourForActionSettings(
+    props.actionSettingsConfig || [],
+    featureFlagEnabled,
+  );
+
   return (
     <ActionSettingsWrapper>
-      {!props.actionSettingsConfig ? (
+      {!updateSettingsConfig ? (
         <CenteredWrapper>
           <Text color="var(--ads-v2-color-fg-error)" kind="heading-m">
             Error: No settings config found
@@ -52,7 +68,7 @@ function ActionSettings(props: ActionSettingsProps): JSX.Element {
       ) : (
         /* TODO: Fix this the next time the file is edited */
         /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
-        props.actionSettingsConfig.map((section: any) =>
+        updateSettingsConfig.map((section: any) =>
           renderEachConfig(section, props.formName),
         )
       )}
diff --git a/app/client/src/PluginActionEditor/types/PluginActionTypes.ts b/app/client/src/PluginActionEditor/types/PluginActionTypes.ts
index cb3947afcd9b..f81d82a24857 100644
--- a/app/client/src/PluginActionEditor/types/PluginActionTypes.ts
+++ b/app/client/src/PluginActionEditor/types/PluginActionTypes.ts
@@ -5,23 +5,26 @@ export const THEME = EditorTheme.LIGHT;
 export enum ActionRunBehaviour {
   ON_PAGE_LOAD = "ON_PAGE_LOAD",
   MANUAL = "MANUAL",
+  AUTOMATIC = "AUTOMATIC",
 }
 
-export const RUN_BEHAVIOR = {
-  ON_PAGE_LOAD: {
-    label: "On page load",
-    subText: "Query runs when the page loads or when manually triggered",
-    value: ActionRunBehaviour.ON_PAGE_LOAD,
-    children: "On page load",
-  },
-  MANUAL: {
-    label: "Manual",
-    subText: "Query only runs when called in an event or JS with .run()",
-    value: ActionRunBehaviour.MANUAL,
-    children: "Manual",
-  },
-};
+export type ActionRunBehaviourType = `${ActionRunBehaviour}`;
 
-export const RUN_BEHAVIOR_VALUES = Object.values(RUN_BEHAVIOR);
+export interface ActionSettingsConfigChildren {
+  label: string;
+  configProperty: string;
+  controlType: string;
+  initialValue?: string | boolean;
+  options?: Array<{ label: string; value: string }>;
+  tooltipText?: string;
+  placeholder?: string;
+  dataType?: string;
+  subtitle?: string;
+  name?: string;
+}
 
-export type ActionRunBehaviourType = `${ActionRunBehaviour}`;
+export interface ActionSettingsConfig {
+  sectionName: string;
+  id: number;
+  children: ActionSettingsConfigChildren[];
+}
diff --git a/app/client/src/ce/entities/FeatureFlag.ts b/app/client/src/ce/entities/FeatureFlag.ts
index 952b8003f485..a6d84c60537f 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 = {
     "license_external_saas_plugins_enabled",
   release_computation_cache_enabled: "release_computation_cache_enabled",
   release_ai_chat_integrations_enabled: "release_ai_chat_integrations_enabled",
+  release_reactive_actions_enabled: "release_reactive_actions_enabled",
   license_ai_agent_instance_enabled: "license_ai_agent_instance_enabled",
 } as const;
 
@@ -107,6 +108,7 @@ export const DEFAULT_FEATURE_FLAG_VALUE: FeatureFlags = {
   license_external_saas_plugins_enabled: false,
   release_computation_cache_enabled: false,
   release_ai_chat_integrations_enabled: false,
+  release_reactive_actions_enabled: false,
   license_ai_agent_instance_enabled: false,
 };
 
diff --git a/app/client/src/components/editorComponents/PartialImportExport/PartialExportModal/unitTestUtils.ts b/app/client/src/components/editorComponents/PartialImportExport/PartialExportModal/unitTestUtils.ts
index d00c56822f49..261b638644d4 100644
--- a/app/client/src/components/editorComponents/PartialImportExport/PartialExportModal/unitTestUtils.ts
+++ b/app/client/src/components/editorComponents/PartialImportExport/PartialExportModal/unitTestUtils.ts
@@ -10043,6 +10043,12 @@ export const defaultAppState = {
                 controlType: "DROP_DOWN",
                 initialValue: "MANUAL",
                 options: [
+                  {
+                    label: "Automatic",
+                    subText:
+                      "Query runs on page load or when a variable it depends on changes",
+                    value: "AUTOMATIC",
+                  },
                   {
                     label: "On page load",
                     subText:
@@ -10094,6 +10100,12 @@ export const defaultAppState = {
                 controlType: "DROP_DOWN",
                 initialValue: "MANUAL",
                 options: [
+                  {
+                    label: "Automatic",
+                    subText:
+                      "Query runs on page load or when a variable it depends on changes",
+                    value: "AUTOMATIC",
+                  },
                   {
                     label: "On page load",
                     subText:
@@ -10145,6 +10157,12 @@ export const defaultAppState = {
                 controlType: "DROP_DOWN",
                 initialValue: "MANUAL",
                 options: [
+                  {
+                    label: "Automatic",
+                    subText:
+                      "Query runs on page load or when a variable it depends on changes",
+                    value: "AUTOMATIC",
+                  },
                   {
                     label: "On page load",
                     subText:
@@ -10225,6 +10243,12 @@ export const defaultAppState = {
                 controlType: "DROP_DOWN",
                 initialValue: "MANUAL",
                 options: [
+                  {
+                    label: "Automatic",
+                    subText:
+                      "Query runs on page load or when a variable it depends on changes",
+                    value: "AUTOMATIC",
+                  },
                   {
                     label: "On page load",
                     subText:
diff --git a/app/client/src/constants/AppsmithActionConstants/ActionConstants.tsx b/app/client/src/constants/AppsmithActionConstants/ActionConstants.tsx
index e703da5a31f0..f630158f95a8 100644
--- a/app/client/src/constants/AppsmithActionConstants/ActionConstants.tsx
+++ b/app/client/src/constants/AppsmithActionConstants/ActionConstants.tsx
@@ -8,6 +8,7 @@ import saasActionSettingsConfig from "constants/AppsmithActionConstants/formConf
 import apiActionDependencyConfig from "constants/AppsmithActionConstants/formConfig/ApiDependencyConfigs";
 import apiActionDatasourceFormButtonConfig from "constants/AppsmithActionConstants/formConfig/ApiDatasourceFormsButtonConfig";
 import type { EntityTypeValue } from "ee/entities/DataTree/types";
+import type { ActionSettingsConfig } from "PluginActionEditor/types/PluginActionTypes";
 
 export interface ExecuteActionPayloadEvent {
   type: EventType;
@@ -166,18 +167,17 @@ export const POSTMAN = "POSTMAN";
 export const CURL = "CURL";
 export const Swagger = "Swagger";
 
-// TODO: Fix this the next time the file is edited
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-export const defaultActionSettings: Record<PluginType, any> = {
-  [PluginType.API]: apiActionSettingsConfig,
-  [PluginType.DB]: queryActionSettingsConfig,
-  [PluginType.SAAS]: saasActionSettingsConfig,
-  [PluginType.REMOTE]: saasActionSettingsConfig,
-  [PluginType.JS]: [],
-  [PluginType.AI]: saasActionSettingsConfig,
-  [PluginType.INTERNAL]: saasActionSettingsConfig,
-  [PluginType.EXTERNAL_SAAS]: saasActionSettingsConfig,
-};
+export const defaultActionSettings: Record<PluginType, ActionSettingsConfig[]> =
+  {
+    [PluginType.API]: apiActionSettingsConfig,
+    [PluginType.DB]: queryActionSettingsConfig,
+    [PluginType.SAAS]: saasActionSettingsConfig,
+    [PluginType.REMOTE]: saasActionSettingsConfig,
+    [PluginType.JS]: [],
+    [PluginType.AI]: saasActionSettingsConfig,
+    [PluginType.INTERNAL]: saasActionSettingsConfig,
+    [PluginType.EXTERNAL_SAAS]: saasActionSettingsConfig,
+  };
 
 // TODO: Fix this the next time the file is edited
 // eslint-disable-next-line @typescript-eslint/no-explicit-any
diff --git a/app/client/src/constants/AppsmithActionConstants/formConfig/ApiSettingsConfig.ts b/app/client/src/constants/AppsmithActionConstants/formConfig/ApiSettingsConfig.ts
index 2f3c2b4f1275..c74936e79a4c 100644
--- a/app/client/src/constants/AppsmithActionConstants/formConfig/ApiSettingsConfig.ts
+++ b/app/client/src/constants/AppsmithActionConstants/formConfig/ApiSettingsConfig.ts
@@ -7,9 +7,10 @@ import {
   HTTP_PROTOCOL_VERSIONS,
 } from "PluginActionEditor/constants/CommonApiConstants";
 import {
-  RUN_BEHAVIOR,
   RUN_BEHAVIOR_VALUES,
-} from "PluginActionEditor/types/PluginActionTypes";
+  RUN_BEHAVIOR_CONFIG_PROPERTY,
+} from "constants/AppsmithActionConstants/formConfig/PluginSettings";
+import { ActionRunBehaviour } from "PluginActionEditor/types/PluginActionTypes";
 
 export default [
   {
@@ -18,9 +19,9 @@ export default [
     children: [
       {
         label: "Run behavior",
-        configProperty: "runBehaviour",
+        configProperty: RUN_BEHAVIOR_CONFIG_PROPERTY,
         controlType: "DROP_DOWN",
-        initialValue: RUN_BEHAVIOR.MANUAL.label,
+        initialValue: ActionRunBehaviour.MANUAL,
         options: RUN_BEHAVIOR_VALUES,
       },
       {
diff --git a/app/client/src/constants/AppsmithActionConstants/formConfig/GoogleSheetsSettingsConfig.ts b/app/client/src/constants/AppsmithActionConstants/formConfig/GoogleSheetsSettingsConfig.ts
index 48072b8bbedc..73a5ca299b2f 100644
--- a/app/client/src/constants/AppsmithActionConstants/formConfig/GoogleSheetsSettingsConfig.ts
+++ b/app/client/src/constants/AppsmithActionConstants/formConfig/GoogleSheetsSettingsConfig.ts
@@ -1,7 +1,8 @@
 import {
-  RUN_BEHAVIOR,
   RUN_BEHAVIOR_VALUES,
-} from "PluginActionEditor/types/PluginActionTypes";
+  RUN_BEHAVIOR_CONFIG_PROPERTY,
+} from "constants/AppsmithActionConstants/formConfig/PluginSettings";
+import { ActionRunBehaviour } from "PluginActionEditor/types/PluginActionTypes";
 
 export default [
   {
@@ -10,9 +11,9 @@ export default [
     children: [
       {
         label: "Run behavior",
-        configProperty: "runBehaviour",
+        configProperty: RUN_BEHAVIOR_CONFIG_PROPERTY,
         controlType: "DROP_DOWN",
-        initialValue: RUN_BEHAVIOR.MANUAL.label,
+        initialValue: ActionRunBehaviour.MANUAL,
         options: RUN_BEHAVIOR_VALUES,
       },
       {
diff --git a/app/client/src/constants/AppsmithActionConstants/formConfig/PluginSettings.ts b/app/client/src/constants/AppsmithActionConstants/formConfig/PluginSettings.ts
new file mode 100644
index 000000000000..ff0dfc07892d
--- /dev/null
+++ b/app/client/src/constants/AppsmithActionConstants/formConfig/PluginSettings.ts
@@ -0,0 +1,24 @@
+import { ActionRunBehaviour } from "PluginActionEditor/types/PluginActionTypes";
+
+export const RUN_BEHAVIOR_CONFIG_PROPERTY = "runBehaviour";
+
+export const RUN_BEHAVIOR_VALUES = [
+  {
+    label: "Automatic",
+    subText: "Query runs on page load or when a variable it depends on changes",
+    value: ActionRunBehaviour.AUTOMATIC,
+    children: "Automatic",
+  },
+  {
+    label: "On page load",
+    subText: "Query runs when the page loads or when manually triggered",
+    value: ActionRunBehaviour.ON_PAGE_LOAD,
+    children: "On page load",
+  },
+  {
+    label: "Manual",
+    subText: "Query only runs when called in an event or JS with .run()",
+    value: ActionRunBehaviour.MANUAL,
+    children: "Manual",
+  },
+];
diff --git a/app/client/src/constants/AppsmithActionConstants/formConfig/QuerySettingsConfig.ts b/app/client/src/constants/AppsmithActionConstants/formConfig/QuerySettingsConfig.ts
index af05483b56b4..28611ae53012 100644
--- a/app/client/src/constants/AppsmithActionConstants/formConfig/QuerySettingsConfig.ts
+++ b/app/client/src/constants/AppsmithActionConstants/formConfig/QuerySettingsConfig.ts
@@ -1,7 +1,8 @@
 import {
-  RUN_BEHAVIOR,
   RUN_BEHAVIOR_VALUES,
-} from "PluginActionEditor/types/PluginActionTypes";
+  RUN_BEHAVIOR_CONFIG_PROPERTY,
+} from "constants/AppsmithActionConstants/formConfig/PluginSettings";
+import { ActionRunBehaviour } from "PluginActionEditor/types/PluginActionTypes";
 
 export default [
   {
@@ -10,9 +11,9 @@ export default [
     children: [
       {
         label: "Run behavior",
-        configProperty: "runBehaviour",
+        configProperty: RUN_BEHAVIOR_CONFIG_PROPERTY,
         controlType: "DROP_DOWN",
-        initialValue: RUN_BEHAVIOR.MANUAL.label,
+        initialValue: ActionRunBehaviour.MANUAL,
         options: RUN_BEHAVIOR_VALUES,
       },
       {
diff --git a/app/client/src/pages/Editor/JSEditor/JSEditorToolbar/components/JSFunctionSettings.tsx b/app/client/src/pages/Editor/JSEditor/JSEditorToolbar/components/JSFunctionSettings.tsx
index c54a9a3e4c12..bffd589119c3 100644
--- a/app/client/src/pages/Editor/JSEditor/JSEditorToolbar/components/JSFunctionSettings.tsx
+++ b/app/client/src/pages/Editor/JSEditor/JSEditorToolbar/components/JSFunctionSettings.tsx
@@ -15,10 +15,13 @@ import {
 import AnalyticsUtil from "ee/utils/AnalyticsUtil";
 import type { OnUpdateSettingsProps } from "../types";
 import {
-  RUN_BEHAVIOR_VALUES,
+  ActionRunBehaviour,
   type ActionRunBehaviourType,
 } from "PluginActionEditor/types/PluginActionTypes";
 import styled from "styled-components";
+import { RUN_BEHAVIOR_VALUES } from "constants/AppsmithActionConstants/formConfig/PluginSettings";
+import { useFeatureFlag } from "utils/hooks/useFeatureFlag";
+import { FEATURE_FLAG } from "ee/entities/FeatureFlag";
 
 const OptionLabel = styled(Text)`
   color: var(--ads-v2-color-fg);
@@ -55,7 +58,14 @@ interface FunctionSettingsRowProps extends Omit<Props, "actions"> {
 
 const FunctionSettingRow = (props: FunctionSettingsRowProps) => {
   const [runBehaviour, setRunBehaviour] = useState(props.action.runBehaviour);
-  const options = RUN_BEHAVIOR_VALUES as SelectOptionProps[];
+  const flagValueForReactiveActions = useFeatureFlag(
+    FEATURE_FLAG.release_reactive_actions_enabled,
+  );
+  const options = RUN_BEHAVIOR_VALUES.filter(
+    (option) =>
+      flagValueForReactiveActions ||
+      option.value !== ActionRunBehaviour.AUTOMATIC,
+  ) as SelectOptionProps[];
   const selectedValue = options.find((opt) => opt.value === runBehaviour);
 
   const onSelectOptions = useCallback(
@@ -90,7 +100,6 @@ const FunctionSettingRow = (props: FunctionSettingsRowProps) => {
       </FunctionName>
       <StyledSelect
         data-testid={`t--dropdown-runBehaviour`}
-        defaultValue={selectedValue}
         id={props.action.id}
         isDisabled={props.disabled}
         listHeight={240}
diff --git a/app/client/src/pages/Editor/SaaSEditor/__data__/FinalState.json b/app/client/src/pages/Editor/SaaSEditor/__data__/FinalState.json
index 7b500b43447a..4a8c7eaf1496 100644
--- a/app/client/src/pages/Editor/SaaSEditor/__data__/FinalState.json
+++ b/app/client/src/pages/Editor/SaaSEditor/__data__/FinalState.json
@@ -2548,6 +2548,11 @@
                 "controlType": "DROP_DOWN",
                 "initialValue": "MANUAL",
                 "options": [
+                  {
+                    "label": "Automatic",
+                    "subText": "Query runs on page load or when a variable it depends on changes",
+                    "value": "AUTOMATIC"
+                  },
                   {
                     "label": "On page load",
                     "subText": "Query runs when the page loads or when manually triggered",
@@ -2594,6 +2599,11 @@
                 "controlType": "DROP_DOWN",
                 "initialValue": "MANUAL",
                 "options": [
+                  {
+                    "label": "Automatic",
+                    "subText": "Query runs on page load or when a variable it depends on changes",
+                    "value": "AUTOMATIC"
+                  },
                   {
                     "label": "On page load",
                     "subText": "Query runs when the page loads or when manually triggered",
@@ -2640,6 +2650,11 @@
                 "controlType": "DROP_DOWN",
                 "initialValue": "MANUAL",
                 "options": [
+                  {
+                    "label": "Automatic",
+                    "subText": "Query runs on page load or when a variable it depends on changes",
+                    "value": "AUTOMATIC"
+                  },
                   {
                     "label": "On page load",
                     "subText": "Query runs when the page loads or when manually triggered",
@@ -2692,6 +2707,11 @@
                 "controlType": "DROP_DOWN",
                 "initialValue": "MANUAL",
                 "options": [
+                  {
+                    "label": "Automatic",
+                    "subText": "Query runs on page load or when a variable it depends on changes",
+                    "value": "AUTOMATIC"
+                  },
                   {
                     "label": "On page load",
                     "subText": "Query runs when the page loads or when manually triggered",
@@ -2731,6 +2751,11 @@
                 "controlType": "DROP_DOWN",
                 "initialValue": "MANUAL",
                 "options": [
+                  {
+                    "label": "Automatic",
+                    "subText": "Query runs on page load or when a variable it depends on changes",
+                    "value": "AUTOMATIC"
+                  },
                   {
                     "label": "On page load",
                     "subText": "Query runs when the page loads or when manually triggered",
@@ -2777,6 +2802,11 @@
                 "controlType": "DROP_DOWN",
                 "initialValue": "MANUAL",
                 "options": [
+                  {
+                    "label": "Automatic",
+                    "subText": "Query runs on page load or when a variable it depends on changes",
+                    "value": "AUTOMATIC"
+                  },
                   {
                     "label": "On page load",
                     "subText": "Query runs when the page loads or when manually triggered",
@@ -2823,6 +2853,11 @@
                 "controlType": "DROP_DOWN",
                 "initialValue": "MANUAL",
                 "options": [
+                  {
+                    "label": "Automatic",
+                    "subText": "Query runs on page load or when a variable it depends on changes",
+                    "value": "AUTOMATIC"
+                  },
                   {
                     "label": "On page load",
                     "subText": "Query runs when the page loads or when manually triggered",
diff --git a/app/client/src/pages/Editor/SaaSEditor/__data__/InitialState.json b/app/client/src/pages/Editor/SaaSEditor/__data__/InitialState.json
index b4d8f0b251a5..3a197ce6cef4 100644
--- a/app/client/src/pages/Editor/SaaSEditor/__data__/InitialState.json
+++ b/app/client/src/pages/Editor/SaaSEditor/__data__/InitialState.json
@@ -2547,6 +2547,11 @@
                 "controlType": "DROP_DOWN",
                 "initialValue": "MANUAL",
                 "options": [
+                  {
+                    "label": "Automatic",
+                    "subText": "Query runs on page load or when a variable it depends on changes",
+                    "value": "AUTOMATIC"
+                  },
                   {
                     "label": "On page load",
                     "subText": "Query runs when the page loads or when manually triggered",
@@ -2593,6 +2598,11 @@
                 "controlType": "DROP_DOWN",
                 "initialValue": "MANUAL",
                 "options": [
+                  {
+                    "label": "Automatic",
+                    "subText": "Query runs on page load or when a variable it depends on changes",
+                    "value": "AUTOMATIC"
+                  },
                   {
                     "label": "On page load",
                     "subText": "Query runs when the page loads or when manually triggered",
@@ -2639,6 +2649,11 @@
                 "controlType": "DROP_DOWN",
                 "initialValue": "MANUAL",
                 "options": [
+                  {
+                    "label": "Automatic",
+                    "subText": "Query runs on page load or when a variable it depends on changes",
+                    "value": "AUTOMATIC"
+                  },
                   {
                     "label": "On page load",
                     "subText": "Query runs when the page loads or when manually triggered",
@@ -2691,6 +2706,11 @@
                 "controlType": "DROP_DOWN",
                 "initialValue": "MANUAL",
                 "options": [
+                  {
+                    "label": "Automatic",
+                    "subText": "Query runs on page load or when a variable it depends on changes",
+                    "value": "AUTOMATIC"
+                  },
                   {
                     "label": "On page load",
                     "subText": "Query runs when the page loads or when manually triggered",
@@ -2730,6 +2750,11 @@
                 "controlType": "DROP_DOWN",
                 "initialValue": "MANUAL",
                 "options": [
+                  {
+                    "label": "Automatic",
+                    "subText": "Query runs on page load or when a variable it depends on changes",
+                    "value": "AUTOMATIC"
+                  },
                   {
                     "label": "On page load",
                     "subText": "Query runs when the page loads or when manually triggered",
@@ -2776,6 +2801,11 @@
                 "controlType": "DROP_DOWN",
                 "initialValue": "MANUAL",
                 "options": [
+                  {
+                    "label": "Automatic",
+                    "subText": "Query runs on page load or when a variable it depends on changes",
+                    "value": "AUTOMATIC"
+                  },
                   {
                     "label": "On page load",
                     "subText": "Query runs when the page loads or when manually triggered",
@@ -2822,6 +2852,11 @@
                 "controlType": "DROP_DOWN",
                 "initialValue": "MANUAL",
                 "options": [
+                  {
+                    "label": "Automatic",
+                    "subText": "Query runs on page load or when a variable it depends on changes",
+                    "value": "AUTOMATIC"
+                  },
                   {
                     "label": "On page load",
                     "subText": "Query runs when the page loads or when manually triggered",
diff --git a/app/client/src/utils/PluginUtils.ts b/app/client/src/utils/PluginUtils.ts
new file mode 100644
index 000000000000..72aaaa9ccb1d
--- /dev/null
+++ b/app/client/src/utils/PluginUtils.ts
@@ -0,0 +1,36 @@
+import { RUN_BEHAVIOR_CONFIG_PROPERTY } from "constants/AppsmithActionConstants/formConfig/PluginSettings";
+import {
+  ActionRunBehaviour,
+  type ActionSettingsConfig,
+  type ActionSettingsConfigChildren,
+} from "PluginActionEditor/types/PluginActionTypes";
+
+export const updateRunBehaviourForActionSettings = (
+  actionSettings: ActionSettingsConfig[],
+  flagValueForReactiveActions: boolean,
+): ActionSettingsConfig[] => {
+  return actionSettings.map((settings) => ({
+    ...settings,
+    children: settings.children.map(
+      (settings: ActionSettingsConfigChildren) => {
+        if (
+          settings.configProperty === RUN_BEHAVIOR_CONFIG_PROPERTY &&
+          settings.options
+        ) {
+          return {
+            ...settings,
+            options: [
+              ...settings.options.filter(
+                (option) =>
+                  flagValueForReactiveActions ||
+                  option.value !== ActionRunBehaviour.AUTOMATIC,
+              ),
+            ],
+          };
+        }
+
+        return settings;
+      },
+    ),
+  }));
+};
diff --git a/app/client/test/factories/MockPluginsState.ts b/app/client/test/factories/MockPluginsState.ts
index f2c78870fc35..6d1b3991b794 100644
--- a/app/client/test/factories/MockPluginsState.ts
+++ b/app/client/test/factories/MockPluginsState.ts
@@ -6957,6 +6957,11 @@ export default {
             controlType: "DROP_DOWN",
             initialValue: "MANUAL",
             options: [
+              {
+                label: "Automatic",
+                subText: "Query runs on page load or when a variable it depends on changes",
+                value: "AUTOMATIC"
+              },
               {
                 label: "On page load",
                 subText:
@@ -7037,6 +7042,11 @@ export default {
             controlType: "DROP_DOWN",
             initialValue: "MANUAL",
             options: [
+              {
+                label: "Automatic",
+                subText: "Query runs on page load or when a variable it depends on changes",
+                value: "AUTOMATIC"
+              },
               {
                 label: "On page load",
                 subText:
@@ -7117,6 +7127,11 @@ export default {
             controlType: "DROP_DOWN",
             initialValue: "MANUAL",
             options: [
+              {
+                label: "Automatic",
+                subText: "Query runs on page load or when a variable it depends on changes",
+                value: "AUTOMATIC"
+              },
               {
                 label: "On page load",
                 subText:
@@ -7161,6 +7176,11 @@ export default {
             controlType: "DROP_DOWN",
             initialValue: "MANUAL",
             options: [
+              {
+                label: "Automatic",
+                subText: "Query runs on page load or when a variable it depends on changes",
+                value: "AUTOMATIC"
+              },
               {
                 label: "On page load",
                 subText:
diff --git a/app/server/appsmith-plugins/amazons3Plugin/src/main/resources/setting.json b/app/server/appsmith-plugins/amazons3Plugin/src/main/resources/setting.json
index 4f94c3d58b0e..9b5d6e185699 100644
--- a/app/server/appsmith-plugins/amazons3Plugin/src/main/resources/setting.json
+++ b/app/server/appsmith-plugins/amazons3Plugin/src/main/resources/setting.json
@@ -10,6 +10,11 @@
           "controlType": "DROP_DOWN",
           "initialValue": "MANUAL",
           "options": [
+            {
+              "label": "Automatic",
+              "subText": "Query runs on page load or when a variable it depends on changes",
+              "value": "AUTOMATIC"
+            },
             {
               "label": "On page load",
               "subText": "Query runs when the page loads or when manually triggered",
diff --git a/app/server/appsmith-plugins/anthropicPlugin/src/main/resources/setting.json b/app/server/appsmith-plugins/anthropicPlugin/src/main/resources/setting.json
index 29eeef3f9072..664e50c657fe 100644
--- a/app/server/appsmith-plugins/anthropicPlugin/src/main/resources/setting.json
+++ b/app/server/appsmith-plugins/anthropicPlugin/src/main/resources/setting.json
@@ -10,6 +10,11 @@
           "controlType": "DROP_DOWN",
           "initialValue": "MANUAL",
           "options": [
+            {
+              "label": "Automatic",
+              "subText": "Query runs on page load or when a variable it depends on changes",
+              "value": "AUTOMATIC"
+            },
             {
               "label": "On page load",
               "subText": "Query runs when the page loads or when manually triggered",
diff --git a/app/server/appsmith-plugins/appsmithAiPlugin/src/main/resources/setting.json b/app/server/appsmith-plugins/appsmithAiPlugin/src/main/resources/setting.json
index 29eeef3f9072..664e50c657fe 100644
--- a/app/server/appsmith-plugins/appsmithAiPlugin/src/main/resources/setting.json
+++ b/app/server/appsmith-plugins/appsmithAiPlugin/src/main/resources/setting.json
@@ -10,6 +10,11 @@
           "controlType": "DROP_DOWN",
           "initialValue": "MANUAL",
           "options": [
+            {
+              "label": "Automatic",
+              "subText": "Query runs on page load or when a variable it depends on changes",
+              "value": "AUTOMATIC"
+            },
             {
               "label": "On page load",
               "subText": "Query runs when the page loads or when manually triggered",
diff --git a/app/server/appsmith-plugins/firestorePlugin/src/main/resources/setting.json b/app/server/appsmith-plugins/firestorePlugin/src/main/resources/setting.json
index b40e119aa13f..3bd55fa8e595 100644
--- a/app/server/appsmith-plugins/firestorePlugin/src/main/resources/setting.json
+++ b/app/server/appsmith-plugins/firestorePlugin/src/main/resources/setting.json
@@ -10,6 +10,11 @@
           "controlType": "DROP_DOWN",
           "initialValue": "MANUAL",
           "options": [
+            {
+              "label": "Automatic",
+              "subText": "Query runs on page load or when a variable it depends on changes",
+              "value": "AUTOMATIC"
+            },
             {
               "label": "On page load",
               "subText": "Query runs when the page loads or when manually triggered",
diff --git a/app/server/appsmith-plugins/googleAiPlugin/src/main/resources/setting.json b/app/server/appsmith-plugins/googleAiPlugin/src/main/resources/setting.json
index 29eeef3f9072..664e50c657fe 100644
--- a/app/server/appsmith-plugins/googleAiPlugin/src/main/resources/setting.json
+++ b/app/server/appsmith-plugins/googleAiPlugin/src/main/resources/setting.json
@@ -10,6 +10,11 @@
           "controlType": "DROP_DOWN",
           "initialValue": "MANUAL",
           "options": [
+            {
+              "label": "Automatic",
+              "subText": "Query runs on page load or when a variable it depends on changes",
+              "value": "AUTOMATIC"
+            },
             {
               "label": "On page load",
               "subText": "Query runs when the page loads or when manually triggered",
diff --git a/app/server/appsmith-plugins/googleSheetsPlugin/src/main/resources/setting.json b/app/server/appsmith-plugins/googleSheetsPlugin/src/main/resources/setting.json
index 6ef51a82605e..ee870c8646e6 100644
--- a/app/server/appsmith-plugins/googleSheetsPlugin/src/main/resources/setting.json
+++ b/app/server/appsmith-plugins/googleSheetsPlugin/src/main/resources/setting.json
@@ -10,6 +10,11 @@
           "controlType": "DROP_DOWN",
           "initialValue": "MANUAL",
           "options": [
+            {
+              "label": "Automatic",
+              "subText": "Query runs on page load or when a variable it depends on changes",
+              "value": "AUTOMATIC"
+            },
             {
               "label": "On page load",
               "subText": "Query runs when the page loads or when manually triggered",
diff --git a/app/server/appsmith-plugins/mongoPlugin/src/main/resources/setting.json b/app/server/appsmith-plugins/mongoPlugin/src/main/resources/setting.json
index d3b65d13187b..458aab4e1d26 100644
--- a/app/server/appsmith-plugins/mongoPlugin/src/main/resources/setting.json
+++ b/app/server/appsmith-plugins/mongoPlugin/src/main/resources/setting.json
@@ -10,6 +10,11 @@
           "controlType": "DROP_DOWN",
           "initialValue": "MANUAL",
           "options": [
+            {
+              "label": "Automatic",
+              "subText": "Query runs on page load or when a variable it depends on changes",
+              "value": "AUTOMATIC"
+            },
             {
               "label": "On page load",
               "subText": "Query runs when the page loads or when manually triggered",
diff --git a/app/server/appsmith-plugins/mssqlPlugin/src/main/resources/setting.json b/app/server/appsmith-plugins/mssqlPlugin/src/main/resources/setting.json
index c6d9b84f30f0..7b2d6ef719ec 100644
--- a/app/server/appsmith-plugins/mssqlPlugin/src/main/resources/setting.json
+++ b/app/server/appsmith-plugins/mssqlPlugin/src/main/resources/setting.json
@@ -10,6 +10,11 @@
           "controlType": "DROP_DOWN",
           "initialValue": "MANUAL",
           "options": [
+            {
+              "label": "Automatic",
+              "subText": "Query runs on page load or when a variable it depends on changes",
+              "value": "AUTOMATIC"
+            },
             {
               "label": "On page load",
               "subText": "Query runs when the page loads or when manually triggered",
diff --git a/app/server/appsmith-plugins/mysqlPlugin/src/main/resources/setting.json b/app/server/appsmith-plugins/mysqlPlugin/src/main/resources/setting.json
index c6d9b84f30f0..7b2d6ef719ec 100644
--- a/app/server/appsmith-plugins/mysqlPlugin/src/main/resources/setting.json
+++ b/app/server/appsmith-plugins/mysqlPlugin/src/main/resources/setting.json
@@ -10,6 +10,11 @@
           "controlType": "DROP_DOWN",
           "initialValue": "MANUAL",
           "options": [
+            {
+              "label": "Automatic",
+              "subText": "Query runs on page load or when a variable it depends on changes",
+              "value": "AUTOMATIC"
+            },
             {
               "label": "On page load",
               "subText": "Query runs when the page loads or when manually triggered",
diff --git a/app/server/appsmith-plugins/openAiPlugin/src/main/resources/setting.json b/app/server/appsmith-plugins/openAiPlugin/src/main/resources/setting.json
index 29eeef3f9072..664e50c657fe 100644
--- a/app/server/appsmith-plugins/openAiPlugin/src/main/resources/setting.json
+++ b/app/server/appsmith-plugins/openAiPlugin/src/main/resources/setting.json
@@ -10,6 +10,11 @@
           "controlType": "DROP_DOWN",
           "initialValue": "MANUAL",
           "options": [
+            {
+              "label": "Automatic",
+              "subText": "Query runs on page load or when a variable it depends on changes",
+              "value": "AUTOMATIC"
+            },
             {
               "label": "On page load",
               "subText": "Query runs when the page loads or when manually triggered",
diff --git a/app/server/appsmith-plugins/oraclePlugin/src/main/resources/setting.json b/app/server/appsmith-plugins/oraclePlugin/src/main/resources/setting.json
index 1b1100df5992..906241476d0e 100755
--- a/app/server/appsmith-plugins/oraclePlugin/src/main/resources/setting.json
+++ b/app/server/appsmith-plugins/oraclePlugin/src/main/resources/setting.json
@@ -10,6 +10,11 @@
           "controlType": "DROP_DOWN",
           "initialValue": "MANUAL",
           "options": [
+            {
+              "label": "Automatic",
+              "subText": "Query runs on page load or when a variable it depends on changes",
+              "value": "AUTOMATIC"
+            },
             {
               "label": "On page load",
               "subText": "Query runs when the page loads or when manually triggered",
diff --git a/app/server/appsmith-plugins/postgresPlugin/src/main/resources/setting.json b/app/server/appsmith-plugins/postgresPlugin/src/main/resources/setting.json
index c6d9b84f30f0..7b2d6ef719ec 100644
--- a/app/server/appsmith-plugins/postgresPlugin/src/main/resources/setting.json
+++ b/app/server/appsmith-plugins/postgresPlugin/src/main/resources/setting.json
@@ -10,6 +10,11 @@
           "controlType": "DROP_DOWN",
           "initialValue": "MANUAL",
           "options": [
+            {
+              "label": "Automatic",
+              "subText": "Query runs on page load or when a variable it depends on changes",
+              "value": "AUTOMATIC"
+            },
             {
               "label": "On page load",
               "subText": "Query runs when the page loads or when manually triggered",


Reviews:
user: login: ankitakinger
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-09T13:42:29Z
user: login: ankitakinger
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-09T13:44:52Z
user: login: AmanAgarwal041
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-09T18:55:49Z
user: login: ankitakinger
body: Should be merged only after Milestone 1 feature branches are merged.
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T09:34:22Z
user: login: coderabbitai[bot]
body: **Actionable comments posted: 0**

<details>
<summary>🧹 Nitpick comments (4)</summary><blockquote>

<details>
<summary>app/client/src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/hooks/useGoogleSheetsSetDefaultProperty.ts (1)</summary><blockquote>

`34-36`: **Guard against potentially undefined `settingsConfig`**  
Casting `settingsConfig` directly may break if it's ever `undefined`. Consider using a fallback:  
```diff
- merge(initialValues,
-   getConfigInitialValues(settingsConfig as PluginActionSettingsConfig[]),
- );
+ merge(initialValues,
+   getConfigInitialValues(settingsConfig ?? []),
+ );
```

</blockquote></details>
<details>
<summary>app/client/src/components/editorComponents/PartialImportExport/PartialExportModal/unitTestUtils.ts (2)</summary><blockquote>

`10046-10051`: **Avoid duplicating run behavior options.**  
The `"Automatic"` option block is replicated in multiple dropdown definitions. Extract it into a shared constant (for example, `automaticRunBehaviorOption`) or import `RUN_BEHAVIOR_VALUES` from `PluginSettings.ts` to keep test fixtures DRY and aligned with production code.

---

`10103-10108`: **Use enum reference for the option value.**  
Instead of hardcoding `"AUTOMATIC"`, import and use the `ActionRunBehaviour.AUTOMATIC` enum from `PluginActionTypes.ts`. This ensures type safety and guards against typos if the enum is ever renamed.

</blockquote></details>
<details>
<summary>app/client/src/constants/AppsmithActionConstants/formConfig/PluginSettings.ts (1)</summary><blockquote>

`6-11`: **Consider removing duplication in option objects.**

The `label` and `children` properties have identical values in each option. Consider either using a factory function to create these objects or removing one of the duplicated fields if the consuming components don't require both.

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: .coderabbit.yaml**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 04b3bc98307af12037f5b008298d34f2fb5f2299 and 0793005eb60915a8f5668525ce59d6346866708e.

</details>

<details>
<summary>📒 Files selected for processing (29)</summary>

* `app/client/package.json` (1 hunks)
* `app/client/src/PluginActionEditor/PluginActionContext.tsx` (1 hunks)
* `app/client/src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/hooks/useGoogleSheetsSetDefaultProperty.ts` (2 hunks)
* `app/client/src/PluginActionEditor/components/PluginActionToolbar/components/ActionSettings.tsx` (3 hunks)
* `app/client/src/PluginActionEditor/types/PluginActionTypes.ts` (1 hunks)
* `app/client/src/ce/entities/FeatureFlag.ts` (2 hunks)
* `app/client/src/components/editorComponents/PartialImportExport/PartialExportModal/unitTestUtils.ts` (4 hunks)
* `app/client/src/constants/AppsmithActionConstants/ActionConstants.tsx` (2 hunks)
* `app/client/src/constants/AppsmithActionConstants/formConfig/ApiSettingsConfig.ts` (2 hunks)
* `app/client/src/constants/AppsmithActionConstants/formConfig/GoogleSheetsSettingsConfig.ts` (2 hunks)
* `app/client/src/constants/AppsmithActionConstants/formConfig/PluginSettings.ts` (1 hunks)
* `app/client/src/constants/AppsmithActionConstants/formConfig/QuerySettingsConfig.ts` (2 hunks)
* `app/client/src/pages/Editor/JSEditor/JSEditorToolbar/components/JSFunctionSettings.tsx` (2 hunks)
* `app/client/src/pages/Editor/SaaSEditor/__data__/FinalState.json` (7 hunks)
* `app/client/src/pages/Editor/SaaSEditor/__data__/InitialState.json` (7 hunks)
* `app/client/src/utils/PluginUtils.ts` (1 hunks)
* `app/client/test/factories/MockPluginsState.ts` (4 hunks)
* `app/server/appsmith-plugins/amazons3Plugin/src/main/resources/setting.json` (1 hunks)
* `app/server/appsmith-plugins/anthropicPlugin/src/main/resources/setting.json` (1 hunks)
* `app/server/appsmith-plugins/appsmithAiPlugin/src/main/resources/setting.json` (1 hunks)
* `app/server/appsmith-plugins/firestorePlugin/src/main/resources/setting.json` (1 hunks)
* `app/server/appsmith-plugins/googleAiPlugin/src/main/resources/setting.json` (1 hunks)
* `app/server/appsmith-plugins/googleSheetsPlugin/src/main/resources/setting.json` (1 hunks)
* `app/server/appsmith-plugins/mongoPlugin/src/main/resources/setting.json` (1 hunks)
* `app/server/appsmith-plugins/mssqlPlugin/src/main/resources/setting.json` (1 hunks)
* `app/server/appsmith-plugins/mysqlPlugin/src/main/resources/setting.json` (1 hunks)
* `app/server/appsmith-plugins/openAiPlugin/src/main/resources/setting.json` (1 hunks)
* `app/server/appsmith-plugins/oraclePlugin/src/main/resources/setting.json` (1 hunks)
* `app/server/appsmith-plugins/postgresPlugin/src/main/resources/setting.json` (1 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🧬 Code Graph Analysis (8)</summary>

<details>
<summary>app/client/src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/hooks/useGoogleSheetsSetDefaultProperty.ts (1)</summary><blockquote>

<details>
<summary>app/client/src/components/formControls/utils.ts (1)</summary>

* `getConfigInitialValues` (404-528)

</details>

</blockquote></details>
<details>
<summary>app/client/src/PluginActionEditor/components/PluginActionToolbar/components/ActionSettings.tsx (2)</summary><blockquote>

<details>
<summary>app/client/src/ce/selectors/featureFlagsSelectors.ts (1)</summary>

* `selectFeatureFlagCheck` (19-30)

</details>
<details>
<summary>app/client/src/utils/PluginUtils.ts (1)</summary>

* `updateRunBehaviourForActionSettings` (8-36)

</details>

</blockquote></details>
<details>
<summary>app/client/src/utils/PluginUtils.ts (2)</summary><blockquote>

<details>
<summary>app/client/src/PluginActionEditor/types/PluginActionTypes.ts (2)</summary>

* `ActionSettingsConfig` (26-30)
* `ActionSettingsConfigChildren` (13-24)

</details>
<details>
<summary>app/client/src/constants/AppsmithActionConstants/formConfig/PluginSettings.ts (1)</summary>

* `RUN_BEHAVIOR_CONFIG_PROPERTY` (3-3)

</details>

</blockquote></details>
<details>
<summary>app/client/src/PluginActionEditor/PluginActionContext.tsx (1)</summary><blockquote>

<details>
<summary>app/client/src/api/ActionAPI.tsx (1)</summary>

* `ActionResponse` (76-92)

</details>

</blockquote></details>
<details>
<summary>app/client/src/pages/Editor/JSEditor/JSEditorToolbar/components/JSFunctionSettings.tsx (1)</summary><blockquote>

<details>
<summary>app/client/src/constants/AppsmithActionConstants/formConfig/PluginSettings.ts (1)</summary>

* `RUN_BEHAVIOR_VALUES` (5-24)

</details>

</blockquote></details>
<details>
<summary>app/client/src/constants/AppsmithActionConstants/formConfig/ApiSettingsConfig.ts (1)</summary><blockquote>

<details>
<summary>app/client/src/constants/AppsmithActionConstants/formConfig/PluginSettings.ts (1)</summary>

* `RUN_BEHAVIOR_CONFIG_PROPERTY` (3-3)

</details>

</blockquote></details>
<details>
<summary>app/client/src/constants/AppsmithActionConstants/formConfig/GoogleSheetsSettingsConfig.ts (1)</summary><blockquote>

<details>
<summary>app/client/src/constants/AppsmithActionConstants/formConfig/PluginSettings.ts (1)</summary>

* `RUN_BEHAVIOR_CONFIG_PROPERTY` (3-3)

</details>

</blockquote></details>
<details>
<summary>app/client/src/constants/AppsmithActionConstants/formConfig/QuerySettingsConfig.ts (1)</summary><blockquote>

<details>
<summary>app/client/src/constants/AppsmithActionConstants/formConfig/PluginSettings.ts (1)</summary>

* `RUN_BEHAVIOR_CONFIG_PROPERTY` (3-3)

</details>

</blockquote></details>

</details>

</details>

<details>
<summary>🔇 Additional comments (51)</summary><blockquote>

<details>
<summary>app/client/package.json (1)</summary>

`430-430`: **Add a POSIX-compliant newline at end-of-file.**

Including a trailing newline helps prevent issues with certain Unix tools and keeps diffs cleaner.

</details>
<details>
<summary>app/server/appsmith-plugins/googleAiPlugin/src/main/resources/setting.json (1)</summary>

`13-17`: **Add new "Automatic" run behavior option**  
The `"Automatic"` entry has been correctly inserted with the proper `label`, `subText`, and `value`. It aligns with the existing options and JSON schema. Ensure the client’s feature-flag logic (`release_reactive_actions_enabled`) filters this option as intended in the UI.

</details>
<details>
<summary>app/server/appsmith-plugins/appsmithAiPlugin/src/main/resources/setting.json (1)</summary>

`13-17`: **Add new "Automatic" run behavior option**  
The `"Automatic"` option is correctly added to the dropdown array with consistent formatting. Confirm that the UI respects the feature flag gating for this option.

</details>
<details>
<summary>app/server/appsmith-plugins/googleSheetsPlugin/src/main/resources/setting.json (1)</summary>

`13-17`: **Add new "Automatic" run behavior option**  
The inserted `"Automatic"` block matches the pattern in other plugins. Validate that the client-side filter via `updateRunBehaviourForActionSettings` hides this when the feature flag is off.

</details>
<details>
<summary>app/server/appsmith-plugins/mssqlPlugin/src/main/resources/setting.json (1)</summary>

`13-17`: **Add new "Automatic" run behavior option**  
The new option is inserted properly and JSON remains valid. Please verify that no downstream consumers assume only two options.

</details>
<details>
<summary>app/server/appsmith-plugins/openAiPlugin/src/main/resources/setting.json (1)</summary>

`13-17`: **Add new "Automatic" run behavior option**  
The `"Automatic"` entry is in the correct position and format. Ensure consistency across all plugin UIs under the feature flag.

</details>
<details>
<summary>app/server/appsmith-plugins/mongoPlugin/src/main/resources/setting.json (1)</summary>

`13-17`: **Add "Automatic" run behavior option**  
The new dropdown entry is correctly formatted and matches other plugins. Verify that the client‐side `updateRunBehaviourForActionSettings` utility properly hides this when `release_reactive_actions_enabled` is false.

</details>
<details>
<summary>app/server/appsmith-plugins/amazons3Plugin/src/main/resources/setting.json (1)</summary>

`13-17`: **Add "Automatic" run behavior option**  
Consistent addition here. Ensure the client filtering logic (`release_reactive_actions_enabled`) prevents display when the feature flag is off.

</details>
<details>
<summary>app/server/appsmith-plugins/mysqlPlugin/src/main/resources/setting.json (1)</summary>

`13-17`: **Add "Automatic" run behavior option**  
Looks good in the MySQL config. Confirm that on the frontend, `ActionRunBehaviour.AUTOMATIC` is only shown when the feature flag is enabled.

</details>
<details>
<summary>app/server/appsmith-plugins/oraclePlugin/src/main/resources/setting.json (1)</summary>

`13-17`: **Add "Automatic" run behavior option**  
The JSON syntax is correct. Please test that the Oracle action settings dropdown respects the `release_reactive_actions_enabled` flag.

</details>
<details>
<summary>app/server/appsmith-plugins/firestorePlugin/src/main/resources/setting.json (1)</summary>

`13-17`: **Add "Automatic" run behavior option**  
This addition aligns with other plugin schemas. Verify the UI hides this option when reactive actions are disabled.

</details>
<details>
<summary>app/server/appsmith-plugins/anthropicPlugin/src/main/resources/setting.json (1)</summary>

`13-17`: **Integrate new "Automatic" run behavior option**  
The new option is correctly inserted before existing entries, preserving `"MANUAL"` as the default. This aligns with the client-side feature flag filtering logic.

</details>
<details>
<summary>app/server/appsmith-plugins/postgresPlugin/src/main/resources/setting.json (1)</summary>

`13-17`: **Integrate new "Automatic" run behavior option**  
Consistent addition for the Postgres plugin’s settings. Ordering and defaults match other plugins.

</details>
<details>
<summary>app/client/src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/hooks/useGoogleSheetsSetDefaultProperty.ts (1)</summary>

`10-10`: **Refine import to use specific settings config type**  
Importing `PluginActionSettingsConfig` improves type safety over the previous generic record type.

</details>
<details>
<summary>app/client/src/PluginActionEditor/PluginActionContext.tsx (1)</summary>

`11-17`: **Refine `settingsConfig` type for stronger typing**  
Updating from `unknown[]` to `PluginActionSettingsConfig[]` aligns this context with the new structured schema and prevents unsafe casts downstream.

</details>
<details>
<summary>app/client/src/pages/Editor/SaaSEditor/__data__/InitialState.json (1)</summary>

`2550-2554`: **Add new "Automatic" option to initial state run behavior**  
This aligns the mocked initial state with the updated plugin settings. Verify that any tests asserting on the run behavior options are updated to include this new choice.

</details>
<details>
<summary>app/client/src/ce/entities/FeatureFlag.ts (2)</summary>

`63-63`: **New feature flag added correctly.**

The new feature flag follows the naming convention documented in the link at the top of the file and is positioned appropriately in the object.

---

`114-114`: **Default value appropriately set to false.**

Setting the default to false is correct for a feature flag that controls a new feature, allowing for controlled rollout.

</details>
<details>
<summary>app/client/src/constants/AppsmithActionConstants/formConfig/QuerySettingsConfig.ts (2)</summary>

`2-5`: **Good refactoring of imports.**

The imports have been updated to use constants from a centralized location, which improves maintainability.

---

`14-16`: **Improved type safety with enum replacement.**

Replacing string literals with constants and using the enum `ActionRunBehaviour.MANUAL` instead of string values improves type safety and code maintainability.

</details>
<details>
<summary>app/client/src/constants/AppsmithActionConstants/ActionConstants.tsx (2)</summary>

`11-11`: **Appropriate type import added.**

The import for `PluginActionSettingsConfig` type is correctly added to support the type annotation changes.

---

`170-173`: **Improved type safety by removing 'any'.**

Replacing the generic `Record<PluginType, any>` with the more specific `Record<PluginType, PluginActionSettingsConfig[]>` improves type safety and helps prevent potential errors.

</details>
<details>
<summary>app/client/test/factories/MockPluginsState.ts (4)</summary>

`6960-6964`: **Implementation looks good for REST API plugin.**

The "Automatic" run behavior option has been correctly added to the REST API plugin settings with appropriate label and descriptive subtext.

---

`7045-7049`: **Implementation consistent for GraphQL API plugin.**

The same "Automatic" run behavior option has been properly added to the GraphQL API plugin settings, maintaining consistency with other plugins.

---

`7130-7134`: **Implementation matches pattern for Appsmith AI plugin.**

The "Automatic" option has been correctly added to the Appsmith AI plugin settings following the same pattern as other plugins.

---

`7179-7183`: **Implementation complete for PostgreSQL plugin.**

The "Automatic" run behavior option has been successfully added to the PostgreSQL plugin settings, completing the implementation across all targeted plugins.

</details>
<details>
<summary>app/client/src/PluginActionEditor/components/PluginActionToolbar/components/ActionSettings.tsx (4)</summary>

`9-11`: **Good integration of feature flag check**

The implementation correctly imports the necessary selectors and uses them to check the feature flag status for reactive actions.

---

`47-54`: **Well-structured feature flag check**

The feature flag selector is properly implemented with the correct flag name. This ensures the "Automatic" option can be controlled via configuration.

---

`51-54`: **Properly applying conditional settings logic**

The code correctly uses the utility function to update settings configuration based on the feature flag status.

---

`58-67`: **Appropriate conditional rendering**

Good update to the rendering logic, now using the filtered settings config and maintaining the error handling.

</details>
<details>
<summary>app/client/src/pages/Editor/SaaSEditor/__data__/FinalState.json (7)</summary>

`2551-2555`: **Consistent implementation of Automatic option for MongoDB**

The new "Automatic" run behavior option is correctly added with appropriate label and descriptive subtext.

---

`2602-2606`: **Consistent implementation of Automatic option for SQL**

The option is correctly implemented with the same structure as other plugins.

---

`2653-2657`: **Consistent implementation of Automatic option for REST API**

The implementation maintains consistency with other plugin configurations.

---

`2710-2714`: **Consistent implementation of Automatic option for Firebase**

The option is correctly added with appropriate description.

---

`2754-2758`: **Consistent implementation of Automatic option for Google Sheets**

The option is properly integrated with the same pattern as other plugins.

---

`2805-2809`: **Consistent implementation of Automatic option for S3**

The implementation follows the established pattern across all plugins.

---

`2856-2860`: **Consistent implementation of Automatic option for Redis**

The option is correctly added with consistent structure.

</details>
<details>
<summary>app/client/src/pages/Editor/JSEditor/JSEditorToolbar/components/JSFunctionSettings.tsx (2)</summary>

`22-23`: **Good update to centralized constants usage**

The code correctly imports run behavior values from the central constants file.

---

`52-59`: **Well-implemented feature flag check and option filtering**

The implementation properly uses the feature flag hook and filters options accordingly to conditionally show the Automatic option.

</details>
<details>
<summary>app/client/src/utils/PluginUtils.ts (2)</summary>

`1-7`: **Clean imports with proper typing**

The imports are correctly organized and include necessary types from the appropriate modules.

---

`8-36`: **Well-designed utility function for conditional option filtering**

The function efficiently filters out the "Automatic" option when the feature flag is disabled while maintaining immutability through proper mapping. The implementation follows functional programming principles by creating new objects rather than mutating existing ones.

This utility helps maintain consistent behavior across the application.

</details>
<details>
<summary>app/client/src/constants/AppsmithActionConstants/formConfig/GoogleSheetsSettingsConfig.ts (3)</summary>

`3-5`: **Import statements updated to use centralized constants**

The changes properly refactor imports to use centralized run behavior constants from PluginSettings instead of direct imports, and introduce the ActionRunBehaviour enum.

---

`14-14`: **Using constant instead of hardcoded string**

Good refactoring to use the RUN_BEHAVIOR_CONFIG_PROPERTY constant instead of hardcoded "runBehaviour" string, improving maintainability.

---

`16-16`: **Using enum value for better type safety**

Appropriate update to use ActionRunBehaviour.MANUAL enum value instead of RUN_BEHAVIOR.MANUAL.label, improving type safety and enabling the automatic option feature.

</details>
<details>
<summary>app/client/src/components/editorComponents/PartialImportExport/PartialExportModal/unitTestUtils.ts (2)</summary>

`10160-10165`: **Ensure test utils respect the feature flag.**  
These fixtures include the `"Automatic"` option unconditionally. If `release_reactive_actions_enabled` is false in tests, the dropdown behavior may diverge from production. Mock or set the flag to `true` in your unit test setup when using these utils.

---

`10247-10251`: **Validate `subText` consistency.**  
Double-check that the `subText` here exactly matches the description in the centralized `RUN_BEHAVIOR_VALUES`. Keeping them in sync avoids confusing discrepancies between tests and UI.

</details>
<details>
<summary>app/client/src/constants/AppsmithActionConstants/formConfig/PluginSettings.ts (1)</summary>

`1-24`: **Good centralization of run behavior constants.**

This new file effectively centralizes the run behavior configuration, making it easier to maintain and reference across the codebase. The constants are well-defined with clear labels and descriptive text.

</details>
<details>
<summary>app/client/src/constants/AppsmithActionConstants/formConfig/ApiSettingsConfig.ts (2)</summary>

`10-13`: **Good import refactoring.**

The imports have been properly updated to use the new centralized constants from PluginSettings.

---

`21-25`: **Improved type safety in run behavior configuration.**

Using constants and enum values instead of string literals improves code maintainability and type safety.

</details>
<details>
<summary>app/client/src/PluginActionEditor/types/PluginActionTypes.ts (2)</summary>

`8-8`: **Good addition of AUTOMATIC enum value.**

Properly extends the enum to support the new Automatic run behavior option.

---

`11-30`: **Improved type safety with new interfaces.**

The new type alias and interfaces provide better type checking and structure for action settings configurations, making the code more robust and maintainable.

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T06:00:38Z
user: login: ankitakinger
state: DISMISSED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T06:49:57Z
user: login: ankitakinger
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-16T09:38:55Z

Review comments:
diff_hunk: @@ -0,0 +1,27 @@
+import { ActionRunBehaviour } from "PluginActionEditor/types/PluginActionTypes";
+
+export const RUN_BEHAVIOR_CONFIG_PROPERTY = "runBehaviour";
+
+export const RUN_BEHAVIOR = {
+  ON_PAGE_LOAD: {
+    label: "On page load",
+    subText: "Query runs when the page loads or when manually triggered",
+    value: ActionRunBehaviour.ON_PAGE_LOAD,
+    children: "On page load",
+  },
+  MANUAL: {
+    label: "Manual",
+    subText: "Query only runs when called in an event or JS with .run()",
+    value: ActionRunBehaviour.MANUAL,
+    children: "Manual",
+  },
+};
+
+export const AUTOMATIC_RUN_BEHAVIOR = {
path: app/client/src/constants/AppsmithActionConstants/formConfig/PluginSettings.ts
user: login: ankitakinger
body: Can we add this to the variable `RUN_BEHAVIOR` instead and filter out the option based on feature flag?
created_at: 2025-05-09T13:42:29Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,50 @@
+import { objectKeys } from "@appsmith/utils";
+import type { PluginType } from "entities/Plugin";
+import {
+  AUTOMATIC_RUN_BEHAVIOR,
+  RUN_BEHAVIOR_CONFIG_PROPERTY,
+} from "constants/AppsmithActionConstants/formConfig/PluginSettings";
+import type { PluginActionSettingsConfig } from "PluginActionEditor/types/PluginActionTypes";
+
+export const updatePluginRunBehaviourForPluginSettings = (
+  pluginSettings: Record<PluginType, PluginActionSettingsConfig[]>,
+  flagValueForReactiveActions: boolean,
+) => {
+  if (flagValueForReactiveActions) {
+    return objectKeys(pluginSettings).reduce(
+      (acc: Record<PluginType, PluginActionSettingsConfig[]>, pluginType) => {
+        acc[pluginType] = pluginSettings[pluginType].map(
+          (plugin: PluginActionSettingsConfig) => {
+            return {
+              ...plugin,
+              children: plugin.children.map((child) => {
+                if (
+                  child.configProperty === RUN_BEHAVIOR_CONFIG_PROPERTY &&
+                  child.options
+                ) {
+                  return {
+                    ...child,
+                    options: [
+                      AUTOMATIC_RUN_BEHAVIOR,
path: app/client/src/utils/PluginUtils.ts
user: login: ankitakinger
body: since we are doing this here, do we still need the `hidden` key in `settings.json` files?
created_at: 2025-05-09T13:44:52Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,50 @@
+import { objectKeys } from "@appsmith/utils";
+import type { PluginType } from "entities/Plugin";
+import {
+  AUTOMATIC_RUN_BEHAVIOR,
+  RUN_BEHAVIOR_CONFIG_PROPERTY,
+} from "constants/AppsmithActionConstants/formConfig/PluginSettings";
+import type { PluginActionSettingsConfig } from "PluginActionEditor/types/PluginActionTypes";
+
+export const updatePluginRunBehaviourForPluginSettings = (
+  pluginSettings: Record<PluginType, PluginActionSettingsConfig[]>,
+  flagValueForReactiveActions: boolean,
+) => {
+  if (flagValueForReactiveActions) {
+    return objectKeys(pluginSettings).reduce(
+      (acc: Record<PluginType, PluginActionSettingsConfig[]>, pluginType) => {
+        acc[pluginType] = pluginSettings[pluginType].map(
+          (plugin: PluginActionSettingsConfig) => {
+            return {
+              ...plugin,
+              children: plugin.children.map((child) => {
+                if (
+                  child.configProperty === RUN_BEHAVIOR_CONFIG_PROPERTY &&
+                  child.options
+                ) {
+                  return {
+                    ...child,
+                    options: [
+                      AUTOMATIC_RUN_BEHAVIOR,
path: app/client/src/utils/PluginUtils.ts
user: login: AmanAgarwal041
body: Yes, these are default settings being used for API, Graphql API etc but for plugins, it just uses settings.json data
created_at: 2025-05-09T18:55:49Z
author_association: CONTRIBUTOR

PR comments:
user: login: coderabbitai[bot]
created_at: 2025-05-08T09:12:15Z
body: <!-- This is an auto-generated comment: summarize by coderabbit.ai -->
<!-- walkthrough_start -->

## Walkthrough

This change introduces a new "Automatic" run behavior option across plugin action settings, updates type definitions and configuration schemas, and implements logic to conditionally show or hide the "Automatic" option based on a feature flag. Type safety is improved throughout, and plugin configuration files are updated to include the new option.

## Changes

| Files/Paths                                                                                         | Change Summary                                                                                                         |
|---------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| .../src/PluginActionEditor/types/PluginActionTypes.ts                                             | Added `AUTOMATIC` to `ActionRunBehaviour` enum; removed old constants; introduced new config interfaces and types.     |
| .../src/constants/AppsmithActionConstants/formConfig/PluginSettings.ts                            | New module: defines `RUN_BEHAVIOR_CONFIG_PROPERTY` and `RUN_BEHAVIOR_VALUES` with "Automatic" option.                   |
| .../src/constants/AppsmithActionConstants/formConfig/ApiSettingsConfig.ts,<br>.../GoogleSheetsSettingsConfig.ts,<br>.../QuerySettingsConfig.ts | Updated imports and usage to new run behavior constants and types; replaced string literals with constants.            |
| .../src/constants/AppsmithActionConstants/ActionConstants.tsx                                     | Updated type annotation for `defaultActionSettings` to use new config type.                                            |
| .../src/PluginActionEditor/PluginActionContext.tsx                                                | Updated `settingsConfig` type to `ActionSettingsConfig[]` for type safety.                                            |
| .../src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/hooks/useGoogleSheetsSetDefaultProperty.ts | Updated type assertion for `settingsConfig` to use new config type.                                                    |
| .../src/PluginActionEditor/components/PluginActionToolbar/components/ActionSettings.tsx           | Uses feature flag and utility to filter "Automatic" option in action settings config.                                  |
| .../src/pages/Editor/JSEditor/JSEditorToolbar/components/JSFunctionSettings.tsx                   | Filters "Automatic" run behavior option based on feature flag; updates dropdown options accordingly.                   |
| .../src/ce/entities/FeatureFlag.ts                                                                | Adds `release_reactive_actions_enabled` to feature flags and sets default to `false`.                                  |
| .../src/utils/PluginUtils.ts                                                                      | Adds utility to filter "Automatic" run behavior option based on feature flag.                                          |
| .../src/components/editorComponents/PartialImportExport/PartialExportModal/unitTestUtils.ts,<br>.../src/pages/Editor/SaaSEditor/__data__/FinalState.json,<br>.../src/pages/Editor/SaaSEditor/__data__/InitialState.json,<br>.../test/factories/MockPluginsState.ts | Adds "Automatic" run behavior option to plugin settings in test and state JSONs.                                       |
| .../appsmith-plugins/*/setting.json                                                               | Adds "Automatic" run behavior option to plugin settings dropdowns in multiple server plugin configuration files.       |
| app/client/package.json                                                                           | Adds a newline at end of file (no functional change).                                                                  |

## Sequence Diagram(s)

```mermaid
sequenceDiagram
    participant UI
    participant Redux
    participant FeatureFlag
    participant PluginUtils

    UI->>Redux: Select run behavior dropdown
    Redux->>FeatureFlag: Check "release_reactive_actions_enabled"
    FeatureFlag-->>Redux: Return flag value (true/false)
    Redux->>PluginUtils: updateRunBehaviourForActionSettings(config, flag)
    PluginUtils-->>Redux: Return filtered config (with/without "Automatic")
    Redux-->>UI: Render dropdown with correct options
```

## Assessment against linked issues

| Objective                                                                                   | Addressed | Explanation                                                        |
|---------------------------------------------------------------------------------------------|-----------|--------------------------------------------------------------------|
| Show or hide `automatic` option in Run behavior settings dropdown based on flag (#40456)     | ✅        |                                                                    |

## Possibly related PRs

- [appsmithorg/appsmith#40355](https://github.com/appsmithorg/appsmith/pull/40355): Introduces initial enum-based run behavior model; this PR expands on that work.
- [appsmithorg/appsmith#40480](https://github.com/appsmithorg/appsmith/pull/40480): Updates JSFunctionSettings and related enums/types; shares related changes to run behavior constants.
- [appsmithorg/appsmith#40489](https://github.com/appsmithorg/appsmith/pull/40489): Fixes Cypress tests for run behavior changes; related to string-based run behavior modes.

## Suggested labels

`Enhancement`

## Suggested reviewers

- AmanAgarwal041
- vsvamsi1

## Poem

> New run modes appear with a flag in tow,  
> "Automatic" joins the show!  
> Types are sharper, configs align,  
> Feature flags decide what you’ll find.  
> Plugins and settings, all in sync—  
> A dropdown’s dance, quicker than you think!  
> 🚦✨

<!-- walkthrough_end -->

<!-- announcements_start -->

> [!NOTE]
> <details>
> <summary>⚡️ AI Code Reviews for VS Code, Cursor, Windsurf</summary>
> 
> CodeRabbit now has a plugin for VS Code, Cursor and Windsurf. This brings AI code reviews directly in the code editor. Each commit is reviewed immediately, finding bugs before the PR is raised. Seamless context handoff to your AI code agent ensures that you can easily incorporate review feedback.
> Learn more [here](http://coderabbit.ai/ide).
> 
> </details>

---

> [!NOTE]
> <details>
> <summary>⚡️ Faster reviews with caching</summary>
> 
> CodeRabbit now supports caching for code and dependencies, helping speed up reviews. This means quicker feedback, reduced wait times, and a smoother review experience overall. Cached data is encrypted and stored securely. This feature will be automatically enabled for all accounts on May 16th. To opt out, configure `Review - Disable Cache` at either the organization or repository level. If you prefer to disable all data retention across your organization, simply turn off the `Data Retention` setting under your Organization Settings.
> Enjoy the performance boost—your workflow just got faster.
> 
> </details>

<!-- announcements_end -->

---

<details>
<summary>📜 Recent review details</summary>

**Configuration used: .coderabbit.yaml**
**Review profile: CHILL**
**Plan: Pro (Legacy)**


<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 7220957c7d941e2a162d0eacf4c6f5947db9aab7 and 6193c8627048427b92b5f66f34b16f90350be278.

</details>

<details>
<summary>📒 Files selected for processing (3)</summary>

* `app/client/src/PluginActionEditor/components/PluginActionToolbar/components/ActionSettings.tsx` (3 hunks)
* `app/client/src/ce/entities/FeatureFlag.ts` (2 hunks)
* `app/client/src/pages/Editor/JSEditor/JSEditorToolbar/components/JSFunctionSettings.tsx` (2 hunks)

</details>

<details>
<summary>🚧 Files skipped from review as they are similar to previous changes (3)</summary>

* app/client/src/ce/entities/FeatureFlag.ts
* app/client/src/pages/Editor/JSEditor/JSEditorToolbar/components/JSFunctionSettings.tsx
* app/client/src/PluginActionEditor/components/PluginActionToolbar/components/ActionSettings.tsx

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (10)</summary>

* GitHub Check: perform-test / rts-build / build
* GitHub Check: perform-test / client-build / client-build
* GitHub Check: perform-test / server-build / server-unit-tests
* GitHub Check: server-unit-tests / server-unit-tests
* GitHub Check: client-check-cyclic-deps / check-cyclic-dependencies
* GitHub Check: server-spotless / spotless-check
* GitHub Check: client-prettier / prettier-check
* GitHub Check: client-lint / client-lint
* GitHub Check: client-build / client-build
* GitHub Check: client-unit-tests / client-unit-tests

</details>

</details>
<!-- internal state start -->


<!-- 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 -->

<!-- internal state end -->
<!-- tips_start -->

---



<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=appsmithorg/appsmith&utm_content=40608):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Explain this complex logic.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai explain this code block.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and explain its main purpose.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

### Support

Need help? Create a ticket on our [support page](https://www.coderabbit.ai/contact-us/support) for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->
author_association: CONTRIBUTOR
user: login: AmanAgarwal041
created_at: 2025-05-08T09:23:17Z
body: /build-deploy-preview skip-tests=true
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-05-08T09:23:40Z
body: Deploying Your Preview: <https://github.com/appsmithorg/appsmith/actions/runs/14903155093>.
Workflow: `On demand build Docker image and deploy preview`.
skip-tests: `true`.
env: ``.
PR: 40608.
recreate: .
author_association: NONE
user: login: AmanAgarwal041
created_at: 2025-05-08T10:00:25Z
body: /build-deploy-preview skip-tests=true
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-05-08T10:00:48Z
body: Deploying Your Preview: <https://github.com/appsmithorg/appsmith/actions/runs/14903838178>.
Workflow: `On demand build Docker image and deploy preview`.
skip-tests: `true`.
env: ``.
PR: 40608.
recreate: .
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-05-08T10:12:35Z
body: Deploy-Preview-URL: https://ce-40608.dp.appsmith.com
author_association: NONE
user: login: AmanAgarwal041
created_at: 2025-05-08T10:25:58Z
body: /build-deploy-preview skip-tests=true
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-05-08T10:26:22Z
body: Deploying Your Preview: <https://github.com/appsmithorg/appsmith/actions/runs/14904311492>.
Workflow: `On demand build Docker image and deploy preview`.
skip-tests: `true`.
env: ``.
PR: 40608.
recreate: .
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-05-08T10:37:19Z
body: Deploy-Preview-URL: https://ce-40608.dp.appsmith.com
author_association: NONE
user: login: AmanAgarwal041
created_at: 2025-05-12T06:48:25Z
body: /build-deploy-preview skip-tests=true
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-05-12T06:48:45Z
body: Deploying Your Preview: <https://github.com/appsmithorg/appsmith/actions/runs/14965667465>.
Workflow: `On demand build Docker image and deploy preview`.
skip-tests: `true`.
env: ``.
PR: 40608.
recreate: .
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-05-12T07:00:44Z
body: Deploy-Preview-URL: https://ce-40608.dp.appsmith.com
author_association: NONE