             *        function pointer MUST be passed here to ensure safe handling of the key and the Tx message
             *        counter.
             */
-            case 'K': { OTV0P2BASE::CLI::SetSecretKey(OTRadioLink::SimpleSecureFrame32or0BodyTXV0p2::resetRaw3BytePersistentTXRestartCounterCond).doCommand(buf, n); break; }  // XXX
+            case 'K': { OTV0P2BASE::CLI::SetSecretKey(OTRadioLink::SimpleSecureFrame32or0BodyTXV0p2::resetRaw3BytePersistentTXRestartCounterCond).doCommand(buf, n); break; }
             // Switch to WARM (not BAKE) mode OR set WARM temperature.
             case 'W':{
                 valveMode.cancelBakeDebounced(); // Ensure BAKE mode not entered.

////// MESSAGING

// Managed JSON stats.
OTV0P2BASE::SimpleStatsRotation<12> ss1; // Configured for maximum different stats.  // FIXME REDUCE AS MUCH AS POSSIBLE


/******************************************************************************


////// SCRATCHSPACE

// Create scratch space for secure stats TX
// Buffer need be no larger than leading length byte + typical 64-byte radio module TX buffer limit + optional terminator.
constexpr uint8_t MSG_BUF_SIZE = 1 + 64 + 1;
constexpr uint8_t bufEncJSONlen = OTRadioLink::ENC_BODY_SMALL_FIXED_PTEXT_MAX_SIZE + 1;
constexpr uint8_t ptextBuflen = bufEncJSONlen + 2;
static_assert(ptextBuflen == 34, "ptextBuflen wrong");
constexpr uint8_t scratchSpaceNeeded = MSG_BUF_SIZE + ptextBuflen;
constexpr size_t StatsTX_WorkspaceSize = OTRadioLink::SimpleSecureFrame32or0BodyTXBase::generateSecureOFrameRawForTX_total_scratch_usage_OTAESGCM_2p0 + scratchSpaceNeeded;
static_assert(StatsTX_WorkspaceSize == 384, "StatsTX workspace size wrong!");  // Correct as of 20170704
