# Changelog

All notable changes to LexAI are documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.1.0] — 2026-08-12

### Added
- Prompt Builder now offers 12 prompting patterns including Auto, grouped into Direct / Reasoning / Agentic — each with a plain-English hint shown under the dropdown, in both the popup's Prompt tab and the in-page "Make Prompt" dialog.

### Fixed
- Long patterns (Few-shot Examples, ReAct) were being cut off by the response token limit; the `prompt` action now gets a 2048-token floor so full examples and step budgets come through.

### Changed
- Patterns saved before this update migrate automatically — legacy `promptStyle` values resolve to the new pattern ids, so nothing needs to be redone.

## [1.0.2] — 2026-07-23

### Fixed
- A stored API key carried no record of which provider it belonged to, so switching providers in Options could leave the previous provider's key attached to the new one — every call then failed with that provider's "Invalid API Key" while the UI still showed a key as configured. Saving now stamps the key with its provider and requires a new key if the saved one belongs to a different provider or was rejected.

## [1.0.1] — 2026-07-15

### Added
- Prompt Builder: a new tab in the popup for generating AI prompts, with configurable style, persona, format, and model.
- Live model list per provider, fetched from the provider instead of hard-coded.
- Legacy plaintext API keys stored before the encrypted-key path migrate automatically.

## [1.0.0] — 2026-03-11

### Added
- Initial public release: select text on any page → fix grammar, rephrase, shorten, expand, or explain → Replace or Copy, powered by your own OpenAI/Anthropic/Groq/OpenRouter API key.
- Writing style selector available from the toolbar, popup, and right-click context menu.
- Copy As and Download actions, plus a request timeout so calls to slow providers fail cleanly instead of hanging.
