fix(runtime): preserve platform owner shutdown failures
Summary
Attempt every loaded/late owner, preserve shutdown failure across repeated closes, and refuse suspended owner calls after shutdown starts. Record each owner failure immediately while aggregate shutdown can remain pending. Claim recovery preserves claims and earlier outcomes; daemon cleanup continues and reports owner failure.
20 files changed across one coherent shutdown/diagnostic change. Diagnostics preserve bigint precision, registered-literal redaction and minimal invalid-data evidence. Error construction stays private and lazy. Composition types have a type-only owner; the runtime is 904 lines and package exports are unchanged. SDK close reports:
const report = await host.close();
report.platformOwners; // 'closed' | 'pending' | 'failed'
Validation
Head 4ef94abb0a067ba63b4b27d7aa767733470ccdb1; own base 32bf98def5e3b0c6d577ed96ac09309d4e7353f0.
- Final wording fix: declaration AST unchanged. Incremental receipt
run-K0Jp3Uagainst validated73f6cf1: 8 checks passed/7 skipped, exact commit, unchanged checkout. Unit stage: 16,802 passed/one skipped. - Full PR validation at 73f6cf1:
run-85IqhX, 41 checks passed/25 skipped; independent split review found no findings. Integrated lint's 1,009-line runtime was fixed by extraction. - Earlier failure controls and native cleanup evidence retain original identities. Native owner-failure injection is not claimed.
New-head CI is pending. #4105 tracks Android Back/diff diagnosis; #4106 tracks bounded recovery waiting. Ready for review as requested.