Skip to content

v0.8.7

Choose a tag to compare

@hxx0611 hxx0611 released this 20 Aug 05:26
· 17 commits to main since this release

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.