Changes
🚀 Features
- feat(zsh): add aliases for provider and model commands @laststylebender14 (#2529)
- feat(config): add config list command @laststylebender14 (#2530)
- feat(suggest-model): add suggest model command @laststylebender14 (#2511)
- feat(config): add config commit command @laststylebender14 (#2444)
🐛 Bug Fixes
- fix(context-engine): handle empty git ls-files by falling back to walker @laststylebender14 (#2528)
- fix(tracker): fix race condition by moving mutex ownership outside rate limiter @tusharmath (#2527)
- fix(app): add doom loop detector to prevent repetitive tool calls @amitksingh1490 (#2368)
- fix(sync): handle error conditions in sync gracefully @laststylebender14 (#2520)
- fix(context-engine): add walker fallback for git ls-files @laststylebender14 (#2521)
- fix(tracker): add rate limiter to prevent event dispatch loops @tusharmath (#2515)
- fix(context-engine): return the actual error for git ls-files command @laststylebender14 (#2519)
- fix(vertex-anthropic): sanitize tool call IDs to match required pattern @amitksingh1490 (#2394)
- fix(todo): render todo diffs in strict id order with status-aware removed states @amitksingh1490 (#2512)
🧰 Maintenance
- chore(deps): bump quinn-proto from 0.11.13 to 0.11.14 @dependabot[bot] (#2517)
- refactor(rate-limit): use mutex-protected state for fixed-window limiter @tusharmath (#2525)
- refactor: rename suggest-model command to config-suggest-model @tusharmath (#2523)
- chore(context-engine): add workspace_id to traces @laststylebender14 (#2522)