v1.6.0
What's Changed
- feat(i18n): migrate OIDC bind flow to ResponseErrorL (Part of #170) by @an9xyz in #223
- feat(i18n): externalize email templates + lang-aware send chain (#221) by @an9xyz in #224
- fix(message): apply group revoke permission to community topics (#222) by @an9xyz in #226
- fix(oidc): invalidate current token on logout by @an9xyz in #225
- docs: add rate-limiting guidance to CLAUDE.md by @an9xyz in #228
- feat(octo-server): RichText=14 server adapt — plain gen + push alert + search index (Phase 1) by @yujiawei in #232
- fix: use shared UID limiter for app bot apply by @an9xyz in #234
- feat(robot/bot_api): bot 群级免@偏好——建表 + owner 写/读/列群 + adapter 读端点 by @yujiawei in #238
- feat(incomingwebhook): Discord-style group incoming webhooks by @an9xyz in #31
- feat(robot): mention_pref 写后推 mention_pref_updated 事件 by @yujiawei in #243
- fix(incomingwebhook): address #246 post-merge follow-ups by @an9xyz in #249
- fix(message): RichText=14 plain consistency on edit paths (Phase 1) by @yujiawei in #235
- feat(botfather): UserAPIKeyService + Bot occupancy (bind/unbind) for Octo-link by @an9xyz in #239
- fix(botfather): make #239 migrations idempotent to stop CrashLoopBackOff by @an9xyz in #253
- fix(group): rollback MySQL records when IM channel creation fails during CreateGroup by @pkuWMH in #248
- fix(incomingwebhook): resolve iwh_ sender identity for channel/user/avatar APIs by @an9xyz in #250
- ci: add -shuffle=on to go test for order-dependency detection by @lml2468 in #260
- ci: add timeout-minutes to all CI jobs by @lml2468 in #259
- feat(group): 群级「允许免at」总开关 + bot_api 两轴AND mention_pref by @yujiawei in #263
- feat(incomingwebhook): soft-delete webhooks so deleted webhooks' historical messages still render by @an9xyz in #258
- fix(group): expose allow_no_mention in channel serialization + silent toggle by @yujiawei in #264
- docs: add i18n / error-localization conventions to CLAUDE.md by @an9xyz in #231
- feat: add OIDC integration exchange by @an9xyz in #256
- fix(ci): provision WuKongIM for integration tests by @an9xyz in #270
- docs: add agents guide by @an9xyz in #257
- feat(i18n): migrate robot module to ResponseErrorL (#267) by @an9xyz in #268
- feat(i18n): migrate space module to ResponseErrorL (#269) by @an9xyz in #271
- feat(i18n): migrate small utility modules to ResponseErrorL by @an9xyz in #273
- feat(i18n): propagate language over gRPC by @an9xyz in #275
- feat(i18n): migrate bot_api module to ResponseErrorL (#276) by @an9xyz in #277
- feat(avatar): version avatar object keys for CDN-safe cache busting by @an9xyz in #282
- test: isolate common login config tests by @an9xyz in #283
- ci: add Docker lint workflow (hadolint + shellcheck) by @lml2468 in #262
- ci: add OSV-Scanner vulnerability scanning by @lml2468 in #261
- feat(i18n): migrate botfather module to ResponseErrorL (#278) by @an9xyz in #279
- feat(incomingwebhook): layered push rate limiting (local floor + per-IP failure budget) by @an9xyz in #285
- ci: add history check (reject orphan-branch PRs) by @lml2468 in #286
- feat(incomingwebhook): make local push floor IP-aware to avoid cross-IP starvation by @an9xyz in #288
- feat(sidebar): make recent-tab activity filter configurable per channel type by @an9xyz in #291
- feat(incomingwebhook): runtime master toggle + tunable thresholds via system_setting by @an9xyz in #292
- feat(incomingwebhook): cache the push hot-path lookups (#284 item 2) by @an9xyz in #293
- feat(conversation): opt-in recent activity-window filter on /v1/conversation/sync (#294) by @an9xyz in #295
New Contributors
Full Changelog: v1.5.1...v1.6.0