Skip to content

Release Notes - v0.45.0

Title: Headless notifications, tray updates, and operational improvements

Version: v0.45.0

Compare: v0.44.0…v0.45.0

This release adds a headless notification integration, automatic tray update checks, clearer configuration and filtering behavior, standardized event names, expanded architecture and governance documentation, safer observability, and more reliable release delivery.

  • Added headless notification output and validation: Adder now emits versioned NDJSON status and notification records through notify-json. The adder notifications validate command checks strict versioned notification settings, chainsync and configuration consistency, and UI-neutral notification dispatch provides more specific governance vote details.

  • Improved tray update management: Adder now checks GitHub releases weekly, remembers skipped versions and update preferences, verifies installer checksums for macOS and Windows, and links to the release page on unsupported platforms. The tray also presents corrected icons and About details, cleans up WebSocket responses, and improves macOS service activation.

  • Clarified configuration precedence and durable saves: CLI values override YAML values, YAML values override environment variables, and defaults apply last. Explicit CLI flags remain authoritative, while atomic saves protect configuration during concurrent writes.

  • Expanded filter and event lifecycle handling: Adder now wires comprehensive event type filtering through the CLI, manages filter lifecycles more safely, and uses race-oriented tests with safer goroutine setup.

  • Refined Cardano event matching: Dedicated matching logic now handles missing stake credentials safely and matches pools through SPO voting procedures.

  • Enabled independent chain rollback notifications: The Chain rollbacks preference and wizard checkbox now control rollback notifications separately from Blocks minted notifications.

  • Documented application architecture: New architecture guidance explains the pipeline and plugin model, configuration precedence, concurrency, shutdown behavior, and adder-tray integration.

  • Introduced multi-target tray monitoring: Adder now monitors Wallet, DRep, Pool, Asset, and Policy targets with rate limiting, batching, connection alerts, UI-neutral dispatch, and updated wizard configuration. Existing engine.yaml filter.cardano settings and legacy Template and Param values no longer control notification matching; migrate matching rules to the tray target configuration.

  • Added signed macOS package installation: Adder now produces signed and notarized .pkg installers for the CLI and tray, with native arm64 and amd64 packages, installation scripts, Gatekeeper verification, and Makefile targets. Optional ad-hoc signing remains available for local builds.

  • Expanded webhook and delivery coverage: Tests now cover webhook delivery, serialization, failures, lifecycle behavior, Discord formatting, the CLI factory, and sink behavior.

  • Strengthened webhook reliability: Webhook output now reports errors for malformed event payload and context types instead of panicking. Adder coordinates startup, shutdown, and channel lifecycle handling safely, and shutdown interrupts retry waits.

  • Introduced tray access and startup controls: The tray About dialog now shows version and commit metadata, Step 4 exposes autostart controls and status, and macOS Login Items stay synchronized. Bundle metadata includes VERSION and COMMIT_HASH, and an uninstall script supports optional data purging.

  • Clarified troubleshooting guidance: The new guide focuses on supported operational checks for environment configuration, FCM delivery, and webhook behavior.

  • Enabled multi architecture publishing: Release workflows now publish Docker manifests with docker buildx imagetools, limit credential persistence, manage runtime environment handling more securely, disable the setup-go cache, pin MSYS2, and improve release finalization.

  • Standardized public event names: DRep registration, update, and retirement events now use input.drep-registration, input.drep-update, and input.drep-retirement. Consumers that match the former chainsync.drep.* names must update their filters.

  • Extended Telegram Bot API 10.2 compatibility: The Telegram integration now includes Bot API 10.2 models and corrected marshaling behavior.

  • Updated Telegram retry handling: The Telegram integration now honors retry_after for HTTP 429 responses and includes Bot API 10.3 models.

  • Enhanced Telegram rich message uploads: The bot client now handles rich message attachments and thumbnail uploads, rejects typed nil values and duplicate attach:// names early, and escapes JSON correctly.

  • Improved Telegram HTTP/2 resilience: Multipart requests now buffer for HTTP/2 GOAWAY retries, empty multipart bodies are suppressed, and unknown update variants are handled. Multipart buffering can increase memory usage during uploads.

  • Hardened gouroboros v0.204.1 compatibility: Metadata decoding and depth handling, shutdown behavior, and protocol validation now work more reliably. The release changes DRep deposit behavior and makes localstatequery interfaces strongly typed; integrations using these areas must update accordingly.

  • Refined gouroboros v0.202.8 validation: Ledger validation and Shelley stake pool validation now handle the supported protocol data more accurately.

  • Tightened gouroboros v0.202.2 processing: Ledger and header checks, trust anchor handling, and malformed transaction submission handling now provide stronger safeguards.

  • Expanded gouroboros v0.192.2 validation: Stricter decoding, KES handling, DMQ, governance, reward, MultiAsset, and mint validation improve protocol compatibility.

  • Added gouroboros v0.189.4 query compatibility: Stake address local state queries now work with the updated support for Leios, Conway, and GetCBOR.

  • Corrected gouroboros v0.186.3 ledger decoding: Duplicate ledger entries no longer disrupt decoding.

  • Fixed gouroboros v0.186.1 protocol handling: OpCert, Dijkstra redeemer, and cost model processing now use the corrected behavior.

  • Strengthened operational observability: Structured fields and component-scoped loggers now make startup, chainsync, push, Telegram, and webhook output easier to interpret. Adder redacts sensitive FCM tokens and sanitizes webhook URLs and payloads.

  • Updated system compatibility libraries: Adder now uses golang.org/x/sys v0.46.0.

  • Refreshed lint automation: The golangci-lint action now uses v9.3.0.

  • Stabilized tagged release delivery: Pinned macOS runners, non-fast-fail matrix builds, separate macOS packaging and signing, and finalization after partial build failures make tagged releases more reliable.

  • Secured container publishing: The Docker login action now uses v4.5.1 for Docker Hub and GitHub Container Registry publishing.

  • Established contributor documentation guidance: AGENTS.md now explains how to write meaningful inline comments and accurate documentation comments for exported identifiers.

  • Aligned Cardano interoperability: Adder now uses github.com/blinklabs-io/gouroboros v0.187.3 with decoding and interoperability fixes.

  • Hardened release artifact attestations: The attestation action now uses v4.2.1 for release artifacts and container attestations.

  • Upgraded protocol serialization support: Adder now uses google.golang.org/protobuf v1.36.12.

  • Integrated Cardano protocol improvements: Adder now uses gouroboros v0.193.0 and plutigo v0.3.0, adding Byron delegation signature verification, validity interval preservation, GetAccountState support, and the Leios to Dijkstra integration path.

  • Added Plutus validation safeguards: plutigo v0.6.1 adds Normalize, bounded JSON parse trees, BLS MSM validation, evaluator error preservation, and cost model isolation.

  • Corrected Plutus numeric handling: plutigo v0.5.1 fixes bignum magnitude chunking.

  • Hardened malformed input handling: plutigo v0.1.16 and x/crypto v0.53.0 improve malformed input handling and evaluation performance.

  • Tightened image validation: golang.org/x/image v0.43.0 applies stricter validation to TIFF, WebP, BMP, and SFNT data.

  • Expanded Cardano account state support: gouroboros v0.183.0 improves validation correctness and removes the old Leios-era EnableLeiosEra integration in favor of Dijkstra.

  • Updated Cardano test utilities: Adder now uses ouroboros-mock v0.19.0.

  • Clarified custom logger behavior: Logger context now propagates consistently, and injectable writers support more controlled output. Tests cover JSON output and log level filtering.

  • Introduced Plutus library compatibility: Adder now uses plutigo v0.5.0.

  • Upgraded image and related system libraries: Adder now uses golang.org/x/image v0.45.0 with related golang.org/x/* updates.

  • Modernized system library support: Adder now uses golang.org/x/sys v0.47.0.

  • Renewed image and system dependencies: Adder now uses golang.org/x/image v0.46.0, golang.org/x/sys v0.48.0, and related golang.org/x/* updates.

  • Adjusted FreeBSD artifacts: FreeBSD publish artifacts no longer include adder-tray.

🧪 Testing, CI, Docs, and Release Tooling

Section titled “🧪 Testing, CI, Docs, and Release Tooling”
  • Modernized Java workflow setup: Java workflow actions now use actions/setup-java v5.3.0.

  • Renewed test and YAML libraries: Adder now uses testify v1.12.1 and indirect yaml.v3 v3.0.5.

  • Trimmed plugin option parsing: Comma-separated plugin options now ignore surrounding whitespace, Cardano, event, and chainsync parsers handle YAML-formatted lists and intersect points more consistently, and the Go directive now targets version 1.26.0.

  • Expanded governance documentation: docs/governance.md now describes governance events, while README schemas and examples match the structures emitted at runtime.

  • Improved Go workflow setup: Go workflows now use actions/setup-go v7.0.0.

  • Refined test dependency cleanup: Adder now uses testify v1.12.0 and removes obsolete test dependencies.

  • Enhanced artifact attestation workflows: Release workflows now use actions/attest v4.2.2.

  • Updated repository checkout workflows: CI and release workflows now use actions/checkout v7.0.0.

  • Modernized Windows tag signing: The signing workflow now provisions Temurin Java 21 instead of Java 17.

  • Refreshed Windows signing and MSI Java setup: Windows signing and MSI workflows now use actions/setup-java v5.6.0.

  • Retained Java 21 in the test MSI workflow: The test MSI workflow now uses actions/setup-java v6.0.0 while continuing to use Java 21.

  • Improved Docker image metadata: Docker CI and publishing workflows now use docker/metadata-action v6.2.0.

  • Expanded Docker build support: Docker workflows now use docker/setup-buildx-action v4.2.0.

  • Strengthened MSI artifact publishing: Workflows now use actions/upload-artifact v7.0.1. Self-hosted Actions Runner installations must use version 2.327.1 or later for the MSI workflow.

  • Added Dingo preview validation assets: Dingo v0.70.9 preview resources now include N2C UNIX-socket validation assets, configurations, Docker Compose support, macOS Apple and container scripts, and documentation.

  • Extended API routing test coverage: Tests now cover API route and hijacker behavior.

  • Upgraded Go workflow setup: Go workflows now use actions/setup-go v6.5.0 for the affected automation.

  • Renewed Docker registry authentication: Docker workflows now use docker/login-action v4.4.0.

  • Revised repository checkout automation: CI and release workflows now use actions/checkout v7.0.1.

  • Secured artifact attestations: Release artifact and container attestation workflows now use actions/attest v4.2.0.

  • Refreshed Windows signing and MSI workflows: These workflows now use actions/setup-java v5.7.0.

  • Adjusted Windows signing setup: The Windows signing workflow now uses actions/setup-java v5.4.0.

  • Modernized test MSI checkout security: The test-msi workflow no longer persists checkout credentials.

  • Updated Docker build tooling: Docker workflows now use docker/setup-buildx-action v4.3.0.

  • Preserved Java 21 in test MSI builds: The test-msi workflow now uses actions/setup-java v6.0.1 while retaining Java 21.

  • Delivered signed Windows MSI installation: The x64 and arm64 MSI packages now bundle the CLI and tray, integrate with the Start Menu and Add/Remove Programs, and do not register a Scheduled Task. Test workflows can use optional signing, while tray logging, single-instance behavior, /events?replay= handling, and notification and explorer-link behavior are more reliable.

  • Configured tray notification rules: The in-app editor now supports editable Wallet, DRep, Pool, Asset, and Policy targets, category preferences, immediate hot reload, persistent settings, duplicate validation, and soft-error retries.

  • Strengthened gouroboros v0.190.0 validation: Byron body-proof checks now provide stronger validation, and unknown chainsync or consensus inputs return errors instead of being accepted silently.

  • Expanded filter and governance guidance: The README now includes filter and governance examples, maps filter flags to environment and configuration settings, and explains governance filtering.

  • Added embedded library examples: Publisher, pool filter, and address filter examples now show how to use CARDANO_NODE_SOCKET_PATH and CARDANO_NODE_MAGIC.

  • Hardened FCM notification delivery: Push workers now manage their lifecycle more reliably, propagate FCM errors, require a service-account path and project_id, enforce 10-second FCM timeouts, and handle malformed events safely.

  • Improved Cardano filter test coverage: Filter tests now use more realistic ouroboros-mock fixture builders and exercise CIP-0129 drep and drep_script normalization, including bech32 variants and header stripping. CI system dependencies and relevant lint/NilAway workflows now set CGO_ENABLED=1.

  • Refined pipeline and filter integration: Integration tests now cover plugin option lifecycles and error propagation, making pipeline configuration failures easier to surface.

  • Updated Cardano test and protocol libraries: Adder now uses ouroboros-mock v0.18.0 with related gouroboros and plutigo updates.

  • Refreshed desktop tray support: Adder now uses fyne.io/fyne/v2 v2.8.1 and updated systray components.

  • Upgraded Telegram bot support: Adder now uses go-telegram/bot v1.22.0.

  • Removed automatic project closure updates: Closing an item no longer populates the GitHub Projects Closed Date field automatically.

  • Renewed image processing libraries: Adder now uses golang.org/x/image v0.44.0 and related x/* updates.

  • Secured release attestations: Release publishing now uses actions/attest v4.1.1.

  • Updated ChainSync test harness support: Adder now uses ouroboros-mock v0.16.0, which exposes the harness server-under-test connection for tests and utilities.

  • Modernized Windows signing workflows: Windows signing and MSI workflows now use actions/setup-java v5.5.0 while retaining Java 21.

  • Updated container registry authentication: Docker workflows now use docker/login-action v4.6.0.

  • Refreshed the Docker build image: Container builds now use the blinklabs-io/go image 1.26.7-1.

  • Improved Docker image publishing: Docker workflows now use docker/build-push-action v7.3.0.


Doc Holiday logo

Docs authored by Doc Holiday

Edit page

Last updated: