aboutsummaryrefslogtreecommitdiffstats
path: root/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md33
1 files changed, 33 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 451092f..d3df977 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,39 @@ All notable changes to this project are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [Unreleased]
+
+### Added
+
+- External OpenAI-compatible providers. The local llama.cpp router stays the
+ default; adding a `[providers.*]` table brings cloud models into the picker
+ as `provider:model`. The generated config ships the provider block commented
+ out, so a fresh install never reaches an endpoint nobody configured.
+- Three ways to supply a provider API key: `pass:name` reads from the password
+ store, `env:VAR` reads from the environment, and a literal `sk-...` string
+ is used as-is. `pass:` is preferred because it keeps secrets out of
+ `config.toml`.
+- Lazy key resolution. The password store or environment is only consulted on
+ the first request to a provider, so a local-only session never triggers a
+ pinentry.
+- Model filtering per provider. The `filter` key keeps only models whose id
+ contains one of the configured substrings, case-insensitively. Providers
+ list hundreds of models, and without a filter the picker is unusable.
+- A per-model settings dialog for context size, vision support and input/output
+ prices. Values are saved to `models.ini` beside `config.toml`, so provider
+ defaults can be overridden per model.
+- Per-conversation cost readout with projection. The top bar shows what has
+ been spent so far plus what the current draft would add, based on hand-entered
+ prices. This exists to make visible that a long conversation on a cloud
+ provider is billed for its whole history on every turn.
+- Three new columns on `messages`: `prompt_tokens`, `completion_tokens` and
+ `model`. Token counts come from the stream's final usage chunk and power the
+ cost readout; the model column records which model actually replied, so a
+ switched conversation prices each turn correctly.
+
+Tool calling and reasoning output vary between providers. Web search on a
+cloud model may not work as reliably as it does with a local router.
+
## [0.3.0] - 2026-08-01
### Changed