Skip to content

Console Log Related fixed#4364

Merged
Maheshkale447 merged 4 commits into
Releases/Betafrom
BugFix/ConsoleDriverFix
Nov 20, 2025
Merged

Console Log Related fixed#4364
Maheshkale447 merged 4 commits into
Releases/Betafrom
BugFix/ConsoleDriverFix

Conversation

@prashelke

@prashelke prashelke commented Nov 19, 2025

Copy link
Copy Markdown
Contributor

Description

Type of Change

  • Bug fix - [ ] New feature - [ ] Breaking change - [ ] Plugin update

Checklist

  • PR description clearly describes the changes
  • Target branch is correct (master for features, Releases/* for fixes)
  • Latest code from target branch merged
  • No commented/junk code included
  • No new build warnings or errors
  • All existing unit tests pass
  • New unit tests added for new functionality
  • Cross-platform compatibility verified (Windows/Linux/macOS)
  • CI/CD pipeline passes
  • Code follows project conventions (Act{Platform}{Type}, {Platform}Driver)
  • Repository objects use [IsSerializedForLocalRepository] where needed
  • Error handling uses Reporter.ToLog() pattern
  • Documentation updated for user-facing changes
  • Self-review completed and code review comments addressed

Summary by CodeRabbit

  • New Features

    • Added descriptive labels for console command options in the UI.
    • Added support for Unix shell driver environments.
  • Improvements

    • Console recording operations renamed to clearer "Console Logs" terminology throughout the UI.
    • Combo box selection and visibility behavior improved for more reliable command selection and parameter clearing.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitai Bot commented Nov 19, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Refactors console command naming from buffer-centric to console-log-centric across enum, UI, and driver; updates ComboBox binding in the edit page; adds EnumValueDescription attributes; renames a driver return key; and adds UnixShell driver support in the driver factory. No public API signatures changed except enum member set.

Changes

Cohort / File(s) Change Summary
Console Command Enum Definition
Ginger/GingerCoreNET/ActionsLib/ActConsoleCommand.cs
Replaced enum members StartRecordingBuffer/StopRecordingBuffer/ReturnBufferContent with StartRecordingConsoleLogs/StopRecordingConsoleLogs/GetRecordedConsoleLogs (preserving values 20–22); added EnumValueDescription attributes to several enum members.
Console Command UI Page
Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs, Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml
Changed ComboBox binding to use SelectedValueProperty/SelectedValue; updated action list population and selection/visibility logic to reference renamed console-log enum members and clear script/input params as needed. Minor whitespace-only XAML edit.
Console Driver Implementation
Ginger/GingerCoreNET/Drivers/CoreDrivers/Console/ConsoleDriverBase.cs
Renamed switch cases to handle StartRecordingConsoleLogs/StopRecordingConsoleLogs/GetRecordedConsoleLogs; updated return parameter key from RecordingBufferStatus to RecordingConsoleLogsStatus; preserved behavior.
Driver Factory
Ginger/GingerRuntime/DotnetCoreHelper.cs
Added UnixShell driver case in GetDriverType/GetDriverObject and a using directive to enable UnixShellDriver instantiation.

Sequence Diagram(s)

sequenceDiagram
    participant UI as ActConsoleCommandEditPage (UI)
    participant Action as ActConsoleCommand
    participant Driver as ConsoleDriverBase

    Note over UI,Action: User selects command in ComboBox (SelectedValue)
    UI->>Action: Set SelectedValue / ScriptName / Inputs
    activate Action
    Action->>Driver: Execute eConsoleCommand (e.g., StartRecordingConsoleLogs)
    activate Driver
    alt Start/Stop commands
        Driver-->Action: Return RecordingConsoleLogsStatus
    else GetRecordedConsoleLogs
        Driver-->Action: Return recorded logs content
    end
    deactivate Driver
    Action-->UI: Update visibility / parameters based on command
    deactivate Action
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Search for remaining references to StartRecordingBuffer / StopRecordingBuffer / ReturnBufferContent across the repo.
  • Verify UI ComboBox binding switch to SelectedValue works in all contexts (XAML data templates, selected-value path).
  • Confirm consumers of the return parameter key now named RecordingConsoleLogsStatus are updated.

Possibly related PRs

Suggested reviewers

  • Maheshkale447

Poem

🐰
I hopped into enums, changed a name or two,
ComboBox now picks values, clear and true,
Drivers listen to console-log calls,
UnixShell joined the rabbits' halls,
Small hops, bright code — a joyous view.

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is entirely empty with only the template structure provided; the Description section is blank, no type of change is selected, and all checklist items are unchecked. Complete the description section with details of the changes, select the appropriate type of change (likely Bug fix), and verify the relevant checklist items are addressed before merging.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The title 'Console Log Related fixed' is vague and generic, using non-descriptive language that doesn't clearly convey the specific changes made. Revise the title to be more specific about the changes, such as 'Replace buffer recording commands with console log recording commands' or 'Rename console buffer operations to console log operations'.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch BugFix/ConsoleDriverFix

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9b8588c and 8aef164.

📒 Files selected for processing (1)
  • Ginger/GingerRuntime/DotnetCoreHelper.cs (3 hunks)
🧰 Additional context used
🧠 Learnings (17)
📚 Learning: 2025-06-16T10:37:13.073Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4232
File: Ginger/GingerCoreNET/ActionsLib/UI/VisualTesting/VRTAnalyzer.cs:19-22
Timestamp: 2025-06-16T10:37:13.073Z
Learning: In Ginger codebase, both `using amdocs.ginger.GingerCoreNET;` and `using Amdocs.Ginger.CoreNET;` are valid and serve different purposes. The first (lowercase) contains the WorkSpace class and related workspace functionality, while the second (proper case) contains drivers like GenericAppiumDriver and other core functionality. Both may be required in files that use types from both namespaces.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-09-04T15:42:00.330Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4294
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs:8334-8350
Timestamp: 2025-09-04T15:42:00.330Z
Learning: In PR Ginger-Automation/Ginger#4294, SeleniumDriver.cs: maintainer requested to keep the WebElement-based helper IsSvgElementByWebElement(IWebElement) and its current usages for now, deferring the replacement with GetElementTypeEnum(..) + IsSvgElement(eElementType) to a later PR.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-09-04T15:43:57.789Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4294
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs:9146-9291
Timestamp: 2025-09-04T15:43:57.789Z
Learning: In SeleniumDriver.cs, prefer using the C# fallback GenerateEnhancedSvgXPath(IWebElement) for SVG XPath generation instead of injecting/validating a JavaScript-based XPath builder. This was accepted in PR Ginger-Automation/Ginger#4294.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-09-04T09:55:20.543Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4294
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs:5789-5796
Timestamp: 2025-09-04T09:55:20.543Z
Learning: In Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs (around line 5786), maintainer prashelke prefers to keep the helper method `IsSvgElement(eElementType)` as-is (no inlining or renaming), even though it currently checks only for `eElementType.Svg`. Future reviews should not suggest removing or renaming this helper.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-09-05T09:30:10.074Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4294
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs:5942-5960
Timestamp: 2025-09-05T09:30:10.074Z
Learning: In Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs (around SVG helpers, approx. lines 5942–5960 and 5983–5984), maintainer prefers keeping ToLower() for tag/name normalization; do not suggest replacing with ToLowerInvariant() in future reviews for this area.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-09-04T16:40:33.092Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4294
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs:9182-9223
Timestamp: 2025-09-04T16:40:33.092Z
Learning: In PR Ginger-Automation/Ginger#4294 (SeleniumDriver.cs GenerateSvgAttributeBasedXPath), maintainer declined changing XPath to remove extra quotes around EscapeXPathString(...) results; keep current quoting as-is in this area for now.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-09-04T16:40:09.511Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4294
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs:6019-6061
Timestamp: 2025-09-04T16:40:09.511Z
Learning: In Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs (AddSvgSpecificLocators, around lines ~6000–6065) for PR Ginger-Automation/Ginger#4294, maintainer prashelke indicated that adjusting XPath to remove outer quotes around EscapeXPathString(...) is not required. Do not suggest changing the quoting around EscapeXPathString for SVG-specific locators in future reviews unless maintainers request it.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-09-04T11:19:44.719Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4294
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs:10651-10658
Timestamp: 2025-09-04T11:19:44.719Z
Learning: In Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs, maintainer prefers not to keep the helper IsSvgElementByWebElement(IWebElement); rely on the existing enum-based IsSvgElement(eElementType) helper instead. Future reviews should not reintroduce IsSvgElementByWebElement.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-06-19T05:08:45.192Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4222
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Mobile/Appium/GenericAppiumDriver.cs:2645-2656
Timestamp: 2025-06-19T05:08:45.192Z
Learning: In the Ginger mobile automation framework (GenericAppiumDriver.cs), XPath checks for "android" and "XCUIElement" should remain case-sensitive as currently implemented. The team prefers not to make these checks case-insensitive.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2024-07-26T22:04:12.930Z
Learnt from: IamRanjeetSingh
Repo: Ginger-Automation/Ginger PR: 3488
File: Ginger/GingerCoreNET/DataSource/LiteDB.cs:53-60
Timestamp: 2024-07-26T22:04:12.930Z
Learning: User IamRanjeetSingh has reviewed and accepted the side effects of triggering `TryUpgradeDataFile` upon setting `FileFullPath` in `GingerLiteDB` class.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-08-28T09:29:59.151Z
Learnt from: AmanPrasad43
Repo: Ginger-Automation/Ginger PR: 4286
File: Ginger/Ginger/Drivers/DriversConfigsEditPages/WebServicesDriverEditPage.xaml.cs:149-152
Timestamp: 2025-08-28T09:29:59.151Z
Learning: In Ginger's WebServicesDriverEditPage.xaml.cs, the FillComboItemsFromEnumType method should be used instead of FillComboFromEnumType when sorting by enum order is required. FillComboItemsFromEnumType preserves EnumValueDescription display through WPF's automatic ToString() calling on enum Content, and provides built-in sorting functionality via SortDescriptions.Add("text", Ascending). This was confirmed by AmanPrasad43 in PR #4286 for the ZAP vulnerability type dropdown.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-04-25T13:29:45.059Z
Learnt from: GokulBothe99
Repo: Ginger-Automation/Ginger PR: 4188
File: Ginger/GingerCoreNET/RunLib/CLILib/DoOptionsHanlder.cs:22-23
Timestamp: 2025-04-25T13:29:45.059Z
Learning: The `using Amdocs.Ginger.Repository;` statement in Ginger/GingerCoreNET/RunLib/CLILib/DoOptionsHanlder.cs is necessary as it provides access to the `ObservableList<>` class which is used throughout the file for collections of RunSetConfig, AnalyzerItemBase, and ApplicationPOMModel objects.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-04-25T13:29:45.059Z
Learnt from: GokulBothe99
Repo: Ginger-Automation/Ginger PR: 4188
File: Ginger/GingerCoreNET/RunLib/CLILib/DoOptionsHanlder.cs:22-23
Timestamp: 2025-04-25T13:29:45.059Z
Learning: The `using Amdocs.Ginger.Repository;` statement in Ginger/GingerCoreNET/RunLib/CLILib/DoOptionsHanlder.cs is necessary as it imports the ObservableList<> class which is used throughout the file.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-03-20T11:10:30.816Z
Learnt from: GokulBothe99
Repo: Ginger-Automation/Ginger PR: 4137
File: Ginger/Ginger/SourceControl/SourceControlProjectsPage.xaml.cs:21-21
Timestamp: 2025-03-20T11:10:30.816Z
Learning: The `Amdocs.Ginger.Common.SourceControlLib` namespace is required in files that reference the `GingerSolution` class for source control operations in the Ginger automation framework.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-06-16T09:52:40.873Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4232
File: Ginger/GingerCoreNET/ActionsLib/UI/VisualTesting/VRTAnalyzer.cs:19-22
Timestamp: 2025-06-16T09:52:40.873Z
Learning: The `GenericAppiumDriver` class is located in the `Amdocs.Ginger.CoreNET` namespace, not in a namespace that matches its file path structure. File paths don't always correspond to namespace declarations in this codebase.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-06-24T06:08:31.804Z
Learnt from: GokulBothe99
Repo: Ginger-Automation/Ginger PR: 4242
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Playwright/PlaywrightBrowserTab.cs:623-656
Timestamp: 2025-06-24T06:08:31.804Z
Learning: In Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Playwright/PlaywrightBrowserTab.cs, the CSS selector construction by directly interpolating user input values in the GetElementLocator method is considered acceptable by the team and working as expected for their use cases.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-02-19T06:09:12.815Z
Learnt from: GokulBothe99
Repo: Ginger-Automation/Ginger PR: 4107
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Playwright/PlaywrightBrowserElement.cs:20-20
Timestamp: 2025-02-19T06:09:12.815Z
Learning: The `InvalidActionConfigurationException` from `Amdocs.Ginger.CoreNET.Drivers.CoreDrivers.Web.Exceptions` namespace is used for handling configuration errors in Playwright browser element operations, particularly in drag-drop and drawing actions.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
🔇 Additional comments (2)
Ginger/GingerRuntime/DotnetCoreHelper.cs (2)

23-23: LGTM! Using directive properly added for UnixShell driver support.

The using directive correctly imports the namespace containing UnixShellDriver, which is required for the driver factory methods below.


159-159: Excellent! UnixShell driver support properly implemented in both factory methods.

The addition of UnixShell cases to both GetDriverType and GetDriverObject resolves the inconsistency identified in the previous review. Both methods now handle the UnixShell driver type consistently, following the same pattern as other drivers that require a BusinessFlow parameter (GenericAppiumDriver, WebServicesDriver).

Also applies to: 180-181


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs (1)

91-100: Align UI behavior for GetRecordedConsoleLogs with its parameterless driver behavior

The driver treats all three logging commands as parameterless control operations:

  • StartRecordingConsoleLogs / StopRecordingConsoleLogs toggle recording.
  • GetRecordedConsoleLogs just returns the accumulated buffer; it ignores inputs, expected string, delimiter, wait, and terminator.

In the editor page:

  • StartRecordingConsoleLogs / StopRecordingConsoleLogs are handled specially (no params, common controls hidden).
  • GetRecordedConsoleLogs falls into the default path:
    • SetupValueInputParam() creates a “Value” input param.
    • All common controls (expected string, delimiter, wait time, terminator) remain visible.
    • Only visibility for start/stop is suppressed in UpdateVisibilityForCommand.

This can confuse users because the additional input and options have no effect on execution.

Consider treating GetRecordedConsoleLogs like the other recording commands:

switch (comm)
{
    case ActConsoleCommand.eConsoleCommand.FreeCommand:
        ...
        break;
-   case ActConsoleCommand.eConsoleCommand.StartRecordingConsoleLogs:
-   case ActConsoleCommand.eConsoleCommand.StopRecordingConsoleLogs:
+   case ActConsoleCommand.eConsoleCommand.StartRecordingConsoleLogs:
+   case ActConsoleCommand.eConsoleCommand.StopRecordingConsoleLogs:
+   case ActConsoleCommand.eConsoleCommand.GetRecordedConsoleLogs:
        mActConsoleCommand.InputValues.Clear();
        mActConsoleCommand.ScriptName = string.Empty;
        break;
    ...
}

private void UpdateVisibilityForCommand(ActConsoleCommand.eConsoleCommand command)
{
-   bool showCommonControls = command != ActConsoleCommand.eConsoleCommand.StartRecordingConsoleLogs
-                             && command != ActConsoleCommand.eConsoleCommand.StopRecordingConsoleLogs;
+   bool showCommonControls = command != ActConsoleCommand.eConsoleCommand.StartRecordingConsoleLogs
+                             && command != ActConsoleCommand.eConsoleCommand.StopRecordingConsoleLogs
+                             && command != ActConsoleCommand.eConsoleCommand.GetRecordedConsoleLogs;
    ...
}

Also, the comment above showCommonControls still mentions the old buffer command names; updating it to the new console log names would keep the code self‑documenting.

Also applies to: 101-108, 121-132, 161-177

Ginger/GingerCoreNET/Drivers/CoreDrivers/Console/ConsoleDriverBase.cs (1)

83-86: Status key rename is safe; update comments for consistency

Verification confirms the new console log recording commands work correctly. The good news: no existing code references the old "RecordingBufferStatus" key, so the rename to "RecordingConsoleLogsStatus" poses no backward compatibility risk.

However, update the terminology for consistency:

  • Line 83 comment: Change "Recording buffer support (StartRecordingBuffer/StopRecordingBuffer/ReturnBufferContent)" to reflect the new command names (e.g., "Console log recording support (StartRecordingConsoleLogs/StopRecordingConsoleLogs/GetRecordedConsoleLogs)").
  • Line 218 ExInfo: Change "Returned recorded console buffer content" to "Returned recorded console logs" to align with the enum names and avoid mixing terminology.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ca0ede4 and 26e5248.

📒 Files selected for processing (5)
  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml (1 hunks)
  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs (6 hunks)
  • Ginger/GingerCoreNET/ActionsLib/ActConsoleCommand.cs (1 hunks)
  • Ginger/GingerCoreNET/Drivers/CoreDrivers/Console/ConsoleDriverBase.cs (1 hunks)
  • Ginger/GingerRuntime/DotnetCoreHelper.cs (2 hunks)
🧰 Additional context used
🧠 Learnings (15)
📚 Learning: 2024-07-26T22:04:12.930Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 3429
File: Ginger/Ginger/AutomatePageLib/AddActionMenu/WindowExplorer/Common/WindowExplorerPage.xaml.cs:1123-1126
Timestamp: 2024-07-26T22:04:12.930Z
Learning: The user has removed an unnecessary empty line at 1123 in `WindowExplorerPage.xaml.cs` for better code compactness.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml
📚 Learning: 2025-08-26T07:40:08.345Z
Learnt from: AmanPrasad43
Repo: Ginger-Automation/Ginger PR: 4285
File: Ginger/Ginger/Actions/ActionEditPages/ActSecurityTestingEditPage.xaml:23-23
Timestamp: 2025-08-26T07:40:08.345Z
Learning: In the Ginger codebase ActSecurityTestingEditPage.xaml file, the large bottom margin of 530 on the "Acceptable Alerts" label (Margin="10,10,0,530") is intentional design choice, not an error.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml
📚 Learning: 2025-09-02T07:51:28.822Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4289
File: Ginger/GingerCoreNET/Application Models/Delta/PomDelta/PomDeltaUtils.cs:99-103
Timestamp: 2025-09-02T07:51:28.822Z
Learning: In Ginger/GingerCoreNET/Application Models/Delta/PomDelta/PomDeltaUtils.cs around line 99, prashelke prefers to keep the unused variable `selectedElementList` from GetSelectedElementList() call rather than removing it, despite it being unused in the current logic.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml
  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
📚 Learning: 2025-06-16T10:37:13.073Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4232
File: Ginger/GingerCoreNET/ActionsLib/UI/VisualTesting/VRTAnalyzer.cs:19-22
Timestamp: 2025-06-16T10:37:13.073Z
Learning: In Ginger codebase, both `using amdocs.ginger.GingerCoreNET;` and `using Amdocs.Ginger.CoreNET;` are valid and serve different purposes. The first (lowercase) contains the WorkSpace class and related workspace functionality, while the second (proper case) contains drivers like GenericAppiumDriver and other core functionality. Both may be required in files that use types from both namespaces.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-04-25T13:29:45.059Z
Learnt from: GokulBothe99
Repo: Ginger-Automation/Ginger PR: 4188
File: Ginger/GingerCoreNET/RunLib/CLILib/DoOptionsHanlder.cs:22-23
Timestamp: 2025-04-25T13:29:45.059Z
Learning: The `using Amdocs.Ginger.Repository;` statement in Ginger/GingerCoreNET/RunLib/CLILib/DoOptionsHanlder.cs is necessary as it provides access to the `ObservableList<>` class which is used throughout the file for collections of RunSetConfig, AnalyzerItemBase, and ApplicationPOMModel objects.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-04-25T13:29:45.059Z
Learnt from: GokulBothe99
Repo: Ginger-Automation/Ginger PR: 4188
File: Ginger/GingerCoreNET/RunLib/CLILib/DoOptionsHanlder.cs:22-23
Timestamp: 2025-04-25T13:29:45.059Z
Learning: The `using Amdocs.Ginger.Repository;` statement in Ginger/GingerCoreNET/RunLib/CLILib/DoOptionsHanlder.cs is necessary as it imports the ObservableList<> class which is used throughout the file.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-03-20T11:10:30.816Z
Learnt from: GokulBothe99
Repo: Ginger-Automation/Ginger PR: 4137
File: Ginger/Ginger/SourceControl/SourceControlProjectsPage.xaml.cs:21-21
Timestamp: 2025-03-20T11:10:30.816Z
Learning: The `Amdocs.Ginger.Common.SourceControlLib` namespace is required in files that reference the `GingerSolution` class for source control operations in the Ginger automation framework.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-06-16T09:52:40.873Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4232
File: Ginger/GingerCoreNET/ActionsLib/UI/VisualTesting/VRTAnalyzer.cs:19-22
Timestamp: 2025-06-16T09:52:40.873Z
Learning: The `GenericAppiumDriver` class is located in the `Amdocs.Ginger.CoreNET` namespace, not in a namespace that matches its file path structure. File paths don't always correspond to namespace declarations in this codebase.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-06-24T06:08:31.804Z
Learnt from: GokulBothe99
Repo: Ginger-Automation/Ginger PR: 4242
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Playwright/PlaywrightBrowserTab.cs:623-656
Timestamp: 2025-06-24T06:08:31.804Z
Learning: In Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Playwright/PlaywrightBrowserTab.cs, the CSS selector construction by directly interpolating user input values in the GetElementLocator method is considered acceptable by the team and working as expected for their use cases.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-09-04T15:43:57.789Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4294
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs:9146-9291
Timestamp: 2025-09-04T15:43:57.789Z
Learning: In SeleniumDriver.cs, prefer using the C# fallback GenerateEnhancedSvgXPath(IWebElement) for SVG XPath generation instead of injecting/validating a JavaScript-based XPath builder. This was accepted in PR Ginger-Automation/Ginger#4294.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-09-05T09:30:10.074Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4294
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs:5942-5960
Timestamp: 2025-09-05T09:30:10.074Z
Learning: In Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs (around SVG helpers, approx. lines 5942–5960 and 5983–5984), maintainer prefers keeping ToLower() for tag/name normalization; do not suggest replacing with ToLowerInvariant() in future reviews for this area.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-02-19T06:09:12.815Z
Learnt from: GokulBothe99
Repo: Ginger-Automation/Ginger PR: 4107
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Playwright/PlaywrightBrowserElement.cs:20-20
Timestamp: 2025-02-19T06:09:12.815Z
Learning: The `InvalidActionConfigurationException` from `Amdocs.Ginger.CoreNET.Drivers.CoreDrivers.Web.Exceptions` namespace is used for handling configuration errors in Playwright browser element operations, particularly in drag-drop and drawing actions.

Applied to files:

  • Ginger/GingerRuntime/DotnetCoreHelper.cs
📚 Learning: 2025-06-16T10:36:01.993Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4228
File: Ginger/Ginger/Actions/ActionEditPages/ActMobileDeviceEditPage.xaml.cs:83-84
Timestamp: 2025-06-16T10:36:01.993Z
Learning: For the `UnLockType` property in `Ginger/Ginger/Actions/ActionEditPages/ActMobileDeviceEditPage.xaml.cs`, the current naming convention with capital 'L' in the middle should be maintained per project preferences.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
📚 Learning: 2025-07-16T14:42:32.229Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4254
File: Ginger/Ginger/ApplicationModelsLib/POMModels/POMWizardLib/LearnWizard/POMLearnConfigWizardPage.xaml.cs:70-73
Timestamp: 2025-07-16T14:42:32.229Z
Learning: In Ginger/Ginger/ApplicationModelsLib/POMModels/POMWizardLib/LearnWizard/POMLearnConfigWizardPage.xaml.cs, prashelke prefers to keep the current `!WorkSpace.Instance.BetaFeatures.ShowPOMForAI` logic for binding and showing AI POM controls, rather than changing it to positive logic.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
📚 Learning: 2025-08-28T09:29:59.151Z
Learnt from: AmanPrasad43
Repo: Ginger-Automation/Ginger PR: 4286
File: Ginger/Ginger/Drivers/DriversConfigsEditPages/WebServicesDriverEditPage.xaml.cs:149-152
Timestamp: 2025-08-28T09:29:59.151Z
Learning: In Ginger's WebServicesDriverEditPage.xaml.cs, the FillComboItemsFromEnumType method should be used instead of FillComboFromEnumType when sorting by enum order is required. FillComboItemsFromEnumType preserves EnumValueDescription display through WPF's automatic ToString() calling on enum Content, and provides built-in sorting functionality via SortDescriptions.Add("text", Ascending). This was confirmed by AmanPrasad43 in PR #4286 for the ZAP vulnerability type dropdown.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
🧬 Code graph analysis (2)
Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs (3)
Ginger/GingerCore/GeneralLib/InputBoxWindow.xaml.cs (1)
  • ObjFieldBinding (147-157)
Ginger/Ginger/UserControlsLib/ucGridView/ucGrid.xaml.cs (1)
  • ComboBox (1138-1158)
Ginger/GingerCoreNET/ActionsLib/ActConsoleCommand.cs (2)
  • ActConsoleCommand (31-144)
  • Fields (128-139)
Ginger/GingerCoreNET/Drivers/CoreDrivers/Console/ConsoleDriverBase.cs (1)
Ginger/GingerCoreCommon/Actions/Act.cs (1)
  • AddOrUpdateReturnParamActual (1308-1335)
🔇 Additional comments (3)
Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml (1)

14-14: Console action ComboBox definition is consistent with code‑behind usage

ConsoleActionComboBox is correctly wired (name, event, style) and matches the code‑behind population/binding logic. No issues from the XAML side.

Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs (1)

91-92: Verify C# language version for collection expression

List<object> actionList = [ActConsoleCommand.eConsoleCommand.FreeCommand]; uses the new collection expression syntax (C# 12). If the project is still targeting an earlier C# version, this will fail to compile and should be rewritten as:

List<object> actionList = new List<object> { ActConsoleCommand.eConsoleCommand.FreeCommand };

Please confirm the configured C# language version for this project; if it’s below 12, switch to the explicit new List<object> { ... } form.

Ginger/GingerCoreNET/ActionsLib/ActConsoleCommand.cs (1)

62-80: Enum/attribute additions for console commands and end keys look correct

  • eConsoleCommand now exposes user‑friendly EnumValueDescription strings and the new logging commands, and
  • eCommandEndKey is annotated with CommandValueAttribute values consumed by ConsoleDriverBase.GetCommandValue.

The structure and accessibility (internal attribute class in the same assembly/namespace) are consistent with how the driver uses them, and the changes align well with the updated UI and driver logic.

If existing actions were serialized by enum name rather than numeric value, please double‑check backward compatibility for the renamed logging members when loading older repositories.

Also applies to: 82-96, 146-155

Comment thread Ginger/GingerRuntime/DotnetCoreHelper.cs

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs (1)

130-135: Enum values updated correctly, but comment is outdated.

The switch cases correctly use the new console-log-centric enum values. However, the comment at line 132 still refers to "recording buffer" and should be updated to "recording console logs" for consistency.

-// No params required for recording buffer start/stop
+// No params required for recording console logs start/stop
♻️ Duplicate comments (2)
Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs (2)

67-71: Avoid parsing SelectedValue; use the bound enum property directly.

Since SelectedValue is bound to mActConsoleCommand.ConsoleCommand with UpdateSourceTrigger.PropertyChanged (confirmed in the ObjFieldBinding helper), parsing SelectedValue?.ToString() back into an enum is unnecessary.

Simplify to:

-if (ConsoleActionComboBox.SelectedItem != null)
+if (ConsoleActionComboBox.SelectedValue != null)
 {
-    UpdateVisibilityForCommand((ActConsoleCommand.eConsoleCommand)Enum.Parse(typeof(ActConsoleCommand.eConsoleCommand), ConsoleActionComboBox.SelectedValue?.ToString()));
+    UpdateVisibilityForCommand(mActConsoleCommand.ConsoleCommand);
 }

Based on learnings: The ObjFieldBinding helper sets UpdateSourceTrigger to PropertyChanged, making it safe to rely on the model property.


121-121: Consider using the bound property directly instead of casting SelectedValue.

While casting SelectedValue is better than parsing strings, you can further simplify by using mActConsoleCommand.ConsoleCommand directly since it's updated via UpdateSourceTrigger.PropertyChanged.

-ActConsoleCommand.eConsoleCommand comm = (ActConsoleCommand.eConsoleCommand)ConsoleActionComboBox.SelectedValue;
+ActConsoleCommand.eConsoleCommand comm = mActConsoleCommand.ConsoleCommand;
📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 26e5248 and 9b8588c.

📒 Files selected for processing (1)
  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs (7 hunks)
🧰 Additional context used
🧠 Learnings (9)
📚 Learning: 2025-08-28T09:29:59.151Z
Learnt from: AmanPrasad43
Repo: Ginger-Automation/Ginger PR: 4286
File: Ginger/Ginger/Drivers/DriversConfigsEditPages/WebServicesDriverEditPage.xaml.cs:149-152
Timestamp: 2025-08-28T09:29:59.151Z
Learning: In Ginger's WebServicesDriverEditPage.xaml.cs, the FillComboItemsFromEnumType method should be used instead of FillComboFromEnumType when sorting by enum order is required. FillComboItemsFromEnumType preserves EnumValueDescription display through WPF's automatic ToString() calling on enum Content, and provides built-in sorting functionality via SortDescriptions.Add("text", Ascending). This was confirmed by AmanPrasad43 in PR #4286 for the ZAP vulnerability type dropdown.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
📚 Learning: 2025-06-16T10:36:01.993Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4228
File: Ginger/Ginger/Actions/ActionEditPages/ActMobileDeviceEditPage.xaml.cs:83-84
Timestamp: 2025-06-16T10:36:01.993Z
Learning: For the `UnLockType` property in `Ginger/Ginger/Actions/ActionEditPages/ActMobileDeviceEditPage.xaml.cs`, the current naming convention with capital 'L' in the middle should be maintained per project preferences.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
📚 Learning: 2025-09-02T07:51:28.822Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4289
File: Ginger/GingerCoreNET/Application Models/Delta/PomDelta/PomDeltaUtils.cs:99-103
Timestamp: 2025-09-02T07:51:28.822Z
Learning: In Ginger/GingerCoreNET/Application Models/Delta/PomDelta/PomDeltaUtils.cs around line 99, prashelke prefers to keep the unused variable `selectedElementList` from GetSelectedElementList() call rather than removing it, despite it being unused in the current logic.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
📚 Learning: 2024-07-08T13:56:50.209Z
Learnt from: IamRanjeetSingh
Repo: Ginger-Automation/Ginger PR: 3811
File: Ginger/GingerCoreCommon/UIElement/AppWindow.cs:28-28
Timestamp: 2024-07-08T13:56:50.209Z
Learning: When updating enum values, ensure to check both commented and uncommented code for consistency.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
📚 Learning: 2025-07-16T14:42:32.229Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4254
File: Ginger/Ginger/ApplicationModelsLib/POMModels/POMWizardLib/LearnWizard/POMLearnConfigWizardPage.xaml.cs:70-73
Timestamp: 2025-07-16T14:42:32.229Z
Learning: In Ginger/Ginger/ApplicationModelsLib/POMModels/POMWizardLib/LearnWizard/POMLearnConfigWizardPage.xaml.cs, prashelke prefers to keep the current `!WorkSpace.Instance.BetaFeatures.ShowPOMForAI` logic for binding and showing AI POM controls, rather than changing it to positive logic.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
📚 Learning: 2024-10-28T10:42:40.691Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 3976
File: Ginger/GingerCoreNET/RunLib/CLILib/CLIHelper.cs:399-402
Timestamp: 2024-10-28T10:42:40.691Z
Learning: Simplifying enum comparisons using direct '==' is not necessary; the existing use of the 'Equals' method for enum comparison is acceptable.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
📚 Learning: 2025-06-13T13:47:39.193Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4228
File: Ginger/GingerCoreNET/ActionsLib/UI/Mobile/ActMobileDevice.cs:384-394
Timestamp: 2025-06-13T13:47:39.193Z
Learning: For the `eUnlockTypes` enum in `Ginger/GingerCoreNET/ActionsLib/UI/Mobile/ActMobileDevice.cs`, the identifiers must remain lowercase (`pin`, `password`, `pattern`, `none`) per project requirements.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
📚 Learning: 2025-09-04T11:19:44.719Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4294
File: Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs:10651-10658
Timestamp: 2025-09-04T11:19:44.719Z
Learning: In Ginger/GingerCoreNET/Drivers/CoreDrivers/Web/Selenium/SeleniumDriver.cs, maintainer prefers not to keep the helper IsSvgElementByWebElement(IWebElement); rely on the existing enum-based IsSvgElement(eElementType) helper instead. Future reviews should not reintroduce IsSvgElementByWebElement.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
📚 Learning: 2025-09-04T09:34:04.299Z
Learnt from: prashelke
Repo: Ginger-Automation/Ginger PR: 4294
File: Ginger/GingerCoreCommon/UIElement/ElementInfo.cs:555-569
Timestamp: 2025-09-04T09:34:04.299Z
Learning: In Ginger/GingerCoreCommon/UIElement/ElementInfo.cs, the eLearnedType.AI enum value should be retained as it's required for future AI development features, as confirmed by prashelke.

Applied to files:

  • Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
🧬 Code graph analysis (1)
Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs (2)
Ginger/GingerCore/GeneralLib/InputBoxWindow.xaml.cs (1)
  • ObjFieldBinding (147-157)
Ginger/GingerCoreNET/ActionsLib/ActConsoleCommand.cs (2)
  • ActConsoleCommand (31-144)
  • Fields (128-139)
🔇 Additional comments (2)
Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs (2)

58-58: Binding change to SelectedValueProperty is correct.

The update from TextProperty to SelectedValueProperty properly binds the ComboBox selection to the enum-typed ConsoleCommand property, ensuring type safety and eliminating string-based conversions.


97-99: Enum refactoring aligns with console-log-centric naming.

The replacement of buffer-related enum values (StartRecordingBuffer, StopRecordingBuffer, ReturnBufferContent) with console-log-centric values (StartRecordingConsoleLogs, StopRecordingConsoleLogs, GetRecordedConsoleLogs) is consistent across both Unix and DOS platforms and matches the updated enum definition.

Also applies to: 105-107

Comment on lines +151 to +154
if (ConsoleActionComboBox.SelectedItem != null)
{
UpdateVisibilityForCommand(comm);
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

Remove redundant null check.

The null check at line 151 is unnecessary because ConsoleActionComboBox.SelectedItem is already validated with an early return at lines 113-116. This conditional wrapper can be removed.

-if (ConsoleActionComboBox.SelectedItem != null)
-{
-    UpdateVisibilityForCommand(comm);
-}
+UpdateVisibilityForCommand(comm);
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if (ConsoleActionComboBox.SelectedItem != null)
{
UpdateVisibilityForCommand(comm);
}
UpdateVisibilityForCommand(comm);
🤖 Prompt for AI Agents
In Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
around lines 151 to 154, remove the redundant null check wrapping
UpdateVisibilityForCommand(comm). Because ConsoleActionComboBox.SelectedItem is
already validated by the early return at lines 113–116, delete the if (...) {
... } block and directly invoke UpdateVisibilityForCommand(comm); ensuring comm
is still passed as before.

Comment on lines 164 to +167
private void UpdateVisibilityForCommand(ActConsoleCommand.eConsoleCommand command)
{
// Hide all optional controls when StartRecordingBuffer or StopRecordingBuffer selected
bool showCommonControls = command != ActConsoleCommand.eConsoleCommand.StartRecordingBuffer && command != ActConsoleCommand.eConsoleCommand.StopRecordingBuffer;
bool showCommonControls = command != ActConsoleCommand.eConsoleCommand.StartRecordingConsoleLogs && command != ActConsoleCommand.eConsoleCommand.StopRecordingConsoleLogs;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

Enum values updated correctly, but comment is outdated.

The condition correctly uses the new console-log-centric enum values. However, the comment at line 166 still references "StartRecordingBuffer or StopRecordingBuffer" and should be updated to match the new naming.

-// Hide all optional controls when StartRecordingBuffer or StopRecordingBuffer selected
+// Hide all optional controls when StartRecordingConsoleLogs or StopRecordingConsoleLogs selected
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
private void UpdateVisibilityForCommand(ActConsoleCommand.eConsoleCommand command)
{
// Hide all optional controls when StartRecordingBuffer or StopRecordingBuffer selected
bool showCommonControls = command != ActConsoleCommand.eConsoleCommand.StartRecordingBuffer && command != ActConsoleCommand.eConsoleCommand.StopRecordingBuffer;
bool showCommonControls = command != ActConsoleCommand.eConsoleCommand.StartRecordingConsoleLogs && command != ActConsoleCommand.eConsoleCommand.StopRecordingConsoleLogs;
private void UpdateVisibilityForCommand(ActConsoleCommand.eConsoleCommand command)
{
// Hide all optional controls when StartRecordingConsoleLogs or StopRecordingConsoleLogs selected
bool showCommonControls = command != ActConsoleCommand.eConsoleCommand.StartRecordingConsoleLogs && command != ActConsoleCommand.eConsoleCommand.StopRecordingConsoleLogs;
🤖 Prompt for AI Agents
In Ginger/Ginger/Actions/ActionEditPages/ActConsoleCommandEditPage.xaml.cs
around lines 164 to 167, the inline comment still references
"StartRecordingBuffer or StopRecordingBuffer" while the code uses the updated
enum names StartRecordingConsoleLogs and StopRecordingConsoleLogs; update the
comment to reflect the new enum names (e.g., "Hide all optional controls when
StartRecordingConsoleLogs or StopRecordingConsoleLogs selected") so the comment
matches the code.

@Maheshkale447
Maheshkale447 merged commit c002f3e into Releases/Beta Nov 20, 2025
24 of 29 checks passed
@Maheshkale447
Maheshkale447 deleted the BugFix/ConsoleDriverFix branch November 20, 2025 08:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants