Skip to content

Commit 41339bb

Browse files
committed
Merge branch 'feat/service_wifi_support_ap' into 'master'
feat(service): support wifi ap provisioning See merge request ae_group/esp-brookesia!71
2 parents 23555e2 + d9effaa commit 41339bb

File tree

113 files changed

+9000
-3130
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+9000
-3130
lines changed

.build-rules.yml

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -31,83 +31,73 @@ products/speaker:
3131

3232
#
3333
# Test Apps
34+
# Common enable condition: IDF_TARGET in ["esp32s3", "esp32p4"]
3435
#
36+
# Define common enable condition as anchor
37+
_general_test_apps_enable: &general_test_apps_enable
38+
enable:
39+
- if: IDF_TARGET in ["esp32s3", "esp32p4", "esp32c5"]
40+
3541
# brookesia_lib_utils: check
3642
utils/brookesia_lib_utils/test_apps/check:
37-
enable:
38-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
43+
<<: *general_test_apps_enable
3944

4045
# brookesia_lib_utils: function_guard
4146
utils/brookesia_lib_utils/test_apps/function_guard:
42-
enable:
43-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
47+
<<: *general_test_apps_enable
4448

4549
# brookesia_lib_utils: describe_helpers
4650
utils/brookesia_lib_utils/test_apps/describe_helpers:
47-
enable:
48-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
51+
<<: *general_test_apps_enable
4952

5053
# brookesia_lib_utils: log
5154
utils/brookesia_lib_utils/test_apps/log:
52-
enable:
53-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
55+
<<: *general_test_apps_enable
5456

5557
# brookesia_lib_utils: memory_profiler
5658
utils/brookesia_lib_utils/test_apps/memory_profiler:
57-
enable:
58-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
59+
<<: *general_test_apps_enable
5960

6061
# brookesia_lib_utils: plugin
6162
utils/brookesia_lib_utils/test_apps/plugin:
62-
enable:
63-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
63+
<<: *general_test_apps_enable
6464

6565
# brookesia_lib_utils: state_machine
6666
utils/brookesia_lib_utils/test_apps/state_machine:
67-
enable:
68-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
67+
<<: *general_test_apps_enable
6968

7069
# brookesia_lib_utils: task_scheduler
7170
utils/brookesia_lib_utils/test_apps/task_scheduler:
72-
enable:
73-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
71+
<<: *general_test_apps_enable
7472

7573
# brookesia_lib_utils: thread_config
7674
utils/brookesia_lib_utils/test_apps/thread_config:
77-
enable:
78-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
75+
<<: *general_test_apps_enable
7976

8077
# brookesia_lib_utils: thread_profiler
8178
utils/brookesia_lib_utils/test_apps/thread_profiler:
82-
enable:
83-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
79+
<<: *general_test_apps_enable
8480

8581
# brookesia_lib_utils: time_profiler
8682
utils/brookesia_lib_utils/test_apps/time_profiler:
87-
enable:
88-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
83+
<<: *general_test_apps_enable
8984

9085
# brookesia_service_manager
9186
service/brookesia_service_manager/test_apps:
92-
enable:
93-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
87+
<<: *general_test_apps_enable
9488

9589
# brookesia_service_nvs
9690
service/brookesia_service_nvs/test_apps:
97-
enable:
98-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
91+
<<: *general_test_apps_enable
9992

10093
# brookesia_service_sntp
10194
service/brookesia_service_sntp/test_apps:
102-
enable:
103-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
95+
<<: *general_test_apps_enable
10496

10597
# brookesia_service_wifi
10698
service/brookesia_service_wifi/test_apps:
107-
enable:
108-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
99+
<<: *general_test_apps_enable
109100

110101
# Examples
111102
examples/service_console:
112-
enable:
113-
- if: IDF_TARGET in ["esp32s3", "esp32p4"]
103+
<<: *general_test_apps_enable

