Maintenance and incident cards rendered affected monitors in a
non-wrapping flex row; with many monitors the badges overflowed the
card (maintenance) or hid behind a horizontal scrollbar (incident).
Badge text was also nowrap, so a single long monitor name could still
bleed past the card edge on narrow viewports.
Apply one rule to both components: badges wrap within the box, and
badge text itself wraps when a name exceeds the row width.
Fixes#794
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add a workflow-level concurrency group keyed by workflow + ref with
cancel-in-progress, so pushing a new commit cancels the still-running
test job for the previous commit on that branch/PR.
Shell scripts checked out with CRLF on Windows (core.autocrlf=true) broke
the Docker entrypoint at container start. Force LF for all text files at
the git layer, matching the existing .editorconfig and Prettier settings.
Agreed. ĐANG XÁC MINH is closer to “verifying/confirming” and can imply that the cause is already being checked. In this incident-management context, INVESTIGATING refers to the earlier phase where the team is still looking into the issue, so ĐANG ĐIỀU TRA is more accurate and clearer for Vietnamese users.
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
- Import GetAllSiteData directly from siteDataController instead of the
controller barrel, which re-exports incidentController and creates a
circular import (risk of partially-initialized modules at runtime).
- Pass a stable per-comment deduplication id to subscriberQueue.push so a
retried/double push notifies once; without it the queue falls back to a
Date.now()-suffixed id that never deduplicates.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Manually created/updated incidents never reached the subscriber
notification workflow (#774): only alertingQueue pushed to
subscriberQueue, so dashboard and API incidents stayed silent.
Make AddIncidentComment the single notification choke point: posting a
comment on an INCIDENT-type incident notifies "incidents" subscribers,
regardless of source (alert, dashboard, or API). Remove the two bespoke
pushes in alertingQueue — alert-driven incidents now notify through the
same path via their auto-created comments, instead of twice.
The dedup id is now the comment id (previously the incident id with a
Date.now() suffix, which never deduplicated anything). Alert-created
incident emails now carry the incident state (INVESTIGATING) instead of
the alert status (TRIGGERED) in the subject; body content is unchanged.
Also drop the dead commented-out queueController blocks left from the
old notification system.
Fixes#774
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The field was already stored in the DB, mapped through the controller,
and present on MonitorRecordTyped — but missing from CreateMonitorRequest
and UpdateMonitorRequest, so the API silently dropped it.