Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .claude/rules/app-framework.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Architecture: App Framework

Apps are event-driven, C API (`app-module`, `<app/*.h>`), not a C++ class. Each app has an `AppManifest` (`id`, `name`, `category`, `location`, `flags`) and a `main(app_instance_id, argc, argv)` entry point (`AppMainFn`), modelled on a C program's `main()`. Every app instance gets its own dedicated task for its whole lifetime, and blocks in that task until it returns.
Apps are event-driven, C API (`app-module`, `<app/*.h>`), not a C++ class. Each app has an `AppManifest` (`id`, `name`, `category`, `location`, `flags`) and a `main(argc, argv)` entry point (`AppMainFn`), modelled on a C program's `main()`. Every app instance gets its own dedicated task for its whole lifetime, and blocks in that task until it returns. Use `app_scheduler_current_app_id()` (`app/scheduler.h`) to identify the running instance - it's not passed as a parameter.

Lifecycle and inter-app communication go through `app_manager_*()` (`app/manager.h`) and `app_event_*()` (`app/event.h`):
- `app_manager_start()`/`app_manager_start_with_parameters()` launch a plain instance; `app_manager_start_for_result()` launches a modal child that reports back to a parent instance.
- An app subscribes with `app_event_subscribe()`/`app_event_await()` and reacts to `APP_EVENT_CLOSE` (terminate now) and `APP_EVENT_RESULT` (a child it started reported back).
- An app subscribes with `app_event_subscribe()` (registers for its own instance's events, no id argument needed), blocks via `task_event_group_wait()`/`task_event_group_wait_any()`, and drains with `app_event_poll()`, reacting to `APP_EVENT_CLOSE` (terminate now) and `APP_EVENT_RESULT` (a child it started reported back).
- An app closes itself by calling `app_manager_finish()` right before returning from `main()`; another instance is closed via `app_manager_stop()`.

Apps are registered at startup via `app_manager_add()`. External apps can be loaded from SD card via `manifest.properties` files, or side-loaded as ELF binaries on ESP32 (see `app/loader.h`'s `AppLoaderApi`).
Expand Down
1 change: 0 additions & 1 deletion Devices/btt-panda-touch/bigtreetech,panda-touch.dts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/cyd-2432s024c/cyd,2432s024c.dts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/cyd-2432s024r/cyd,2432s024r.dts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/cyd-2432s028r/cyd,2432s028r.dts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/cyd-2432s028rv3/cyd,2432s028rv3.dts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/cyd-2432s032c/cyd,2432s032c.dts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/cyd-3248s035c/cyd,3248s035c.dts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/cyd-4848s040c/cyd,4848s040c.dts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/cyd-8048s043c/cyd,8048s043c.dts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/cyd-e32r28t/cyd,e32r28t.dts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/cyd-e32r32p/cyd,e32r32p.dts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/es3c28p/es3c28p.dts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/generic-esp32/generic,esp32.dts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/generic-esp32c6/generic,esp32c6.dts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/generic-esp32s3/generic,esp32s3.dts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/guition-jc2432w328c/guition,jc2432w328c.dts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/guition-jc8048w550c/guition,jc8048w550c.dts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/heltec-wifi-lora-32-v3/heltec,wifi-lora-32-v3.dts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/lilygo-tdeck-max/lilygo,tdeck-max.dts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/lilygo-tdeck-plus/lilygo,tdeck-plus.dts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/lilygo-tdeck-pro/lilygo,tdeck-pro.dts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/lilygo-tdeck/lilygo,tdeck.dts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/lilygo-tdisplay-s3/lilygo,tdisplay-s3.dts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/lilygo-tdisplay/lilygo,tdisplay.dts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/lilygo-tdongle-s3/lilygo,tdongle-s3.dts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/lilygo-thmi/lilygo,thmi.dts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/lilygo-tlora-pager/lilygo,tlora-pager.dts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/m5stack-cardputer-adv/m5stack,cardputer-adv.dts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/m5stack-cardputer/m5stack,cardputer.dts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/m5stack-core2/m5stack,core2.dts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/m5stack-cores3/m5stack,cores3.dts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/m5stack-papers3/m5stack,papers3.dts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/m5stack-stackchan/m5stack,stackchan.dts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/m5stack-stickc-plus2/m5stack,stickc-plus2.dts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

gpio0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/m5stack-sticks3/m5stack,sticks3.dts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/tulip-4r11/tulip-4r11.dts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/unphone/unphone.dts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
1 change: 0 additions & 1 deletion Devices/waveshare-s3-lcd-13/waveshare,s3-lcd-13.dts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@

wifi0 {
compatible = "espressif,esp32-wifi-pinned";
status = "disabled";
};

ble0 {
Expand Down
Loading
Loading