Skip to content

Fix WiFi CRUD for hidden networks, add stepper wizard and advanced mode#426

Draft
hhvrc wants to merge 8 commits intodevelopfrom
feat/wifi-crud-fixes-and-advanced-mode
Draft

Fix WiFi CRUD for hidden networks, add stepper wizard and advanced mode#426
hhvrc wants to merge 8 commits intodevelopfrom
feat/wifi-crud-fixes-and-advanced-mode

Conversation

@hhvrc
Copy link
Contributor

@hhvrc hhvrc commented Mar 3, 2026

Summary

  • Firmware WiFi CRUD fixes: WiFiManager::Save() and Forget() no longer require the network to be in scan results, enabling hidden network support and forgetting networks that have gone out of range. The connect field from WifiNetworkSaveCommand is now properly passed through.
  • Stepper wizard: Replaces the old flat config page with a guided 3-step wizard (WiFi -> Hardware -> Account) as the default view.
  • Advanced mode: Header toggle switches to a flat "all config on one page" view with new OTA, Backend, and Captive Portal sections plus 9 new FlatBuffer serializers.

Test plan

  • Flash firmware, verify hidden network save/forget works via captive portal
  • Verify the connect flag: saving with connect=false should not trigger a connection attempt
  • Toggle between Setup (wizard) and Advanced mode via header button
  • Verify all wizard steps render and navigation works (WiFi gate on step 1)
  • Verify all advanced sections render: WiFi, Hardware, Account, Backend, OTA, Captive Portal
  • Test OTA controls: toggle enabled, change channel, save CDN domain, check for updates
  • Test account unlink button in advanced mode
  • Confirm pnpm check, pnpm build, and pio run -e ci-build all pass

🤖 Generated with Claude Code

Firmware: WiFiManager::Save() and Forget() no longer require the network
to be in scan results, enabling hidden network support and forgetting
out-of-range networks. The connect field from WifiNetworkSaveCommand is
now passed through to the handler.

Frontend: Replace the flat config page with a stepper wizard (WiFi ->
Hardware -> Account) as the default view. Add an Advanced mode toggle in
the header that shows a flat page with all config sections including new
OTA, Backend, and Captive Portal settings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@changeset-bot
Copy link

changeset-bot bot commented Mar 3, 2026

⚠️ No Changeset found

Latest commit: 158bedb

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions
Copy link
Contributor

github-actions bot commented Mar 3, 2026

Cpp-Linter Report ⚠️

Some files did not pass the configured checks!

clang-format (v21.1.8) reports: 9 file(s) not formatted
  • include/serialization/_fbs/GatewayToHubMessage_generated.h
  • include/serialization/_fbs/HubConfig_generated.h
  • include/serialization/_fbs/HubToLocalMessage_generated.h
  • include/serialization/_fbs/LocalToHubMessage_generated.h
  • include/serialization/_fbs/ShockerCommand_generated.h
  • src/captiveportal/CaptivePortalInstance.cpp
  • src/captiveportal/Manager.cpp
  • src/message_handlers/websocket/local/WiFiNetworkSaveCommand.cpp
  • src/wifi/WiFiManager.cpp
