Skip to content

fix(browser): retain forced-close teardown evidence on failure - #146

Draft
seonghobae wants to merge 37 commits into
test/agent-task-failure-process-set-termination-evidencefrom
test/agent-task-forced-close-failure-teardown-evidence
Draft

fix(browser): retain forced-close teardown evidence on failure#146
seonghobae wants to merge 37 commits into
test/agent-task-failure-process-set-termination-evidencefrom
test/agent-task-forced-close-failure-teardown-evidence

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Partial implementation of #28. This Draft owns retained forced-close failure/cleanup evidence for the controlled pinned-Chromium Agent Task lane.

Current dependency and concurrent repair adoption

Live parent #145 is exact bb5e8f834c37f9ce35f84db8ed1146da3659d6aa. The scheduled lane first repaired the stale parent edge with normal two-parent commit 11944410450684809ee1a71a35c77abafc5358db, preserving the child forced-close/diagnostic delta while inheriting #145's CHANGELOG, doctoring, and five-test failure-observation contract.

A concurrent writer then produced valid reviewed-cleanup repair d636a1829332610ada458df7b5b9d267f038a2f8: it restores the pre-shutdown exit-count gate, preserves validated ordinary driver/cleanup evidence, bounds terminal HTTP protocol failures without remote diagnostic text, removes an obsolete HTTP-body close recognizer, and adds the focused review-evidence contract. Commit 812c0020bd2ecdb3eda39d999ed3327647550bdf keeps that repair as first-parent history and adopts 119444... as second parent. This is not treated as a race or reverted.

Current #146 is therefore exact 812c0020bd2ecdb3eda39d999ed3327647550bdf, open, Draft, and ahead of current #145 by 37 commits / 0 behind, with merge base exactly #145. Effective parent-relative scope is 11 paths: CHANGELOG/doctoring, the compatibility runner, the inherited failure-process contract, forced-close/process cleanup and review-evidence tests, diagnostic/startup tests, and the MV3 repository contract. No .github/**, dependency, ruleset, secret, release, or publication file is in the delta.

Evidence boundary

The lane retains bounded browser/root/process-set identity, driver/session cleanup, private-message redaction, narrow startup retry classes, exact failure typing, and fail-closed invalid cleanup evidence. Successful cleanup never converts a failed task to success. Controlled injected process observations are control-flow evidence, not live Linux/Chromium termination proof.

Exact-current verification and workflow-owner finding

Fresh exact-head native runs for 812c0020bd2ecdb3eda39d999ed3327647550bdf are now terminal GREEN:

  • CI 33957036553: success. Rust contracts job 101282122320 checked out exact 812c002... and passed Python repository contracts, canonical formatting, workspace check, full tests, Clippy and API documentation.
  • Production coverage job 101282122318: success, including exact production coverage enforcement on the same head.
  • Manifest V3 Compatibility 33957036650: success on exact 812c002....

The prior 119444... CI 33956932683 / MV3 33956932698 were cancelled after this newer same-PR head arrived and remain predecessor evidence only.

A separate workflow-owner finding remains valid: #145, the base feature branch for this Draft, still carries CI blob f804f749663da089d9bfe00ca9e5d7e7b4714aa with bare pull_request, old concurrency, and no Draft/closed job guard, whereas protected main@87c4daa... carries blob 5414060013ad16c4c95ca43553a92e99eea705b5 with explicit lifecycle/repository+PR concurrency and Draft/closed guards. Thus stacked PRs can execute stale base-branch workflow semantics even when the leaf delta does not touch .github/**. Canonical issue #279 has exact evidence in comment 5550806843; this product lane does not copy or weaken workflow policy.

All four returned Devin threads are resolved on current source. No predecessor GREEN, absent security result, COMMENT review, or this native/MV3 proof is promoted to qualifying independent approval or protected-main acceptance. A qualifying independent approval remains separately required by the live ruleset.

Truth boundary

This remains controlled CI evidence for browser/root/process-set identity, startup probing, diagnostics, and cleanup actions owned by the compatibility runner. It does not establish cgroup/task ownership, processes created only after sampling, OS-wide orphan absence, cross-platform supervision, authenticated browser ownership, or a shipped product browser API.

Keep Draft while the prerequisite stack and workflow/governance dependency remain active. Do not merge, Close, self-approve, bypass, force-push, destructively rebase, weaken checks, mutate workflows/rulesets/secrets, tag, release, or publish from this lane.

