Known Gaps And Non-Goals
This page exists to keep client docs honest. It lists places where older docs, comments, or specs may suggest behavior that the current firmware does not appear to implement.
Active Quizzer Query
api_spec/api_spec.yaml previously described a query_active_quizzers request/response operation using quizbox.event.type = QUIZZER_ACTIVE.
Current firmware routing does not have a special query handler for active quizzers. Incoming quizbox events that are not DeviceInfo, config, or firmware messages are converted to internal events and published as external events.
What is implemented today:
QUIZZER_ACTIVEnotifications from internal quizzer handlingQUIZZER_DISPLAYEDnotifications when the quizzer is written to the displayQUIZZERS_LIT_UPnotifications when reset handling restores lit quizzers
What does not appear implemented today:
- a client request that asks "which quizzers are active right now?" and receives a direct state response
Standard Device Information UUID
Current firmware creates Device Information characteristic 0x2A23 and stores 0x0EB7 there. Some older docs identify 0x0EB7 as Manufacturer ID on UUID 0x2A50; that does not match main/Source/BleTransport.cpp.
Event Enum Value Drift
The current Quizbox.proto event enum has:
PAIRING_ACTIVE = 10
PAIRING_INACTIVE = 11
END = 12
Older prose may still describe END as value 10. The generated C++ enum and protobuf schema use 12.
Firmware Reboot Timing
Some older prose says firmware update reboots after 2 or 3 seconds. Current code schedules reboot handling after 2000 ms in FirmwareUpdateHandler, then EspOtaManager::RebootToNewFirmware() delays another 2000 ms before calling esp_restart().
Client code should not rely on an exact reboot delay. Treat successful FINALIZE as "device will reboot soon" and handle disconnect/reconnect.
Query Type Scope
The root Reaction.QUERY_TYPE enum only defines Unset and DeviceInfo.
Config and firmware status requests are represented by their own payload commands, not by root queryType values.
External Event Echoes
BLE clients can send quizbox events as commands, but the protocol handler marks them as source=External. The event notification builder skips external events. Clients should expect derived internal notifications, not a direct echo of the command they wrote.