.github/workflows/launchpad.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ jobs:
8989
- esp_box_3
9090
- esp32_p4_function_ev
9191
- esp32_s3_korvo2_v3
92+
- esp_sensair_shuttle
9293
steps:
9394
- uses: actions/checkout@v3
9495
with:

.gitlab/ci/build.yml

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,38 @@
1111
WARNING_STR: ""
1212

1313
.build_examples_template: &build_examples_template
14+
<<: *build_template
15+
artifacts:
16+
when: always
17+
paths:
18+
- "**/build*/size.json"
19+
- "**/build*/build_log.txt"
20+
- "**/build*/*.bin"
21+
- "**/build*/*.map"
22+
- "**/build*/*.elf"
23+
- "**/build*/flasher_args.json"
24+
- "**/build*/flash_args"
25+
- "**/build*/flash_project_args"
26+
- "**/build*/config/sdkconfig.json"
27+
- "**/build*/bootloader/*.bin"
28+
- "**/build*/bootloader/*.elf"
29+
- "**/build*/partition_table/*.bin"
30+
- "**/build*/mmap_build/*.bin"
31+
- "**/build*/**/*.bin"
32+
- size_info.txt
33+
expire_in: 1 week
34+
variables:
35+
IDF_CI_BUILD: "1"
36+
# By configuring this macro, you can append the compiled configuration file.
37+
# For example, using "sdkconf.etc=default" specifies the default sdkconfig file.
38+
EXAMPLE_CONFIG: "sdkconfig.defaults=defaults;sdkconfig.ci.*=;=defaults"
39+
EXAMPLE_TARGET: "all"
40+
script:
41+
- pip install "idf-component-manager"
42+
- pip install idf_build_apps
43+
- python .gitlab/tools/build_apps.py ${EXAMPLE_DIR} --config ${EXAMPLE_CONFIG} -t ${EXAMPLE_TARGET} -vv
44+
45+
.build_examples_template_without_large_artifacts: &build_examples_template_without_large_artifacts
1446
<<: *build_template
1547
artifacts:
1648
when: always
@@ -192,7 +224,7 @@ build_test_apps_brookesia_service_wifi:
192224
# service_console
193225
build_examples_service_console:
194226
extends:
195-
- .build_examples_template
227+
- .build_examples_template_without_large_artifacts
196228
- .rules:build:examples_service_console
197229
# Using `-t all` directly will cause configuration failures for S3-related boards, so it is necessary to build them separately
198230
parallel:
@@ -203,6 +235,9 @@ build_examples_service_console:
203235
- IMAGE: espressif/idf:release-v5.5
204236
EXAMPLE_TARGET: "esp32p4"
205237
EXAMPLE_CONFIG: "sdkconfig.defaults=defaults;sdkconfig.ci.board.*=;=defaults"
238+
- IMAGE: espressif/idf:release-v5.5
239+
EXAMPLE_TARGET: "esp32c5"
240+
EXAMPLE_CONFIG: "sdkconfig.defaults=defaults;sdkconfig.ci.board.*=;=defaults"
206241
variables:
207242
EXAMPLE_DIR: examples/service_console
208243

