|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -All notable changes to this project will be documented in this file. |
| 3 | +All notable user-facing changes, feature additions, and improvements to OpenClip are documented here. |
4 | 4 |
|
5 | | -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
6 | | -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 5 | +--- |
7 | 6 |
|
8 | | -## [Unreleased] |
| 7 | +## v1.0.1 - 2026-08-22 |
9 | 8 |
|
10 | | -> Pre-release. OpenClip has not shipped a tagged release yet (the project began in |
11 | | -> July 2026); the entries below summarize the current state of `main`. |
| 9 | +### Features & Improvements |
| 10 | +- **Rich Content & Formatted Text**: OpenClip captures and pastes rich text formatted with HTML and RTF, preserving text styles, headings, and links across supported applications. |
| 11 | +- **Mouse-Hold Trigger**: Added a configurable mouse-hold timer in General Preferences, allowing you to summon OpenClip simply by holding down the mouse click without dragging. |
| 12 | +- **Expanded Calendar Providers**: Added support for additional calendar services in event creation extensions. |
| 13 | +- **Normalized Popup Sizing**: Rebalanced proportions and typography across all 5 visual scale levels for crisp rendering on both Retina and standard displays. |
12 | 14 |
|
13 | | -### Added |
| 15 | +### Fixes & Stability |
| 16 | +- **Extension Trust Handling**: Fixed an issue where locally modified extensions could trigger unexpected trust warnings during editing. |
| 17 | +- **Browser Selection Reliability**: Resolved edge cases in Safari and Chromium-based browsers to ensure selections are captured instantly without lag. |
14 | 18 |
|
15 | | -- **Contextual popup bar** — select text in any app and a floating bar appears next to the selection with the actions that fit. The bar anchors to where the mouse is released and never covers the selected text. |
16 | | -- **Action-search palette** — press <kbd>⌥⌘C</kbd> to turn the bar into a fuzzy search field over the *entire* action catalog, including disabled actions. Results are ranked by recency, then bar order. |
17 | | -- **Clipboard fallback** — with no live selection the popup acts on the clipboard contents; Copy/Cut drop out automatically (`chrome.requiresLiveSelection`). |
18 | | -- **Zero-config builtins** — Search, Copy, Cut, Paste, Services, Define, Calculate, Word Completion, and a Transform group (UPPERCASE, lowercase, Title Case, camelCase, Trim Whitespace, Format JSON). |
19 | | -- **Extensions** — a unified `.openclipext` package format (JavaScript, AppleScript, shell, URL templates, key presses, Shortcuts, Services, and group sub-menus) with install from the built-in store or a file/folder, hot-reload of `~/.openclip/extensions`, and uninstall from Preferences. |
20 | | -- **Extension Store** — browse, search, and install extensions from the catalog (`openclip-extensions` submodule) inside Preferences. |
21 | | -- **Canvas content rendering** — ~~actions, AI results, long-press result cards, and previews render inside the popup panel via a content canvas instead of a separate floating panel; canvas extensions can author rich component trees~~ *(removed — see **Removed** below)*. |
22 | | -- **AI Tools** — run selected text through Apple Intelligence, a local Ollama model, OpenAI, or Claude, or hand the query to your browser. AI presets are first-class, reorderable actions, and the AI Tools bar action opens a scoped palette. |
23 | | -- **Custom action builder** — add web-search URL templates, text snippets, and shell scripts from the GUI without writing a manifest, backed by a 9,000+ SF Symbol picker plus Iconify, Font Awesome, Lucide, and Material Symbols icon search. |
24 | | -- **Deep customization** — drag to reorder the bar, disable actions, override titles and icons, and pick a Classic or Glass theme (Liquid Glass on macOS 26+, frosted material on 14–15) in System, Light, or Dark. |
25 | | -- **App Rules** — scope actions to apps with allow/deny rules, selection regexes, and required options that prompt when missing. |
26 | | -- **Onboarding & permissions** — a 4-step first-launch onboarding and Accessibility permission management with a relaunch helper. |
27 | | -- **Debug tooling** — an in-app debug-log store (ring buffer backed by OSLog) and a `--dump-logs` command-line flag. |
28 | | -- **Start at login** — native `SMAppService` integration in Preferences. |
| 19 | +--- |
29 | 20 |
|
30 | | -### Changed |
| 21 | +## v1.0.0 - 2026-08-21 |
31 | 22 |
|
32 | | -- Subprocess actions run under a 30-second watchdog (GCD timer + process-group kill) and read child output via GCD readability handlers, so stuck scripts can't wedge the run loop. |
33 | | -- Text retrieval is Accessibility-only; the clipboard-based `Cmd+C` and menu-copy fallbacks were removed so OpenClip never disturbs the clipboard while monitoring. |
34 | | -- Preferences moved to a Raycast-style `NavigationSplitView` sidebar with a tightened, grouped General tab. |
35 | | -- Group and AI bars open scoped palettes instead of floating panels; the hover "bubble" and the separate AI presets bar were removed. |
36 | | -- The extension system was unified from several ad-hoc formats into a single `.openclipext` manifest package. |
| 23 | +The initial major release of OpenClip — the fast, native floating action bar for macOS that turns selected text into instant actions. |
37 | 24 |
|
38 | | -### Removed |
| 25 | +### Floating Action Bar |
| 26 | +- **Instant Contextual Trigger**: Select text in any macOS application, and a floating action bar appears right next to your cursor with relevant actions ready to use. |
| 27 | +- **Adaptive Positioning**: Anchors to where you release the mouse, automatically positioning itself above or below to avoid covering the text you are reading. |
| 28 | +- **Three Themes**: Choose between **Glass** (macOS Liquid Glass frosted blur), **Dark** (OLED black contrast), or **Light** (clean white), fully matching your system appearance. |
| 29 | +- **Instant Hover Feedback**: Seamless buttons with smooth hover animations and pagination for longer action lists. |
| 30 | +- **Clipboard Fallback**: When activated without an active text selection, OpenClip intelligently works with your current clipboard contents. |
39 | 31 |
|
40 | | -- **Canvas feature** — the `type: "canvas"` manifest kind, the JS `openclip.showContent()`/`h()` bridge, the canvas engine and `CanvasSession*` UI, the hover preview strip, and the CalculateAction long-press result card were removed. The `menuPreview` manifest key is gone (`menuRelevance` remains); a `showResult` after-behavior now degrades to a plain leaf result, and a `type: "canvas"` manifest is rejected at validation. AI results render in a native SwiftUI result card (`AIResultCardView`) with Replace/Copy buttons and back-chevron/Esc exit. |
| 32 | +### Built-in Productivity Actions |
| 33 | +- **Smart Web Search**: Instantly search Google, DuckDuckGo, Wikipedia, or your preferred search engine, automatically formatted and encoded. |
| 34 | +- **Inline Calculator**: Highlight mathematical equations (e.g. `45 * 12 + 8%`) to calculate answers inline. |
| 35 | +- **Dictionary & Definitions**: Look up instant word definitions powered by macOS system dictionaries without opening another app. |
| 36 | +- **Word Completion & Spelling**: Automatic word completion and spelling suggestions for incomplete words. |
| 37 | +- **Text Transformations**: One-click formatting tools including **UPPERCASE**, **lowercase**, **Title Case**, **camelCase**, **JSON Pretty Print**, and **Trim Whitespace**. |
| 38 | +- **macOS Services & Sharing**: Directly access system Share extensions and Services menu items for selected text. |
41 | 39 |
|
42 | | -### Fixed |
| 40 | +### Action Search Palette |
| 41 | +- **Global Search Shortcut (Option+Command+C)**: Open a quick search palette over your entire action library using a customizable hotkey. |
| 42 | +- **Recent Action Ranking**: Quickly find actions with keyboard navigation, ranked by your recent usage. |
43 | 43 |
|
44 | | -- `validate_extension.sh` no longer rejects `service` actions that only declare `serviceName` (matches the app's `ManifestValidator`). |
45 | | -- Extension catalog: fixed logic, transport, and delivery bugs across 25 extensions (Logseq capture endpoint, Apple Music transport, counter toasts swallowing results, unicode case transforms, trailing-newline artifacts, URL/hashtag extraction, Wayback Machine gating); released as per-extension patch/minor versions. |
46 | | -- Paste no longer destroys rich text; SearchAction URLs are percent-encoded correctly. |
47 | | -- Extension installs no longer double-nest zips, uninstall matches by manifest identifier, and downloaded packages are checked for Zip-Slip paths. |
48 | | -- Concurrent extension-directory reloads are coalesced. |
49 | | -- Popup shadows no longer clip at the panel edge. |
50 | | -- Search-palette shadow clipping fixed via `.glassEffect(.clear)` + material frost. |
51 | | -- Deterministic snippet action IDs and stale-action unregistration on extension reload. |
| 44 | +### AI Assistants & Streaming Results |
| 45 | +- **Multiple AI Providers**: Connect OpenClip to Apple Intelligence, local Ollama models, OpenAI (ChatGPT), or Anthropic (Claude). |
| 46 | +- **Streaming Live Previews**: Watch AI responses stream in real time inside native result cards. |
| 47 | +- **One-Click Insert & Replace**: Paste generated AI results directly over your selected text, copy to clipboard, or expand in the preview card. |
52 | 48 |
|
53 | | -### Security |
| 49 | +### Extensions & Custom Actions |
| 50 | +- **In-App Extension Store**: Browse, search, install, and update community extensions with a single click. |
| 51 | +- **Universal Custom Action Builder**: Create custom web searches, text snippets, and scripts without writing code. |
| 52 | +- **9,000+ Icon Library**: Customize actions using native SF Symbols or search popular icon collections including Lucide, Font Awesome, and Material Symbols. |
| 53 | +- **Supported Runtimes**: Extensions support JavaScript, AppleScript, Shell scripts, URL templates, and macOS Shortcuts. |
54 | 54 |
|
55 | | -- Remote extension installs require HTTPS and validate archives against Zip-Slip traversal. |
56 | | -- AI provider API keys are stored in the Keychain, never in plain preferences. |
57 | | -- Gemini authentication uses the `x-goog-api-key` header only; credentials are never placed in URLs. |
58 | | -- OpenClip reads selections via Accessibility APIs and logs or stores nothing about them; text and extension data stay default-private in logs. |
| 55 | +### App Rules & Customization |
| 56 | +- **Action Reordering**: Rearrange actions in Preferences to build your ideal workflow. |
| 57 | +- **Per-App Rules**: Configure OpenClip to behave differently in specific apps — enable auto-paste, restrict to hotkey-only, or disable completely in games and full-screen tools. |
| 58 | +- **Preferences Interface**: Clean settings interface organized into General, Actions, App Rules, AI Services, and Extensions tabs. |
59 | 59 |
|
60 | | -[keep-a-changelog]: https://keepachangelog.com/en/1.1.0/ |
61 | | -[SemVer]: https://semver.org/spec/v2.0.0.html |
| 60 | +### Privacy & Performance |
| 61 | +- **100% Local & Private**: No analytics, no tracking, and no external telemetry. |
| 62 | +- **Direct Accessibility Integration**: Reads selected text directly via macOS Accessibility APIs with zero background battery drain. |
| 63 | +- **Secure Keychain Storage**: API keys and credentials are encrypted securely in the macOS Keychain. |
| 64 | +- **Subprocess Safety**: Scripts run in isolated process groups with automated timeouts to prevent hanging. |
| 65 | +- **Start at Login**: Built-in macOS Login Items integration for seamless system startup. |
0 commit comments