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.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