You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v0.8.7 — Phase 11J: Channel Notification Timezone\n\n### Added\n- Channel-level notification timezone for Telegram: notification_channels.config gains an optional timezone field (IANA name, e.g. Asia/Shanghai / UTC / America/New_York), defaulting to UTC. No schema/migration change — the config is a JSON text column and existing channels without the field keep rendering exactly as before (UTC).\n- buildTelegramMessage(event, hostname, language, timezone) renders the message timestamp via Node's built-in Intl.DateTimeFormat as YYYY-MM-DD HH:mm:ss (Timezone) — language-independent numeric format, correct DST handling, zero new dependencies.\n- Internal storage stays UTC: only the rendered message timestamp is converted; event.occurredAt, the worker, dedup/CAS and the DB are untouched.\n- Channel edit UI gains a Message Timezone field (datalist of common IANA zones + free-form IANA name); saveTelegramChannelAction validates it (invalid_timezone) and persists it with the config; the channels table displays it.\n- New src/lib/notifications/timezone.ts (isValidTimezone, formatNotificationTime, COMMON_NOTIFICATION_TIMEZONES) + unit tests.\n\n### Quality\n- 813 tests (55 files) — 13 new (validation/render/action/view); tsc 0, next lint 0, prettier PASS, build PASS (BUILD_ID q1VeYr6rXq2W46t7BNaOm)\n\n### Notes\n- Scope: Telegram message timestamp only. webhook / email notifications and UI time displays are NOT covered in this release (decided separately).\n- Default UTC keeps every existing channel byte-for-byte compatible — zero migration.