Repository navigation
fix(app): handle startup and shutdown lifecycle failures - #95
Merged
Merged
Conversation
nick2781
enabled auto-merge
October 20, 2026 01:40
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 20, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 20, 2026
nick2781
enabled auto-merge
October 20, 2026 03:22
Report plugin/module ownership and the failed startup phase, stop subsequent startup callbacks and return failure. Preserve the accepted shutdown exception boundary and resource-retention safeguards.
nick2781
disabled auto-merge
October 20, 2026 03:29
nick2781
enabled auto-merge
October 20, 2026 03:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Handle application lifecycle failures consistently. Startup failures now identify their plugin/module and phase, stop later startup callbacks and exit with status 1. Missing libraries, missing entry points and standard/nonstandard exceptions retain diagnostic context.
During shutdown, accepted work drains before teardown. Add
--shutdown_timeout_ms(default0, unlimited); failed updates or expired cooperative waits retain resources and report failure once. Late completion cannot resume teardown. On Windows, capture C++ update exceptions before the structured-exception filter and rethrow after returning to the shutdown owner, preserving native structured-fault handling.Real-process regressions cover loader/startup failures, admission sealing, callback retirement, native thread completion, normal drains, standard/nonstandard exceptions and invalid or expired deadlines. English and Chinese guides describe the lifecycle contract.
Validation: head
54be9e0babb8d740218ee244b2ea58ef913b675bhas the identical Git file tree to locally tested13cc8cb499f34bae784815f645a3fca6b2da84fe. That tree passed macOS Debug completecheck-core(including startup and drain processes), 71 CI policy tests, whole-project clang-format 18 and Nimbus checks (123 HTML pages / 217 references).Fresh Windows and the complete merge-candidate matrix remain required. Cooperative deadlines cannot interrupt a blocking user hook or unload call. Test-harness termination is not successful shutdown. Partial-start resource rollback, hot replacement and general shared-library unloading safety remain separate work.