Skip to content

Changelog

The canonical changelog lives at the repo root. It is generated from conventional commits via git-cliff.

Changelog

All notable changes to this project are documented here.

v0.8.0 — 2026-07-19

Build

  • Bump docker/build-push-action from 7.2.0 to 7.3.0 (#293)
  • Bump actions/setup-python from 6.2.0 to 6.3.0 (#295)
  • Bump docker/metadata-action from 6.1.0 to 6.2.0 (#298)
  • Bump i18next from 26.3.1 to 26.3.4 in /frontend (#308)
  • Bump @codemirror/state from 6.7.0 to 6.7.1 in /frontend (#304)
  • Bump @codemirror/view from 6.43.4 to 6.43.6 in /frontend (#305)
  • Bump @tanstack/react-query in /frontend (#306)
  • Bump prettier from 3.8.4 to 3.9.4 in /frontend (#307)
  • Bump golang from 1.25.12-alpine to 1.26.5-alpine (#321)

Documentation

  • Update changelog for v0.7.1 (#325)

Features

  • Complete PostgreSQL 18 production lifecycle (#326)

v0.7.1 — 2026-07-14

Bug Fixes

  • Avoid duplicate release SBOM attestation
  • Gate release signing on image verification
  • Resolve release verification without checkout
  • Pin release artifacts to published commits
  • Secure the community activation path (#324)

CI/CD

  • Recover release artifact scanning
  • Run releases after publication

v0.7.0 — 2026-07-14

Bug Fixes

  • Use database lifetime fallback
  • Isolate Helm PostgreSQL secret sources
  • Harden load test evidence collection
  • Harden PostgreSQL deployment migration
  • Satisfy PostgreSQL lint checks

CI/CD

  • Bump Go toolchain to 1.25.12

Documentation

  • Require PostgreSQL test DSN
  • Update changelog for v0.7.0

Features

  • Reorganize configs page (#317)
  • Require PostgreSQL deployments

Refactoring

  • Make PostgreSQL the community database

Testing

  • Add five thousand collector load scenario
  • Harden five thousand collector load scenario

v0.6.0 — 2026-07-09

Bug Fixes

  • Make known-good replacement precondition atomic (#151)
  • Harden guided rollback safety gates (#152)
  • Add workload config safety translations
  • Use collector-specific validation label
  • Gate rollback history actions
  • Route recovery panel rollback through guided dialog
  • Render rollback report from redacted status
  • Harden push status errors and timeouts (#157)
  • Improve frontend push status visibility
  • Redact legacy remote config status errors (#174)
  • Sanitize legacy remote status at rest
  • Sanitize workload remote status upserts
  • Avoid unsafe rollback endpoint regex
  • Close sanitizer follow-up gaps (#179)
  • Sanitize workload push error responses
  • Enforce canary promotion safety
  • Block offline workload config pushes
  • Render all fleet recommendation paths
  • Localize fleet intelligence UI states
  • Localize fleet intelligence recommendation copy (#203)
  • Add backend scoped push preview contract
  • Enforce trusted scoped push selectors
  • Finalize fleet version intelligence contract
  • Require approval flow for config pushes
  • Require GitOps validation pass before export
  • Align workload topology contract
  • Harden GitOps export security
  • Harden canary instance eligibility (#231)
  • Gate dashboard drift CTA by feature
  • Guard targeted config pushes by workload (#229)
  • Harden report evidence exports (#220)
  • Scope legacy config safety exports
  • Mock policy preview in config versioning e2e
  • Redact gitops import fetch errors (#242)
  • Preserve unknown canary instance capability (#244)
  • Align evidence reports with gates and scope (#245)
  • Align migration preview source limit
  • Redact migration assistant endpoint secrets
  • Fail closed on weak JWT secrets (#256)
  • Pin production backend builder image to golang:1.25-alpine (#257)
  • Require optional OpAMP bearer secret (#258)
  • Validate trimmed JWT secrets (#259)
  • Pass OpAMP shared secret through Compose (#262)
  • Enforce WebSocket origin and token expiry
  • Harden dashboard websocket resilience (#266)
  • Gate config content reads by permission (#268)
  • Canonicalize frontend server state in query cache
  • Gate rollback prepare config reads
  • Rate-limit login and bound JSON bodies
  • Handle restricted config content in UI (#272)
  • Clear frontend config content cache on session change
  • Project workload attributes for lookup (#278)
  • Renumber workload attributes migration
  • Slim config metadata payloads (#288)
  • Harden browser session authentication
  • Harden auth session failure handling (#290)
  • Paginate alert engine workload scans (#277)
  • Harden webhook notifier URL safety (#312)
  • Block IPv6 webhook transition ranges (#315)

CI/CD

  • Pin scorecard action to commit
  • Add e2e and Go race gates (#261)
  • Add pre-tag test hygiene gate (#313)

Documentation

  • Clarify test commands and fix npm lockfile
  • Clarify remote status redaction boundary
  • Document OpAMP shared secret configuration (#260)
  • Refresh roadmap and Go toolchain (#264)
  • Add P1 remediation gate report (#275)
  • Expand developer API and deployment guidance
  • Add P2 remediation gate report (#309)
  • Refresh workflow and hygiene docs (#310)
  • Update changelog for v0.6.0

Features

  • Wire AuditLogger emission across community handlers (#88)
  • Add config safety frontend UX (#141)
  • Add runtime otelcol validation (#142)
  • Enrich validation API response (#143)
  • Fix-config-safety-mobile-responsiveness-and-e2e-mock-regress (#145)
  • Add enriched OTel config diff engine (#147)
  • Implement push timeline and instance status backend (#146)
  • Add known-good config semantics (#149)
  • Add guided rollback backend support (#150)
  • Build-guided-rollback-modal-in-react (#144)
  • Display enriched OTel diff in UI (#148)
  • Show validation checks separately (#153)
  • Build visible push status UI (#154)
  • Build known-good config UI flow
  • Add config application plan API
  • Add config library templates API
  • Add workload config canary API (#188)
  • Add config library templates UI
  • Add manual canary push UI (#190)
  • Add config safety plan dry-run UX
  • Add fleet version intelligence API (#187)
  • Integrate push scope UX (#196)
  • Add fleet config drift dashboard (#184)
  • Add fleet version intelligence dashboard panel (#197)
  • Surface actionable fleet recommendations
  • Add config approval flow backend
  • Add report export API contract
  • Add Git config import provenance (#212)
  • Add backend evidence pack exports
  • Add audit viewer
  • Add config approval frontend flow
  • Add workload topology API
  • Add GitOps config export backend
  • Support targeted workload canaries
  • Expose workload topology in frontend
  • Gate config safety backend endpoints
  • Gate paid config safety UI by capabilities
  • Add config safety evidence report exports
  • Add config policy engine
  • Surface config policy findings in frontend
  • Add config policy engine (#213)
  • Add config safety evidence pack UX
  • Add GitOps config workflow UX (#240)
  • Clarify config policy edition findings (#236)
  • Add config safety report export UX (#238)
  • Add config safety evidence pack UX (#241)
  • Show pre-push config risk score
  • Add config diff blast radius backend
  • Add offline config migration assistant
  • Add fleet compatibility matrix UX (#248)
  • Add human-readable config diff summary (#251)
  • Surface config blast radius simulation (#252)
  • Add migration assistant config UI (#255)
  • Wire workload archive UX (#283)
  • Polish frontend performance and session UX (#316)

Refactoring

  • Make AuditLogger.Log return error for fail-loud sinks (#89)
  • Split OpAMP message handling (#280)
  • Split oteldiff and standardize audit responses (#314)

Testing

  • Disable real websocket during e2e fixtures (#155)
  • Stabilize workload config push e2e
  • Cover workload sanitizer boundaries
  • Stabilize canary Playwright workload mocks
  • Cover integrated scope UX regressions (#200)
  • Cover scoped push preview safety (#204)
  • Stabilize workload config push e2e mocks (#206)
  • Stabilize frontend sidebar e2e coverage
  • Enable pro config safety e2e features (#235)
  • Cover webhook notifier behavior (#263)
  • Cover rollback and fleet version intelligence (#265)
  • Cover config content RBAC boundaries
  • Add handler coverage and smoke path (#281)

v0.5.0 — 2026-05-08

Bug Fixes

  • Silence false-positive security warnings in SSO Playwright tests (#51)
  • Make Renovate config valid (#62)
  • Gate SSO admin redirect behind features.isLoading (#72)
  • Move YamlEditor onChange ref assignment into useEffect (#73)
  • Reject backslash bypass in legacy agents redirect (#85)

CI/CD

  • Bump actions-security to Phase 2 (enforce) (#68)
  • Ignore Go minor bumps for sdkagent image (#43)

Documentation

  • Update alert engine description in README
  • Update changelog for v0.5.0

Features

  • Drop root + add HEALTHCHECK (#65)
  • Migrate to react-router-dom v7 (Data API) (#66)
  • Harden chart with pod security context and resource limits (#70)
  • Add explicit config revision labels, comparison, and rollback (#86)

Refactoring

  • Remove setState-in-effect, re-enable rule as error (#50)

v0.4.0 — 2026-04-30

Documentation

  • Update changelog for v0.4.0

Features

  • Expose WithProtectedRouterHook for auth-protected extensions (#49)

Testing

  • Real-backend Playwright for SSO admin lifecycle (#48)

v0.3.0 — 2026-04-30

CI/CD

  • Foundations — lefthook, golangci, gitleaks, dependabot, security-pr, codeql (#19)
  • Public posture — Scorecard, CODEOWNERS, scheduled scan, badges, markdownlint+lychee (#40)
  • Supply chain — multi-arch ghcr.io, cosign keyless, SBOM, license check (#41)
  • Add actions-security workflow (zizmor + actionlint + pinact) (#44)

Features

  • Apply a saved config from dropdown in collector detail (#45)
  • SSO v2 admin UI + capabilities endpoint (#47)

Refactoring

  • Classify agents by attributes instead of service.name alone (#46)

v0.2.1 — 2026-04-24

Bug Fixes

  • Request full state on unknown-instance heartbeat (#17)

Documentation

  • Update changelog for v0.2.1

Features

  • Extension hooks for SSO (Detach/Replace groups, WithAuthMethodProvider, bootstrap.PreRun) (#18)

v0.2.0 — 2026-04-23

Documentation

  • Dedupe v0.2.0 changelog and note post-merge fixes

Features

  • RBAC groups + profile page (v0.2.0) (#16)

v0.1.1 — 2026-04-23

Documentation

  • Update changelog for v0.1.1

Refactoring

  • Move Go module from backend/ to repo root (#15)

v0.1.0 — 2026-04-22

Bug Fixes

  • Address critical review findings (CORS, embed, auth, DoS, healthz, seed)
  • Pass seed admin env vars through docker-compose
  • Use spec.ingressClassName instead of deprecated annotation
  • Remove unused total variable
  • Also invalidate agent query after config push
  • Improve cache invalidation and axios error handling in AgentConfigSection
  • YamlEditor now reacts to readOnly and value changes
  • Preserve agent state across heartbeats
  • Drop obsolete @codemirror/basic-setup
  • Accept 'applying' remote config status and open /ws to query-token auth
  • Invalidate TanStack caches on WS events for live updates
  • Set document title to otel-magnify
  • Exclude SDK agents from Inventory control filter
  • Restore all compile-time interface satisfaction checks
  • Remove superpowers plans/specs leaked into repo (belong in Obsidian)
  • Hydrate agent state in disconnect broadcast
  • Gate push-config on OpAMP capability, not agent type
  • Trust empty auth methods response and pin fetch in E2E
  • Toggle SQLite foreign_keys around migrations and add FK check to 00011

CI/CD

  • Add git-cliff config and initial changelog
  • Build and deploy MkDocs site to GitHub Pages
  • Add release script with rolling BSL Change Date injection

Documentation

  • Add OpAMP management platform design spec
  • Translate design spec to English
  • Add implementation plan for otel-magnify
  • Write comprehensive README
  • Add CLAUDE.md project instructions
  • Replace Apache 2.0 with BSL 1.1
  • Add pre-1.0 status banner and BSL 1.1 badge
  • Add security policy and vulnerability reporting
  • Add contributing guide with DCO
  • Add public roadmap (Now/Next/Later)
  • Add spec for agent configuration display feature
  • Add implementation plan for agent configuration display
  • Document release workflow in CLAUDE.md
  • Translate all repo content to English
  • Add users section (install, config, agents, push, alerts, troubleshooting)
  • Add developers section with architecture and OpAMP flow diagrams
  • Add API section (REST, WebSocket, auth, OpAMP)
  • Add reference section (env vars, glossary, changelog)
  • Add landing page with audience cards and asset placeholders
  • Align with post-merge reality of config-push-validation
  • Add badge and link to published documentation site
  • Add agent connection guide and sample configs
  • Amend BSL Additional Use Grant (no agent cap, prepare rolling Change Date)
  • Update README license section (no agent cap, rolling Change Date)
  • Document OpAMP Supervisor setup and ship sdkagent Dockerfile
  • Bump collector-contrib reference to 0.150.1
  • Note accepts_remote_config is persisted and gated
  • Document agentCapabilities predicate invariants
  • Add pricing and licensing design spec
  • Add extensibility and module overlay implementation plan
  • Clarify Handler() test-only contract and Run() exclusivity
  • Document workload identity model and K8s resource attributes
  • Add design handoff with React prototype for UI rebuild
  • Update changelog for v0.1.0

Features

  • Initialize Go backend module with config
  • Add shared data models
  • Add database layer with goose migrations
  • Add agent store CRUD operations
  • Add config and agent_config store operations
  • Add alert and user store operations
  • Add OpAMP server with agent registration and config push
  • Add JWT auth with middleware
  • Add WebSocket hub for real-time frontend updates
  • Add REST API router with agent handlers
  • Implement config, alert, and auth REST handlers
  • Add alert engine with agent_down rule evaluation
  • Wire server entrypoint with all backend components
  • Scaffold React frontend with Vite
  • Add API client, WebSocket client, and Zustand store
  • Add layout, dashboard page, and routing
  • Redesign frontend with industrial terminal aesthetic
  • Add Dockerfile and docker-compose for deployment
  • Add Helm chart for Kubernetes deployment
  • Redesign frontend with Signal Deck aesthetic
  • Add config_drift and version_outdated alert rules
  • Add webhook notifications for alerts
  • Add route guards for authenticated pages
  • Add agent status chart to Dashboard
  • Add Postgres service profile to docker-compose
  • Improve agent type detection (collector vs SDK)
  • Add Collectors/SDK stat cards, remove pie chart
  • Remove total agents stat card from dashboard
  • Rename Agents to Inventory, clickable stat cards with type filter
  • Add sample OTel Collector configs for OpAMP demo
  • Add AgentConfigSection component for config display and push
  • Display agent configuration in detail page
  • Add sdkagent tool for simulating OpAMP SDK agents
  • Capture effective config reported by connected agents
  • Add push status columns on agent_configs and agents
  • Add RemoteConfigStatus and push-history fields
  • Extend agent_configs with error_message, pushed_by, JOIN on content
  • Capture RemoteConfigStatus and auto-rollback on failure
  • Persist push in agent_configs, return config_hash, enrich history
  • Broadcast agent_config_status and auto_rollback_applied events
  • Wire RemoteConfigStatus and auto_rollback events into store
  • Capture AvailableComponents reported by agents
  • Light config validator + POST /agents/{id}/config/validate
  • Validate button with inline error list, gates Push
  • Signal Deck YAML theme + PushStatusBanner component
  • ConfigDiffView via @codemirror/merge
  • AgentConfigSection state machine + history table
  • Persist accepts_remote_config on agents
  • Capture AcceptsRemoteConfig capability from OpAMP
  • Reject config push when agent does not accept remote config
  • Add accepts_remote_config type, helpers, and supervised styles
  • Show supervised pill on Inventory agent cards
  • Show Control cell (Supervised/Read-only) on agent detail
  • Hide edit affordances on read-only collectors and add note
  • Add control filter (supervised/read-only) on Inventory
  • Add Supervised stat card on Dashboard
  • Add extension interfaces for module overlay
  • Add composable server builder with functional options
  • Add UpdateUser for role refresh via SSO callbacks
  • Add GET /api/auth/methods with default password entry
  • Add WithAuthMethod option with ID deduplication
  • Fetch auth methods and render SSO login buttons
  • Add Workload and WorkloadEvent types
  • Add 00011 rename agents to workloads migration
  • Add 00012 workload_events migration
  • Add workload events CRUD
  • Add workload fingerprint with K8s/host/uid strategies
  • Add in-memory instance registry
  • Add grace-period controller for workload status
  • Add retention janitor goroutine
  • Wire workload janitor and expose retention env vars
  • Broadcast workload update and event over WS
  • Expose workloads endpoints with legacy 307 redirects
  • Add Instances and Activity sub-tabs on workload detail
  • Migrate tokens and add i18n foundation
  • Rebuild sidebar chrome from design handoff
  • Redesign with push activity and fleet health panels
  • Rebuild workload cards and filter bar
  • Expose embed as pkg/frontend
  • Expose server lifecycle as pkg/bootstrap

Refactoring

  • Use reverse map for OpAMP connection tracking
  • Implement ext.AuthProvider, return UserInfo instead of Claims
  • Accept ext.Store and ext.AuthProvider interfaces
  • Accept OpAMPStore interface instead of concrete *store.DB
  • Accept AlertStore interface and ext.AlertNotifier slice
  • Use pkg/server builder for composable startup
  • Route onConnectionClose through broadcastDisconnect
  • Extract docs base URL into VITE_DOCS_BASE_URL
  • Shrink onConnectionClose critical section to map ops
  • Rename Go module to github.com/magnify-labs/otel-magnify
  • Return sql.ErrNoRows from UpdateUser when no match
  • Replace agents with workloads CRUD layer
  • Propagate workload rename through store + ext interface
  • Route messages through workload registry with events and grace
  • Evaluate rules against workloads (rule id workload_down supersedes agent_down)
  • Swap Agent types for Workload/Instance/WorkloadEvent
  • Rename Agent pages/components/store to Workload and update WS dispatcher
  • Wire cmd/server to pkg/frontend
  • Reduce cmd/server to a bootstrap.Run wrapper

Testing

  • Playwright coverage for edit, validate, push, diff, history, theme
  • E2e coverage for supervised/read-only collector UX
  • Cover DB-error fallback in disconnect broadcast
  • Integration coverage for onConnectionClose broadcast
  • Add Playwright coverage for workload inventory, instances, activity
  • Migrate legacy agent specs to workload endpoints