mirror of
https://github.com/LorenEteval/Furious.git
synced 2026-10-04 12:58:08 +03:00
2.4 KiB
2.4 KiB
Outer process guidance
Inherit the root and package guides. This scope preserves the exact outer child-process/crash protocol and is not a general-purpose utility bucket.
Utilityowns the child-side wrapper used by the outer application process and crash/exit translation. It is not a miscellaneous helper namespace and does not own application composition, repositories, runtimes, or UI policy.AppMainProcessowns one exact Qt application child and one small synchronized crash-log result. Do not add amultiprocessing.Manageror auxiliary child merely to communicate status, and preserve the platform’s explicit spawn behavior.- Exception reporting must work before and after application construction. Signal handlers are installed after the
application factory returns; do not claim that this wrapper handles pre-construction signals. Preserve semantic
ApplicationRunner.ExitCodevalues, original exception/traceback context, and best-effort crash logging; a log-write failure never replaces the primary failure. - The parent entry point joins only the child it created and shows the fallback Qt report only for a nonzero result. Never discover or terminate processes by name, and keep normal/source/packaged command-line entry points equivalent.
- Shared crash status is a synchronized Boolean plus the child's semantic exit result; set the flag only after the diagnostic file is written successfully. Text may include retained logs plus a traceback, so the Boolean channel does not bound the crash file's size or sanitize its contents. Keep crash-write failure separate from the primary exit result, and test reporting both with and without a constructed application/log manager.
- Fallback presentation runs in the parent after a nonzero child result. It constructs a Qt application for the
report but does not call the ordinary application
run()initialization. Keep that constructor dependency in failure-path tests, and preserve the original result when evolving reporting failures rather than adding a supervisor. - Verify normal return, exception, assertion, signal, pre-application failure, crash-log failure, command dispatch,
cross-platform spawn, exact child joining, and absence of manager servers or orphaned resources. If this process
topology changes intentionally, rewrite this guide rather than layering another supervisor over the old one.
tests/test_application_process.pyandtests/test_interface.pyare the contract anchors.