Skip to content

test(mv3): prove bounded bookmark mutation compatibility - #56

Draft
seonghobae wants to merge 3 commits into
test/mv3-downloadsfrom
test/mv3-bookmark-mutation
Draft

test(mv3): prove bounded bookmark mutation compatibility#56
seonghobae wants to merge 3 commits into
test/mv3-downloadsfrom
test/mv3-bookmark-mutation

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Partial implementation of #27.

Buyer-visible gap

The pinned real-Chromium MV3 lane previously proved bookmark API visibility only through read-only chrome.bookmarks.getTree(). A defensible compatibility claim also needs one controlled mutation lifecycle that creates, reads back, and removes test state without touching an ambient human profile.

Dependency

This Draft remains stacked on exact PR #43 head 27ce89066ed1473dcd66eb26a2f91becf9df5424. It is not independently integrable while #43 remains active.

TDD and RCA

The lane first added a fail-first contract requiring the controlled fixture to create one deterministic bookmark for the 127.0.0.1/page.html sender, read it back, and remove it in finally cleanup.

Production then implemented the bounded lifecycle. The real pinned-Chromium workflow succeeded, but exact CI exposed a separate repository-contract defect: tests/test_mv3_bookmarks_history_contract.py still required the historical chrome.bookmarks.getTree source shape even though the executable fixture had intentionally moved to chrome.bookmarks.creategetremove.

The repository contract was corrected rather than weakening the browser proof. Current exact head is e1099e35ac000c7bf87ea75666cfdd928a386370.

Current implemented boundary

The fixture now:

  • accepts only a parseable http://127.0.0.1/.../page.html controlled sender with no embedded credentials;
  • creates one deterministic compatibility bookmark;
  • requires a non-empty returned bookmark identifier;
  • reads the exact bookmark back and verifies ID, title, and source URL;
  • removes the bookmark in finally cleanup and fails the evidence if cleanup fails;
  • retains the separate read-only history compatibility check; and
  • emits only readiness evidence, never exception text or user bookmark content.

Exact-head evidence

On unchanged exact head e1099e35ac000c7bf87ea75666cfdd928a386370:

  • CI run 31427219564: success;
  • Manifest V3 Compatibility run 31427220684: success against real pinned Chromium;
  • CodeRabbit exact-head commit status: success; and
  • GitHub reports the PR mergeable.

No predecessor-head result is transferred to this head.

Scope boundary

This is compatibility evidence only. It does not grant OriginWeave Agent bookmark authority, expose a general bookmark tool, mutate a human profile, add model calls, create persistence ownership, or complete the full issue #27 extension matrix. Chromium permission and browser compatibility remain separate from OriginWeave Agent capability/policy authority.

Canonical product documentation remains owned by PR #44. Keep this PR Draft while prerequisite #43 remains active. This scheduled actor does not merge or self-approve.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8e1d3710-d065-426c-85a7-105dfd341c26

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant