Skip to content

test(browser): bound ordinary teardown to one deadline - #150

Draft
seonghobae wants to merge 11 commits into
test/agent-task-browser-crash-recovery-evidencefrom
test/agent-task-shared-teardown-deadline
Draft

test(browser): bound ordinary teardown to one deadline#150
seonghobae wants to merge 11 commits into
test/agent-task-browser-crash-recovery-evidencefrom
test/agent-task-shared-teardown-deadline

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Partial implementation of #28. Current exact head is 6ab7fc9166f397f49442243492ae88d6ccad56cf, ordinarily adopting #148 0135984f1bc1f68d89d7777f49c4999474105a12 after local RED commit f0b2ab905df16ebc388e23c62c4191de201fad6b. Keep Draft.

September 6 current sandbox-parent adoption

The unchanged parent sandbox contract reproduced three unsafe-launch assertion failures and one absent browser-crash lane on predecessor d3c29359fd10e540ca9b3b2723bde6f94866cdb6. The ordinary merge preserves every parent production change, including all four sandbox-preserving launch paths, exact pidfd signal/exit evidence and primary/secondary failure handling. Relative to the new parent, production differs only by this child's existing ordinary shared-deadline hunk. Child regressions and reconciled cleanup injections remain; root-only capture cannot establish a complete sampled process set. No workflow, Rust source, dependency, browser pin, retry, deadline, acceptance predicate or denominator changed.

Fresh combined-source verification: 253 Python contracts pass in existing Colima Linux 6.8.0-117-generic / Python 3.12.3, without skips, dependencies or VM changes. macOS runs the same 253 contracts with exactly three Linux-only pidfd skips, not passes. Final tracked-file SHA-256 manifest 985411ef6a7d3b812be086b43b6341a96f6b8acace63c0161fa8453aae065bd3 matches across host and Linux after the documentation update. Compileall, CodeGraph sync, diff checks and all Rust 1.97.1 fmt/check/workspace tests/strict Clippy/rustdoc gates pass. Fresh pinned nightly coverage is 415/415 functions, 3555/3555 lines, 4444/4444 regions and 476/476 branches. The separate unstable --branch warning remains.

Current acceptance boundary

Parent MV3 run 33990522248, job 101371812631, artifact 9977680352 (SHA-256 5430103b6bae59acc0d62d3c21cce559b27a15eadc6f049a857551d9a92ef643) remains real-browser RED: all four lanes have 0/3 successful trials; crash trials fail at session creation. Cleanup does not establish browser startup. #212 owns the canonical sandbox-helper workflow prerequisite. The predecessor's unsandboxed success is historical and cannot be transferred to this head. Current-head native CI 34018588292 succeeded on this exact head at 2026-09-06T07:51:37Z. Current-head MV3 compatibility 34018588298, job 101446865332, failed at 2026-09-06T07:50:41Z. Chrome 150.0.7871.129 / r1639810 produced 0/3 successful trials in each of the ordinary MV3, ordinary AgentTask, forced-close and browser-crash lanes; all profiles were cleaned. Browser-crash trials identify session_create / RuntimeError / runtime_error, which locates the failure stage but does not establish the underlying browser-startup cause. Artifact 9985228944, mv3-compatibility-6ab7fc9166f397f49442243492ae88d6ccad56cf, has SHA-256 05b6d1cd6092a9e2e18a5003a5a1faeb73b8a8d9b4fd7533f7f24bc938833436. The exact evidence handoff to #212 requests a bounded, credential-safe startup diagnosis and sandbox-preserving runner/helper correction before a fresh exact-head browser run. No unsandboxed retry, acceptance relaxation or successful-browser claim is made. Queued/skipped or predecessor checks are not current passing proof. The #147 ordinary-deadline review finding stays unresolved until this successor delta is actually integrated there. No counted approval, GitHub merge, protected-main delivery or release is claimed.

Historical predecessor verification (not current-head evidence)

At the prior verification cut, the exact head was d3c29359fd10e540ca9b3b2723bde6f94866cdb6, with ordinary merge parents c208668ce3aa079059acc1016646ed7240797ac0 and current #147 3dff28d9bf2dd27b72507e39979d51b8bf140fb4.

