Skip to content

Changelog ​

All notable changes to SpotAsk are documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased ​

0.3.4 - 2026-11-04 ​

Floating window for selection prompts, frosted background for question window, smoother appearance and provider settings

Added ​

  • Settings > Appearance > Background switches the question window between the current solid fill and a frosted background that shows the desktop behind it. The input field and message bubbles stay solid, and the change applies immediately.
  • Left-clicking a selection prompt opens an isolated floating window. Right-click asks in the main chat. The window can be pinned, copied, or continued into the current conversation. While focused, it uses the same chat shortcuts for copy, retry, pin, zoom, and settings.
  • Selection Assistant settings can swap which mouse button opens the floating window. The default stays left-click for the window and right-click for the main chat.

Changed ​

  • The selection prompt window uses the system glass surface instead of a solid card, and its edges can be dragged to resize.
  • The model name in that window opens the model menu and answers the selection again with the chosen model. It sits in the center, and the app icon is on the left, matching the main window.
  • The selection prompt window keeps a rounded hairline, like the main window, without a square corner border.
  • Choosing another model no longer closes the window.

Fixed ​

  • The question window keeps its solid fill in step with the pinned appearance, so switching between light and dark repaints the window instead of leaving the previous theme's background.
  • Continuing a floating answer into the main chat no longer leaves retry unable to send after a failed question. The imported exchange stays, including when the original request fails after the import.
  • The Settings > Appearance page scrolls when its content overflows on compact displays.
  • Settings > Providers correctly populates and isolates draft fields and API credentials when switching between multiple service channels.

0.3.3 - 2026-10-28 ​

Improved math rendering, customizable reading font, OpenAI Decisions routing engine

Added ​

  • Settings > Appearance > Reading allows choosing an installed font as the reading font, with live search and typeface preview in the font menu.
  • Settings > External Ask decision routing adds support for the OpenAI Decisions engine, with independent address, model, and key settings.

Changed ​

  • Upgraded math formula rendering: seamless inline flow, centered display formulas with horizontal scrolling when narrow, and a dedicated copy LaTeX button (with optional $$ delimiters in Settings).
  • Updated service channel default models and placeholders to the latest flagship versions (e.g. OpenAI gpt-6-luna, Anthropic claude-sonnet-5-5).

Fixed ​

  • Scoped local data clearing strictly to the current app to prevent affecting other installations.

0.3.2 - 2026-10-21 ​

Safer settings migration and more reliable math rendering

Fixed ​

  • Math answers containing \boldsymbol now render as bold italic instead of disappearing, unsupported expressions fall back to readable raw LaTeX, and malformed math no longer terminates the app.
  • Sandbox migration now runs before any settings load, so a pending legacy provider catalog can no longer be skipped in favor of a synthesized default. A catalog stored with an unexpected type is reported and preserved instead of being overwritten, and an unreadable legacy preferences file fails migration without recording completion or discarding a still-pending catalog.

0.3.1 - 2026-10-19 ​

Provider setup hero card & quick templates, modernized shortcut settings with search & conflict alerts, selection assistant live stage & secondary menu, 3-card theme picker

Added ​

  • Settings > Services adds an active model hero card displaying the current default model, provider, and readiness status badges, alongside one-click quick setup templates for mainstream providers and a dedicated model management sheet.
  • Settings > Shortcuts is redesigned with real-time search filtering, skeuomorphic keycaps, mental-model functional grouping, and inline conflict detection alerts against existing system and app shortcuts.
  • Settings > Selection Assistant introduces an interactive 1:1 live preview stage card with drag-and-drop reordering, allowing secondary actions to be folded into an expandable dropdown menu (...) to keep the floating action bar compact.
  • Settings > External Ask adds a preset catalog for mainstream AI services (ChatGPT, Claude, Perplexity, DeepSeek, Kimi, Google, Grok, GitHub) under the Add Channel menu, and refactors decision routing with sequential syntax condition cards and an explicit in-app fallback card.
  • Settings > Appearance introduces a 3-card visual theme picker (System, Light, Dark), and Settings > General moves sensitive data resets into a dedicated Danger Zone with two-stage confirmation.
  • Built-in and custom prompt presets now share unified management and reordering controls, with a new Restore Default Prompts option to revert or recover modified system presets.

Changed ​

  • Up and down reordering buttons across Decision Routing rules, External Ask channels, and Prompt Presets are now stacked vertically to save horizontal space and improve layout consistency.

Fixed ​

  • The selection overlay action bar now correctly receives and renders customized primary and secondary actions configured in the live preview stage card.
  • Eliminated speculative candidate layout churn (ViewThatFits) in labeled settings rows and general shortcut fields, and prevented redundant view rebuilds in the shortcut recorder to ensure smooth scrolling without layout jitter.

0.3.0 - 2026-10-11 ​

Decision routing for External Ask, inline channel confirmation, smoother long-chat reading

Added ​

  • Decision routing in Settings > External Ask recommends whether a question should stay in SpotAsk or go to an enabled External Ask channel using a System One decision model (pre-filled with TypeSafe Official and jev-1.13.0, or any compatible service address).
  • An inline confirmation card above the composer shows the recommended destination and confidence score, with Return to send, Tab or arrow keys to switch channels, Esc to cancel, and a 0.8-second route notice when auto-sending to an external channel above your confidence threshold.
  • Each External Ask channel can define its description, best-fit questions, and an always-confirm rule, and Settings > External Ask includes a live route test that previews the recommended channel, confidence, release mode, and evaluation latency.
  • A smart-routing toggle in the chat toolbar (⌘⇧R by default) can pause automatic routing for the current conversation and resets on a new conversation, with a Settings > External Ask switch to show or hide it.

Decision routing inline confirmation and Tab channel switcher

Changed ​

  • Built-in External Ask channels can now be edited or deleted just like custom ones, and the channel editor uses a unified two-card layout with 20 localized icon options.
  • Enable External Ask sits in its own switch card at the top of Settings > External Ask, and the in-app destination is named In SpotAsk across routing settings and confirmation cards.
  • The Decision Routing settings group links to the decision-routing section of the External Ask guide, and that guide section can open Settings > External Ask.

Fixed ​

  • Decision requests reject cross-origin redirects before forwarding the body and require HTTPS outside loopback debugging.
  • Pending routing decisions are bound to a revocable send snapshot, including each external channel's link, URI, or command template; editing, cancellation, attachment/preset changes, conversation changes, or routing/channel configuration changes cannot send a new draft or use an edited target with an old recommendation. Stale recommendations are discarded without a notification.
  • Routing tests show specific sanitized configuration, HTTP, network, timeout, and response errors without a misleading preflight latency; failed credential reads retain the legacy key preference, failed migration saves preserve the working legacy credential, blank custom models are rejected, and criteria encoding is deterministic.
  • Expansion toggles for full questions, full answers, and thinking sections respond immediately while a response is still streaming.
  • Scrolling a long conversation no longer jumps the message on screen.
  • Turning thinking off for generic OpenAI-compatible and DeepSeek models sends gateway-compatible reasoning effort settings instead of values rejected by New API-style gateways.

0.2.7 - 2026-10-08 ​

Gemini services, pre-filled official addresses, smoother model discovery

Added ​

  • Gemini joins OpenAI Compatible and Anthropic as an API Format in Settings > Services, using Google Gemini keys directly without a compatibility gateway.
  • A new Service pre-fills official addresses for the selected format and type, and the docs now link to provider key consoles and API references.
  • The model selection sheet in Settings > Services uses a native macOS tri-state checkbox that stays synchronized with individual model toggles.

0.2.6 - 2026-10-05 ​

Live action bar preview, quieter update prompts

Added ​

  • Settings > Selection Assistant previews the action bar live in a 1:1 view as you toggle display switches; the preview is view-only, and an empty configuration shows an explanation.
  • Checking for updates when already up to date shows a lightweight in-app toast instead of a modal dialog.

Fixed ​

  • Sending a question from the composer to another app closes the window once the target opens, even when pinned, so it no longer covers the target window.
  • Clearing local data now purges session history too, and failed configuration backup imports roll back atomically to prevent corrupted settings.

0.2.5 - 2026-09-20 ​

Direct settings links, guide links, live diagrams

Added ​

  • spotask://settings/<page> links open a specific Settings page directly, with unknown pages falling back to the Settings window.
  • Behavior-heavy Settings groups link to their guide in the current interface language.
  • The documentation site adds theme-adaptive diagrams for address types and the Selection Assistant, plus an "Open Settings in SpotAsk" button.
  • The "retry with another model" picker on answers lists enabled External Ask targets, opening the platform with the original question while keeping the session unchanged.
  • An optional, off-by-default clipboard-assisted selection mode in Settings > Selection Assistant for apps you choose, restoring the clipboard afterwards.

