# -*- mode: org; -*-

* 0.9.9.6-pre

** Breaking changes

- The models =claude-3-7-sonnet-20250219=, =claude-3-5-sonnet-20241022=,
  =claude-3-5-sonnet-20240620=, =claude-3-5-haiku-20241022=,
  =claude-3-opus-20240229= and =claude-3-haiku-20240307= have been
  removed from the default list of Anthropic models.  These models are
  either deprecated or no longer available.

- The models =gemini-3.1-flash-lite-preview= and =gemini-3-pro-preview=
  have been removed from the default list of Gemini models.  These
  models are no longer available.

- The minimum required version of the =transient= package is now 0.7.8.

- ~gptel-temperaure~ now defaults to nil, meaning the API's default
  value will be used.  This is because some backends don't support
  providing the temperature, those that do don't agree on the scale and
  what a temperature of 1 means.

- Due to the introduction of ~gptel-system-prompt~ (see below), opening
  a text/markdown gptel chat file before loading gptel can cause an
  error.  To fix this, please ensure that gptel is loaded before opening
  any saved text/markdown chat files.  This only needs to be done once.

- ~gptel-menu~'s option to redirect a response to a gptel buffer (the
  "g" option) now works differently.  The prompt is inserted into the
  gptel buffer as before, but the request is sent /from the gptel
  buffer/, with the full context of the conversation.  Before now, the
  gptel buffer only served as the destination for the response, and the
  query was sent without any context.

  This means that you can continue a conversation in any gptel
  buffer from anywhere in Emacs without having to switch to it first.
- The models =grok-4-1-fast-reasoning=, =grok-4-1-fast-non-reasoning=,
  =grok-code-fast-1=, =grok-4-fast-reasoning=,
  =grok-4-fast-non-reasoning=, =grok-4=, =grok-3-mini=, =grok-3= and
  =grok-2-vision-1212= have been removed from the default list of Grok
  (xAI) models.  These models are either no longer available or aliased
  to one of two available Grok models, =grok-4.3= and =grok-build-0.1=.

- gptel now sends both request data and headers to Curl via stdin, so no
  temporary files will be created regardless of request
  size. ~gptel-curl-file-size-threshold~ is now obsolete.

** New models and backends

- Bedrock backend: Add support for =claude-opus-4-7= and
  =claude-opus-4-8=.

- Anthropic backend: Add support for =claude-sonnet-5=,
  =claude-opus-4-8= and =claude-fable-5=.

- GitHub Copilot backend: Add support for =gemini-3.5-flash=,
  =claude-opus-4.8=, =claude-sonnet-5= and =claude-fable-5=.

- Gemini backend: Add support for =gemini-3.5-flash=,
  =gemini-3.1-flash-lite= and deprecate the preview version.

- OpenAI backend: Add support for =gpt-5.6-sol=, =gpt-5.6-terra= and
  =gpt-5.6-luna=.

- xAI backend: Add support for =grok-4.3=, =grok-build-0.1= and
  =grok-4.5=.

** New features and UI changes

- The gptel tool's =:include= slot and the global option
  ~gptel-include-tool-results~ now also accept the symbol =call=: when
  set, only the call parameters are inserted into the buffer; the result
  is omitted.  This is useful when the tool results are large or not
  very human-readable, yet it is important for you or the LLM to track
  what calls have been made.

- You can now set gptel's system prompt directly via
  ~gptel-system-prompt~.  Previously this required setting an internal
  gptel variable (~gptel--system-message~, now obsolete), or defining a
  mapping in ~gptel-directives~ and picking from the list interactively.

- OpenAI subscription support: gptel now supports authentication with
  OpenAI ChatGPT Plus/Pro accounts.  This allows using the ChatGPT Codex
  endpoint without an API key.  See =gptel-make-openai-oauth= and the
  README for details.

- When running ~gptel-rewrite~, reasoning text was previously always
  completely omitted from the response.  This was required to avoid
  mixing with the final, rewritten text, but it meant there was no way
  to examine the reasoning stream.
...
...
