What's Changed
- Feature/backmerge to develop by @tmseidel in #450
- feat(ai): add isolated OpenRouter adapter by @CaeruleusAqua in #404
- feat(ai): configure OpenRouter routing and privacy by @CaeruleusAqua in #410
- refactor(admin): remove deprecated Bot.botType by @Postremus in #457
- fix(review): include fresh context in updated PR reviews by @myluoluo in #456
- fix(review): enforce read-only tool dispatch by @CaeruleusAqua in #411
- fix(translation): fix language fallback and duplicate error message by @Postremus in #454
- fix(agent): retry HTTP 408 once without compacting history by @myluoluo in #459
- Update doc to mention WSL for developing on Windows by @Postremus in #462
- fix(review): enforce native tool-round limit by @CaeruleusAqua in #412
- feat(ai): code-execute tool by @tmseidel in #458
- fix(git): Increase git_integrations#token to 1000 chars by @Postremus in #463
- fix(tools): only take the varargs shortcut for a bare-args schema by @tmseidel in #464
- fix(tools): report local output truncation by @CaeruleusAqua in #413
- fix(ai): distinguish absent usage from reported zero by @CaeruleusAqua in #414
- fix(review): prompt completion two rounds before the limit by @myluoluo in #471
- fix(webhooks): whole-name bot mention matching and re-review detection by @Postremus in #467
- fix(ai): record provider prompt cache usage by @myluoluo in #469
- fix(ai): normalize provider usage availability by @CaeruleusAqua in #424
- fix(mcp-editor): Multiple mcp form editor fixes by @Postremus in #475
- fix(bitbucket): authenticate with Atlassian API tokens and identify bot by account by @Postremus in #460
- feat(workflows): support optional integer parameter ranges by @CaeruleusAqua in #479
- release/1.28.0 by @tmseidel in #488
Full Changelog: 1.27.0...1.28.0