Skip to content

Remove explicit app closing function - #618

Merged
KenVanHoeylandt merged 1 commit into
mainfrom
develop
Aug 21, 2026
Merged

Remove explicit app closing function#618
KenVanHoeylandt merged 1 commit into
mainfrom
develop

Conversation

@KenVanHoeylandt

@KenVanHoeylandt KenVanHoeylandt commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Bug Fixes

    • Improved app shutdown handling to prevent potential lifecycle deadlocks during self-closing.
    • Apps now exit through their normal event loop and cleanup sequence when closed.
    • App state transitions are updated consistently as shutdown begins and completes.
  • Documentation

    • Clarified that apps should return from their main function to close themselves.
    • Updated guidance for stopping apps safely.

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8fbe623f-4d36-47f6-b040-46f72c8b52c1

📥 Commits

Reviewing files that changed from the base of the PR and between 0ff1627 and 2873850.

📒 Files selected for processing (50)
  • Modules/app-module/include/app/loader.h
  • Modules/app-module/include/app/manager.h
  • Modules/app-module/source/app_scheduler.cpp
  • Modules/app-module/source/manager.cpp
  • Modules/app-module/source/symbols.cpp
  • Modules/app-module/tests/source/app_manager_test.cpp
  • Tactility/Source/app/addgps/AddGps.cpp
  • Tactility/Source/app/alertdialog/AlertDialog.cpp
  • Tactility/Source/app/appdetails/AppDetails.cpp
  • Tactility/Source/app/apphub/AppHubApp.cpp
  • Tactility/Source/app/apphubdetails/AppHubDetailsApp.cpp
  • Tactility/Source/app/applist/AppList.cpp
  • Tactility/Source/app/appsettings/AppSettings.cpp
  • Tactility/Source/app/apwebserver/ApWebServer.cpp
  • Tactility/Source/app/audiosettings/AudioSettings.cpp
  • Tactility/Source/app/boot/Boot.cpp
  • Tactility/Source/app/btmanage/BtManage.cpp
  • Tactility/Source/app/btpeersettings/BtPeerSettings.cpp
  • Tactility/Source/app/chat/ChatApp.cpp
  • Tactility/Source/app/crashdiagnostics/CrashDiagnostics.cpp
  • Tactility/Source/app/development/Development.cpp
  • Tactility/Source/app/files/FilesApp.cpp
  • Tactility/Source/app/fileselection/FileSelection.cpp
  • Tactility/Source/app/gpssettings/GpsSettings.cpp
  • Tactility/Source/app/grovesettings/GroveSettings.cpp
  • Tactility/Source/app/i2cscanner/I2cScanner.cpp
  • Tactility/Source/app/imageviewer/ImageViewer.cpp
  • Tactility/Source/app/inputdialog/InputDialog.cpp
  • Tactility/Source/app/kerneldisplay/KernelDisplay.cpp
  • Tactility/Source/app/keyboard/KeyboardSettings.cpp
  • Tactility/Source/app/launcher/Launcher.cpp
  • Tactility/Source/app/localesettings/LocaleSettings.cpp
  • Tactility/Source/app/notes/Notes.cpp
  • Tactility/Source/app/power/Power.cpp
  • Tactility/Source/app/poweroff/PowerOff.cpp
  • Tactility/Source/app/screenshot/Screenshot.cpp
  • Tactility/Source/app/selectiondialog/SelectionDialog.cpp
  • Tactility/Source/app/settings/Settings.cpp
  • Tactility/Source/app/setup/Setup.cpp
  • Tactility/Source/app/systeminfo/SystemInfo.cpp
  • Tactility/Source/app/timedatesettings/TimeDateSettings.cpp
  • Tactility/Source/app/timezone/TimeZone.cpp
  • Tactility/Source/app/touchcalibration/TouchCalibration.cpp
  • Tactility/Source/app/trackball/TrackballSettings.cpp
  • Tactility/Source/app/usbsettings/UsbSettings.cpp
  • Tactility/Source/app/webserversettings/WebServerSettings.cpp
  • Tactility/Source/app/wifiapsettings/WifiApSettings.cpp
  • Tactility/Source/app/wificonnect/WifiConnect.cpp
  • Tactility/Source/app/wifimanage/WifiManage.cpp
  • Tests/SdkIntegration/main/Source/main.c
