Skip to content

feat: add firmware and server metadata handling#42

Merged
74th merged 2 commits intodevelopfrom
feat/initialize-message
Apr 19, 2026
Merged

feat: add firmware and server metadata handling#42
74th merged 2 commits intodevelopfrom
feat/initialize-message

Conversation

@74th
Copy link
Copy Markdown
Owner

@74th 74th commented Apr 19, 2026

This pull request introduces a new metadata exchange mechanism between firmware and server by adding support for firmware and server metadata messages to the WebSocket protocol. It also adds new device and servo type enumerations to improve device capability reporting. Additionally, .env.template is updated with commented-out wakeup word configuration options.

Protocol and Metadata Enhancements:

  • Added new message kinds (MESSAGE_KIND_FIRMWARE_METADATA, MESSAGE_KIND_SERVER_METADATA) and corresponding structs (stackchan_websocket_v1_FirmwareMetadata, stackchan_websocket_v1_ServerMetadata) to the WebSocket protocol for exchanging metadata between device and server. This includes fields for device type, display properties, wake word support, LED presence, servo type, audio duplex capability, and versioning. [1] [2] [3] [4] [5] [6] [7] [8] [9]

  • Introduced new enums for DeviceType and ServoType to allow fine-grained reporting of hardware capabilities. [1] [2]

  • Added new helper constants and initializers for the new enums and structs to facilitate usage and initialization. [1] [2] [3]

Firmware State Management:

  • Created firmware/include/metadata.hpp to define FirmwareMetadataState and ServerMetadataState structs, global state variables, and functions for initializing, resetting, and applying metadata, as well as for constructing metadata messages.

Configuration Updates:

  • Updated .env.template to include commented-out options for wakeup word configuration, making it easier to enable or disable client/server wake word features.- Implemented firmware metadata initialization and notification in main application.
  • Added server metadata handling in WebSocket event processing.
  • Created new metadata structures and functions in metadata.cpp for managing firmware and server metadata.
  • Updated protobuf definitions to include firmware and server metadata messages.
  • Enhanced WebSocket message encoding to support new metadata types.
  • Introduced versioning for the stackchan server.

74th added 2 commits April 19, 2026 16:19
- Implemented firmware metadata initialization and notification in main application.
- Added server metadata handling in WebSocket event processing.
- Created new metadata structures and functions in metadata.cpp for managing firmware and server metadata.
- Updated protobuf definitions to include firmware and server metadata messages.
- Enhanced WebSocket message encoding to support new metadata types.
- Introduced versioning for the stackchan server.
@74th 74th merged commit da9d7bf into develop Apr 19, 2026
2 checks passed
@74th 74th deleted the feat/initialize-message branch April 19, 2026 07:51
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.

1 participant