Files
notify-bridge/RELEASE_NOTES.md
T
alexei.dolgolyov dfd7329177
Release / release (push) Successful in 1m55s
chore: release v0.8.0
2026-05-12 03:01:06 +03:00

4.1 KiB

v0.8.0 (2026-05-12)

User-facing changes

Features

  • Quiet hours now defer notifications instead of dropping them. Events that arrive during a tracker's quiet window are stored on disk and re-fired at the window end. Asset events for the same (link, event_type, collection) coalesce so a flurry of adds/removes during the night collapses into a single morning notification (ba199f2)
  • Upstream release check. New "Release Cassette" in Settings polls a configurable Gitea or GitHub repo on a schedule and surfaces the latest tag in the UI so you know when a newer Notify Bridge is available. Pre-release filtering and interval are operator-configurable; the install ships pointed at this repo's own upstream (ba199f2)
  • Frontend polish across the board. New MetaStrip component, expanded EventDetailModal, and i18n additions land alongside cohesive Aurora-glass styling tweaks on most management pages — providers, targets, bots, trackers, command and notification templates, users, actions, layout, and dashboard (ba199f2)

Documentation

  • README rewritten to cover every supported provider, target type, bot command, and smart action — including the deploy / env-var matrix (bb5afcc, 4335036)

Development / Internal

Architecture

  • New deferred_dispatch table with two migrations: an ON DELETE SET NULL FK rebuild on event_log_id (so the daily event-log retention sweep no longer deadlocks against pending defers), and a partial unique index on (link_id, collection_id, event_type) WHERE status='pending' to make coalescing race-safe under SQLite's serializable writes (ba199f2)
  • Drain scheduler with three layers: a one-shot APScheduler date job per window-end (idempotent, minute-bucketed), a 5-minute periodic catch-up scan as safety net for misfire-grace overflow and process-restart gaps, and load_pending_drain_jobs to re-arm scheduled drains on boot (ba199f2)
  • Release-check provider abstraction (packages/core/.../release/) with Gitea and GitHub adapters, SSRF-safe outbound URL validation, a registry/factory, and a server-side scheduler probe with cached state and on-settings-change cache invalidation (ba199f2)
  • Version resolution helper (packages/server/.../version.py) that returns the max of installed-package metadata vs source pyproject.toml — fixes the long-running editable-install bug where bumping the version without reinstalling kept the old number visible in the UI (ba199f2)

Tests

  • New test suites: test_deferred_dispatch.py (drain + coalescing + retention interaction), test_release_provider.py (Gitea and GitHub adapter parsing and error paths), and test_release_service.py (scheduler-level caching and settings invalidation) (ba199f2)

All Commits
Hash Message Author
ba199f2 feat: deferred dispatch, release-check provider, settings polish alexei.dolgolyov
bb5afcc docs: expand README with all providers, targets, bot commands, and smart actions alexei.dolgolyov
4335036 docs: sync README deploy section with actual env vars alexei.dolgolyov