Skip to content

Releases: sassanh/quiper

Release v2.6.0

27 Dec 02:40
v2.6.0

Choose a tag to compare

Added

  • Custom Blur Radius: Implemented precise variable blur control for window background.

Changed

  • Window Hierarchy: Updated window hierarchy handling to support dynamic removal of effect views, improving performance and test reliability.

Quiper Development build

31 Dec 00:20

Choose a tag to compare

Pre-release

Automated nightly build from the latest main branch.

Built on:
Commit: 4279bd1

⚠️ This is a pre-release build for testing purposes only.

Release v2.5.1

26 Dec 01:56
v2.5.1
e72c47b

Choose a tag to compare

Fixed

  • Color Settings Saving: Fixed potential color data corruption when saving custom colors by ensuring safe sRGB conversion (CodableColor).
  • Focus Restoration: Fixed an issue where the main window would not regain focus after closing the Settings window via the close button. Implemented robust async focus restoration and updated UI tests to verify strict focus state.

Release v2.5.0

24 Dec 01:32
v2.5.0
f9a83ab

Choose a tag to compare

Added

  • Modifier Key Expansion: Holding the modifier keys for session (e.g. Cmd+Shift) or service (e.g. Cmd+Ctrl) shortcuts now automatically expands the corresponding collapsible selector in the header for quick visibility.
  • Color Scheme Control: New appearance setting to force Light or Dark mode, or follow the system setting.
  • Per-Theme Window Backgrounds: Window appearance settings (blur material or solid color) can now be configured separately for Light and Dark themes. When using "System" color scheme, both theme settings are shown for customization.

Changed

  • Updated default window appearance to use "Solid Color" mode with a refined teal-grey tint.
  • Documentation Refined: Reorganized README.md for better flow and clarity, updated all screenshots with fresh 80% WebP assets, and added 'Custom Actions' documentation.
  • Service Hotkeys Layout: Reverted to pre-2.4.0 vertical layout in ServiceLaunchShortcutRow for improved clarity.

Fixed

  • Blur Material Updates: Fixed blur material style changes not applying on macOS 26 (Tahoe) by using NSVisualEffectView consistently across all macOS versions.
  • Solid Color Background: Fixed solid color mode rendering incorrectly (either covering all content or showing nothing). Now uses layer-based background coloring while keeping content visible.

Release v2.4.0

22 Dec 14:30
v2.4.0
b527bd9

Choose a tag to compare

Added

  • Added unit tests for CollapsibleSelector to verify initialization, state management, and delegate callbacks.
  • Custom CSS Injection: Added support for injecting custom CSS into engine sessions.
    • Added "Custom CSS" editor in Engine settings, allowing users to override styles for any service.
    • Configured default transparent backgrounds for ChatGPT, Gemini, Grok, X, and Google to leverage the new WebView transparency.
  • Appearance Settings Tab: New dedicated tab for visual customization, containing Dock icon visibility and Selector display mode settings.
  • Updates Settings Tab: Separated update-related settings (version info, check/download preferences) into their own tab.
  • Window Appearance Settings: Added configurable window background options:
    • Choose between blur effect (with selectable material) or solid color mode
    • Solid color mode includes color picker and opacity slider
    • Changes apply in real-time without restart

Changed

  • Refactored MainWindowController logic into dedicated WebViewManager and FindBarViewController components to improve code organization.
  • Xcode Integration: Modified the "Quit Quiper" shortcut to behave efficiently based on the environment:
    • Xcode Environment: Uses Cmd+Q to allow quick quitting during development, preventing accidental quits of the production app.
    • Standard Environment: Retains the safe Cmd+Ctrl+Shift+Q shortcut to prevent accidental quits during normal usage.
  • WebView Transparency: Enabled drawsBackground = false on WebViews, allowing the window background to show through when the loaded page has a transparent background.
  • Renamed OverlaySegmentedControl to SegmentedControl and moved it to a dedicated file for clarity.
  • Settings Reorganization: Restructured settings into five focused tabs: Engines, Shortcuts, General, Appearance, and Updates.
  • Global Shortcut: Moved the "Show/Hide Quiper" shortcut from General to the Shortcuts tab for better discoverability.
  • Code Structure: Extracted reusable SettingsSection, SettingsRow, SettingsToggleRow, and SettingsDivider components to Components/SettingsComponents.swift.
  • File Naming: Renamed ActionsSettingsView.swift to ShortcutsSettingsView.swift to better reflect its contents.
  • Service Hotkeys Layout: Updated ServiceLaunchShortcutRow to match the compact horizontal layout used by custom action rows.

Fixed

  • Service Selector Tooltips: Fixed tooltips always appearing on hover. Tooltips now only appear when the label is truncated.
  • Collapsible Selector Drag: Fixed drag-and-drop reordering not working in the collapsible service selector's expanded view.

Release v2.3.0

