Changelog
1.6.1 (2026-09-25)
🐛 Bug Fixes
- alertmanager: open the Alertmanager named in ?alertmanager= (#321) (c651caa)
- rules: move a rule when its group or namespace changes (#314) (03e2cc7)
- time-intervals: don't delete a time interval routes still use (#315) (33fcd5d)
📝 Documentation
🔧 Chores
1.6.0 (2026-09-23)
🎉 Features
- alertmanager: edit the configuration as YAML (#268) (64016ea)
- alerts: silence an alert instance from the instance itself (#248) (5561347)
- routes: edit active time intervals (#269) (c92d723)
- rules: edit keep_firing_for in the rule editor (#212) (ee9f916)
- rules: filter rules by health (#310) (2c9f003)
- rules: validate recording rule names before they hit the ruler (#228) (c6d0d8b)
- rules: view namespace rules as YAML (#249) (5bd93e2)
🐛 Bug Fixes
- alertmanager: keep the global config block on write (#210) (c4cf04d)
- alerts: deduplicate state counters (#309) (24edf6a)
- error on invalid label matcher instead of silently ignoring it (#277) (af928f2)
- inhibit-rules: support multiple structured matchers (#285) (dba922d)
- receivers: Add authorization block for Webex (#227) (2637508)
- routes: accept valid durations when editing a route (#216) (44e4f25)
- routes: correct group and repeat interval descriptions (#209) (62a513a)
- routes: correct matching alert instance counts (#299) (053000e)
- rules: clarify rule search loading state (#251) (66075bf)
- rules: flag duplicate label and annotation keys (#292) (9dc943b)
- rules: harden search parsing and cancel stale sidebar edits (#305) (6920453)
- rules: hide pending period for recording rules (#273) (d6c59ed)
- rules: honour the data source's manageAlerts toggle (#224) (5ee5723)
- rules: improve list and details behavior (#233) (a0bc5bb)
- rules: keep Mimir rule-group settings on write (#213) (9899329)
- rules: make federated rule groups read-only (#222) (d1695e7)
- rules: normalize durations when hashing queries (#296) (083b255)
- rules: show not found for a malformed rule identifier (#265) (faf5474)
- rules: show the plugin logo when a data source's application is unknown (#196) (323780d)
- rules: show what the Ruler rejected instead of "[object Object]" (#225) (951b57f)
- security/high/: update dependency js-yaml to v4.3.2 [security] (#275) (579a444)
- security/medium/: update dependency vitest to v4.1.11 [security] (#276) (dec1b73)
- security: override qs to a patched version (#278) (cff884c)
- security: overrides maintenance (#280) (d409c1e)
- templates: validate Go template syntax before saving (#282) (618b3ed)
- time-intervals: keep every interval and time range on edit (#211) (66b1257)
- validate evaluation intervals client-side (#279) (f7871a2)
📝 Documentation
- add docs/sources scaffold, setup guide, and local preview tooling (#202) (f76e773)
- add the Configure alert rules section (#204) (0fa638e)
- add the Configure notifications section (#205) (00b78f7)
- add the Guides and Examples sections (#207) (7d59d62)
- add the Introduction section (#203) (6cc361d)
- add the Monitor alerts section (#206) (dfa59ce)
- adr: record why namespace YAML needs a Ruler API (#266) (0c322af)
- cut the em dash density (#217) (b483a09)
- fix Writer's Toolkit compliance issues (#215) (f7cf7d2)
- security: align SECURITY_POSTURE with actual mise settings (#271) (23dbf38)
♻️ Code Refactoring
- alerts: flatten the alert drawer's detail rows (#264) (672bebd)
- receivers: add Mimir-first typed receiver forms (#232) (2391f49)
- rules: add a rules-source flavor seam (#197) (90462fe)
⚡ Performance Improvements
✅ Tests
- clean up noisy console output in the test suite (#200) (3090722)
- e2e: cover all Alertmanager receiver forms (#234) (b897981)
- e2e: wait for the rule editor to close before reading the ruler (#254) (4e7e870)
🤖 Continuous Integrations
- bump the release-please action to v2.0.2 (#221) (e27ac1d)
- let the PR impact post job read the repository (#284) (8165f70)
- pin the mise version so CI stops 404ing (#270) (609f35d)
- post PR impact's inline comments as a round, not a running list (#295) (88f1667)
- rate a PR once, and fold the earlier rounds away (#311) (3c1f812)
- rate PR impact and mark what to review first (#272) (c15f536)
- remove create-plugin-update workflow (#195) (7b7b89a)
- rename workflows for clarity and fix create-plugin-update (#193) (e4db394)
🔧 Chores
- build: derive the compile target from browserslist (#219) (463682f)
- deps: bump Node to 24.21.0, pnpm to 12.4.2, lefthook and trufflehog (#307) (259e9b6)
- deps: resolve high-severity audit advisories (#267) (c4c3497)
- provision a Mimir Alertmanager data source for local development (#220) (cb863bd)
- rules: provision a rule that always fails evaluation (#308) (c95e461)
- upgrade Mimir to 3.2.0 in local test stack (#253) (183d18d)
1.5.0 (2026-08-12)
🎉 Features
📝 Documentation
1.4.2 (2026-08-11)
🤖 Continuous Integrations
1.4.1 (2026-08-11)
🐛 Bug Fixes
- security: percent-encode datasource proxy path segments (#185) (99d4ddb)
- security: update dompurify and nanoid to patched versions (#186) (fee152a)
1.4.0 (2026-08-10)
🎉 Features
- inhibit-rules: enforce RBAC on inhibit rules page (#178) (8ad54a8)
- receivers: enforce RBAC on receivers page (#173) (42c523b)
- silences: enforce RBAC on silences page (#181) (3facd2e)
- templates: enforce RBAC on templates page (#174) (31050f7)
- time-intervals: enforce RBAC on time intervals page (#175) (8441682)
🐛 Bug Fixes
♻️ Code Refactoring
1.3.0 (2026-08-04)
🎉 Features
- routes: enforce RBAC on routes page (#168) (c7c58eb)
- rules: add RBAC access controls (#157) (307b993)
- rules: enforce RBAC in rule views and actions (#158) (64fd1b1)
- rules: protect editor workflows with RBAC (#159) (f62738f)
🐛 Bug Fixes
- alerts: use TextLink for generator URL to prevent XSS, add lint rule (#169) (c56477f)
- rules: deleting of rule only for a single one and not the entire rule group (#166) (c30c1ed)
- security/high/: update pnpm to v11.8.0 [security] (#162) (8ac6c01)
- security: reject protocol-relative returnTo paths (#170) (b16c7be)
♻️ Code Refactoring
✅ Tests
🏗️ Builds
- bump everything to pnpm 11.17.0 (#165) (80c1372)
- deps: resolve audit vulnerabilities and bump toolchain (#161) (c04b59d)
1.2.0 (2026-07-22)
🎉 Features
- add Mimir Alertmanager to test environment (54fc4a5)
- add PopupCard component and improve rules filter UI (cc5fbdc)
- e2e: add comprehensive E2E tests for RuleDetails page (bd3b770)
- full CRUD for inhibit rules on Mimir Alertmanager (24737fb)
- pre-populate silence form createdBy with current user's email (80963a8)
- rules: add native query editor for rule expressions (fb43696)
- rules: add syntax highlighting for PromQL and LogQL queries (8d633fe)
- support Grafana 13.0 (#66) (6886bcd)
🐛 Bug Fixes
- always recreate containers on npm run server to prevent stale network state (179c8e6)
- deps: update dependency immer to v11 (#116) (eb6f19a)
- document standard schema cast workaround for zod v4 / RTK Query type mismatch (77316fd)
- make AlertStatusSchema array fields optional with empty defaults (ce6baaa)
- normalize deprecated inhibit rule matchers before populating form (ec69639)
- receivers: wait for list refetch before closing drawer (#137) (7673a62)
- renovate: trust mise config files in Renovate sandbox (#124) (9a95e76)
- resolve pnpm audit security vulnerabilities (#145) (8f25b34)
- rules: disambiguate fully-identical duplicate rules via position matching (#141) (50a2377)
- rules: strip inline PromQL comments in hashQuery (#128) (2f0ec56)
- security/high: update dependency happy-dom to v20.8.9 [security] (#59) (bff98c8)
- security/high: update dependency vite to v7.3.2 [security] (#61) (aef566c)
♻️ Code Refactoring
- drop forked useAsync hook in favor of @react-hookz/web (#150) (8e320ff)
- routes: use useProduceNewAlertmanagerConfiguration for route mutations (#147) (ad55406)
- rule-editor: consolidate form sections and improve UX (d7f92ef)
- rules: reorganize rule editor utilities and refactor API exports (22cfff6)
✅ Tests
- add hook integration tests for inhibit rules CRUD (9118b77)
- e2e: Add Email, Slack and Webhook form tests (#136) (9b04b7b)
- e2e: add receivers e2e tests (#132) (f61cf1f)
- e2e: add routes e2e tests, fix route id/staleness bugs and cross-version flakiness (#134) (7fcc04a)
- e2e: add templates e2e tests (#133) (705ee66)
- e2e: isolate Mimir Alertmanager tenants (#148) (e827e22)
- rewrite Mimir/Loki rule provisioners from shell to Node (#149) (6d5af4a)
🤖 Continuous Integrations
- Add CD workflow (#138) (8047725)
- add code coverage PR comment with trend indicator (#54) (320393a)
- add release-please for automated version bumps and changelogs (#152) (da49591)
- add rev-dep workflow with sticky PR comment on failure (87609e0)
- drop third-party actions to satisfy enterprise-only policy (#67) (ec5c5c6)
- pin sticky-pull-request-comment action to commit hash (718c516)
- simplify rev-dep workflow, let step fail naturally (212aac3)
- update artifact actions to v7/v8 for Node.js 24 compatibility (#110) (accbcd2)
🔧 Chores
- bump @grafana/create-plugin configuration to 6.1.5 (ccbe89b)
- ci: tighten workflow permissions for supply-chain safety (748c064)
- deps: bump @grafana/* packages to 13.1.0 (#131) (cc75706)
- deps: pin immutable@5.1.x via npm override (291fb02)
- deps: update actions/checkout digest to df4cb1c (#121) (750acb9)
- deps: update dependency @grafana/plugin-e2e to ^2.2.1 (c1a292b)
- deps: update dependency @grafana/plugin-e2e to ^2.2.1 (f4f11b8)
- deps: update dependency @hookform/resolvers to v5.4.0 (#112) (80783db)
- deps: update dependency @playwright/test to ^1.56.0 (a1a64d8)
- deps: update dependency @playwright/test to ^1.56.0 (c4153b1)
- deps: update dependency @swc/core to ^1.15.33 (#81) (0e9c694)
- deps: update dependency @types/node to ^20.19.19 (bc935c5)
- deps: update dependency @types/node to ^20.19.19 (c3fb8a7)
- deps: update dependency @types/testing-library__jest-dom to v5.14.9 (c387850)
- deps: update dependency @types/testing-library__jest-dom to v5.14.9 (aed7622)
- deps: update dependency glob to v10.5.0 [security] (#14) (6121f88)
- deps: update dependency js-yaml to v4.1.1 [security] (9bf10c8)
- deps: update dependency js-yaml to v4.1.1 [security] (f4f88e9)
- deps: update dependency lodash to v4.17.23 [security] (#28) (8082efb)
- deps: update dependency lodash to v4.18.1 (#64) (98a2f8c)
- deps: update dependency typescript to v5.9.3 (#85) (269a021)
- deps: update dependency vitest to v4 (#114) (5d6f8d5)
- deps: update dependency webpack to ^5.107.0 (#83) (a9a08a9)
- deps: update dependency webpack to v5.104.1 [security] (#45) (9f77015)
- deps: update dependency yaml to v2.8.3 (#62) (5f318a3)
- deps: update npm to v11.9.0 [security] (#48) (6ed073b)
- deps: update pnpm to v11.5.0 (#118) (5bc18b7)
- exclude test-data .mjs provisioners from rev-dep orphan check (#151) (47c5227)
- pin Node to v24.16.0 LTS and add Renovate config (8bd20f4)
- remove unused CSS/SCSS loaders (da3bd69)
- replace knip with rev-dep for dependency analysis (a90120c)
- security: harden npm supply-chain configuration (2980a17)
- update .config/.cprc.json to version 6.1.5. (a36ed14)
- update plugin.json description and keywords (#119) (d324906)