Skip to content

v0.4.0

Choose a tag to compare

@ChuYanLon ChuYanLon released this 29 May 02:44
· 366 commits to main since this release

[0.4.0] - 2026-05-29

Added

  • Missing TDLib update handlers — message edits, deletions, group list, unread sync now broadcast via WebSocket in real-time
  • Graceful shutdown — SIGINT handler closes TDLib/WebSocket/HTTP properly, preventing binlog corruption
  • Date-based pagination — load_older/load_newer use message.date instead of message.id, fixing wrong messages loading in migrated groups
  • Login timeout — 5-minute timeout for TDLib login to prevent hanging forever
  • getChats iteration limit — max 1000 loops to prevent infinite pagination
  • Server route tests — expanded from 1 to 17 tests covering all endpoints
  • :TgPr squash merge — now offers squash and commit merge strategies
  • Private chat support — press c on a message to open DM; @newchat tool to DM by @username
  • Snacks picker — chat picker uses snacks.nvim with fuzzy search, falls back to vim.ui.select
  • ImageMagick requirement — documented for image display in Kitty terminal

Changed

  • GitHub ops extracted — :TgPr and :TgIssue moved to lua/telegram/github.lua, reducing init.lua by 370 lines
  • Updated all documentation — wiki pages synced with current architecture and features
  • Online count — fetched synchronously from TDLib with cache fallback
  • Typing indicator — floating popup below winbar instead of replacing title bar
  • Service message prefixes — bracket format ([+], [-], etc.) for safety
  • Console logging added — console.warn in all empty catch blocks for debuggability

Fixed

  • Inconsistent chatId type conversion — normalized across all API endpoints (#113 by @jaideepkathiresan)
  • Auth race condition — wait for server ack before re-prompting auth input
  • TDLib version parsing — regex handles pre-release tags like 1.8.64-beta
  • JSON null safety — LuaJIT cdata handling for chatLastMessageUpdated event
  • Service message highlighting — TgService highlight group
  • Wiki sync workflow — pull before commit to avoid push conflicts
  • Online count — stale 0 values from WebSocket no longer overwrite cached counts

Docs

  • README — remove groups sidebar item, add ImageMagick requirement, reorganize screenshots (#115 by @ChuYanLon)
  • Group management — split into separate todo items (#112 by @ChuYanLon)
  • Wiki — synced with v0.4.0 architecture and features