clang-tidy (v21.1.8) reports: 909 concern(s)
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:11:44: warning: [cppcoreguidelines-avoid-magic-numbers]

    25 is a magic number; consider replacing it with a named constant

       11 | static_assert(FLATBUFFERS_VERSION_MAJOR == 25 &&
          |                                            ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:12:44: warning: [cppcoreguidelines-avoid-magic-numbers]

    12 is a magic number; consider replacing it with a named constant

       12 |               FLATBUFFERS_VERSION_MINOR == 12 &&
          |                                            ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:13:47: warning: [cppcoreguidelines-avoid-magic-numbers]

    19 is a magic number; consider replacing it with a named constant

       13 |               FLATBUFFERS_VERSION_REVISION == 19,
          |                                               ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:19:1: warning: [modernize-concat-nested-namespaces]

    nested namespaces can be concatenated

       19 | namespace OpenShock {
          | ^~~~~~~~~~~~~~~~~~~~~
       20 | namespace Serialization {
          | ~~~~~~~~~~~~~~~~~~~~~~~~~
       21 | namespace Gateway {
          | ~~~~~~~~~~~~~~~~~
          | namespace OpenShock::Serialization::Gateway
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:35:12: warning: [performance-enum-size]

    enum 'TriggerType' uses a larger base type ('int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size

       35 | enum class TriggerType : uint8_t {
          |            ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:48:14: warning: [cppcoreguidelines-avoid-c-arrays]

    do not declare C-style arrays, use 'std::array' instead

       48 | inline const TriggerType (&EnumValuesTriggerType())[4] {
          |              ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:48:28: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

       48 | inline const TriggerType (&EnumValuesTriggerType())[4] {
          |                            ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:49:16: warning: [cppcoreguidelines-avoid-c-arrays]

    do not declare C-style arrays, use 'std::array' instead

       49 |   static const TriggerType values[] = {
          |                ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:58:28: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

       58 | inline const char * const *EnumNamesTriggerType() {
          |        ~~~~~~~~~~~~~~~~~~~~^
          |        auto                                       -> const char * const *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:59:16: warning: [cppcoreguidelines-avoid-c-arrays]

    do not declare C-style arrays, use 'std::array' instead

       59 |   static const char * const names[5] = {
          |                ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:66:10: warning: [cppcoreguidelines-pro-bounds-array-to-pointer-decay]

    do not implicitly decay an array into a pointer; consider using gsl::array_view or an explicit cast instead

       66 |   return names;
          |          ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:69:20: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

       69 | inline const char *EnumNameTriggerType(TriggerType e) {
          |        ~~~~~~~~~~~~^
          |        auto                                           -> const char *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:69:52: warning: [readability-identifier-length]

    parameter name 'e' is too short, expected at least 3 characters

       69 | inline const char *EnumNameTriggerType(TriggerType e) {
          |                                                    ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:70:93: warning: [readability-braces-around-statements]

    statement should be inside braces

       70 |   if (::flatbuffers::IsOutRange(e, TriggerType::Restart, TriggerType::CaptivePortalDisable)) return "";
          |                                                                                             ^          
          |                                                                                              {
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:71:9: warning: [modernize-use-auto]

    use auto when initializing with a cast to avoid duplicating the type name

       71 |   const size_t index = static_cast<size_t>(e);
          |         ^~~~~~
          |         auto
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:72:10: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       72 |   return EnumNamesTriggerType()[index];
          |          ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:75:12: warning: [performance-enum-size]

    enum 'GatewayToHubMessagePayload' uses a larger base type ('int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size

       75 | enum class GatewayToHubMessagePayload : uint8_t {
          |            ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:89:14: warning: [cppcoreguidelines-avoid-c-arrays]

    do not declare C-style arrays, use 'std::array' instead

       89 | inline const GatewayToHubMessagePayload (&EnumValuesGatewayToHubMessagePayload())[5] {
          |              ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:89:43: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

       89 | inline const GatewayToHubMessagePayload (&EnumValuesGatewayToHubMessagePayload())[5] {
          |                                           ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:89:83: warning: [cppcoreguidelines-avoid-magic-numbers]

    5 is a magic number; consider replacing it with a named constant

       89 | inline const GatewayToHubMessagePayload (&EnumValuesGatewayToHubMessagePayload())[5] {
          |                                                                                   ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:90:16: warning: [cppcoreguidelines-avoid-c-arrays]

    do not declare C-style arrays, use 'std::array' instead

       90 |   static const GatewayToHubMessagePayload values[] = {
          |                ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:100:28: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      100 | inline const char * const *EnumNamesGatewayToHubMessagePayload() {
          |        ~~~~~~~~~~~~~~~~~~~~^
          |        auto                                                      -> const char * const *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:101:16: warning: [cppcoreguidelines-avoid-c-arrays]

    do not declare C-style arrays, use 'std::array' instead

      101 |   static const char * const names[6] = {
          |                ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:109:10: warning: [cppcoreguidelines-pro-bounds-array-to-pointer-decay]

    do not implicitly decay an array into a pointer; consider using gsl::array_view or an explicit cast instead

      109 |   return names;
          |          ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:112:20: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      112 | inline const char *EnumNameGatewayToHubMessagePayload(GatewayToHubMessagePayload e) {
          |        ~~~~~~~~~~~~^
          |        auto                                                                         -> const char *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:112:82: warning: [readability-identifier-length]

    parameter name 'e' is too short, expected at least 3 characters

      112 | inline const char *EnumNameGatewayToHubMessagePayload(GatewayToHubMessagePayload e) {
          |                                                                                  ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:113:116: warning: [readability-braces-around-statements]

    statement should be inside braces

      113 |   if (::flatbuffers::IsOutRange(e, GatewayToHubMessagePayload::NONE, GatewayToHubMessagePayload::OtaUpdateRequest)) return "";
          |                                                                                                                    ^          
          |                                                                                                                     {
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:114:9: warning: [modernize-use-auto]

    use auto when initializing with a cast to avoid duplicating the type name

      114 |   const size_t index = static_cast<size_t>(e);
          |         ^~~~~~
          |         auto
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:115:10: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

      115 |   return EnumNamesGatewayToHubMessagePayload()[index];
          |          ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:139:6: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      139 | bool VerifyGatewayToHubMessagePayload(::flatbuffers::VerifierTemplate<B> &verifier, const void *obj, GatewayToHubMessagePayload type);
          | ~~~~ ^                                                                                                                               
          | auto                                                                                                                                  -> bool
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:141:6: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      141 | bool VerifyGatewayToHubMessagePayloadVector(::flatbuffers::VerifierTemplate<B> &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<GatewayToHubMessagePayload> *types);
          | ~~~~ ^                                                                                                                                                                                                                     
          | auto                                                                                                                                                                                                                        -> bool
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:144:3: warning: [modernize-use-using]

    use 'using' instead of 'typedef'

      144 |   typedef PingBuilder Builder;
          |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
          |   using Builder = PingBuilder
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:146:50: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      146 |   static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() {
          |                                      ~~~~~~~~~~~~^
          |                                      auto                                -> const char *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:149:8: warning: [cppcoreguidelines-use-enum-class]

    enum 'FlatBuffersVTableOffset' is unscoped, use 'enum class' instead

      149 |   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
          |        ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:149:8: warning: [performance-enum-size]

    enum 'FlatBuffersVTableOffset' uses a larger base type ('::flatbuffers::voffset_t' (aka 'int'), size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size

  • include/serialization/_fbs/GatewayToHubMessage_generated.h:152:3: warning: [modernize-use-nodiscard]

    function 'unix_utc_time' should be marked [[nodiscard]]

      152 |   uint64_t unix_utc_time() const {
          |   ^
          |   [[nodiscard]] 
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:152:12: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      152 |   uint64_t unix_utc_time() const {
          |            ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:156:8: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      156 |   bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
          |   ~~~~ ^
          |   auto                                                            -> bool
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:164:3: warning: [modernize-use-using]

    use 'using' instead of 'typedef'

      164 |   typedef Ping Table;
          |   ^~~~~~~~~~~~~~~~~~
          |   using Table = Ping
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:165:37: warning: [cppcoreguidelines-avoid-const-or-ref-data-members]

    member 'fbb_' of type '::flatbuffers::FlatBufferBuilder &' (aka 'FlatBufferBuilderImpl &') is a reference

      165 |   ::flatbuffers::FlatBufferBuilder &fbb_;
          |                                     ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:172:5: warning: [cppcoreguidelines-prefer-member-initializer]

    'start_' should be initialized in a member initializer of the constructor

      171 |         : fbb_(_fbb) {
          |                     , start_(fbb_.StartTable())
      172 |     start_ = fbb_.StartTable();
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:174:31: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      174 |   ::flatbuffers::Offset<Ping> Finish() {
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
          |   auto                                 -> ::flatbuffers::Offset<Ping>
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:176:10: warning: [readability-identifier-length]

    variable name 'o' is too short, expected at least 3 characters

      176 |     auto o = ::flatbuffers::Offset<Ping>(end);
          |          ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:181:36: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      181 | inline ::flatbuffers::Offset<Ping> CreatePing(
          |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
          |        auto
      182 |     ::flatbuffers::FlatBufferBuilder &_fbb,
      183 |     uint64_t unix_utc_time = 0) {
          |                                 -> ::flatbuffers::Offset<Ping>
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:191:25: warning: [bugprone-dynamic-static-initializers]

    static variable 'Create' may be dynamically initialized in this header file

      191 |   static auto constexpr Create = CreatePing;
          |                         ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:195:3: warning: [modernize-use-using]

    use 'using' instead of 'typedef'

      195 |   typedef TriggerBuilder Builder;
          |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |   using Builder = TriggerBuilder
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:197:50: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      197 |   static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() {
          |                                      ~~~~~~~~~~~~^
          |                                      auto                                -> const char *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:200:8: warning: [cppcoreguidelines-use-enum-class]

    enum 'FlatBuffersVTableOffset' is unscoped, use 'enum class' instead

      200 |   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
          |        ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:200:8: warning: [performance-enum-size]

    enum 'FlatBuffersVTableOffset' uses a larger base type ('::flatbuffers::voffset_t' (aka 'int'), size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size

  • include/serialization/_fbs/GatewayToHubMessage_generated.h:203:3: warning: [modernize-use-nodiscard]

    function 'type' should be marked [[nodiscard]]

      203 |   OpenShock::Serialization::Gateway::TriggerType type() const {
          |   ^
          |   [[nodiscard]] 
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:203:50: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      203 |   OpenShock::Serialization::Gateway::TriggerType type() const {
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
          |   auto                                                        -> OpenShock::Serialization::Gateway::TriggerType
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:207:8: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      207 |   bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
          |   ~~~~ ^
          |   auto                                                            -> bool
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:215:3: warning: [modernize-use-using]

    use 'using' instead of 'typedef'

      215 |   typedef Trigger Table;
          |   ^~~~~~~~~~~~~~~~~~~~~
          |   using Table = Trigger
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:216:37: warning: [cppcoreguidelines-avoid-const-or-ref-data-members]

    member 'fbb_' of type '::flatbuffers::FlatBufferBuilder &' (aka 'FlatBufferBuilderImpl &') is a reference

      216 |   ::flatbuffers::FlatBufferBuilder &fbb_;
          |                                     ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:223:5: warning: [cppcoreguidelines-prefer-member-initializer]

    'start_' should be initialized in a member initializer of the constructor

      222 |         : fbb_(_fbb) {
          |                     , start_(fbb_.StartTable())
      223 |     start_ = fbb_.StartTable();
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:225:34: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      225 |   ::flatbuffers::Offset<Trigger> Finish() {
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
          |   auto                                    -> ::flatbuffers::Offset<Trigger>
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:227:10: warning: [readability-identifier-length]

    variable name 'o' is too short, expected at least 3 characters

      227 |     auto o = ::flatbuffers::Offset<Trigger>(end);
          |          ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:232:39: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      232 | inline ::flatbuffers::Offset<Trigger> CreateTrigger(
          |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
          |        auto
      233 |     ::flatbuffers::FlatBufferBuilder &_fbb,
      234 |     OpenShock::Serialization::Gateway::TriggerType type = OpenShock::Serialization::Gateway::TriggerType::Restart) {
          |                                                                                                                    -> ::flatbuffers::Offset<Trigger>
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:242:25: warning: [bugprone-dynamic-static-initializers]

    static variable 'Create' may be dynamically initialized in this header file

      242 |   static auto constexpr Create = CreateTrigger;
          |                         ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:246:3: warning: [modernize-use-using]

    use 'using' instead of 'typedef'

      246 |   typedef OtaUpdateRequestBuilder Builder;
          |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |   using Builder = OtaUpdateRequestBuilder
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:248:50: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      248 |   static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() {
          |                                      ~~~~~~~~~~~~^
          |                                      auto                                -> const char *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:251:8: warning: [cppcoreguidelines-use-enum-class]

    enum 'FlatBuffersVTableOffset' is unscoped, use 'enum class' instead

      251 |   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
          |        ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:251:8: warning: [performance-enum-size]

    enum 'FlatBuffersVTableOffset' uses a larger base type ('::flatbuffers::voffset_t' (aka 'int'), size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size

  • include/serialization/_fbs/GatewayToHubMessage_generated.h:254:3: warning: [modernize-use-nodiscard]

    function 'version' should be marked [[nodiscard]]

      254 |   const OpenShock::Serialization::Types::SemVer *version() const {
          |   ^
          |   [[nodiscard]] 
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:254:50: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      254 |   const OpenShock::Serialization::Types::SemVer *version() const {
          |                                                  ^
    note: this fix will not be applied because it overlaps with another fix
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:254:50: warning: [readability-convert-member-functions-to-static]

    method 'version' can be made static

      254 |   const OpenShock::Serialization::Types::SemVer *version() const {
          |                                                  ^         ~~~~~
          |   static 
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:258:8: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      258 |   bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
          |   ~~~~ ^
          |   auto                                                            -> bool
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:267:3: warning: [modernize-use-using]

    use 'using' instead of 'typedef'

      267 |   typedef OtaUpdateRequest Table;
          |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |   using Table = OtaUpdateRequest
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:268:37: warning: [cppcoreguidelines-avoid-const-or-ref-data-members]

    member 'fbb_' of type '::flatbuffers::FlatBufferBuilder &' (aka 'FlatBufferBuilderImpl &') is a reference

      268 |   ::flatbuffers::FlatBufferBuilder &fbb_;
          |                                     ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:275:5: warning: [cppcoreguidelines-prefer-member-initializer]

    'start_' should be initialized in a member initializer of the constructor

      274 |         : fbb_(_fbb) {
          |                     , start_(fbb_.StartTable())
      275 |     start_ = fbb_.StartTable();
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:277:43: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      277 |   ::flatbuffers::Offset<OtaUpdateRequest> Finish() {
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
          |   auto                                             -> ::flatbuffers::Offset<OtaUpdateRequest>
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:279:10: warning: [readability-identifier-length]

    variable name 'o' is too short, expected at least 3 characters

      279 |     auto o = ::flatbuffers::Offset<OtaUpdateRequest>(end);
          |          ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:285:48: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      285 | inline ::flatbuffers::Offset<OtaUpdateRequest> CreateOtaUpdateRequest(
          |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
          |        auto
      286 |     ::flatbuffers::FlatBufferBuilder &_fbb,
      287 |     ::flatbuffers::Offset<OpenShock::Serialization::Types::SemVer> version = 0) {
          |                                                                                 -> ::flatbuffers::Offset<OtaUpdateRequest>
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:295:25: warning: [bugprone-dynamic-static-initializers]

    static variable 'Create' may be dynamically initialized in this header file

      295 |   static auto constexpr Create = CreateOtaUpdateRequest;
          |                         ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:299:3: warning: [modernize-use-using]

    use 'using' instead of 'typedef'

      299 |   typedef GatewayToHubMessageBuilder Builder;
          |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |   using Builder = GatewayToHubMessageBuilder
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:301:50: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      301 |   static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() {
          |                                      ~~~~~~~~~~~~^
          |                                      auto                                -> const char *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:304:8: warning: [cppcoreguidelines-use-enum-class]

    enum 'FlatBuffersVTableOffset' is unscoped, use 'enum class' instead

      304 |   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
          |        ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:304:8: warning: [performance-enum-size]

    enum 'FlatBuffersVTableOffset' uses a larger base type ('::flatbuffers::voffset_t' (aka 'int'), size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size

  • include/serialization/_fbs/GatewayToHubMessage_generated.h:308:3: warning: [modernize-use-nodiscard]

    function 'payload_type' should be marked [[nodiscard]]

      308 |   OpenShock::Serialization::Gateway::GatewayToHubMessagePayload payload_type() const {
          |   ^
          |   [[nodiscard]] 
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:308:65: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      308 |   OpenShock::Serialization::Gateway::GatewayToHubMessagePayload payload_type() const {
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
          |   auto                                                                               -> OpenShock::Serialization::Gateway::GatewayToHubMessagePayload
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:311:3: warning: [modernize-use-nodiscard]

    function 'payload' should be marked [[nodiscard]]

      311 |   const void *payload() const {
          |   ^
          |   [[nodiscard]] 
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:311:15: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      311 |   const void *payload() const {
          |               ^
    note: this fix will not be applied because it overlaps with another fix
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:311:15: warning: [readability-convert-member-functions-to-static]

    method 'payload' can be made static

      311 |   const void *payload() const {
          |               ^         ~~~~~
          |   static 
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:314:33: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      314 |   template<typename T> const T *payload_as() const;
          |                        ~~~~~~~~~^                 
          |                        auto                        -> const T *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:315:3: warning: [modernize-use-nodiscard]

    function 'payload_as_Ping' should be marked [[nodiscard]]

      315 |   const OpenShock::Serialization::Gateway::Ping *payload_as_Ping() const {
          |   ^
          |   [[nodiscard]] 
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:315:50: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      315 |   const OpenShock::Serialization::Gateway::Ping *payload_as_Ping() const {
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
          |   auto                                                                   -> const OpenShock::Serialization::Gateway::Ping *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:318:3: warning: [modernize-use-nodiscard]

    function 'payload_as_Trigger' should be marked [[nodiscard]]

      318 |   const OpenShock::Serialization::Gateway::Trigger *payload_as_Trigger() const {
          |   ^
          |   [[nodiscard]] 
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:318:53: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      318 |   const OpenShock::Serialization::Gateway::Trigger *payload_as_Trigger() const {
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
          |   auto                                                                         -> const OpenShock::Serialization::Gateway::Trigger *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:321:3: warning: [modernize-use-nodiscard]

    function 'payload_as_Common_ShockerCommandList' should be marked [[nodiscard]]

      321 |   const OpenShock::Serialization::Common::ShockerCommandList *payload_as_Common_ShockerCommandList() const {
          |   ^
          |   [[nodiscard]] 
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:321:63: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      321 |   const OpenShock::Serialization::Common::ShockerCommandList *payload_as_Common_ShockerCommandList() const {
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
          |   auto                                                                                                     -> const OpenShock::Serialization::Common::ShockerCommandList *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:324:3: warning: [modernize-use-nodiscard]

    function 'payload_as_OtaUpdateRequest' should be marked [[nodiscard]]

      324 |   const OpenShock::Serialization::Gateway::OtaUpdateRequest *payload_as_OtaUpdateRequest() const {
          |   ^
          |   [[nodiscard]] 
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:324:62: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      324 |   const OpenShock::Serialization::Gateway::OtaUpdateRequest *payload_as_OtaUpdateRequest() const {
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
          |   auto                                                                                           -> const OpenShock::Serialization::Gateway::OtaUpdateRequest *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:328:8: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      328 |   bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
          |   ~~~~ ^
          |   auto                                                            -> bool
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:337:87: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      337 | template<> inline const OpenShock::Serialization::Gateway::Ping *GatewayToHubMessage::payload_as<OpenShock::Serialization::Gateway::Ping>() const {
          |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     ^
          |                   auto                                                                                                                            -> const OpenShock::Serialization::Gateway::Ping *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:341:90: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      341 | template<> inline const OpenShock::Serialization::Gateway::Trigger *GatewayToHubMessage::payload_as<OpenShock::Serialization::Gateway::Trigger>() const {
          |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     ^
          |                   auto                                                                                                                                  -> const OpenShock::Serialization::Gateway::Trigger *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:345:100: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      345 | template<> inline const OpenShock::Serialization::Common::ShockerCommandList *GatewayToHubMessage::payload_as<OpenShock::Serialization::Common::ShockerCommandList>() const {
          |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     ^
          |                   auto                                                                                                                                                      -> const OpenShock::Serialization::Common::ShockerCommandList *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:349:99: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      349 | template<> inline const OpenShock::Serialization::Gateway::OtaUpdateRequest *GatewayToHubMessage::payload_as<OpenShock::Serialization::Gateway::OtaUpdateRequest>() const {
          |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     ^
          |                   auto                                                                                                                                                    -> const OpenShock::Serialization::Gateway::OtaUpdateRequest *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:354:3: warning: [modernize-use-using]

    use 'using' instead of 'typedef'

      354 |   typedef GatewayToHubMessage Table;
          |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |   using Table = GatewayToHubMessage
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:355:37: warning: [cppcoreguidelines-avoid-const-or-ref-data-members]

    member 'fbb_' of type '::flatbuffers::FlatBufferBuilder &' (aka 'FlatBufferBuilderImpl &') is a reference

      355 |   ::flatbuffers::FlatBufferBuilder &fbb_;
          |                                     ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:365:5: warning: [cppcoreguidelines-prefer-member-initializer]

    'start_' should be initialized in a member initializer of the constructor

      364 |         : fbb_(_fbb) {
          |                     , start_(fbb_.StartTable())
      365 |     start_ = fbb_.StartTable();
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:367:46: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      367 |   ::flatbuffers::Offset<GatewayToHubMessage> Finish() {
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
          |   auto                                                -> ::flatbuffers::Offset<GatewayToHubMessage>
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:369:10: warning: [readability-identifier-length]

    variable name 'o' is too short, expected at least 3 characters

      369 |     auto o = ::flatbuffers::Offset<GatewayToHubMessage>(end);
          |          ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:375:51: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      375 | inline ::flatbuffers::Offset<GatewayToHubMessage> CreateGatewayToHubMessage(
          |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
          |        auto
      376 |     ::flatbuffers::FlatBufferBuilder &_fbb,
      377 |     OpenShock::Serialization::Gateway::GatewayToHubMessagePayload payload_type = OpenShock::Serialization::Gateway::GatewayToHubMessagePayload::NONE,
      378 |     ::flatbuffers::Offset<void> payload = 0) {
          |                                              -> ::flatbuffers::Offset<GatewayToHubMessage>
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:387:25: warning: [bugprone-dynamic-static-initializers]

    static variable 'Create' may be dynamically initialized in this header file

      387 |   static auto constexpr Create = CreateGatewayToHubMessage;
          |                         ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:391:13: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      391 | inline bool VerifyGatewayToHubMessagePayload(::flatbuffers::VerifierTemplate<B> &verifier, const void *obj, GatewayToHubMessagePayload type) {
          |        ~~~~ ^
          |        auto                                                                                                                                  -> bool
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:397:7: warning: [readability-qualified-auto]

    'auto ptr' can be declared as 'const auto *ptr'

      397 |       auto ptr = reinterpret_cast<const OpenShock::Serialization::Gateway::Ping *>(obj);
          |       ^~~~
          |       const auto *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:397:18: warning: [cppcoreguidelines-pro-type-reinterpret-cast]

    do not use reinterpret_cast

      397 |       auto ptr = reinterpret_cast<const OpenShock::Serialization::Gateway::Ping *>(obj);
          |                  ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:401:7: warning: [readability-qualified-auto]

    'auto ptr' can be declared as 'const auto *ptr'

      401 |       auto ptr = reinterpret_cast<const OpenShock::Serialization::Gateway::Trigger *>(obj);
          |       ^~~~
          |       const auto *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:401:18: warning: [cppcoreguidelines-pro-type-reinterpret-cast]

    do not use reinterpret_cast

      401 |       auto ptr = reinterpret_cast<const OpenShock::Serialization::Gateway::Trigger *>(obj);
          |                  ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:405:7: warning: [readability-qualified-auto]

    'auto ptr' can be declared as 'const auto *ptr'

      405 |       auto ptr = reinterpret_cast<const OpenShock::Serialization::Common::ShockerCommandList *>(obj);
          |       ^~~~
          |       const auto *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:405:18: warning: [cppcoreguidelines-pro-type-reinterpret-cast]

    do not use reinterpret_cast

      405 |       auto ptr = reinterpret_cast<const OpenShock::Serialization::Common::ShockerCommandList *>(obj);
          |                  ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:409:7: warning: [readability-qualified-auto]

    'auto ptr' can be declared as 'const auto *ptr'

      409 |       auto ptr = reinterpret_cast<const OpenShock::Serialization::Gateway::OtaUpdateRequest *>(obj);
          |       ^~~~
          |       const auto *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:409:18: warning: [cppcoreguidelines-pro-type-reinterpret-cast]

    do not use reinterpret_cast

      409 |       auto ptr = reinterpret_cast<const OpenShock::Serialization::Gateway::OtaUpdateRequest *>(obj);
          |                  ^
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:417:13: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      417 | inline bool VerifyGatewayToHubMessagePayloadVector(::flatbuffers::VerifierTemplate<B> &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<GatewayToHubMessagePayload> *types) {
          |        ~~~~ ^
          |        auto                                                                                                                                                                                                                        -> bool
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:417:98: warning: [bugprone-easily-swappable-parameters]

    2 adjacent parameters of 'VerifyGatewayToHubMessagePayloadVector' of similar type ('const int *') are easily swapped by mistake

      417 | inline bool VerifyGatewayToHubMessagePayloadVector(::flatbuffers::VerifierTemplate<B> &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<GatewayToHubMessagePayload> *types) {
          |                                                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/runner/work/Firmware/Firmware/include/serialization/_fbs/GatewayToHubMessage_generated.h:417:156: note: the first parameter in the range is 'values'
      417 | inline bool VerifyGatewayToHubMessagePayloadVector(::flatbuffers::VerifierTemplate<B> &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<GatewayToHubMessagePayload> *types) {
          |                                                                                                                                                            ^~~~~~
    /home/runner/work/Firmware/Firmware/include/serialization/_fbs/GatewayToHubMessage_generated.h:417:221: note: the last parameter in the range is 'types'
      417 | inline bool VerifyGatewayToHubMessagePayloadVector(::flatbuffers::VerifierTemplate<B> &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<GatewayToHubMessagePayload> *types) {
          |                                                                                                                                                                                                                             ^~~~~
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:418:25: warning: [readability-braces-around-statements]

    statement should be inside braces

      418 |   if (!values || !types) return !values && !types;
          |                         ^                         
          |                          {
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:419:39: warning: [readability-braces-around-statements]

    statement should be inside braces

      419 |   if (values->size() != types->size()) return false;
          |                                       ^             
          |                                        {
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:429:70: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      429 | inline const OpenShock::Serialization::Gateway::GatewayToHubMessage *GetGatewayToHubMessage(const void *buf) {
          |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
          |        auto                                                                                                  -> const OpenShock::Serialization::Gateway::GatewayToHubMessage *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:433:70: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      433 | inline const OpenShock::Serialization::Gateway::GatewayToHubMessage *GetSizePrefixedGatewayToHubMessage(const void *buf) {
          |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
          |        auto                                                                                                              -> const OpenShock::Serialization::Gateway::GatewayToHubMessage *
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:438:13: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      438 | inline bool VerifyGatewayToHubMessageBuffer(
          |        ~~~~ ^
          |        auto
      439 |     ::flatbuffers::VerifierTemplate<B> &verifier) {
          |                                                   -> bool
  • include/serialization/_fbs/GatewayToHubMessage_generated.h:444:13: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

      444 | inline bool VerifySizePrefixedGatewayToHubMessageBuffer(
          |        ~~~~ ^
          |        auto
      445 |     ::flatbuffers::VerifierTemplate<B> &verifier) {
          |                                                   -> bool
  • include/serialization/_fbs/HubConfig_generated.h:11:44: warning: [cppcoreguidelines-avoid-magic-numbers]

    25 is a magic number; consider replacing it with a named constant

       11 | static_assert(FLATBUFFERS_VERSION_MAJOR == 25 &&
          |                                            ^
  • include/serialization/_fbs/HubConfig_generated.h:12:44: warning: [cppcoreguidelines-avoid-magic-numbers]

    12 is a magic number; consider replacing it with a named constant

       12 |               FLATBUFFERS_VERSION_MINOR == 12 &&
          |                                            ^
  • include/serialization/_fbs/HubConfig_generated.h:13:47: warning: [cppcoreguidelines-avoid-magic-numbers]

    19 is a magic number; consider replacing it with a named constant

       13 |               FLATBUFFERS_VERSION_REVISION == 19,
          |                                               ^
  • include/serialization/_fbs/HubConfig_generated.h:16:1: warning: [modernize-concat-nested-namespaces]

    nested namespaces can be concatenated

       16 | namespace OpenShock {
          | ^~~~~~~~~~~~~~~~~~~~~
       17 | namespace Serialization {
          | ~~~~~~~~~~~~~~~~~~~~~~~~~
       18 | namespace Configuration {
          | ~~~~~~~~~~~~~~~~~~~~~~~
          | namespace OpenShock::Serialization::Configuration
  • include/serialization/_fbs/HubConfig_generated.h:50:12: warning: [performance-enum-size]

    enum 'OtaUpdateChannel' uses a larger base type ('int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size

       50 | enum class OtaUpdateChannel : uint8_t {
          |            ^
  • include/serialization/_fbs/HubConfig_generated.h:58:14: warning: [cppcoreguidelines-avoid-c-arrays]

    do not declare C-style arrays, use 'std::array' instead

       58 | inline const OtaUpdateChannel (&EnumValuesOtaUpdateChannel())[3] {
          |              ^
  • include/serialization/_fbs/HubConfig_generated.h:58:33: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

       58 | inline const OtaUpdateChannel (&EnumValuesOtaUpdateChannel())[3] {
          |                                 ^
  • include/serialization/_fbs/HubConfig_generated.h:59:16: warning: [cppcoreguidelines-avoid-c-arrays]

    do not declare C-style arrays, use 'std::array' instead

       59 |   static const OtaUpdateChannel values[] = {
          |                ^
  • include/serialization/_fbs/HubConfig_generated.h:67:28: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

       67 | inline const char * const *EnumNamesOtaUpdateChannel() {
          |        ~~~~~~~~~~~~~~~~~~~~^
          |        auto                                            -> const char * const *
  • include/serialization/_fbs/HubConfig_generated.h:68:16: warning: [cppcoreguidelines-avoid-c-arrays]

    do not declare C-style arrays, use 'std::array' instead

       68 |   static const char * const names[4] = {
          |                ^
  • include/serialization/_fbs/HubConfig_generated.h:74:10: warning: [cppcoreguidelines-pro-bounds-array-to-pointer-decay]

    do not implicitly decay an array into a pointer; consider using gsl::array_view or an explicit cast instead

       74 |   return names;
          |          ^
  • include/serialization/_fbs/HubConfig_generated.h:77:20: warning: [modernize-use-trailing-return-type]

    use a trailing return type for this function

       77 | inline const char *EnumNameOtaUpdateChannel(OtaUpdateChannel e) {
          |        ~~~~~~~~~~~~^
          |        auto                                                     -> const char *
  • include/serialization/_fbs/HubConfig_generated.h:77:62: warning: [readability-identifier-length]

    parameter name 'e' is too short, expected at least 3 characters

       77 | inline const char *EnumNameOtaUpdateChannel(OtaUpdateChannel e) {
          |                                                              ^

Have any feedback or feature suggestions? Share it here.

hhvrc and others added 6 commits March 6, 2026 13:26
…es-and-advanced-mode

# Conflicts:
#	frontend/eslint.config.js
#	frontend/src/lib/components/Layout/Header.svelte
#	frontend/src/lib/components/WiFiEntry.svelte
#	frontend/src/lib/stores/index.ts
#	frontend/src/routes/+page.svelte
#	src/wifi/WiFiManager.cpp
Replace FlatBuffers WebSocket round-trips with simple HTTP calls for:
- WiFi scan start/stop (POST /api/wifi/scan)
- WiFi network forget (DELETE /api/wifi/networks)
- Account link/unlink (POST /api/account/link, DELETE /api/account)
- RF TX pin config (PUT /api/config/rf/pin)
- EStop pin config (PUT /api/config/estop/pin)
- EStop enabled toggle (PUT /api/config/estop/enabled)

Commands that require async push events (WiFi connect/save/disconnect, OTA)
remain on WebSocket. Real-time push (scan results, WiFi events) also stays WS.

Co-Authored-By: Copilot <223556219+Copilot@users.noreply.github.com>
Leftover from merge conflict resolution — variable was renamed during
the develop merge but the reference wasn't updated.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
All frontend→firmware commands now use HTTP endpoints. The WebSocket
channel in the captive portal is now receive-only (firmware→frontend push):
- WiFi network save (POST /api/wifi/networks)
- WiFi network connect (POST /api/wifi/connect)
- WiFi network disconnect (POST /api/wifi/disconnect)
- OTA config endpoints (PUT /api/ota/*)
- OTA check for updates (POST /api/ota/check)

LocalToHubMessage FlatBuffers union is now empty — schema cleanup
documented in FLATBUFFERS_CHANGES.md.

Co-Authored-By: Copilot <223556219+Copilot@users.noreply.github.com>
@hhvrc hhvrc marked this pull request as draft March 6, 2026 23:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

1 participant