Changes
🚀 Features
- feat(env): support auto-dumping conversation via FORGE_AUTO_DUMP env var @tusharmath (#2441)
- feat(system_prompt): add file extension statistics @laststylebender14 (#2384)
- feat(subagent): handle interrupts for sub-agents @laststylebender14 (#2330)
🐛 Bug Fixes
- fix(crlf): Handling files with CRLF line endings (windows) @soerennielsen (#2379)
- fix(pipeline): enable caching for minimax models via open router @amitksingh1490 (#2448)
- fix(porcelain): use char count instead of byte len for truncation @laststylebender14 (#2443)
- chore(deps): bump the patch group across 1 directory with 14 updates @dependabot[bot] (#2430)
- fix(catalog): normalize tool names with trimming and case-insensitive catalog matching @tusharmath (#2439)
- fix(context_engine): improve file sync logging @tusharmath (#2438)
- fix: preserve accumulated usage during compaction @ssddOnTop (#2425)
- fix(ui): hide api key and show credentials path after forge auth creation @tusharmath (#2426)
- fix(sync): normalize file paths to absolute form to fix workspace sync detection @tusharmath (#2421)
🧰 Maintenance
- refactor: replace rust-embed with include_dir for template and zsh embedding @tusharmath (#2447)
- chore(deps): bump the patch group across 1 directory with 14 updates @dependabot[bot] (#2430)
- fix(context_engine): improve file sync logging @tusharmath (#2438)
- chore(provider): add gemini-3.1-pro-preview model @amitksingh1490 (#2434)
- chore: remove unnecessary clone in get_all_providers method @laststylebender14 (#2431)
- chore(hooks): move title generator to its own hook @laststylebender14 (#2397)