# Changelog

## v1.2.2 — 2026-05-13
- Fix CI: install `.[dev,aws]` so boto3/botocore are available for S3 provider tests

## v1.2.1 — 2026-05-13
- Fix ruff lint errors introduced in v1.2.0: remove redundant string quotes from type annotations (UP037), sort `__all__` (RUF022), remove unused `noqa` directive (RUF100), remove unused `pytest` import (F401)

## v1.2.0 — 2026-05-13
- Add pluggable session storage: `BaseSessionStore` ABC with `LocalSessionStore` (existing behaviour) and `S3SessionStore` (boto3)
- Add `S3VectorStore`: wraps `LocalVectorStore` (ChromaDB) and syncs the database archive to/from S3 after each write
- Add `sessions/providers/` subpackage mirroring the `vectordb/providers/` pattern
- Add `get_session_store()` factory reading `sessions.store` from the project/global config
- Update `config.example.yaml` with `sessions` block and `vectordb.backend: s3` example
- `Session.save/load/list_all/delete` now accept a `BaseSessionStore` instead of a `Path`; callers use `LocalSessionStore(path)` to retain prior behaviour

## v1.1.2 — 2026-05-12
- Switch config file format from TOML to YAML, matching the agent-tester config pattern
- Global config: `~/.config/vllmd/config.yml` (or `.yaml`)
- Local config: auto-detected from `vllmd.yaml`, `vllmd.yml`, `.vllmd.yaml`, `.vllmd.yml`
- Add `config.example.yaml`
- Replace `tomli` dependency with `PyYAML>=6.0`

## v1.1.1 — 2026-05-12
- Move provider backends (`base.py`, `local.py`, `aws.py`) into `vectordb/providers/` subpackage
- Add `get_vector_store()` factory that reads backend from `.vllmd.toml` (project) or `~/.vllmd/config.toml` (global), defaulting to `LocalVectorStore`
- Add `tomli>=2.0` as a conditional dependency for Python < 3.11

## v1.1.0 — 2026-05-12
- Add `BaseVectorStore` ABC defining the full vector store interface
- Add `AWSVectorStore` backed by Amazon OpenSearch Service (`pip install 'vllmd[aws]'`)
- Refactor `VectorStore` → `LocalVectorStore(BaseVectorStore)`; `VectorStore` alias kept for backward compatibility
- Move shared helpers (`_chunk_text`, `_file_id`) and constants to `vectordb.base`
- Add `[aws]` optional extras: `opensearch-py>=2.0`, `boto3>=1.34`

## v1.0.1 — 2026-05-12
- Deduplicate message deserialization via `_parse_messages()` in `load()` and `list_all()`
- Move embedder factory to `embeddings.make_embedder()`, remove duplicate closures in CLI and chat
- Extract `_post_json()` into `embeddings.py`, use it across chat completion and embedding calls
- Extract `_load_session_or_exit()` to deduplicate session error handling across five commands
- Extract `_ingest_chunks()` to deduplicate `ingest_document` and `ingest_code_file`
- Fix CI publish workflow: move `id-token: write` to workflow level for trusted publishing

## v1.0.0 — 2026-05-12
- Initial stable release
