Release Notes - v0.45.0
v0.45.0
Section titled “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.
✨ Highlights
Section titled “✨ Highlights”-
Added headless notification output and validation: Adder now emits versioned NDJSON status and notification records through
notify-json. Theadder notifications validatecommand 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 rollbackspreference and wizard checkbox now control rollback notifications separately fromBlocks mintednotifications. -
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.yamlfilter.cardanosettings and legacyTemplateandParamvalues no longer control notification matching; migrate matching rules to the tray target configuration. -
Added signed macOS package installation: Adder now produces signed and notarized
.pkginstallers for the CLI and tray, with nativearm64andamd64packages, 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
VERSIONandCOMMIT_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 thesetup-gocache, pin MSYS2, and improve release finalization.
⚠️ Event Compatibility
Section titled “⚠️ Event Compatibility”-
Standardized public event names: DRep registration, update, and retirement events now use
input.drep-registration,input.drep-update, andinput.drep-retirement. Consumers that match the formerchainsync.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_afterfor 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
GOAWAYretries, 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.
💪 Improvements
Section titled “💪 Improvements”-
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/sysv0.46.0. -
Refreshed lint automation: The
golangci-lintaction 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.mdnow explains how to write meaningful inline comments and accurate documentation comments for exported identifiers. -
Aligned Cardano interoperability: Adder now uses
github.com/blinklabs-io/gouroborosv0.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/protobufv1.36.12. -
Integrated Cardano protocol improvements: Adder now uses
gouroborosv0.193.0 andplutigov0.3.0, adding Byron delegation signature verification, validity interval preservation,GetAccountStatesupport, and the Leios to Dijkstra integration path. -
Added Plutus validation safeguards:
plutigov0.6.1 addsNormalize, bounded JSON parse trees, BLS MSM validation, evaluator error preservation, and cost model isolation. -
Corrected Plutus numeric handling:
plutigov0.5.1 fixes bignum magnitude chunking. -
Hardened malformed input handling:
plutigov0.1.16 andx/cryptov0.53.0 improve malformed input handling and evaluation performance. -
Tightened image validation:
golang.org/x/imagev0.43.0 applies stricter validation to TIFF, WebP, BMP, and SFNT data. -
Expanded Cardano account state support:
gouroborosv0.183.0 improves validation correctness and removes the old Leios-eraEnableLeiosEraintegration in favor of Dijkstra. -
Updated Cardano test utilities: Adder now uses
ouroboros-mockv0.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
plutigov0.5.0. -
Upgraded image and related system libraries: Adder now uses
golang.org/x/imagev0.45.0 with relatedgolang.org/x/*updates. -
Modernized system library support: Adder now uses
golang.org/x/sysv0.47.0. -
Renewed image and system dependencies: Adder now uses
golang.org/x/imagev0.46.0,golang.org/x/sysv0.48.0, and relatedgolang.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-javav5.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.mdnow describes governance events, while README schemas and examples match the structures emitted at runtime. -
Improved Go workflow setup: Go workflows now use
actions/setup-gov7.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/attestv4.2.2. -
Updated repository checkout workflows: CI and release workflows now use
actions/checkoutv7.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-javav5.6.0. -
Retained Java 21 in the test MSI workflow: The test MSI workflow now uses
actions/setup-javav6.0.0 while continuing to use Java 21. -
Improved Docker image metadata: Docker CI and publishing workflows now use
docker/metadata-actionv6.2.0. -
Expanded Docker build support: Docker workflows now use
docker/setup-buildx-actionv4.2.0. -
Strengthened MSI artifact publishing: Workflows now use
actions/upload-artifactv7.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-gov6.5.0 for the affected automation. -
Renewed Docker registry authentication: Docker workflows now use
docker/login-actionv4.4.0. -
Revised repository checkout automation: CI and release workflows now use
actions/checkoutv7.0.1. -
Secured artifact attestations: Release artifact and container attestation workflows now use
actions/attestv4.2.0. -
Refreshed Windows signing and MSI workflows: These workflows now use
actions/setup-javav5.7.0. -
Adjusted Windows signing setup: The Windows signing workflow now uses
actions/setup-javav5.4.0. -
Modernized test MSI checkout security: The
test-msiworkflow no longer persists checkout credentials. -
Updated Docker build tooling: Docker workflows now use
docker/setup-buildx-actionv4.3.0. -
Preserved Java 21 in test MSI builds: The
test-msiworkflow now usesactions/setup-javav6.0.1 while retaining Java 21.
🔄 Final batch updates
Section titled “🔄 Final batch updates”-
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_PATHandCARDANO_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-mockfixture builders and exercise CIP-0129drepanddrep_scriptnormalization, including bech32 variants and header stripping. CI system dependencies and relevant lint/NilAway workflows now setCGO_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-mockv0.18.0 with relatedgouroborosandplutigoupdates. -
Refreshed desktop tray support: Adder now uses
fyne.io/fyne/v2v2.8.1 and updated systray components. -
Upgraded Telegram bot support: Adder now uses
go-telegram/botv1.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/imagev0.44.0 and relatedx/*updates. -
Secured release attestations: Release publishing now uses
actions/attestv4.1.1. -
Updated ChainSync test harness support: Adder now uses
ouroboros-mockv0.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-javav5.5.0 while retaining Java 21. -
Updated container registry authentication: Docker workflows now use
docker/login-actionv4.6.0. -
Refreshed the Docker build image: Container builds now use the
blinklabs-io/goimage1.26.7-1. -
Improved Docker image publishing: Docker workflows now use
docker/build-push-actionv7.3.0.
Docs authored by Doc Holiday