Files
notify-bridge/RELEASE_NOTES.md
T
alexei.dolgolyov 770c198ac3
Release / release (push) Successful in 1m48s
chore: release v0.5.2
2026-04-24 21:58:40 +03:00

37 lines
3.7 KiB
Markdown

# v0.5.2 (2026-04-24)
Two related improvements to the notification-tracker stack: the display-filter fields on `TrackingConfig` (favorites-only, sort, max-assets, strip-tags, strip-asset-details) are now actually honored by every dispatch path — they previously existed in the model but were silently ignored on watcher / webhook / scheduled / memory / test fires. And the fixed `batch_duration` knob on `NotificationTracker` is replaced by a per-tracker `adaptive_max_skip`, so quiet trackers can opt into back-off without affecting busy ones.
## Features
- **Tracking-config display filters wired into every dispatch path** — the filter fields on Immich `TrackingConfig` now apply consistently across watcher events, inbound webhooks, scheduled / periodic / memory cron fires, and manual test dispatch ([ab621b6](https://git.dolgolyov-family.by/alexei.dolgolyov/notify-bridge/commit/ab621b6)):
- `favorites_only` drops events with no favorited new assets, or filters `added_assets` down to favorites only
- `assets_order_by` / `assets_order` sort the rendered list (date / name / rating / random / none)
- `max_assets_to_show` caps rendered + attached media (default raised from 5 → 10)
- `include_tags` strips people from event extras and tags from each asset when disabled
- `include_asset_details` strips `city` / `country` / `state` / `lat` / `lon` / `is_favorite` / `rating` / `description` when disabled — load-bearing fields (`thumbhash`, `file_size`, `playback_size`, cache keys) are preserved either way
- New `apply_tracking_display_filters` helper in `dispatch_helpers` is the single source of truth
- Targets sharing a `TrackingConfig` are dispatched together; targets with different configs each see their own shaped event
- **Per-tracker adaptive polling** — replaces the global-feeling `NotificationTracker.batch_duration` with `adaptive_max_skip`, an opt-in cap on poll back-off ([ab621b6](https://git.dolgolyov-family.by/alexei.dolgolyov/notify-bridge/commit/ab621b6)):
- `NULL` / `0` → disabled, every tick runs (previous default behavior preserved)
- Positive `N` → caps the skip factor at `(N-1)-in-N` after a long idle stretch
- Scheduler caches the cap in module state for the tick fast-path
- Migration adds the new column; API schemas / responses, frontend types, i18n, and the tracker form are all updated to match
## Upgrade Notes
- **`batch_duration``adaptive_max_skip`** on `NotificationTracker`. The migration runs automatically; existing trackers default to disabled (every tick polls), matching previous behavior. Set a positive value per-tracker if you want quiet trackers to back off.
- **Default `max_assets_to_show` is now 10** (was 5). Existing tracking configs with a stored value are unaffected; only the default for newly created configs (or unset fields) changes. If you relied on the 5-asset implicit cap, set it explicitly.
- **Display filters now actually take effect.** If you had configured `favorites_only`, `include_tags`, `include_asset_details`, etc. previously and expected them to do something — they will now. Review your tracking configs after upgrade if you don't want the filtering applied.
---
<details>
<summary>All Commits</summary>
| Hash | Message | Author |
|------------------------------------------------------------------------------------------|---------------------------------------------------------------------------|------------------|
| [ab621b6](https://git.dolgolyov-family.by/alexei.dolgolyov/notify-bridge/commit/ab621b6) | feat: wire tracking-config display filters + per-tracker adaptive polling | alexei.dolgolyov |
</details>