Open
Conversation
- Problem: Existing predictor persistence models, which are used for fallback, are not added to the PredictorManager - Solution: - The PersistenceModel is now packed into the app "Default Prediction", which is installed automatically - It is also added with the lowest priority to the PredictorManager during installation Reviewed-by: Michael Grill <59126309+michaelgrill@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Leonhard Anderle <132663596+leonhardanderle@users.noreply.github.com> Co-committed-by: Leonhard Anderle <132663596+leonhardanderle@users.noreply.github.com>
- Improve test coverage - Reuse logic from EVCS for EVSE implementation - No implementation for Phase-Switching yet - Switch Architecture via App Center Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com> Co-authored-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com> Reviewed-by: Victor Nagy <11665068+v-nagy@users.noreply.github.com> Co-authored-by: Johann Kaufmann <165755282+johannk24@users.noreply.github.com> Co-committed-by: Johann Kaufmann <165755282+johannk24@users.noreply.github.com>
Co-authored-by: Leon Blenk <168936274+LaBlanko@users.noreply.github.com> Co-authored-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com> Reviewed-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Leon Blenk <168936274+LaBlanko@users.noreply.github.com> Co-committed-by: Leon Blenk <168936274+LaBlanko@users.noreply.github.com>
- added contentHeight to form - added additional request and check for the specific car - added notification if there is an error with configuration Co-authored-by: DerMuaaa <102706922+Andreas Mur@users.noreply.github.com> Reviewed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com> Co-committed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com>
Co-authored-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com> Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Reviewed-by: Michael Grill <59126309+michaelgrill@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com> Co-committed-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com>
Reviewed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Reviewed-by: Hanna Späth <198875998+HaSp97@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Anas Shetla <141644226+AnasShetla@users.noreply.github.com> Co-committed-by: Anas Shetla <141644226+AnasShetla@users.noreply.github.com>
https://docs.gradle.org/current/userguide/lazy_configuration.html Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Kai Jeschek <99220919+da-Kai@users.noreply.github.com> Co-committed-by: Kai Jeschek <99220919+da-Kai@users.noreply.github.com>
- Improve visibility of chart views for [WCAG 1.4.4](https://www.w3.org/WAI/WCAG21/Understanding/resize-text.html) - fix height calculation throughout ui - use `oe-footer-subnavigation` in charts, to enable dynamic scaling of chart canvas and stop overflowing content Co-authored-by: DerMuaaa <102706922+Andreas Mur@users.noreply.github.com> Co-authored-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com> Reviewed-by: Hanna Späth <198875998+HaSp97@users.noreply.github.com> Reviewed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Co-committed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
Reviewed-by: Pooran Chandrashekaraiah <46567310+pooran-c@users.noreply.github.com> Reviewed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Sagar Venu <32655208+venu-sagar@users.noreply.github.com> Co-committed-by: Sagar Venu <32655208+venu-sagar@users.noreply.github.com>
…e channels ### Purpose Add diagnostic channels to SOH cycle controller for better visibility into battery state of health: - **SOH_PERCENT** - State of Health percentage (0-100%) - **SOH_RAW_DEBUG** - Raw SoH value (may exceed 100%, for debugging) Additionally, add battery balancing diagnostic channels to help identify null value issues: - **BALANCING_DELTA_MV_DEBUG** - Cell voltage delta (mV) - **BALANCING_REASON** - Explains balance check failures (BASELINE_MIN_MISSING, MAX_VOLTAGE_UNDEFINED, DELTA_NEGATIVE, etc.) ### Changes - New enum: `BatteryBalanceReason` with 7 diagnostic states - Enhanced: `CheckBalancingHandler` to track and persist diagnostic reasons - Updated: `Context.java` to calculate and set diagnostic channels - **Improved voltage tracking**: Changed cell voltage delta calculation. Now it captures maximum values for the maximum and minimum cell voltages and compare them in the Check Balancing Cycle. - Tests: 5 test cases covering all balance check failure paths ### Impact - ✅ Backward compatible - ✅ No behavior changes - ✅ Diagnostics persist after cycle completion - ✅ Enables root cause analysis without log parsing Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com> Reviewed-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com> Co-committed-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com>
- Noticed during refactoring of charts, that not all exceptions are catched Reviewed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Co-committed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Reviewed-by: Hanna Späth <198875998+HaSp97@users.noreply.github.com> Reviewed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Reviewed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Sagar Venu <32655208+venu-sagar@users.noreply.github.com> Co-committed-by: Sagar Venu <32655208+venu-sagar@users.noreply.github.com>
…t yet have READ_ONLY - If a Charging Station does not yet have "READ_ONLY" yet, default to false to allow older systems to switch architecture Reviewed-by: Michael Grill <59126309+michaelgrill@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Johann Kaufmann <165755282+johannk24@users.noreply.github.com> Co-committed-by: Johann Kaufmann <165755282+johannk24@users.noreply.github.com>
- Add Chart Plotter to `RunOptimizerFromLogApp` and `RunOptimizerApp` - Simplify inheritance; GlobalOptimizationContext: add Periods class - Add `consumptionRiskAdjusted` by Risk Factor - More conservative predictions - Higher target-SoC per RiskFactor Co-authored-by: Leonhard Anderle <132663596+leonhardanderle@users.noreply.github.com>
Co-authored-by: Andreas Mur <102706922+Andreas Mur@users.noreply.github.com> Reviewed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com> Co-committed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com>
Co-authored-by: Sagar Venu <32655208+venu-sagar@users.noreply.github.com> Co-committed-by: Sagar Venu <32655208+venu-sagar@users.noreply.github.com>
- Casting to `short` lead to non identified hashes
Reviewed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Co-committed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
Reviewed-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Kai Jeschek <99220919+da-Kai@users.noreply.github.com> Co-committed-by: Kai Jeschek <99220919+da-Kai@users.noreply.github.com>
Reviewed-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Co-committed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
- Add library JFreeChart for plotting - Use JFreeChart to plot SimulationResult Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Leonhard Anderle <132663596+leonhardanderle@users.noreply.github.com> Co-committed-by: Leonhard Anderle <132663596+leonhardanderle@users.noreply.github.com>
Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Reviewed-by: Michael Grill <59126309+michaelgrill@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Co-committed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
- fix local monitoring not calling `getEdges` and not being rerouted to `/live` Reviewed-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com> Reviewed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Co-committed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
SoH Cycle dependency was added to Fenecon Home and Commercial Apps: - Home - FeneconHome10 - FeneconHome10Gen2 - FeneconHome15 - FeneconHome20 - FeneconHome30 - FeneconHome6 - Commercial - FeneconCommercial100 - FeneconCommercial50Gen3 Reviewed-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com> Co-committed-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com>
Add build files for BackendEdge * add gradle build task * remove unnecessary bundle dependencies * Use io.openems.core.logger * add docker image build Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Reviewed-by: Michael Grill <59126309+michaelgrill@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Kai Jeschek <99220919+da-Kai@users.noreply.github.com> Co-committed-by: Kai Jeschek <99220919+da-Kai@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Leonhard Anderle <132663596+leonhardanderle@users.noreply.github.com> Co-committed-by: Leonhard Anderle <132663596+leonhardanderle@users.noreply.github.com>
Reviewed-by: Kai Jeschek <99220919+da-Kai@users.noreply.github.com> Reviewed-by: Michael Grill <59126309+michaelgrill@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com> Co-committed-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com>
- Made it possible to include parameters to other data in channelDoc text. - It does not inform the UI about the text update, but that should not be relevant for error messages and it was not implemented in the old goodwe dynamic text as well. - Implemented to include detected and expected model names in "The device type you selected does not match the discovered Shelly model ..." state message Reviewed-by: Leonhard Anderle <132663596+leonhardanderle@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Franz Reiter <1498918+Howaner@users.noreply.github.com> Co-committed-by: Franz Reiter <1498918+Howaner@users.noreply.github.com>
- Consumption prediction: - Fix wrong method call in consumption prediction - RiskLevel: - Change RiskLevel to Environment (BETA, PRODUCTION and TEST (stable environment for unit tests)) - Optimization: - Punish CHARGE_GRID when ess is full - Add mode preference ranks, to prefer specific modes when there is no difference in costs Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Leonhard Anderle <132663596+leonhardanderle@users.noreply.github.com> Co-committed-by: Leonhard Anderle <132663596+leonhardanderle@users.noreply.github.com>
- car now gets identified via query parameters Co-authored-by: DerMuaaa <102706922+Andreas Mur@users.noreply.github.com> Reviewed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com> Co-committed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com>
# Problem Switching the KEBA app between EVCS (legacy) and EVSE (new architecture) could leave the system in an inconsistent state. Observed issues: - App marked as “Defekte App erkannt” - Missing controllers after switch (e.g. ctrlEvseSingle0, cluster controller) - Validation errors due to mixed architectures: - expected `Evse.ChargePoint.Keba.Modbus`, got `Evcs.Keba.P40` - missing required property `wiring` - Scheduler still referencing removed controllers (`ctrlEvcs0`) - Rollback (Toggle OFF) could permanently break the app configuration Root cause was a non-atomic architecture switch in SwitchArchitecture, including: - incorrect lifecycle ordering (config deleted while scheduler/controllers still active) - incomplete EVCS → EVSE migration (missing components & properties) - unsafe rollback path # Solution - Fixed the EVCS ↔ EVSE migration logic in SwitchArchitecture - Ensured atomic and consistent architecture switching - Corrected lifecycle order: - scheduler/controller dependencies are updated before configuration removal - Ensured all required EVSE components are created: - EVSE ChargePoint - EVSE Single Controller - EVSE Cluster Controller - Vehicle App instance - Initialized required EVSE properties (e.g. wiring) - Extracted migration logic into a static, testable method - Added unit test reproducing the previous failure and validating the fix **Question**: Why does SwitchArchitecture line 658 explicitly set wiring = "THREE_PHASE" when EvseProps.wiring() already has .setDefaultValue(Wiring.THREE_PHASE)? **Answer**: The default value in EvseProps is only used when creating components through the normal app installation flow, not during migration. Fixed "[object Object]" error messages appearing in snackbars when errors occur during app operations. Implemented proper error message extraction from various error object structures. Co-authored-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com> Reviewed-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com> Reviewed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com> Co-committed-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com>
- Replace the **MODE** with **isRunning** logic for more convenience - When Controller during running would be set to **IsRunning** **false** it immediately stops and returns to **IDLE** state. (_This can be used as cancel/stop button_) Fixed errors: - Reset SOH_PERCENT and SOH_RAW_DEBUG by starting new cycle - show error logs if power details are not available Co-authored-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com> Reviewed-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com> Co-committed-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com>
- rm runtime warnings - refactor component class names and selectors to avoid Reviewed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Co-committed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
- Use `MaximumGridFeedInLimit` from `_meta`; required for Industrial
1. Fix hostnames Adhere to [RFC1035](https://datatracker.ietf.org/doc/html/rfc1035) 2. Update default config Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Kai Jeschek <99220919+da-Kai@users.noreply.github.com> Co-committed-by: Kai Jeschek <99220919+da-Kai@users.noreply.github.com>
- fixes rerouting after refresh for users which are not authenticating per oauth Reviewed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Co-committed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
- adding new icons for Offline status, Time of use "dynamischer Stromtarif" Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Reviewed-by: Hanna Späth <198875998+HaSp97@users.noreply.github.com> Reviewed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Anas Shetla <141644226+AnasShetla@users.noreply.github.com> Co-committed-by: Anas Shetla <141644226+AnasShetla@users.noreply.github.com>
DELAY_DISCHARGE mode stops discharging the battery, but allows charging. (i.e. ESS::DcDischargePower <= 0); unless peak-shaving to "gridSoftLimit" is required, then it also allows discharging. For Energy Scheduler v2: Switching from DELAY_DISCHARGE to charging (with BALANCING) did not work properly for hybrid systems.
- enabled getCurrentLanguage for doc links mapping and update offline firewall description link - enable german and english docs pages Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Reviewed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Victor Nagy <11665068+v-nagy@users.noreply.github.com> Co-committed-by: Victor Nagy <11665068+v-nagy@users.noreply.github.com>
- Use Next Available Id to avoid exceptions with existing components Co-authored-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com> Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Reviewed-by: Leon Blenk <168936274+LaBlanko@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Johann Kaufmann <165755282+johannk24@users.noreply.github.com> Co-committed-by: Johann Kaufmann <165755282+johannk24@users.noreply.github.com>
- added P30 to EVSE Configuration of App.Evcs.Keba - added P30 Components to SwitchArchitecture and removed only P40 check from canSwitch Co-authored-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com> Reviewed-by: Michael Grill <59126309+michaelgrill@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Johann Kaufmann <165755282+johannk24@users.noreply.github.com> Co-committed-by: Johann Kaufmann <165755282+johannk24@users.noreply.github.com>
- Improving Scheduler for EVSE, adding option for monthly tasks - includes `Controller.Evse.Single` ui-implementation for js calendar - adds `monthly` to `Controller.Evse.Single` (also daily available) Co-authored-by: Andreas Mur <102706922+Andreas Mur@users.noreply.github.com> Reviewed-by: Fabian Brandtner <10850256+fabian94533@users.noreply.github.com> Reviewed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com> Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com> Co-committed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
- Readded line to delete second evcs Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com> Co-authored-by: Johann Kaufmann <165755282+johannk24@users.noreply.github.com> Co-committed-by: Johann Kaufmann <165755282+johannk24@users.noreply.github.com>
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #3568 +/- ##
=============================================
- Coverage 59.41% 58.59% -0.81%
Complexity 105 105
=============================================
Files 3069 3091 +22
Lines 133076 134005 +929
Branches 9815 9882 +67
=============================================
- Hits 79049 78508 -541
- Misses 51045 52590 +1545
+ Partials 2982 2907 -75 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.