fix: recover interrupted conversations on boot

This commit is contained in:
Codex Local
2026-09-06 18:15:32 +08:00
parent d60f5d9a9b
commit 029a6097a2
3 changed files with 12 additions and 1 deletions
@@ -354,6 +354,11 @@ static void application_boot(void)
volc_hal_display_set_content(global_display, VOLC_DISPLAY_OBJ_STATUS, VOLC_DISPLAY_TEXT, message);
return;
}
ret = platform_recover_pending_conversation();
if (ret != ESP_OK) {
ESP_LOGW(TAG, "Cannot close the conversation interrupted by the previous restart: %s",
esp_err_to_name(ret));
}
hal_level_init();
ESP_LOGI(TAG, "Startup stack headroom after audio: %u bytes", (unsigned)uxTaskGetStackHighWaterMark(NULL));
xTaskCreate(&Task, "aios_task", 8192, NULL, 5, NULL);
@@ -22,7 +22,7 @@
#define PLATFORM_API_ORIGIN "https://121.41.46.238"
#define PLATFORM_RESPONSE_MAX (32 * 1024)
#define PLATFORM_FIRMWARE_VERSION "1.1.0-echoear-s2s-memory.1"
#define PLATFORM_FIRMWARE_VERSION "1.1.0-echoear-s2s-memory.2"
#define PLATFORM_HARDWARE_AGENT_SDK_VERSION "2.0.0"
static const char *TAG = "platform_client";
@@ -113,6 +113,11 @@ static esp_err_t recover_pending_session(void)
return err;
}
esp_err_t platform_recover_pending_conversation(void)
{
return recover_pending_session();
}
static void copy_json_string(cJSON *object, const char *name, char *target, size_t target_size)
{
cJSON *item = cJSON_GetObjectItemCaseSensitive(object, name);
@@ -37,6 +37,7 @@ esp_err_t platform_client_init(void);
const char *platform_hardware_id(void);
const platform_volc_credential_t *platform_volc_credential(void);
esp_err_t platform_provision_volc_credential(void);
esp_err_t platform_recover_pending_conversation(void);
esp_err_t platform_create_agent_session(platform_agent_session_t *session);
esp_err_t platform_report_session_started(const platform_agent_session_t *session,
const char *provider_connection_ref);