v1.6.9
Immutable
release. Only release title and notes can be modified.
🐛 Bug Fixes
- replace string-matched ValueError with EmptyLLMResponseError sentinel (baa5b03)
- replace EventBus.emit **kwargs with explicit typed parameters (d3e8aea)
- decouple logger lifecycle, fix covariant TypeVar, remove sentinel hack (9e7f51f)
- correct baseFilename Path wrap and handler path membership check (8a451fa)
- normalize affected paths to relative and harden git_commit relativization (85a5584)
- remove dead event_bus guards, fix delete affected append, decouple Rich markup (763ea29)
- skip redundant resolve for already-resolved paths in apply_change (549abea)
- pass base_dir through validation context, remove redundant pre-resolution (3d045b1)
- remove dead event_bus guards without introducing trivial _emit wrapper (bd53850)
- remove DEFAULT_MAX_CONTENT_BYTES, replace assert with explicit raise, document UTF-8 write (0b7d02c)
- guard DEFAULT_MAX_CONTENT_BYTES with explicit isinstance check (155b3db)
- remove dead require_chat_context_window import and unreachable None guard (d82ee3c)
- replace dataclasses.replace with model_copy for Pydantic Config (33af58c)
🚀 New Features
- move structured LLM temperature into Config as structured_llm_temperature (535287a)
- add configurable retry loop to _call_structured_llm for JSON and provider errors (bc3a344)
- validate content before writing in apply_changes (2c584b7)
- log falback warnings in count_tokens (c35924e)
- add configurable per-batch timeout with timed_out_files reporting (01efc1a)
- add configurable per-batch timeout with timed_out_files reporting (8e3be91)
- add configurable per-batch timeout with timed_out_files reporting (6425f82)