Changed ​

  • The header model picker is centered in the title bar, keeping the loading animation grouped with it.
  • The header quick switcher lists models only again, moving External Ask targets to the retry picker.
  • Adding selected text to chat prefixes each line with Markdown >, and the selection action uses a quote bubble icon.
  • The documentation home page renders the flow diagram between the hero actions and feature cards.
  • The documentation home page hero keeps only the SpotAsk wordmark, dropping the secondary Docs heading.

Fixed ​

  • The Open Documentation link no longer sits under the Settings scrollbar and lines up with the card below it.
  • Running the test suite no longer overwrites your macOS clipboard.

0.2.4 - 2026-09-16 ​

In-app updates, multiple download sources, composer @ filtering

Added ​

  • Check for Updates now downloads and installs in-app, with options to skip versions and restore alerts in About.
  • Configurable update download sources (Automatic, Official GitHub, Accelerated Mirror) in Settings > About > Updates with automatic timeout and mirror fallback.
  • Type @ in the composer to filter prompt presets and External Ask targets, preserving drafts or launching immediately with text.
  • Dedicated chat icon in the selection action bar to populate the chat input with selected text for follow-ups, with a toggle in Settings.
  • Preset popover menu in existing conversations lists External Ask targets alongside prompt presets, opening upward from the bottom bar.

Changed ​

  • Selected prompt and External Ask badges sit above the composer field on the left with compact content-adaptive width.
  • Empty-state External Ask chips and shortcuts select a pending target instead of launching immediately; click again, Esc, or clear to cancel.

Fixed ​

  • Pressing an External Ask shortcut or selecting from the popover sends immediately when composer text is present.

0.2.3 - 2026-09-11 ​

Refreshed settings sidebar, compact layouts, clearable global shortcut

Changed ​

  • Settings uses a compact grouped sidebar with bilingual search, keyboard navigation, and visible-control jump targets.
  • Refreshed Settings experience with tighter spacing, gradient icon tiles, and compact provider layouts.

Fixed ​

  • Global shortcuts can be cleared in Settings so SpotAsk no longer occupies a system hotkey.

0.2.2 - 2026-09-10 ​

Reasoning timer optimization, localized directory scan fix

Fixed ​

  • Completed and collapsed reasoning conversations no longer keep a live thinking-time clock refreshing.
  • Localization no longer re-scans language directories on every thinking header refresh.

0.2.1 - 2026-09-08 ​

External Ask on selection, URL scheme support, Homebrew Cask

Added ​

  • The selection action bar can show External Ask targets beside prompt presets, with up to eight actions supported.
  • Open SpotAsk via spotask:// URLs (open, ask?q=, toggle, settings) from Alfred, Raycast, Shortcuts, or Terminal.
  • Homebrew Cask distribution: install and update SpotAsk directly via brew install --cask spotask.

Changed ​

  • Ask Grok quick action is now disabled by default on fresh installations.

Fixed ​

  • Input field text is properly cleared after triggering an External Ask quick action.
  • Preserve composed IME input and multiline text during keyboard navigation and submission.
  • The ask window no longer jumps in front during Space switching when Keep window on top is off.
  • Settings switch labels use available row width so longer copy is no longer truncated.
  • The Selection Assistant settings page scrolls when controls exceed window height.
  • Labeled selection action bar prompts truncate gracefully inside the 400pt panel while keeping full names in tooltips.
  • Clearing or failing a selection, or disabling the assistant, dismisses the action bar and drops the captured snapshot.

0.2.0 - 2026-08-19 ​

External Ask routing, custom target commands, backup support

Added ​

  • External Ask: send questions from the quick-ask panel to outside targets like ChatGPT and Grok in one click.
  • Add custom External Ask targets using web URLs, app schemes, or terminal commands such as omp {query}.
  • Master toggle for External Ask in Settings, enabled by default.
  • Brand icons for External Ask targets and custom prompt presets.
  • Configuration backups now include External Ask targets while maintaining backwards compatibility.

Fixed ​

  • After a local reinstall, the selection assistant prompts to re-authorize Accessibility permissions for reading selected text.
  • The quick-ask panel starts a fresh conversation after a period of inactivity.

0.1.6 - 2026-08-12 ​

Per-model reasoning effort, startup update checks, automatic compatibility

