Releases: sassanh/quiper
Releases · sassanh/quiper
Release v2.6.0
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
Automated nightly build from the latest main branch.
Built on:
Commit: 4279bd1
Release v2.5.1
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
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.mdfor 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
ServiceLaunchShortcutRowfor improved clarity.
Fixed
- Blur Material Updates: Fixed blur material style changes not applying on macOS 26 (Tahoe) by using
NSVisualEffectViewconsistently 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
Added
- Added unit tests for
CollapsibleSelectorto 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
MainWindowControllerlogic into dedicatedWebViewManagerandFindBarViewControllercomponents to improve code organization. - Xcode Integration: Modified the "Quit Quiper" shortcut to behave efficiently based on the environment:
- Xcode Environment: Uses
Cmd+Qto allow quick quitting during development, preventing accidental quits of the production app. - Standard Environment: Retains the safe
Cmd+Ctrl+Shift+Qshortcut to prevent accidental quits during normal usage.
- Xcode Environment: Uses
- WebView Transparency: Enabled
drawsBackground = falseon WebViews, allowing the window background to show through when the loaded page has a transparent background. - Renamed
OverlaySegmentedControltoSegmentedControland 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, andSettingsDividercomponents toComponents/SettingsComponents.swift. - File Naming: Renamed
ActionsSettingsView.swifttoShortcutsSettingsView.swiftto better reflect its contents. - Service Hotkeys Layout: Updated
ServiceLaunchShortcutRowto 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
Added
- Collapsible selectors: Introduced
CollapsibleServiceSelectorandCollapsibleSessionSelectorfor 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
HybridSelectorInteractionsUITeststo test the functionality of the collapsible selectors. - CI: Configured automated upload of the full
TestResult.xcresultbundle 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
AppControllerto 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
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
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) fromMainWindowController.
Fixed
- Resolves Swift 6 concurrency warnings in webview title observation.
Release v2.2.1
Added
- Shortcut UI Tests: Added isolated test classes for in-app shortcuts with proper verification:
ZoomShortcutsUITests: TestsCmd+=/Cmd+-with width-based relative zoom verificationReloadShortcutsUITests: TestsCmd+rwith dynamic random ID change detectionFindShortcutsUITests: TestsCmd+f(open),Cmd+g/Enter(forward),Cmd+Shift+g/Shift+Enter(backward),Escape(close), with custom HTML containing multiple search targetsGeneralShortcutsUITests: TestsCmd+,(Settings),Cmd+h(Hide),Cmd+w(Close)
- Test Infrastructure: Added
--test-custom-engines-pathargument for file-based HTML content injection in UI tests
Changed
- Test Custom Engines: Refactored
--test-custom-enginesto 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
Added
- UI Tests: Added
CustomActionUITeststo robustly verify the custom action lifecycle, script execution, and error handling. - Unit Tests: Added
MainWindowControllerTeststo verify core logic like service selection. - Test Infrastructure: Added support for
DistributedNotificationbased test signaling (app.sassanh.quiper.test.beep) to verify system audible alerts without UI inspection. - Development: Added
scripts/generate_icons.shto automate app icon generation.
Changed
- Codebase Cleanup: Removed legacy
sharefunctionality 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
LaunchShortcutsUITeststo align with the robust patterns ofNavigationShortcutsUITests, 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
SettingsViewandMenulayouts for consistent spacing and alignment.