Repository navigation
feat(clipper): Safari build of the web clipper - #283
Merged
Merged
Conversation
A MV3 extension in extensions/browser: clip the page (Readability), the selection or a picked element to Markdown with MarkDownload-style templates, and send it to Lens through a namespace's import webhook. Shared core for the Firefox, Edge and Safari targets; CI builds a zip per target and attaches them to releases. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uA6PhZXrmpgsbfDh2W23u
Adds a safari target overlay and wraps dist/safari in a macOS app with safari-web-extension-converter and xcodebuild. A macOS workflow builds it on pull requests and attaches the zip to releases; unsigned unless the SAFARI_TEAM_ID secret is set. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TNsWRU4vErn1QczKcuchkt
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TNsWRU4vErn1QczKcuchkt
Safari extensions update only through the App Store, so a release now signs and uploads the app when the App Store Connect secrets exist and skips it otherwise. The release workflow starts the Safari one. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TNsWRU4vErn1QczKcuchkt
19 tasks done
# Conflicts: # .github/workflows/release.yml # docs/web-clipper.md
…t zip Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TNsWRU4vErn1QczKcuchkt
# Conflicts: # docs/web-clipper.md
Merged
19 of 20 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Adeel · project thread
Description
Before: the web clipper (#277) had no Safari build; Safari needs an extension carried inside a macOS app, and updates only through the App Store.
After:
extensions/browser/safari/build.shbuilds the clipper's Safari target and wraps it with Apple'ssafari-web-extension-converterandxcodebuildinto Lens Clipper.app, zipped aslens-clipper-safari-app.zip. A new Safari clipper workflow builds it on macOS for every PR touching the extension and attaches the zip to each release (the Release workflow starts it). When the App Store Connect secrets exist (APPLE_TEAM_ID,APPLE_API_KEY_ID,APPLE_API_ISSUER,APPLE_API_KEY_P8),safari/app-store.shsigns it through Xcode cloud signing and uploads it, so testers update through TestFlight and everyone else through the Mac App Store; without them the upload is skipped.How:
targets/safari.jsonis the only manifest change (Safari 16.4+, hosts ashost_permissionssince Safari grants them per site anyway). No core files changed.docs/web-clipper.mdgains a Safari section;safari/README.mdcovers building and installing.Motivation and Context
Adeel asked for the web clipper on every major browser, with auto-updates; this is the Safari one.
Steps to reproduce (if appropriate):
The Safari clipper check on this PR builds the app on macOS (green). Locally on a Mac with Xcode:
extensions/browser/safari/build.sh.Types of changes
Checklist:
docs/accordingly.Done questions (AGENTS.md)
dev.lens.app.), iOS build, App Store listing.🤖 Generated with Claude Code
https://claude.ai/code/session_01TNsWRU4vErn1QczKcuchkt