Breaking Changes
| Component | Before | After | Migration |
|-----------|---------|--------|------------|
| Vectorstore Operations | Async-first with methods like `await tpuf.upsert()` | Sync-first with optional async batching: `tpuf.upsert()` | Replace `await` calls with sync operations. Use `upsert_batched` for large datasets |
| Context Managers | `async with TurboPuffer()` | `with TurboPuffer()` | Remove `async` from context manager usage |
| Query Functions | `await query_namespace()` | `query_namespace()` | Remove `await` from query calls |
| Embedding Generation | Exposed in vectorstore methods | Handled internally | No action needed |
New Features
- `upsert_batched`: New async method for efficient large-scale document ingestion
- `multi_query_tpuf`: Search with multiple queries for better coverage
- Improved caching with Prefect for document loading
- Better type safety and error handling
Examples Updated
All examples have been updated to reflect the new sync-first approach:
- `examples/chat_with_X/`: New examples showing practical usage
- `examples/refresh_vectorstore/`: Updated to use sync operations with batching
- `examples/reddit_thread.py`: New example of social media ingestion
Documentation
- New ingest strategy guide
- Updated tutorial with sync-first examples
- Expanded API reference
- New example gallery
For a detailed view of all changes, see the [full changelog](https://github.com/zzstoatzz/raggy/compare/0.1.9...0.2.0).