A Timeout Does Not Prove the Browser Is Gone
Why cleanup confirmation is part of the result rather than a best-effort afterthought.
Scope: Engineering or methodology note based on a September 17, 2026 snapshot. Source-level behavior is not a public availability or universal compatibility claim. Any scenarios are illustrative, not customer outcomes.
A timeout tells us that an operation exceeded a limit. It does not tell us that every process and resource created by that operation has stopped.
KodeCapture’s ownership model treats cleanup as part of the result. If termination cannot be confirmed under the supported lifecycle, the operation should not claim a clean completion simply because the original wait ended.
The resource outlives the promise unless someone owns it
Imagine a synthetic acquisition that reaches its deadline while a browser is still active. Returning an ordinary success result would leave the operator with two misleading impressions: that the capture completed as intended and that the tool finished its work.
The source’s bounded lifecycle retains explicit ownership and cleanup obligations. Unconfirmed cleanup can block completion and preserve the relevant roots rather than erase the evidence needed to investigate what remains.
Qualification comes after cleanup
The replay product path closes the browser, network interception, and loopback handles it creates before providing qualification authority. This ordering matters. A result should not be called finished while the resources that produced it are still in an unresolved state.
Cleanup failures also need to remain visible beside the primary failure. Losing the original cause is unhelpful, but hiding the cleanup problem can be equally misleading to an operator who expects the machine to be back in a known state.
Do not turn implementation details into universal guarantees
The current behavior is bounded by the supported macOS host and owned process model. It is not a claim that arbitrary external processes can be controlled or that every failure mode has been eliminated.
The product’s responsibility is to report the state it can establish. Confirmed closure, unconfirmed termination, and a request-local denial are different events and should not be collapsed into one generic error.
For an engineering evaluation, include an interrupted or timed-out journey in the review. The interesting question is not only whether the normal path finishes. It is whether the tool can explain what it still owns when the normal path does not finish. Evidence-producing software should be accountable for its ending as well as its beginning.