Current-parent repair

The existing ordinary-teardown implementation keeps one monotonic shared polling deadline for the exact browser root and already sampled process identities, with separate evidence outcomes. Its production delta and two child-owned tests are retained. No new timeout, polling rule, success exemption or retry is added.

Before adoption, native discovery collected zero of the current parent's six cleanup-review methods. Restoring them exposed two ordinary protocol-fault subcases still injecting the old individual root waiter (6 methods, 2 failures in 10.108 seconds). The full 229-test replay then exposed three sibling failure-observer cases with the same stale injection. Both existing tests now inject paired outcomes into the actual shared observer and assert the exact root-only identity tuple. All prior failure, cleanup, error-type and redaction assertions remain; incomplete capture explicitly cannot invent full process-set termination evidence.

Fresh verification

All 229 Python contracts and compileall pass on macOS. The same 229 contracts pass without skips in the existing Colima Linux environment, with complete tracked-file SHA-256 manifest parity 0f5f93ed8789843ca4f228d1117328d029e3fab461f0450c75964f2ef6b98324. The parent four shared-observer tests, ordinary call-order contract, five root-failure tests and six review-evidence methods remain executed. All Rust 1.97.1 fmt/check/workspace tests/strict Clippy/rustdoc gates pass; pinned nightly enforces numerical 100% coverage at 415 functions, 3555 lines, 4444 regions and 476 branches. warning: --branch option is unstable remains distinct from numerical enforcement.

Acceptance boundary

This is a local/source integration result, not real pinned-Chromium teardown, cross-platform supervision, cgroup ownership, post-sample descendant discovery or OS-wide orphan-absence proof. Parent #147's ordinary-wait review thread stays unresolved until this child delta is actually integrated there. New exact-head hosted CI/compatibility and review evidence must execute independently; predecessor, cancelled, queued and skipped checks are not passing evidence. Keep Draft. No workflow/ruleset/secret change, force push, counted approval, GitHub merge, protected-main shipment or release is claimed.

@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 marked this pull request as ready for review August 14, 2026 04:41
@seonghobae
seonghobae marked this pull request as draft August 14, 2026 08:09
…teardown deadline

- Resolve run_mv3_compatibility.py by keeping the ordinary-teardown
  process-set termination evidence computation alongside the realigned
  parent's session/driver cleanup-failure classification.
- Resolve CHANGELOG.md by keeping the parent's refined pinned-Chromium
  identity entry plus this lane's forced-close and ordinary teardown
  shared-deadline entries.
- Update the shared-teardown contract to assert the same one-waiter
  ordering invariant against the realigned bounded termination helpers.
devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae
seonghobae marked this pull request as draft August 27, 2026 01:01
…red-teardown-deadline' into test/agent-task-shared-teardown-deadline

Signed-off-by: Seongho Bae <me@seonghobae.me>
Adopt the current forced-close parent and reconcile inherited observer injections with the existing ordinary shared waiter.

Retain every failure assertion and reject invented process-set evidence after root-only capture. No new production timeout or polling change.

Commit-Message-Assisted-by: Codex (via Codex)
Signed-off-by: Seongho Bae <me@seonghobae.me>
Reuse the reviewed parent contract without changing its assertions. On the shared-deadline predecessor it exposes three sandbox-disabled lanes and the missing browser-crash lane. Keep this RED commit local until the ordinary parent merge restores the security contract.

Commit-Message-Assisted-by: Codex (via Codex)
Signed-off-by: Seongho Bae <me@seonghobae.me>
Ordinarily merge #148 at 0135984 after the inherited sandbox contract reproduced RED. Preserve every parent production change and the existing ordinary shared-deadline delta, child tests, failure evidence and exact process identity boundaries.

All 253 Linux Python contracts pass without skips; full Rust 1.97.1 gates and numerical production coverage remain 100%. Keep Draft and the canonical workflow startup failure distinct from source verification. No workflow, dependency, timeout or acceptance-gate change.

Commit-Message-Assisted-by: Codex (via Codex)
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae
seonghobae changed the base branch from test/agent-task-forced-close-shared-teardown-deadline to test/agent-task-browser-crash-recovery-evidence September 6, 2026 07:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant