• v0.5.1 187b889c45

    Notify Bridge 0.5.1
    Release / release (push) Successful in 1m49s
    Stable

    alexei.dolgolyov released this 2026-04-24 19:21:39 +03:00 | 63 commits to master since this release

    v0.5.1 (2026-04-24)

    Extends the Immich scheduled/memory dispatch shipped in v0.5.0 with a per-album fan-out mode and rich multi-album templates, adds "Reset to default" tooling and an inline preview modal for notification / command templates, and introduces a none listener mode for Telegram bots (safer default for shared-token deployments). Also fixes an infinite-recursion bug in the notification dispatcher that was breaking test dispatch for periodic / scheduled / memory slots.

    Features

    • Per-album Immich dispatch for scheduled / memory slots — honors the new {kind}_collection_mode on TrackingConfig: per_collection fans out one event per album, combined pools assets as before. Combined mode now attaches album_name / album_url / album_public_url to each asset so templates can attribute rows to their source album. Default scheduled_assets and memory_mode templates render a multi-album header with an inline album list and per-row album link. The cron and test-dispatch paths now share a single build_immich_dispatch_events helper (b61394f).
    • "Reset to default" for template slots — new per-slot and whole-template reset buttons on notification and command template configs, backed by GET /*-template-configs/defaults endpoints. Confirmations use the app's ConfirmModal instead of window.confirm (b61394f).
    • Inline template preview + deep-link edit — tracking-configs "Preview template" now opens an inline preview modal with locale tabs instead of navigating away. The Edit button deep-links with ?edit_slot=<name> so the destination auto-opens the config and scrolls to the requested slot (b61394f).
    • Telegram bot none listener mode — third option alongside polling and webhook. Disables both long-polling and webhook delivery; useful when another instance owns the listener or the bot is send-only. Switching into none unschedules polling and unregisters the active webhook so Telegram stops delivering updates (be15463).

    Bug Fixes

    • Fix NotificationDispatcher._session_ctx infinite recursion when no shared aiohttp.ClientSession was passed — broke test dispatch for periodic / scheduled / memory slots (cron path was unaffected) (b61394f).
    • telegram-bots /chats/{id}/test now resolves chat.language_override / language_code instead of using the raw ?locale query param, matching the resolution the tracker-target test endpoint already used (b61394f).
    • Default scheduled_assets template no longer emits a blank line between the header and the first asset when the multi-album branch is taken (b61394f).

    Upgrade Notes

    • New Telegram bots default to none (safer when multiple bridges share a token). Existing bots upgraded from a pre-update_mode schema keep polling, so their behavior is unchanged. When creating a new bot, explicitly switch to polling or webhook if you want it to receive updates.
    • A new {kind}_collection_mode field was added to TrackingConfig for Immich scheduled/memory slots. Existing trackers keep the previous combined behavior by default; switch to per_collection per-tracker to opt in to one-event-per-album fan-out.

    All Commits
    Hash Message Author
    b61394f feat(immich): per-album scheduled/memory dispatch + template tooling alexei.dolgolyov
    be15463 feat(telegram): add 'none' listener mode for bots alexei.dolgolyov

    Changelog

    187b889 chore: release v0.5.1
    b61394f feat(immich): per-album scheduled/memory dispatch + template tooling
    be15463 feat(telegram): add 'none' listener mode for bots

    Downloads