v0.20.0

sleep3r/mtproto.zigv0.20.0Apr 22, 2026by sleep3r

Upgrading?

AI Summary

v0.20.0 enhances the dashboard with user management capabilities, allowing users to be toggled on/off, and improves session metrics to show user-specific active connections.

Key Highlights

  • Added per-user enable/disable toggle in the dashboard UI.
  • Added per-user session metrics and tooltips.
  • Fixed SOCKS5/HTTP upstream inputs resetting during typing.
  • Added `users_total` and `unassigned` aggregates to connection stats.

New Features

  • User toggle, per-user session tooltip, input fix

Full Release Notes

<details open>
<summary>🇷🇺 Что нового (RU)</summary>

## Что решает этот релиз

Релиз улучшает операционный UX dashboard и исправляет некорректный учёт активных сессий по пользователям.

- Управление пользователями стало проще: можно быстро отключать/включать доступ прямо из UI.
- Метрики подключений стали прозрачнее: видно не только общее `active`, но и распределение по пользователям.

> [!NOTE]
> Сумма сессий по пользователям может быть меньше `active` в моменте: часть соединений может находиться в handshake-стадии и ещё не быть атрибутированной конкретному пользователю.

## Что изменено

### Dashboard: toggle пользователя и UX формы ([#207](https://github.com/sleep3r/mtproto.zig/pull/207))

- Добавлен enable/disable toggle в списке пользователей.
- Отключённый пользователь переносится из `[access.users]` в `[access.disabled_users]` (и обратно при включении).
- Исправлен баг, из-за которого поля SOCKS5/HTTP upstream сбрасывались во время ввода на каждом poll-цикле.

### Метрики сессий: корректность и наблюдаемость

- Исправлен декремент per-user `connections_active` при закрытии соединения.
- В `conn stats` добавлены агрегаты `users_total` и `unassigned`.
- В dashboard добавлены `users_active_total` и `unassigned_active`, а также более явное отображение `sessions X/Y`.

Изменений в конфигурации не требуется.

</details>

---

<details>
<summary>🇬🇧 Release notes (EN)</summary>

## What this release addresses

This release improves dashboard operability and fixes per-user active session accounting.

- User management is now faster: access can be disabled/enabled directly from the UI.
- Connection metrics are clearer: you can see both total `active` and user-attributed session counts.

> [!NOTE]
> The sum of per-user sessions can be lower than `active` at a given moment: some connections may still be in handshake stage and not yet attributed to a specific user.

## What changed

### Dashboard: user toggle and form UX ([#207](https://github.com/sleep3r/mtproto.zig/pull/207))

- Added per-user enable/disable toggle in the users list.
- Disabled users are moved from `[access.users]` to `[access.disabled_users]` (and moved back when re-enabled).
- Fixed SOCKS5/HTTP upstream inputs being reset while typing on each poll cycle.

### Session metrics: correctness and observability

- Fixed per-user `connections_active` decrement on connection teardown.
- Added `users_total` and `unassigned` aggregates to `conn stats` logs.
- Added `users_active_total` and `unassigned_active` to dashboard output, plus clearer `sessions X/Y` presentation.

No configuration changes required.

</details>

## Changelog

* feat(dashboard): user toggle, per-user session tooltip, input fix ([#207](https://github.com/sleep3r/mtproto.zig/pull/207)) ([b5eb3dc](https://github.com/sleep3r/mtproto.zig/commit/b5eb3dc742d7270ea7d87c8513721da1c1ad0485))

Related Repositories