.gitlab/ci/rules.yml

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,13 @@
5151
- "agent/brookesia_agent_coze/CMakeLists.txt"
5252
- "agent/brookesia_agent_coze/idf_component.yml"
5353
- "agent/brookesia_agent_coze/Kconfig"
54+
# brookesia_agent_helper
55+
.patterns-component_brookesia_agent_helper: &patterns-component_brookesia_agent_helper
56+
- "agent/brookesia_agent_helper/include/**/*"
57+
- "agent/brookesia_agent_helper/src/**/*"
58+
- "agent/brookesia_agent_helper/CMakeLists.txt"
59+
- "agent/brookesia_agent_helper/idf_component.yml"
60+
- "agent/brookesia_agent_helper/Kconfig"
5461
# brookesia_agent_manager
5562
.patterns-component_brookesia_agent_manager: &patterns-component_brookesia_agent_manager
5663
- "agent/brookesia_agent_manager/include/**/*"
@@ -65,6 +72,23 @@
6572
- "agent/brookesia_agent_openai/CMakeLists.txt"
6673
- "agent/brookesia_agent_openai/idf_component.yml"
6774
- "agent/brookesia_agent_openai/Kconfig"
75+
# brookesia_agent_xiaozhi
76+
.patterns-component_brookesia_agent_xiaozhi: &patterns-component_brookesia_agent_xiaozhi
77+
- "agent/brookesia_agent_xiaozhi/include/**/*"
78+
- "agent/brookesia_agent_xiaozhi/src/**/*"
79+
- "agent/brookesia_agent_xiaozhi/CMakeLists.txt"
80+
- "agent/brookesia_agent_xiaozhi/idf_component.yml"
81+
- "agent/brookesia_agent_xiaozhi/Kconfig"
82+
#
83+
# Expression
84+
#
85+
# brookesia_expression_emote
86+
.patterns-component_brookesia_expression_emote: &patterns-component_brookesia_expression_emote
87+
- "expression/brookesia_expression_emote/include/**/*"
88+
- "expression/brookesia_expression_emote/src/**/*"
89+
- "expression/brookesia_expression_emote/CMakeLists.txt"
90+
- "expression/brookesia_expression_emote/idf_component.yml"
91+
- "expression/brookesia_expression_emote/Kconfig"
6892
#
6993
# Service
7094
#
@@ -78,8 +102,10 @@
78102
# brookesia_service_helper
79103
.patterns-component_brookesia_service_helper: &patterns-component_brookesia_service_helper
80104
- "service/brookesia_service_helper/include/**/*"
105+
- "service/brookesia_service_helper/src/**/*"
81106
- "service/brookesia_service_helper/CMakeLists.txt"
82107
- "service/brookesia_service_helper/idf_component.yml"
108+
- "service/brookesia_service_helper/Kconfig"
83109
# brookesia_service_manager
84110
.patterns-component_brookesia_service_manager: &patterns-component_brookesia_service_manager
85111
- "service/brookesia_service_manager/include/**/*"
@@ -447,14 +473,18 @@
447473
- <<: *if-trigger-job
448474
- <<: *if-dev-push
449475
changes: *patterns-build_system
450-
- <<: *if-dev-push
451-
changes: *patterns-examples_service_console
452476
- <<: *if-dev-push
453477
changes: *patterns-component_brookesia_agent_coze
454478
- <<: *if-dev-push
455479
changes: *patterns-component_brookesia_agent_manager
480+
- <<: *if-dev-push
481+
changes: *patterns-component_brookesia_agent_helper
456482
- <<: *if-dev-push
457483
changes: *patterns-component_brookesia_agent_openai
484+
- <<: *if-dev-push
485+
changes: *patterns-component_brookesia_agent_xiaozhi
486+
- <<: *if-dev-push
487+
changes: *patterns-component_brookesia_expression_emote
458488
- <<: *if-dev-push
459489
changes: *patterns-component_brookesia_service_audio
460490
- <<: *if-dev-push
@@ -469,6 +499,8 @@
469499
changes: *patterns-component_brookesia_service_wifi
470500
- <<: *if-dev-push
471501
changes: *patterns-component_brookesia_lib_utils
502+
- <<: *if-dev-push
503+
changes: *patterns-examples_service_console
472504

473505
# rules for products
474506
.rules:build:products_phone_m5stack_core_s3:

.gitlab/ci/target_test.yml

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,6 @@ variables:
4646
IDF_VERSION: "5.5"
4747
ENV_TAG: "generic,eco4"
4848

