Skip to content

Commit 0406b2b

Browse files
asanmateuclaude
andcommitted
chore: release v2.3.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 68de989 commit 0406b2b

File tree

2 files changed

+17
-21
lines changed

2 files changed

+17
-21
lines changed

CHANGELOG.md

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10-
### Added
11-
12-
- Dynamic model discovery: available models are fetched from provider APIs and cached locally for 24 hours (`~/.tldr/models-cache.json`)
13-
- Model picker in preset editor: the model and TTS model fields now show a selectable list of available models fetched from the provider, with free-text fallback when listing fails
14-
- Model validation before provider calls: invalid model names now show actionable errors with "Did you mean?" suggestions (e.g. `Model 'claude-opus-4.6' not found. Did you mean 'claude-opus-4-6'?`)
15-
- `ProviderConfigError` class for model/config validation failures, flows through `SummarizerError` as `CONFIG` code
16-
17-
### Changed
18-
19-
- Pressing `q` with an empty input now requires a double-tap within 2 seconds to quit — first press shows a warning, preventing accidental exits
20-
- Tier aliases (haiku/sonnet/opus) now resolve dynamically to the latest model from the provider API cache, falling back to static IDs when cache is empty
21-
- **Internal:** Extracted `resetToIdle()`, `refreshHistory()`, `handleAudioGenerate()`, and `handleSave()` callbacks from App.tsx, replacing duplicated inline logic
22-
- **Internal:** Replaced 11-case slash command switch with data-driven `SLASH_COMMANDS` dispatch map
23-
- **Internal:** Extracted `truncateAndScale()`, `isAbortError()`, and `extractErrorMessage()` helpers from App.tsx
24-
- **Internal:** Extracted `useToast` hook (`src/hooks/useToast.ts`) — shared by App.tsx and ChatView.tsx
25-
- **Internal:** Centralized voice validation into `isValidVoiceForProvider()` and `getVoiceDisplayName()` in `src/lib/tts/voices.ts`, replacing scattered inline checks
26-
- **Internal:** Consolidated model tier definitions — `MODEL_IDS` in config.ts is now a re-export of `STATIC_TIER_IDS` from modelDiscovery.ts
27-
- **Internal:** Added `validateCliProvider()` facade in `src/lib/providers/index.ts`, removing direct provider imports from App.tsx
28-
- **Internal:** Removed `as unknown` type casts — `SelectionList` accepts `ReadonlySet<string>`, configSetter uses `Object.assign()`
29-
- **Internal:** Extracted magic numbers to named constants (`LONG_CONTENT_WORD_THRESHOLD`, `LONG_CONTENT_MAX_TOKENS`, `DISCARD_TIMEOUT_MS`)
10+
## [2.3.0] - 2026-02-24
3011

3112
### Added
3213

@@ -46,11 +27,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4627
- Multi-input queue: paste or drop multiple URLs/file paths and process them all sequentially — intermediate results auto-save and pin upward, last result stays in the active view
4728
- Input hint shows detected source count for multi-input (e.g. "example.com + 2 more — 3 sources")
4829
- Queue progress in processing view (e.g. "(1/3) Extracting from...")
30+
- Dynamic model discovery: available models are fetched from provider APIs and cached locally for 24 hours (`~/.tldr/models-cache.json`)
31+
- Model picker in preset editor: the model and TTS model fields now show a selectable list of available models fetched from the provider, with free-text fallback when listing fails
32+
- Model validation before provider calls: invalid model names now show actionable errors with "Did you mean?" suggestions (e.g. `Model 'claude-opus-4.6' not found. Did you mean 'claude-opus-4-6'?`)
33+
- `ProviderConfigError` class for model/config validation failures, flows through `SummarizerError` as `CONFIG` code
4934

5035
### Changed
5136

5237
- **Breaking (programmatic):** `runBatch()` signature changed from `input: string` to `inputs: string[]` and now returns `BatchResult[]` instead of `void`
5338
- Session directories are now date-grouped: `~/Documents/tldr/{date}/{slug}/` instead of `~/Documents/tldr/{date}-{slug}/` — existing sessions are not migrated
39+
- Pressing `q` with an empty input now requires a double-tap within 2 seconds to quit — first press shows a warning, preventing accidental exits
40+
- Tier aliases (haiku/sonnet/opus) now resolve dynamically to the latest model from the provider API cache, falling back to static IDs when cache is empty
41+
- **Internal:** Extracted `resetToIdle()`, `refreshHistory()`, `handleAudioGenerate()`, and `handleSave()` callbacks from App.tsx, replacing duplicated inline logic
42+
- **Internal:** Replaced 11-case slash command switch with data-driven `SLASH_COMMANDS` dispatch map
43+
- **Internal:** Extracted `truncateAndScale()`, `isAbortError()`, and `extractErrorMessage()` helpers from App.tsx
44+
- **Internal:** Extracted `useToast` hook (`src/hooks/useToast.ts`) — shared by App.tsx and ChatView.tsx
45+
- **Internal:** Centralized voice validation into `isValidVoiceForProvider()` and `getVoiceDisplayName()` in `src/lib/tts/voices.ts`, replacing scattered inline checks
46+
- **Internal:** Consolidated model tier definitions — `MODEL_IDS` in config.ts is now a re-export of `STATIC_TIER_IDS` from modelDiscovery.ts
47+
- **Internal:** Added `validateCliProvider()` facade in `src/lib/providers/index.ts`, removing direct provider imports from App.tsx
48+
- **Internal:** Removed `as unknown` type casts — `SelectionList` accepts `ReadonlySet<string>`, configSetter uses `Object.assign()`
49+
- **Internal:** Extracted magic numbers to named constants (`LONG_CONTENT_WORD_THRESHOLD`, `LONG_CONTENT_MAX_TOKENS`, `DISCARD_TIMEOUT_MS`)
5450

5551
### Fixed
5652

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tldr-cli",
3-
"version": "2.2.1",
3+
"version": "2.3.0",
44
"description": "CLI summarization tool optimised for neurodiversity",
55
"type": "module",
66
"exports": {

0 commit comments

Comments
 (0)