Skip to content

feat(screenshot): add native capture and editing plugin - #412

Open
idev19 wants to merge 1 commit into
ggbond268:mainfrom
idev19:codex/snap-screenshot-plugin
Open

feat(screenshot): add native capture and editing plugin#412
idev19 wants to merge 1 commit into
ggbond268:mainfrom
idev19:codex/snap-screenshot-plugin

Conversation

@idev19

@idev19 idev19 commented Sep 10, 2026

Copy link
Copy Markdown

Adds Screenshot as a native MacTools plugin, adapted from Snap. It provides region/window capture, quick copy, annotations, local OCR and QR recognition, pinned images, scrolling screenshots, and silent region recording on macOS 15 or later. Other features support macOS 14.

The plugin uses MacTools' permission cards, declarative settings, action discovery, and optional shortcuts. It exposes capture and quick-capture as foreground interactive actions. Preferences use plugin-scoped storage; disabling or unloading the plugin closes its windows and cancels pending work. Recording and scrolling exclude only their own controls, so MacTools windows remain capturable. Exported files are preserved on uninstall.

  • Adds the native bundle manifest and build configuration, English/Simplified Chinese UI resources, all 11 marketplace metadata locales, documentation, and a plugin changelog fragment.
  • Registers the action provider in runtime snapshot and E2E coverage inventories. No PluginKit API, root project targets, signed catalogs, app versions, or third-party dependencies change.

Validation:

  • All 254 repository script tests passed (make script-tests, with SDK/cache paths set for the local Command Line Tools installation).
  • MacToolsPluginKit and the complete Screenshot module compiled in Swift 6 mode for arm64 with a macOS 14 deployment target; the plugin also passed x86_64 type checking with SDK 26.5.
  • All 40 adjacent regression test methods passed in a temporary standalone assertion runner, including synthetic image rendering, late recognition/capture results, recording finalization, permission/action routing, hidden-window editing, and control-window exclusion. The committed tests remain native XCTest; the runner was only used because this machine has Command Line Tools without XCTest.
  • Manifest projection, generated plugin targets, localization coverage/format arguments, changelog validation, and git diff --check passed.

Still to verify with a full Xcode installation: the host build and native XCTest run, including PluginRuntimeActionSnapshotTests. Manual checks of real capture/recording, mixed-scale displays, and system permission prompts are also pending; the checklist is in the Screenshot guide.

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