Skip to content

fix(browser): preserve late-failure teardown evidence - #145

Draft
seonghobae wants to merge 11 commits into
test/agent-task-process-set-termination-evidencefrom
test/agent-task-failure-process-set-termination-evidence
Draft

fix(browser): preserve late-failure teardown evidence#145
seonghobae wants to merge 11 commits into
test/agent-task-process-set-termination-evidencefrom
test/agent-task-failure-process-set-termination-evidence

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Partial implementation of #28. Current head bb5e8f834c37f9ce35f84db8ed1146da3659d6aa ordinarily merges prior child a1341e9c8595c38446d64aaaadeab999062eab57 with current #144 3c0c5c363c2da0b4e8a621226e2f7766c735b743.

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 33956596014 and Manifest V3 Compatibility 33956596013 are queued, not GREEN. Predecessor runs 33916706051 and 33916706095 were 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 0dcd3882678a11114b73dcc9d71bbac12284c71e merged old child 312cd4a7f31fa43d42dadd8f43bafffae8f82e62 and then-parent 5ed8fb140f031fbc637175169fd7796692e6d6c3; CI 32610336594, job 97122222101, failed the missing child contracts. Production repair 8f3b8041c292967abab710d387baec140af942aa later passed CI 32610769453 and compatibility 32610769483, with coverage artifact 9485466766, ZIP SHA-256 09cfd1f202ac02c9efafdb159baa74fbaf1ed83ed6ae3b1dc5af9c50b02945ed. 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.

@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae seonghobae changed the title test: preserve late-failure teardown evidence fix(browser): preserve late-failure teardown evidence Aug 14, 2026
@seonghobae
seonghobae marked this pull request as ready for review August 26, 2026 22:04

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Open in Devin Review

Comment thread scripts/ci/run_mv3_compatibility.py
Comment thread scripts/ci/run_mv3_compatibility.py
@seonghobae
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>
seonghobae added a commit that referenced this pull request Sep 5, 2026
Adopt the current late-failure/process-set parent without rewriting history. Preserve #146's forced-close/browser diagnostic delta while carrying #145's failure-path release record, doctoring, and five-test observation contract.

Signed-off-by: Seongho Bae <me@seonghobae.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant