Skip to content

Releases: Akash97p/agent-notify

AgentNotify v0.0.4-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 31 Aug 04:55

This is a prerelease. It is intended for testing and evaluation: expect incomplete
features, breaking changes, and unsigned binaries. The mature 1.0.0 release is reserved for a
future stable milestone.

Adds AgentNotify Relay: a self-hostable service that carries notifications from your computers to
your phone, without routing them through somebody else's messaging product. Connecting a computer
is now a browser approval rather than a pasted token.

Relay is a separate open-source project —
github.com/Akash97p/agent-notify-relay — and is
documented at Relay. The mobile client and
the hosted Relay Go plan do not exist yet, and the desktop still sends an experimental opaque
transport rather than a sealed box, so end-to-end confidentiality is not yet delivered.

Added

  • Browser-based AgentNotify Relay connection. The Windows Channels panel now discovers a Relay,
    opens its approval page, displays a short verification code, polls with cancellation and bounded
    retry, verifies the approved installation, and saves the one-time credential only when the
    provider is saved. Manual credential entry remains under a collapsed Advanced section.
  • Headless Relay pairing. agentnotify relay pair runs the same device-authorization handshake
    on Windows, macOS, and Linux, while agentnotify relay status verifies saved Relay providers.
    --json provides line-delimited state transitions for scripts.

Security

  • Relay discovery, pairing, verification, and delivery now share one redirect-free, proxy-free,
    DNS-pinned HTTP transport. Browser approval URLs must match the configured Relay origin exactly;
    polling and installation credentials are never placed in URLs, UI text, logs, or exceptions.

Fixed

  • Relay test sends no longer submit a synthetic relay-placeholder-device after sender pairing.
    An installation with no active phone now returns no_devices_paired locally and the Channels UI
    explains the required next step; an unknown pinned device is rejected before any envelope is sent.
  • Every Relay send failed with relay_400. Two serialization details were rejected by the
    Relay before any handler ran: expires_at used DateTimeOffset.ToString("O"), which emits a
    numeric offset instead of the trailing Z the schema accepted, and absent optional metadata was
    written as an explicit null. Timestamps now use the Z form and nulls are omitted.
  • The route editor's provider dropdown showed a type name instead of each provider's name, so
    every entry looked identical. The themed ComboBox draws the closed control from
    SelectionBoxItemTemplate, which DisplayMemberPath alone leaves empty; an explicit
    ItemTemplate now drives both the list and the selection.
  • Envelopes carried a sender_id that did not match the value sealed into the ciphertext. The
    recipient rebuilds its authentication data from the sender_id it is given, so the mismatch
    would have made every envelope fail authentication on the device once the transport is really
    encrypted. Both now come from one value.
  • The setup window and settings header rendered a soft, low-resolution logo. Windows selects a
    small icon frame for an image with an explicit size; on-screen logos now use the 512px source
    while window and executable icons keep the multi-resolution .ico.

Install

Windows — download AgentNotifySetup.exe below and run it. No separate .NET runtime is needed.
The installer is not Authenticode-signed, so Windows may show a SmartScreen prompt.

macOS and Linux

curl -fsSL https://raw.githubusercontent.com/Akash97p/agent-notify/main/scripts/install.sh | sh

This verifies the published SHA-256 checksum before installing agentnotify and agentnotifyd
into ~/.local/bin. To install this exact version, set AGENTNOTIFY_VERSION=v0.0.4-alpha.1.
See Installing on macOS and Linux.

Verifying downloads

SHA256SUMS.txt covers the Windows installer. SHA256SUMS-portable.txt covers the portable
archives. Check a download before running it:

sha256sum -c SHA256SUMS-portable.txt --ignore-missing

Documentation

Getting started ·
CLI reference ·
API ·
Configuration ·
Troubleshooting ·
What is verified

Full commit log: v0.0.3-alpha.1...v0.0.4-alpha.1

AgentNotify v0.0.3-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Aug 17:28

This is a prerelease. It is intended for testing and evaluation: expect incomplete
features, breaking changes, and unsigned binaries. The mature 1.0.0 release is reserved for a
future stable milestone.

Fixes a crash that could close the application, and adds an About section.

Fixed

  • Selecting a saved provider in Settings closed the application. JsonElement.TryGetInt32
    throws rather than returning false for any value that is not a number, including JSON null, and
    optional provider settings are stored as null when left blank. A Telegram provider saved
    without a topic ID therefore threw when its row was selected, and because that handler runs
    outside the panel's error boundary the exception terminated the tray process — taking the broker
    and its local API with it. The same pattern affected eight settings across SMTP, Telegram,
    Pushover, Twilio SMS, Twilio WhatsApp, and MQTT.
  • A successful provider test reported an error. Test send saves, sends, then reloads the
    provider. The reload hit the same defect, so the failure appeared after the message had already
    been delivered.

Added

  • About section. A new About tab in Settings shows the application icon, name, version, what
    AgentNotify is, a local-first summary, links to the repository, documentation, releases and
    issues, the per-user data directory, and publisher, licence and unsigned-binary notes. The tray
    menu gained an "About AgentNotify" entry that opens it.
  • docs/BUG.md, a bug log recording the cause, fix and lesson for each defect found so far.

Changed

  • Documentation no longer contains machine-specific filesystem paths, and every version reference
    is aligned with the released version.

Install

Windows — download AgentNotifySetup.exe below and run it. No separate .NET runtime is needed.
The installer is not Authenticode-signed, so Windows may show a SmartScreen prompt.

macOS and Linux

curl -fsSL https://raw.githubusercontent.com/Akash97p/agent-notify/main/scripts/install.sh | sh

This verifies the published SHA-256 checksum before installing agentnotify and agentnotifyd
into ~/.local/bin. To install this exact version, set AGENTNOTIFY_VERSION=v0.0.3-alpha.1.
See Installing on macOS and Linux.

Verifying downloads

SHA256SUMS.txt covers the Windows installer. SHA256SUMS-portable.txt covers the portable
archives. Check a download before running it:

sha256sum -c SHA256SUMS-portable.txt --ignore-missing

Documentation

Getting started ·
CLI reference ·
API ·
Configuration ·
Troubleshooting ·
What is verified

Full commit log: v0.0.2-alpha.1...v0.0.3-alpha.1

AgentNotify v0.0.2-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Aug 14:59

This is a prerelease. It is intended for testing and evaluation: expect incomplete
features, breaking changes, and unsigned binaries. The mature 1.0.0 release is reserved for a
future stable milestone.

AgentNotify now runs on macOS and Linux, not just Windows.

Added

  • Headless broker for macOS and Linux (agentnotifyd). Runs the same broker the Windows tray
    process hosts — configuration, SQLite history, the durable delivery outbox, and the loopback
    /v1 API — without a desktop UI framework. Agents cannot tell the two apart: the CLI, the bearer
    token, and the API contract are identical on every platform.
  • Desktop notifications on macOS and Linux. notify-send on Linux, terminal-notifier or
    Notification Center on macOS, and a console fallback so a notification is never silently dropped
    when no graphical session exists, such as over SSH.
  • Per-platform provider secret protection. Windows continues to use DPAPI and never falls back.
    macOS stores the key in the login keychain, Linux in the Secret Service keyring via secret-tool,
    and either falls back to an owner-only key file with an explicit startup warning.
  • Self-contained binaries for five runtimeswin-x64, linux-x64, linux-arm64, osx-x64,
    and osx-arm64 — published as archives with SHA-256 checksums, alongside the Windows installer.
  • install.sh for macOS and Linux, which verifies the published checksum before installing and
    refuses to install anything it cannot verify.
  • Continuous integration on Linux and macOS runners, including a broker smoke test that
    exercises the API, keyed deduplication, owner-only file permissions, and SIGTERM shutdown.
  • New documentation: a CLI reference, a configuration reference, a troubleshooting guide, a
    macOS/Linux installation guide, and an index at docs/README.md.

Fixed

  • Local state could be written to the working directory on macOS and Linux. On Unix,
    Environment.GetFolderPath returns an empty string when the base directory does not exist yet —
    the normal state of a fresh account — which produced a relative path. The first run could
    therefore write config.json, containing the local bearer token, plus the secret key and the
    history database into whatever directory the broker was started from. The data directory is now
    always resolved to an absolute path.
  • agentnotifyd ignored SIGTERM. The signal registrations were discarded and finalized, which
    unhooked the handler; the broker neither shut down nor exited and could only be stopped with
    SIGKILL, making it unmanageable under systemd or launchd.
  • Shutdown could hang indefinitely on an unbounded delivery-dispatcher stop. Every shutdown step
    is now bounded, and a second signal exits immediately.
  • Configured sound file names were not sanitized consistently across platforms. Path.GetFileName
    treats a backslash as an ordinary character on Unix, so a Windows-style path in config.json
    survived unchanged there. Since configuration is portable between machines, normalization is now
    identical on every platform.

Security

  • Local state on Unix is created owner-only: the data directory 0700, and config.json,
    agentnotify.db, and secret.key 0600. config.json holds the local bearer token.
  • Desktop notification backends launch helper processes with an argument list rather than through a
    shell, and the macOS AppleScript is a fixed program that receives notification text through argv,
    so agent-supplied titles and messages cannot be interpreted as commands or script.

Known limitations

  • macOS and Linux have no tray icon, notification center window, or Settings UI. Configure the
    broker through config.json and use the CLI.
  • Neither graphical notification backend has been confirmed to display a notification on real
    hardware, and the Linux secret-tool path and the ARM64 binaries have not been executed.
    See docs/VERIFICATION.md for exactly what has and has not been observed.
  • Binaries remain unsigned. Windows may show a SmartScreen prompt, and macOS requires clearing the
    quarantine attribute on first run.

Install

Windows — download AgentNotifySetup.exe below and run it. No separate .NET runtime is needed.
The installer is not Authenticode-signed, so Windows may show a SmartScreen prompt.

macOS and Linux

curl -fsSL https://raw.githubusercontent.com/Akash97p/agent-notify/main/scripts/install.sh | sh

This verifies the published SHA-256 checksum before installing agentnotify and agentnotifyd
into ~/.local/bin. To install this exact version, set AGENTNOTIFY_VERSION=v0.0.2-alpha.1.
See Installing on macOS and Linux.

Verifying downloads

SHA256SUMS.txt covers the Windows installer. SHA256SUMS-portable.txt covers the portable
archives. Check a download before running it:

sha256sum -c SHA256SUMS-portable.txt --ignore-missing

Documentation

Getting started ·
CLI reference ·
API ·
Configuration ·
Troubleshooting ·
What is verified

Full commit log: v0.0.1-alpha.1...v0.0.2-alpha.1

AgentNotify v0.0.1-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Aug 05:30