Files
alert-message-center/CHANGELOG.md
2026-01-17 15:48:47 +08:00

6.6 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

CHANGELOG | 简体中文

[1.3.3] - 2026-01-17

Added

  • Multi-replica Deployment Support: Enhanced stability for load-balanced/multi-instance environments.
    • Database Locking: Introduced Postgres Advisory Locks in db:migrate:deploy script to prevent race conditions during concurrent database migrations.
    • Idempotency Hardening: Verified and ensured Feishu event handling logic is idempotent, supporting safe receipt of duplicate events in multi-replica setups.

[1.3.2] - 2026-01-17

Added

  • Group Chat Search: Added real-time search functionality when binding group chats, solving the difficulty of finding specific groups when many are present.
    • Backend Support: GET /groups now supports q query parameter for fuzzy search and increased default return limit.
    • Search Frontend: Introduced a search input with debounce logic and a custom dropdown list for better UX.

Changed

  • UI Optimization: Improved GroupBindingsModal visual design with a modern list style, status icons, and loading animations.
  • Documentation: Split README.md into English (README.md) and Chinese (README.zh-CN.md) for better internationalization support.

[1.3.1] - 2026-01-16

Added

  • Group Chat Binding Management: Enhanced security and workflow for binding Topics to Feishu group chats.
    • Permission Control: Only Topic creators or Admins are allowed to bind/unbind groups.
    • Approval Workflow: New approval mechanism for group binding requests from non-admin/non-trusted users (tracked via status).
    • Admin Notifications: Introduced admin-notifier.ts for real-time Feishu card notifications to admins upon new Topic or Binding requests.
  • Trusted User System: Introduced isTrusted flag.
    • Trusted users' Topic and Binding requests are auto-approved.
    • Admins skip approval by default.

Changed

  • Database Schema: Added status and created_by fields to topic_group_chats table to support approval flow and permission checks.

[1.3.0] - 2026-01-16

Added

  • Visual Branding: Introduced custom logo and favicon.
    • Modern Indigo theme logo designed specifically for "Alert Message Center".
    • Integrated logo into Login screen and Header, replacing generic icons.

Fixed

  • Deployment Reliability: Fixed database migration failures in Docker environments by including apps/server/drizzle/meta in the package (un-ignored in git).

[1.2.7] - 2026-01-15

Fixed

  • Database Migration: Fixed migration interruptions in K8s environments caused by relative path resolution failures. Now uses robust absolute paths with additional debug logging.

[1.2.6] - 2026-01-15

Changed

  • User Tokens: Shortened personalToken from 32-char UUID to 8-character hex string for better usability.
  • Database Migration: Integrated automated migration for existing user tokens into the deployment script.
  • AI Conventions: Updated copilot-context.md with strict requirements for style and lint checks.

[1.2.5] - 2026-01-15

Fixed

  • Frontend Resilience: Fixed "white page" crashes when database is empty or API returns error objects.
    • Added res.ok and Array.isArray checks to all API requests in TopicsView, SystemLoadView, and AdminView.
    • Added defensive logic to show friendly messages instead of crashing.
  • Vite Env Variables: Fixed TypeError when accessing environment variables.
    • Used optional chaining (meta.env?.) for safe access.
  • CI & Type Safety: Fixed CI-breaking type errors and formatting issues.
    • Unified code style via biome check --write.
    • Improved UserAccessTokenData interface and added null checks for OAuth callback.

[1.2.4] - 2026-01-15

Changed

  • Type Safety: Refactored core logic to eliminate any types.
    • Introduced explicit interfaces in webhook.ts, verify_permissions.ts, and feishu.ts.
    • Improved Webhook body handling with better validation.
  • Linting: Enforced Biome's noExplicitAny rule.

[1.2.3] - 2026-01-15

Added

  • Automated DB Migrations: Introduced automatic database initialization.
    • Added src/db/migrate.ts using Drizzle Migrator.
    • Updated Dockerfile to run migrations on startup.

Fixed

  • Initialization Errors: Fixed relation "users" does not exist on fresh installs.
  • Migration History: Re-generated initial migration files for clean deployments.

[1.2.2] - 2024-01-14

Changed

  • Linting: Tightened Biome configuration for a11y, suspicious, style, and correctness.
  • CI/CD: Integrated Biome checks into GitHub Actions.

Fixed

  • Accessibility: Added type="button" to all buttons and improved Modal keyboard/ARIA support.
  • Hook Dependencies: Stabilized useEffect chains using useCallback.

[1.2.1] - 2024-01-14

Fixed

  • WebSocket Initialization: Fixed TypeError in @larksuiteoapi/node-sdk v1.56.0+.
  • Hono Compatibility: Fixed signature verification issues by using manual challenge handling and prototype header injection.
  • Auto-Cleanup: Added im.chat.member.bot.deleted_v1 support to automatically unbind topics when bot is removed from a group.

Added

  • Structured Logging: Integrated pino for JSON logging with pino-pretty for development.

[1.2.0] - 2026-01-13

Added

  • Feishu Group Notifications: Support for sending alerts to Feishu group chats.
  • Long Connection (WebSocket): Support for intranet deployments via Feishu WebSocket mode.
  • UI Improvements: Added group management entry in Topic list.

Changed

  • Architecture: Unified event distribution for Webhook and WebSocket modes.

[1.1.1] - 2026-01-13

Fixed

  • CI/CD: Fixed Docker build failures after path restructuring.

[1.1.0] - 2026-01-13

Added

  • Docker Integration: Single multi-stage Docker image for both frontend and backend.
  • Environment Isolation: Improved .env handling using Bun's --env-file.
  • Root Scripts: Unified dev and start scripts in root directory.

[1.0.0] - 2026-01-12

Added

  • Personal Inbox: Support for private DM notifications via personal token.
  • Topic Management: Ownership and approval tracking for topics.
  • Admin Dashboard: New view for managing topic requests and permissions.
  • Lark OAuth2: Integrated Feishu identity provider.
  • Initial Release: Core alert routing system based on Hono, Vite, and PostgreSQL.