49-
.idf_target_version_matrix_p4_eco4_function_ev_board: &idf_target_version_matrix_p4_eco4_function_ev_board
50-
- IDF_TARGET: esp32s3
51-
IDF_VERSION: "5.5"
52-
ENV_TAG: "generic"
53-
- IDF_TARGET: esp32p4
54-
IDF_VERSION: "5.5"
55-
ENV_TAG: "generic,eco4,esp32p4_function_ev_board"
56-
5749
#
5850
# Test apps: brookesia_lib_utils
5951
#
@@ -319,7 +311,16 @@ components_test_brookesia_service_wifi:
319311
artifacts: true
320312
optional: true
321313
parallel:
322-
matrix: *idf_target_version_matrix_p4_eco4_function_ev_board
314+
matrix:
315+
- IDF_TARGET: esp32s3
316+
IDF_VERSION: "5.5"
317+
ENV_TAG: "generic"
318+
- IDF_TARGET: esp32s3
319+
IDF_VERSION: "5.5"
320+
ENV_TAG: "generic,octal-psram"
321+
- IDF_TARGET: esp32p4
322+
IDF_VERSION: "5.5"
323+
ENV_TAG: "generic,eco4,esp32p4_function_ev_board"
323324
tags:
324325
- ${IDF_TARGET}
325326
- ${ENV_TAG}
@@ -341,7 +342,13 @@ examples_test_service_console:
341342
artifacts: true
342343
optional: true
343344
parallel:
344-
matrix: *idf_target_version_matrix_p4_eco4_function_ev_board
345+
matrix:
346+
- IDF_TARGET: esp32s3
347+
IDF_VERSION: "5.5"
348+
ENV_TAG: "generic"
349+
- IDF_TARGET: esp32p4
350+
IDF_VERSION: "5.5"
351+
ENV_TAG: "generic,eco4,esp32p4_function_ev_board"
345352
tags:
346353
- ${IDF_TARGET}
347354
- ${ENV_TAG}

agent/brookesia_agent_coze/CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# ChangeLog
22

3+
## v0.7.2 - 2026-02-25
4+
5+
### Enhancements:
6+
7+
- feat(agent): implement `on_manual_stop_listening()` override to handle manual listening stop in Coze agent
8+
- feat(agent): add logic to stop manual listening when `ESP_COZE_CHAT_EVENT_CHAT_SPEECH_STOPED` event is received in Manual chat mode
9+
- feat(agent): call `reset_interrupted_speaking()` in `on_interrupt_speaking()` to properly reset interrupted speaking state
10+
11+
### Bug Fixes:
12+
13+
- fix(log): fix typo in log messages ("char" -> "chat") for chat listening start/stop and speaking complete events
14+
315
## v0.7.1 - 2026-02-02
416

517
### Breaking Changes:

agent/brookesia_agent_coze/idf_component.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: "0.7.1"
1+
version: "0.7.2"
22
description: ESP-Brookesia Coze Agent which provides Coze API integration, WebSocket communication, and agent management.
33
url: https://github.com/espressif/esp-brookesia/tree/master/agent/brookesia_agent_coze
44
repository: https://github.com/espressif/esp-brookesia.git

agent/brookesia_agent_coze/include/brookesia/agent_coze/agent_coze.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ class Coze: public Base {
9292
bool on_sleep() override;
9393
bool on_wakeup() override;
9494
void on_shutdown() override;
95+
bool on_manual_stop_listening() override;
9596
bool on_interrupt_speaking() override;
9697

9798
bool on_encoder_data_ready(const uint8_t *data, size_t data_size) override;
@@ -148,6 +149,12 @@ class Coze: public Base {
148149
return is_chat_connected_;
149150
}
150151

152+
bool is_chat_listening()
153+
{
154+
return is_chat_listening_;
155+
}
156+
void set_chat_listening(bool listening);
157+
151158
template<DataType type>
152159
constexpr auto &get_data()
153160
{
@@ -192,6 +199,7 @@ class Coze: public Base {
192199

193200
bool is_chat_started_ = false;
194201
bool is_chat_connected_ = false;
202+
bool is_chat_listening_ = false;
195203
void *chat_handle_ = nullptr;
196204
std::string speaking_text_{};
197205
lib_utils::TaskScheduler::TaskId speaking_text_task_id_ = 0;

0 commit comments

Comments
 (0)