v0.3.0
What's Changed
Added
- WebSocket auto-reconnect — exponential backoff (1s → 2s → 4s → ... → 30s max) on connection drop (#3)
- Lua HTTP retry —
http_get/http_postretry up to 3 times with backoff on transient failures (#6) - Test coverage — 13 new tests across core methods
updateChatActionhandling — separate handler resolvessender_id(MessageSender) instead of missinguser_id(#62)
Fixed
- Blocking
vim.wait— replaced withvim.defer_fn-based async polling inlist_groups, no more UI freeze (#64) getChatcrash — non-group/unknown chat types no longer throw 500 on/chatendpoint (#63)- Member add display —
messageChatAddMembersnow shows "X added Y" instead of "X joined" when someone invites another member (#98) - Navigation direction —
<C-h>/<C-l>now consistently go to groups/msg instead of toggling (#61)
Performance
- Batch sender resolution — pre-resolve all unique senders before formatting bulk messages, eliminating redundant
getUsercalls (#5) - Break-early filter —
getMessagesAfterstops iterating once messages ≤ afterId are reached (#9)
Styles
- Consistent indentation — all Lua files reformatted with
styluato use tab indentation (#97)
Full Changelog: v0.2.1...v0.3.0