Added ​

  • Per-model thinking control: disable reasoning or select effort levels, with custom JSON request parameters.
  • Optional automatic update check at launch with in-app notifications and release page links.
  • Compatibility settings are inferred automatically from provider and model names while preserving manual selections.

Fixed ​

  • Code block copy buttons receive clicks reliably while Markdown text selection stays enabled.

0.1.5 - 2026-08-11 ​

Provider icons, bubble chat layout, math rendering, multi-line selection

Added ​

  • Provider brand icons for supported services in the model picker, chat header, and settings.
  • Optional IM-style bubble layout (assistant on left, user on right) configurable in Appearance settings.
  • Switch to another model directly from the answer header and regenerate the latest response.
  • Copying selected message text preserves Markdown formatting across headings, lists, quotes, code blocks, and tables.
  • LaTeX math formula rendering inside answers, configurable in Appearance settings.
  • Bilingual online documentation site accessible directly from About settings.

Changed ​

  • Automatic selection assistant skips empty or whitespace-only text selections.
  • Completed code blocks wrap text automatically so drag-selection passes through continuously.

Fixed ​

  • Message text can be selected continuously across multiple lines and copied cleanly.
  • Selection highlighting stays continuous across Markdown blocks without visual fragmentation.
  • Press ⌘+L to instantly refocus the question composer when focus has moved away.
  • Settings sidebar supports Up/Down arrow navigation between sections when focused.
  • Smoother animation and interaction when expanding reasoning steps during long thinking responses.
  • Ordinary clicks or canceled selections no longer trigger the selection assistant unexpectedly.

0.1.4 - 2026-08-07 ​

Initial release: quick asking, selection assistant, multi-model byok, reasoning

Added ​

  • Quick model switch: choose any provider's model from the header for the current chat; new chats return to the default model.
  • Temporary attachments: paste screenshots, drag in images or code files, with images sent as visual input and text as context.
  • Attachment context follows the chat: subsequent follow-up questions and retries retain all previous attachments.
  • Model picker features search, provider grouping, keyboard navigation, and a shortcut to restore the default model.
  • Cross-app selection assistant: select text anywhere on macOS to translate, explain, summarize, polish, or run custom prompts.
  • Quick action bar appears alongside selected text, showing text labels by default.
  • Selection assistant supports direct-run execution and optional automatic invocation.
  • Automatic invocation includes blacklist and whitelist app filtering with a searchable app picker.
  • Anthropic native provider support with model discovery, alongside OpenAI-compatible services.
  • HTTP and SOCKS5 proxy support with optional credentials and connection testing.
  • Customizable global shortcut for bringing up the ask window.
  • Collapsible reasoning process display with elapsed time tracking and default-expansion setting.
  • Per-answer action bar with quick copy and retry actions.
  • Interface localization supporting 8 languages: English, 简体中文, Español, Deutsch, 日本語, Français, Português, and Русский.
  • Configuration export/import and diagnostic logging with lightweight in-app feedback toasts.

Changed ​

  • The summarize quick action uses a clearer, more recognizable icon.
  • Selection assistant settings collapse when disabled, requesting Accessibility permissions only on enable.
  • Conversation participants are labeled with icons, model names for assistants, and 你 for user messages.
  • Streaming updates are isolated to active messages instead of rewriting the entire conversation array.
  • Conversations keep recent active messages eagerly rendered while loading older history lazily.
  • Streaming responses render as stable Markdown blocks, sealing the tail upon completion without rebuilding the tree.
  • Scroll callbacks update follow state only on genuine threshold crossings, disabling size anchoring during manual scrolling.

Fixed ​

  • Streaming Markdown preserves paragraph, soft wrap, list, and code block formatting while generating.
  • Long streaming answers stay expanded after completion and survive subsequent conversation updates.
  • Chat and reasoning scrolling coalesces rapid updates, eliminating per-token queue lag.
  • The composer skips full TextKit measurement once reaching maximum height.
  • Selection assistant reads selected text reliably once granted Accessibility permissions.
  • Selections created with text markers resolve accurately.
  • Closing the window preserves composer drafts and restores smooth panel fade animations.
  • App icon corners render cleanly in Dark Mode without white artifact borders.
  • Service provider cards expand and collapse reliably.
  • Thinking expansion behavior: expands during reasoning and collapses for final answers when enabled; stays collapsed when disabled.

Native macOS menu-bar AI assistant