Skip to content

test(mv3): prove ephemeral Agent Task profile isolation - #49

Draft
seonghobae wants to merge 37 commits into
test/mv3-downloadsfrom
test/mv3-ephemeral-profile-isolation
Draft

test(mv3): prove ephemeral Agent Task profile isolation#49
seonghobae wants to merge 37 commits into
test/mv3-downloadsfrom
test/mv3-ephemeral-profile-isolation

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Buyer-visible gap

Partial implementation of #28. The pinned real-Chromium compatibility lane must prove that every Agent Task trial starts from an empty profile, reuses only that trial-local profile across the controlled restart pair, removes it afterwards, and does not leave inherited Chromium descendants alive after ChromeDriver exits.

Fresh live stack

Current exact prerequisite PR #43 head is 28e79febd47361c5fd41e45db7e1429b179afdd1 (test/mv3-downloads). Current exact child head is 55ddddc26f309323d717684540236e1fa768edbc (test/mv3-ephemeral-profile-isolation).

Fresh exact comparison #43#49 reports ahead 37 / behind 0, with merge base exactly the live prerequisite. The child-owned semantic delta is exactly three files:

  • scripts/ci/run_mv3_compatibility.py;
  • tests/test_mv3_ephemeral_profile_contract.py; and
  • tests/test_mv3_process_group_cleanup_contract.py.

The child therefore descends cleanly from the current prerequisite after parent movement. The previously documented prerequisite/head pair ed15185a... / 90849dfb... is predecessor narrative only and is not promoted as current evidence. No prerequisite/predecessor check or review transfers.

Implemented boundary

The current head preserves the prerequisite's downloads/status/executable/diagnostic/cleanup and bounded ChromeDriver-startup-output hardening and adds:

  • one fresh temporary Chromium profile per compatibility trial;
  • reuse of only that trial-local profile across the controlled initial/restart pair;
  • profile deletion after the pair, with the profile path absent from returned evidence;
  • ChromeDriver launch in a fresh operating-system session;
  • process-group SIGTERM with bounded SIGKILL recovery so inherited Chromium descendants do not retain the supposedly ephemeral profile;
  • bounded fallback behavior for already-gone or failing process-group signals without catch-all suppression;
  • causal error preservation: a primary browser-pass failure remains primary if session cleanup/process teardown also fail, while a reviewed session-delete failure remains the cause of typed WebDriverSessionCleanupError when teardown also fails; and
  • inherited prerequisite ChromeDriver startup authority: malformed status shapes remain bounded protocol failures, a Ready endpoint must identify the pinned ChromeDriver build, and startup records are consumed with bounded reads.

The process-group behavior is controlled Linux CI evidence, not a claim of a complete cross-platform production process supervisor.

Exact-current verification

On unchanged exact child head 55ddddc26f309323d717684540236e1fa768edbc against unchanged exact prerequisite 28e79febd47361c5fd41e45db7e1429b179afdd1 at the latest refetch:

  • ancestry: ahead 37 / behind 0, merge base exactly the live prerequisite;
  • semantic child delta: exactly the three files listed above;
  • CI run 33201171274: success;
  • Manifest V3 Compatibility run 33201171264: success;
  • formal reviews currently returned: none;
  • inline review threads currently returned: none; and
  • GitHub reports the PR Draft and mergeable.

Feature-base organization security/review workflows not executed on this exact head are absent evidence, not passing. No prerequisite, predecessor, queued, skipped, cancelled, synthetic, status-only, or model-only result is promoted as current proof.

Scope / governance

This remains compatibility evidence, not a production browser adapter. It adds no default-profile access, raw credential handling, persistent profile storage, extension grant widening, general browser-protocol authority, model call, workflow mutation, or release claim. Keep Draft while #43 remains active. Protected-main AGENTS.md forbids this scheduled actor from merging, self-approving, altering workflows, adding secrets, weakening checks, tagging, or publishing.

@coderabbitai

coderabbitai Bot commented Aug 10, 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.

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