@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(browser): retain forced-close teardown evidence fix(browser): retain forced-close teardown evidence on failure Aug 14, 2026
@seonghobae
seonghobae marked this pull request as ready for review August 14, 2026 09:19
@seonghobae
seonghobae marked this pull request as draft August 19, 2026 02:08

@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 4 potential issues.

Open in Devin Review

Comment thread scripts/ci/run_mv3_compatibility.py
Comment thread scripts/ci/run_mv3_compatibility.py
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
…set-termination-evidence' into test/agent-task-forced-close-failure-teardown-evidence

Signed-off-by: Seongho Bae <me@seonghobae.me>
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>

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Exact-head review after non-force parent adoption. The stale-parent defect is repaired: live #145 bb5e8f834c37f9ce35f84db8ed1146da3659d6aa is now the merge base, compare is 35 ahead / 0 behind, and the PR is mergeable. The integration preserves #146's forced-close/diagnostic delta while inheriting #145's CHANGELOG, doctoring, and five-test failure-observation contract; the merged failure-path test keeps the child primary_failure_type assertion rather than discarding it. Current native CI 33956932683 and MV3 33956932698 are queued, so this review is not approval and does not promote predecessor GREEN. Keep Draft until exact-head hosted/browser/security evidence and dependency gates are current.

seonghobae added a commit that referenced this pull request Sep 5, 2026
Adopt the repaired forced-close failure-evidence parent without rewriting history. Preserve #147's one-deadline teardown observer while carrying the parent's current release, doctoring, and failure-observation contract.

Signed-off-by: Seongho Bae <me@seonghobae.me>
Adopt the current parent, restore the pre-shutdown count gate, retain validated ordinary cleanup observations, and report terminal HTTP protocol failures without remote messages. Remove the obsolete HTTP-body close recognizer without changing startup retry policy or cleanup deadlines. Six new behavioral contracts cover the reproduced review findings.

Commit-Message-Assisted-by: Codex (via Codex)
Signed-off-by: Seongho Bae <me@seonghobae.me>
Preserve the concurrently pushed ordinary parent-adoption commit. The resulting source tree is identical to the fully verified cleanup-evidence repair tree.

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
Record current parent adoption through #146, reproduced evidence-boundary fixes, retained concurrent history, and complete local verification. Distinguish executed Strix, Noema gateway failure and queued replay from hosted acceptance and counted approval; preserve dated historical inventory.

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 concurrent reviewed-cleanup parent without rewriting history. The existing shared-deadline tree already contains the integrated source semantics, so preserve it exactly while advancing ancestry to the current parent.

Signed-off-by: Seongho Bae <me@seonghobae.me>
seonghobae added a commit that referenced this pull request Sep 5, 2026
Merge the original shared-deadline child onto exact current #146 without rewriting either history. The existing overlapping forced-close assertion is delegated to the dedicated shared-deadline contract so GitHub can produce a clean three-way integration; no product acceptance or protected-branch change is implied.

Signed-off-by: Seongho Bae <me@seonghobae.me>
seonghobae added a commit that referenced this pull request Sep 5, 2026
Replace the ancestry-only merge tree with the content-clean GitHub three-way synthesis built from exact current #146 and the original shared-deadline child. Preserve all reviewed parent cleanup-evidence semantics and the child shared-deadline runtime/test delta without force-pushing history.

Signed-off-by: Seongho Bae <me@seonghobae.me>

seonghobae commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

Forced-close exact-head hosted-evidence writer RELEASED — 2026-09-06 19:08 UTC

OriginWeave hourly writer releases the bounded #146 PR-state/evidence-only slice at unchanged exact head 812c0020bd2ecdb3eda39d999ed3327647550bdf, exact live parent #145 bb5e8f834c37f9ce35f84db8ed1146da3659d6aa, Draft. All four returned Devin threads remain resolved and no source writer was acquired.

The PR body now records terminal exact-head hosted proof and was read back successfully: CI 33957036553 succeeded; Rust contracts job 101282122320 passed Python contracts, formatting, workspace checks, full tests, Clippy and API docs; Production coverage 101282122318 succeeded with exact coverage enforcement; MV3 33957036650 succeeded. The distinct #145 stale-workflow-generation owner finding remains with #279 and is not overwritten by this evidence update.

No source, parent, workflow, ruleset, secret, review identity, protected merge, tag or release mutation occurred. No #146 writer remains held by this lane.

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