headroom_3 / CHANGELOG.md
chopratejas's picture
Prepare for OSS release v0.2.0
175746c
|
Raw
History Blame
3.72 kB
# Changelog
All notable changes to Headroom will be 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
- Production-ready proxy server with caching, rate limiting, and metrics
- CLI command `headroom proxy` to start the proxy server
## [0.2.0] - 2025-01-07
### Added
- **SmartCrusher**: Statistical compression for tool outputs
- Keeps first/last K items, errors, anomalies, and relevance matches
- Variance-based change point detection
- Pattern detection (time series, logs, search results)
- **Relevance Scoring Engine**: ML-powered item relevance
- `BM25Scorer`: Fast keyword matching (zero dependencies)
- `EmbeddingScorer`: Semantic similarity with sentence-transformers
- `HybridScorer`: Adaptive combination of both methods
- **CacheAligner**: Prefix stabilization for better cache hits
- Dynamic date extraction
- Whitespace normalization
- Stable prefix hashing
- **RollingWindow**: Context management within token limits
- Drops oldest tool units first
- Never orphans tool results
- Preserves recent turns
- **Multi-Provider Support**:
- Anthropic with official `count_tokens` API
- Google with official `countTokens` API
- Cohere with official `tokenize` API
- Mistral with official tokenizer
- LiteLLM for unified interface
- **Integrations**:
- LangChain callback handler (`HeadroomOptimizer`)
- MCP (Model Context Protocol) utilities
- **Proxy Server** (`headroom.proxy`):
- Semantic caching with LRU eviction
- Token bucket rate limiting
- Retry with exponential backoff
- Cost tracking with budget enforcement
- Prometheus metrics endpoint
- Request logging (JSONL)
- **Pricing Registry**: Centralized model pricing with staleness tracking
- **Benchmarks**: Performance benchmarks for transforms and relevance scoring
### Changed
- Improved token counting accuracy across all providers
- Enhanced tool output compression with relevance-aware selection
### Fixed
- Mistral tokenizer API compatibility
- Google token counting for multi-turn conversations
## [0.1.0] - 2025-01-05
### Added
- Initial release
- `HeadroomClient`: OpenAI-compatible client wrapper
- `ToolCrusher`: Basic tool output compression
- Audit mode for observation without modification
- Optimize mode for applying transforms
- Simulate mode for previewing changes
- SQLite and JSONL storage backends
- HTML report generation
- Streaming support
### Safety Guarantees
- Never removes human content
- Never breaks tool ordering
- Parse failures are no-ops
- Preserves recency (last N turns)
---
## Migration Guide
### From 0.1.x to 0.2.x
The 0.2.0 release is backward compatible. New features are opt-in:
```python
# Old code still works
from headroom import HeadroomClient, OpenAIProvider
# New SmartCrusher (replaces ToolCrusher for better compression)
from headroom import SmartCrusher, SmartCrusherConfig
config = SmartCrusherConfig(
min_tokens_to_crush=200,
max_items_after_crush=50,
)
crusher = SmartCrusher(config)
# New relevance scoring
from headroom import create_scorer
scorer = create_scorer("hybrid") # or "bm25" for zero deps
```
### Using the Proxy
New in 0.2.0 - run Headroom as a proxy server:
```bash
# Start the proxy
python -m headroom.proxy.server --port 8787
# Use with Claude Code
ANTHROPIC_BASE_URL=http://localhost:8787 claude
```
[Unreleased]: https://github.com/headroom-sdk/headroom/compare/v0.2.0...HEAD
[0.2.0]: https://github.com/headroom-sdk/headroom/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/headroom-sdk/headroom/releases/tag/v0.1.0