Kiosk: System Name storage, validation, sync, and sent on license validation

Adds local System Name persistence (trimmed, 1-40) in system_kv, an
injectable sync module with conflict/invalid revert and a pending-sync
flag, a background SystemNameSync worker (retries on boot and on a timer),
and api_client support for PUT /licenses/{key}/system-name plus the
additive systemName field/systemNameStatus on license validation. The
license service sends the stored name and applies the status. Covers
validation, pending retry, and conflict revert with a faked HTTP layer.
This commit is contained in:
NeilClack
2026-09-29 09:57:52 -05:00
parent 003a90d810
commit e7df02344b
16 changed files with 812 additions and 13 deletions
+2
View File
@@ -7,6 +7,7 @@
#include "db/database_manager.h"
#include "network/network_manager.h"
#include "network/license_status.h"
#include "network/system_name_sync.h"
#include "audio/audio_manager.h"
#include "audio/audio_downloader.h"
@@ -19,6 +20,7 @@ struct AppState {
radiantwave::db::DatabaseManager db;
radiantwave::network::NetworkManager network;
radiantwave::license::LicenseStatusTracker licenseTracker;
radiantwave::systemname::SystemNameSync systemNameSync;
radiantwave::audio::AudioManager audio;
radiantwave::audio::AudioDownloader audioDownloader;
bool quitRequested = false;