💤 Files with no reviewable changes (45)
  • Tactility/Source/app/grovesettings/GroveSettings.cpp
  • Tactility/Source/app/usbsettings/UsbSettings.cpp
  • Tactility/Source/app/launcher/Launcher.cpp
  • Tactility/Source/app/fileselection/FileSelection.cpp
  • Tactility/Source/app/files/FilesApp.cpp
  • Tactility/Source/app/settings/Settings.cpp
  • Modules/app-module/source/symbols.cpp
  • Tactility/Source/app/alertdialog/AlertDialog.cpp
  • Tactility/Source/app/timezone/TimeZone.cpp
  • Tactility/Source/app/localesettings/LocaleSettings.cpp
  • Tactility/Source/app/wifiapsettings/WifiApSettings.cpp
  • Tactility/Source/app/audiosettings/AudioSettings.cpp
  • Tactility/Source/app/kerneldisplay/KernelDisplay.cpp
  • Tactility/Source/app/apwebserver/ApWebServer.cpp
  • Tactility/Source/app/apphubdetails/AppHubDetailsApp.cpp
  • Tactility/Source/app/addgps/AddGps.cpp
  • Tactility/Source/app/boot/Boot.cpp
  • Tactility/Source/app/appsettings/AppSettings.cpp
  • Tactility/Source/app/btmanage/BtManage.cpp
  • Tactility/Source/app/applist/AppList.cpp
  • Tactility/Source/app/i2cscanner/I2cScanner.cpp
  • Tactility/Source/app/wificonnect/WifiConnect.cpp
  • Tactility/Source/app/keyboard/KeyboardSettings.cpp
  • Tests/SdkIntegration/main/Source/main.c
  • Tactility/Source/app/webserversettings/WebServerSettings.cpp
  • Tactility/Source/app/selectiondialog/SelectionDialog.cpp
  • Tactility/Source/app/appdetails/AppDetails.cpp
  • Tactility/Source/app/systeminfo/SystemInfo.cpp
  • Tactility/Source/app/trackball/TrackballSettings.cpp
  • Tactility/Source/app/chat/ChatApp.cpp
  • Tactility/Source/app/apphub/AppHubApp.cpp
  • Tactility/Source/app/timedatesettings/TimeDateSettings.cpp
  • Tactility/Source/app/power/Power.cpp
  • Modules/app-module/tests/source/app_manager_test.cpp
  • Tactility/Source/app/screenshot/Screenshot.cpp
  • Tactility/Source/app/crashdiagnostics/CrashDiagnostics.cpp
  • Tactility/Source/app/gpssettings/GpsSettings.cpp
  • Tactility/Source/app/notes/Notes.cpp
  • Tactility/Source/app/poweroff/PowerOff.cpp
  • Tactility/Source/app/inputdialog/InputDialog.cpp
  • Modules/app-module/source/manager.cpp
  • Tactility/Source/app/btpeersettings/BtPeerSettings.cpp
  • Tactility/Source/app/imageviewer/ImageViewer.cpp
  • Tactility/Source/app/wifimanage/WifiManage.cpp
  • Tactility/Source/app/development/Development.cpp

Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review.


📝 Walkthrough

Walkthrough

The app lifecycle documentation now defines function return as the self-closing mechanism. The scheduler marks instances STOPPING after emitting APP_EVENT_CLOSE and retains STOPPED after teardown. The obsolete app_manager_finish implementation was removed. App event loops no longer call it during close, error, uninstall, or device-forget paths. They exit through existing cleanup and return normally. Tests and SDK integration code follow the same flow.

Merge Risk: ⚪ Minimal · up to 28738

This PR removes the explicit app-closing function, and no actionable merge-blocking risk is identified in the supplied evidence; it is merge-ready after normal checks and review.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 5 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the removal of the explicit app closing function, which is the main change.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@KenVanHoeylandt
KenVanHoeylandt merged commit 4fea48f into main Aug 21, 2026
59 checks passed
@KenVanHoeylandt
KenVanHoeylandt deleted the develop branch August 21, 2026 06:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant