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

** New models and backends

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

- GitHub Copilot backend: Add support for =gemini-3.5-flash=.

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

** New features and UI changes

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

  Now reasoning text is retained and redirected to another buffer if --
  and only if -- ~gptel-include-reasoning~ is a string denoting a buffer
  name.

** Notable bug fixes

- Improved error messages: Curl request failures now include more
  diagnostic information.

- Fix bounds issues when using the gptel transient menu with =evil-mode=
  visual selections.

- Fix org-mode parsing issues involving =tab-width= when sending
  queries.

* 0.9.9.5 2026-05-03

** Breaking changes

- gptel's default ChatGPT backend has been removed. ~gptel-backend~ and
  ~gptel-model~ now default to =nil=, and there are no registered
  backends out of the box.  However gptel remains usable without
  configuration: if ~gptel-send~ is called without a backend set, the
  ChatGPT backend is created on the fly and used.

- ~gptel-track-media~ affects gptel's link handling in all Org and
  Markdown buffers, not just chat buffers that have ~gptel-mode~ turned
  on.  When calling ~gptel-send~ with ~gptel-track-media~ turned on, and
  the buffer is in Org or Markdown mode, links to supported file types
  will be followed by gptel and included with the request.  Previously
  this behavior applied only in dedicated chat buffers.

  (This is actually how gptel has worked since v0.9.9.3, but this change
  in behavior was undocumented.)

- ~gptel-include-reasoning~ now defaults to =ignore=, meaning that
  reasoning text in LLM responses will be included in buffers but
  ignored by ~gptel-send~ on subsequent conversation turns.  The reason
  for this change is that including the reasoning text as the LLM's
  response on new conversation turns is not recommeded by LLM APIs.
  Reasoning text can also fill up the context window.

- ~gptel-make-tool~ now sets the tool's =:include= slot by default.
  This means that unless =:include nil= is explicitly specified,
  gptel-tools will default to including their results in the buffer when
  using ~gptel-send~.  This is recommended for coherent multi-turn
  conversations involving tool use, as the LLM uses tool results from
  past turns for context.

  (Tool result inclusion can be controlled globally (or buffer-locally)
  for all tools via ~gptel-include-tool-results~, whose default value
  has not been altered.)

- The models =gpt-41-copilot=, =gpt-5= and =claude-opus-41= have been
  removed from the default list of GitHub Copilot models.  These models
...
...
