Skip to content

Changelog

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

The format is based on Keep a Changelog, this project adheres to Semantic Versioning, commits follow Conventional Commits, and this changelog is generated by Structured Changelog.

Unreleased

v0.2.0 - 2026-07-25 (0e90905)

Highlights

  • Metrics engine with 4 formulas: frustration, momentum, reach, and urgency
  • LLM-based consolidation pipeline: embed, cluster, summarize, review, attach
  • Analyst findings provider for Gartner, Forrester, and IDC
  • Competitive intelligence provider for win/loss and gaps from CRM sources
  • Curated signal support to skip clustering for pre-aggregated sources
  • Config helpers for typed mapping options (customer, capability, market)

Added

  • metrics package with a formula registry (Register, Get, Compute, ComputeAll) and built-in frustration, momentum, reach, and urgency formulas (0d57581)
  • metrics.Config with LoadConfig, Merge, and ToOptions helpers, plus ConfigFromProviderOptions for reading weights from Config.Options["metrics"] (0d57581)
  • consolidate package implementing a 5-stage pipeline (embed → cluster → summarize → review → attach) via consolidate.NewPipeline (34e7cde)
  • OmniLLMEmbedder for batched embedding generation with configurable TextFunc extractors (34e7cde)
  • Cosine-similarity Clusterer and IncrementalClusterer for grouping and incrementally attaching signals to clusters (34e7cde)
  • LLMSummarizer for generating root cause titles, descriptions, and symptom patterns from signal clusters (34e7cde)
  • MemoryReviewer human review queue with approve/reject workflow, hooks, and auto-approve threshold (34e7cde)
  • provider/analyst package ingesting analyst findings from Gartner, Forrester, and IDC with analyst_report_ref, market_ref, and competitor_ref MarketSpec refs (0158b07)
  • provider/competitive package ingesting win/loss DealRecord and CompetitiveGap data from CRM sources (Salesforce, HubSpot, Clari, Gong) (f0ad928)
  • omnisignal.IsCurated() for detecting pre-consolidated signals that skip the clustering stage (6e8c92f)
  • Config.GetStringMap() for typed map[string]string option retrieval (6e8c92f)
  • OptCustomerMappings, OptCapabilityMappings, and OptMarketMappings well-known config option keys (6e8c92f)

Fixed

  • Updated Jira and PagerDuty providers to use the common.SourceSystem struct instead of a plain string, and added customer/capability mapping support via config options (d612855)

Dependencies

  • Update github.com/plexusone/signal-spec to v0.2.0 and remove the local replace directive (b8dabfe)
  • Add github.com/grokify/oscompat for cross-platform test assertions (ba7031e)

Documentation

  • Add PRD, TRD, PLAN, ROADMAP, and ARCHITECTURE specs covering the OmniSignal signal engine design across 6 phases (28 RMIs) (1942f4a)
  • Add CLAUDE.md with repo-specific contributor guidelines (4410150)
  • Add metadata conventions, PRISM-Roadmap handoff guide, and Aha provider guide covering enhancement request metadata, cross-repo reference format, and curated vs. raw signal handling (67b8ceb)
  • Update README shields (12f7c3c)

Tests

  • Add provider conformance, capabilities, config, error-wrapping, external provider, and signal fingerprinting tests (c00c8ce)
  • Use oscompat for cross-platform duration assertions instead of > 0 comparisons that can report zero on low-resolution Windows timers (ba7031e)

Internal

  • Fix gofmt formatting flagged by golangci-lint (0e90905)

v0.1.0 - 2026-05-23 (4dd585c)

Highlights

  • Unified signal ingestion abstraction for operational intelligence following the omnillm architectural pattern
  • Built-in thick providers for PagerDuty and Jira with SDK-based implementations

Added

  • Core Provider interface with Fetch, Subscribe, Capabilities, and Close methods (194d497)
  • FetchOptions for filtering signals by time range, status, severity, and provider-specific filters (194d497)
  • SubscribeOptions for real-time streaming configuration (194d497)
  • Capabilities struct describing provider features (streaming, batch fetch, filtering, acknowledge) (194d497)
  • Config struct with APIKey, APISecret, BaseURL, Timeout, RetryMax, and Options fields (194d497)
  • Common errors: ErrNotSupported, ErrInvalidConfig, ErrAuthentication, ErrRateLimited, ErrProviderNotFound (194d497)
  • Provider registry with Register, New, MustNew, List, IsRegistered, GetPriority functions (8488b6d)
  • Priority-based registration allowing thick providers to override thin providers (8488b6d)
  • Unregister and ClearRegistry functions for testing (8488b6d)
  • PagerDuty provider using official go-pagerduty SDK (e9095d4)
  • PagerDuty incident fetching with pagination, time filtering, status/severity mapping (e9095d4)
  • PagerDuty incident normalization to signal-spec Signal type (e9095d4)
  • Jira provider using go-jira community SDK (ff331a2)
  • Jira issue fetching via JQL with project, time, status, priority filters (ff331a2)
  • Jira issue normalization to signal-spec Signal type with component entities and label tags (ff331a2)

Dependencies

  • Add github.com/PagerDuty/go-pagerduty v1.8.0 for PagerDuty SDK (7339e3b)
  • Add github.com/andygrunwald/go-jira v1.17.0 for Jira SDK (7339e3b)
  • Add github.com/plexusone/signal-spec v0.1.0 for canonical signal types (7339e3b)

Documentation

  • README with overview, quick start, provider table, interface docs, and custom provider guide (8279975)
  • MkDocs documentation site with PlexusOne theme (4dd585c)
  • Getting started guides for installation and quickstart (4dd585c)
  • Configuration reference for Config, FetchOptions, Capabilities (4dd585c)
  • Provider documentation for PagerDuty and Jira (4dd585c)
  • Custom provider implementation guide (4dd585c)

Infrastructure

  • Add shared CI workflows for build, lint, and test (7fc4419)
  • Add MIT license (ac311e3)