Skip to content

feat: add Safari support#2

Merged
balloman merged 2 commits into
mainfrom
fix-safari-idle-callback
Jul 8, 2026
Merged

feat: add Safari support#2
balloman merged 2 commits into
mainfrom
fix-safari-idle-callback

Conversation

@balloman

@balloman balloman commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add a Safari WXT dev script
  • Use a browser action popup so Safari MV2 gets a normal toolbar popup
  • Avoid Safari content-script startup crashes when requestIdleCallback is unavailable
  • Add local agent guidance requiring conventional-commit PR titles

Validation

  • pnpm lint
  • pnpm format:check
  • pnpm wxt build -b safari

Summary by CodeRabbit

  • Bug Fixes
    • Improved startup reliability by canceling pending initialization when the page changes, helping prevent unnecessary work or duplicate loading.
  • Chores
    • Updated the extension version to 2.0.1.
    • Added Safari-specific development support.

@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@balloman, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 57 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: dfdcb932-ef81-4460-9101-6ec58d0f2598

📥 Commits

Reviewing files that changed from the base of the PR and between ed1fdb3 and b558f77.

📒 Files selected for processing (3)
  • AGENTS.md
  • package.json
  • src/entrypoints/content/index.tsx
📝 Walkthrough

Walkthrough

The content script’s initial mount scheduling is now cancelable and is canceled during invalidation before cleanup. The repository also adds agent instructions, bumps the package version, and adds a Safari development script.

Changes

Cancelable Mount Scheduling

Layer / File(s) Summary
Cancelable scheduler and invalidation cleanup
src/entrypoints/content/index.tsx
Introduces cancelInitialMount with idle-callback or timeout fallback cancellation, and calls it in ctx.onInvalidated before disconnecting the observer and running cleanup.

Repository Metadata Updates

Layer / File(s) Summary
Agent instructions and package metadata
AGENTS.md, package.json
Adds AGENTS.md instructions, updates the package version, and adds the dev:safari script.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding Safari support.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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.

@balloman
balloman force-pushed the fix-safari-idle-callback branch from 8bb0aa4 to 59b323d Compare July 7, 2026 17:56
@balloman balloman changed the title Fix Safari startup when requestIdleCallback is unavailable fix: handle Safari without requestIdleCallback Jul 7, 2026
@balloman
balloman force-pushed the fix-safari-idle-callback branch from 59b323d to 70b522e Compare July 7, 2026 17:59
@balloman balloman changed the title fix: handle Safari without requestIdleCallback feat: add Safari support Jul 7, 2026
@balloman
balloman force-pushed the fix-safari-idle-callback branch 4 times, most recently from 42a5d95 to ed1fdb3 Compare July 8, 2026 15:48
@balloman
balloman force-pushed the fix-safari-idle-callback branch from ed1fdb3 to b558f77 Compare July 8, 2026 15:50
@balloman
balloman merged commit 3896b83 into main Jul 8, 2026
4 checks passed
@balloman
balloman deleted the fix-safari-idle-callback branch July 8, 2026 15:51
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