21 Dec 12:21
v2.3.0
17a2c8c

Choose a tag to compare

Added

  • Collapsible selectors: Introduced CollapsibleServiceSelector and CollapsibleSessionSelector for a more compact header.
  • "Selector Display" setting: New option in Startup settings with Expanded, Compact, and Auto modes. Auto mode dynamically switches to compact view when the window width is below 800px.
  • Syncing selectors: Both static and collapsible selectors stay perfectly in sync when switching engines or sessions.
  • Fast Selector Tooltips: Added custom fast-appearing tooltips (200ms delay) to service and session selectors (both static and collapsible) to show full names and page titles on hover. Tooltips are left-aligned and positioned below the elements.
  • Fast Title Tooltip: Hovering over the page title in the header now shows a fast-appearing custom tooltip with the full title.
  • Tests: Added HybridSelectorInteractionsUITests to test the functionality of the collapsible selectors.
  • CI: Configured automated upload of the full TestResult.xcresult bundle on failure. This provides comprehensive debugging data (screenshots, logs, and timelines) for diagnosing flaky UI tests in GitHub Actions.

Changed

  • Unified settings management: Centralized settings window logic in AppController to reduce duplication and improve reliability.

Fixed

  • Fixed friend domain navigations (like X login in Grok) opening in native apps instead of staying in the webview. Uses a WebKit policy that bypasses Universal Links for configured friend domains.
  • Fixed a bug where dragging to reorder engines would unexpectedly open the settings window due to circular notification triggers.
  • Fixed synchronization issues where newly reordered services weren't immediately reflected in the collapsible overlay.

Release v2.2.3

17 Dec 12:54
v2.2.3
c64d535

Choose a tag to compare

Fixed

  • Fixed "Operation not permitted" error during updates by implementing manual post-build code signing. This allows the app to retain necessary entitlements (e.g., downloads.read-write) without Xcode automatically enforcing the App Sandbox, which blocks self-updates.

Release v2.2.2

16 Dec 23:29
v2.2.2
51b0c59

Choose a tag to compare

Added

  • Display the active session's title in the overlay header, positioned between the service and session selectors.

Changed

  • Removed unused legacy helper code (configureItem, menuItem, keyEquivalent, initiateDownload) from MainWindowController.

Fixed

  • Resolves Swift 6 concurrency warnings in webview title observation.

Release v2.2.1

16 Dec 22:03
v2.2.1
95d967c

Choose a tag to compare

Added

  • Shortcut UI Tests: Added isolated test classes for in-app shortcuts with proper verification:
    • ZoomShortcutsUITests: Tests Cmd+=/Cmd+- with width-based relative zoom verification
    • ReloadShortcutsUITests: Tests Cmd+r with dynamic random ID change detection
    • FindShortcutsUITests: Tests Cmd+f (open), Cmd+g/Enter (forward), Cmd+Shift+g/Shift+Enter (backward), Escape (close), with custom HTML containing multiple search targets
    • GeneralShortcutsUITests: Tests Cmd+, (Settings), Cmd+h (Hide), Cmd+w (Close)
  • Test Infrastructure: Added --test-custom-engines-path argument for file-based HTML content injection in UI tests

Changed

  • Test Custom Engines: Refactored --test-custom-engines to accept a count parameter (e.g., --test-custom-engines=4)
  • ReorderServicesUITests: Updated to use --test-custom-engines=4
  • CustomActionUITests: Updated to use --test-custom-engines=2

Fixed

Release v2.2.0

16 Dec 00:07
v2.2.0
3818383

Choose a tag to compare

Added

  • UI Tests: Added CustomActionUITests to robustly verify the custom action lifecycle, script execution, and error handling.
  • Unit Tests: Added MainWindowControllerTests to verify core logic like service selection.
  • Test Infrastructure: Added support for DistributedNotification based test signaling (app.sassanh.quiper.test.beep) to verify system audible alerts without UI inspection.
  • Development: Added scripts/generate_icons.sh to automate app icon generation.

Changed

  • Codebase Cleanup: Removed legacy share functionality and associated tests to streamline the codebase.
  • Launch Shortcuts UI Tests: Fixed a race condition where tests would type hotkeys before the application had finished registering them, by synchronizing the "Saved" status indicator with the hotkey registration task.
  • Launch Shortcuts UI Tests (Refactor): Refactored LaunchShortcutsUITests to align with the robust patterns of NavigationShortcutsUITests, replacing flaky "Saved" label checks with deterministic button value verification and implementing comprehensive functional verification for global hotkeys and cleanup.
  • Documentation: Added comprehensive companion documentation for all UI tests in QuiperUITests/UserFlows, covering setups, actions, and expected results for templates, updates, custom actions, and service management.
  • Icons: Updated App Icon to a new squircle design.
  • UI: Refined SettingsView and Menu layouts for consistent spacing and alignment.

Fixed