Join Nostr
2026-06-19 23:04:15 UTC

amethyst on Nostr: # v1.12.3-5: Relay Latency Health & a macOS Notarization Fix Highlights: - Tracks ...

# v1.12.3-5: Relay Latency Health & a macOS Notarization Fix

Highlights:

- Tracks per-relay latency on Desktop and surfaces slow relays in the dashboard, a details popup, and a banner.
- Fixes macOS notarization for the desktop DMG and the `amy` CLI tarball.

## New Features

### Relay Latency Health (Desktop)

- Adds a per-relay latency tracker and a slow-relay classifier.
- Wires the latency tracker into `RelayHealthStore` with persistence across launches.
- Surfaces relay latency in the desktop dashboard, a relay-details popup, and an unhealthy-relay banner.

## Build & Documentation

- Fixes macOS notarization for the desktop DMG and the `amy` CLI tarball by signing the Mach-O native libraries bundled inside jars (secp256k1, SQLite, JNA, Skiko, jkeychain, and ComposeMediaPlayer) — Apple's notary service recurses into jars and had rejected them as unsigned.
- Fixes the macOS desktop DMG release build: Compose's signer maps the signing
identity to a certificate via `security find-certificate`, which did not
resolve the CI-imported certificate through the keychain search list (bare
`codesign` did). The release workflow now exports the throwaway keychain path
and points Compose's `signing.keychain` straight at it.
- Resolves the Developer ID **common name** from the signing keychain and feeds
it to Compose's `signing.identity`. Compose maps its identity to a certificate
via `security find-certificate -c`, which only matches the exact
"Developer ID Application: …" name — a fingerprint or partial/team-ID value
(which bare `codesign` accepts) was rejected with "Could not find certificate
... in keychain []". The release workflow now points Compose at the imported
keychain explicitly and supplies the canonical identity name.

## Contributors

-
-

## Translations

- _None this release._