fix(browser): preserve late-failure teardown evidence - #145
Draft
seonghobae wants to merge 11 commits into
Draft
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
seonghobae
marked this pull request as ready for review
August 26, 2026 22:04
seonghobae
marked this pull request as draft
August 27, 2026 11:34
…ination-evidence' into test/agent-task-failure-process-set-termination-evidence Signed-off-by: Seongho Bae <me@seonghobae.me>
Preserve the child late-failure and forced-close runner while inheriting the current parent release record and real failure-path regression. Record controlled review evidence and its runtime limits. Commit-Message-Assisted-by: Codex (via Codex) Signed-off-by: Seongho Bae <me@seonghobae.me>
This was referenced Sep 5, 2026
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.
Partial implementation of #28. Current head
bb5e8f834c37f9ce35f84db8ed1146da3659d6aaordinarily merges prior childa1341e9c8595c38446d64aaaadeab999062eab57with current #1443c0c5c363c2da0b4e8a621226e2f7766c735b743.Buyer / reliability boundary
This Draft preserves observed browser-root and captured Chromium process-set termination outcomes when ordinary controlled browser work fails late. The forced-close lane accepts success only after root and sampled-set termination are both observed. Profile cleanup is separate evidence and never changes a failed task into a pass.
Test-first integration / current local proof
The predecessor passed 200 Python contracts but failed an expected-five assertion by collecting only three inherited failure-path contracts. Ordinary parent adoption carries the parent's real failure-path and release-record regressions without changing the production runner or either child-owned process-set/forced-close regression. It required no conflict resolution or new runtime abstraction.
Current integrated verification passes five focused inherited contracts, all 202 Python contracts, compileall, Rust 1.97.1 formatting, locked workspace/all-target check and tests, strict Clippy, rustdoc, and pinned-nightly owned-production coverage enforcement. All 415 functions, 3,555 lines, 4,444 regions and 476 branches are covered at 100%.
Exact-head CI
33956596014and Manifest V3 Compatibility33956596013are queued, not GREEN. Predecessor runs33916706051and33916706095were cancelled. Local verification does not replace hosted compatibility or protected-main acceptance.Informational review / explicit limits
Ten controlled probes execute the actual browser-pass and outer-trial flows, with browser/OS observations injected rather than launching Chromium. Cleanup ordering, root survival, sampled-set survival, observation PermissionError and incomplete/interrupted execution are checked in both lanes. Private exception messages are absent from returned evidence.
Late ordinary failure retains observed true/false root and captured-set results. Incomplete capture omits set evidence. The forced-close no-exception path observes both identities after cleanup and fails if either remains live. Completing session/driver cleanup does not prove that those processes are already dead. A forced-close interruption skips post-finally observers and leaves termination unproven; observer errors produce only bounded fallback failure evidence. #146 separately owns retained forced-close failure/driver-cleanup evidence and must adopt this current parent.
Both informational threads are resolved with these evidence limits. Thread resolution is not counted approval.
Historical provenance — not current acceptance
Original reconstruction RED
0dcd3882678a11114b73dcc9d71bbac12284c71emerged old child312cd4a7f31fa43d42dadd8f43bafffae8f82e62and then-parent5ed8fb140f031fbc637175169fd7796692e6d6c3; CI32610336594, job97122222101, failed the missing child contracts. Production repair8f3b8041c292967abab710d387baec140af942aalater passed CI32610769453and compatibility32610769483, with coverage artifact9485466766, ZIP SHA-25609cfd1f202ac02c9efafdb159baa74fbaf1ed83ed6ae3b1dc5af9c50b02945ed. Those historical results, then-current descendant claims and old reviews do not transfer to the current head.Authority / truth boundary
Keep Draft while dependencies remain unprotected and current checks/eligible approval remain unmet. This bounded Linux PID/start-time compatibility evidence does not establish cgroup/task ownership, processes appearing after sampling, cross-platform supervision, authenticated Chromium/ChromeDriver provenance, OS-wide orphan absence or a shipped product browser API. No protected merge, self-approval, bypass, force-push, workflow/ruleset/secret mutation, tag, release or publication is included.
Instrumentation limit: a fresh report from the pinned cargo-llvm-cov 0.8.6 branch data emits
warning: --branch option is unstable. The repository's four-dimension numerical coverage verifier passes, but the instrumentation is experimental and this is not warning-free measurement or release acceptance. The warning is recorded, not suppressed or bypassed; Rust compiler/Clippy/rustdoc results remain separate.