mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-30 07:37:38 +00:00
Calendar reminders - Reminded the user of events their follows accepted: the home feed and calendars load every follow's RSVPs, and the scan took any ACCEPTED RSVP in the cache. It now takes only the device's accounts' RSVPs, through the per-author range lookup instead of a walk of the whole addressable cache every minute. Android's re-arm observer filters the same way. - A reminder the OS refused to post was still marked sent; now it is tried again on the next scan. - Desktop: turning reminders on scans once the switch is saved; the settings are read once per scan. Scheduled posts (Android) - A process WorkManager started cold had no account loaded, so due posts waited until the app was opened (and the periodic chain kept waking for nothing). The worker loads the writable accounts when one with a due post is missing, and drains only accounts with due posts. - A failing cache or "sent" callback after a relay ack marked a published post FAILED: SENT is recorded first and the callbacks are isolated. Concord community images - A changed pointer kept showing the old picture (produceState keeps its value across key changes); the producer resets it first. - The decrypted file is written aside and renamed into place, so a second screen or a crash mid-write cannot leave a truncated image. - The hash is checked to be a SHA-256 before it names a file. - Android reads the cache folder once per call site, not per recomposition; Desktop's folder is owner-only. Desktop QR dialog: a double paste can no longer deliver the code twice, and the buttons wait for a pick in progress; a picture ImageIO throws on (CMYK JPEG) falls back to Skia. Also: the Blossom file name is remembered, and comments that named removed code are updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Rqm5mMpmQtyRvccFSqBfN
68 lines
3.2 KiB
Ruby
68 lines
3.2 KiB
Ruby
# Reference Homebrew Cask for the Amethyst desktop app.
|
|
#
|
|
# THIS IS A MIRROR. The live cask is Homebrew/homebrew-cask
|
|
# `Casks/a/amethyst-nostr.rb` (merged 2026-08-24). Keep this file byte-identical
|
|
# to it below the header, so a diff against upstream is meaningful. Note that
|
|
# `scripts/bump-homebrew-cask.sh` bumps upstream via `brew bump-cask-pr`, which
|
|
# edits the upstream cask in place — it only reads version + sha256 from here,
|
|
# so this file is documentation, not the thing that ships.
|
|
#
|
|
# The release matrix (.github/workflows/create-release.yml) builds an
|
|
# Apple-Silicon DMG only (no Intel DMG), so this cask is arm64-only.
|
|
#
|
|
# version + sha256 track the published
|
|
# `amethyst-desktop-<version>-macos-arm64.dmg`; bump-homebrew.yml keeps them
|
|
# current on each stable release. To refresh by hand:
|
|
# curl -fsSL -o amethyst.dmg \
|
|
# https://github.com/vitorpamplona/amethyst/releases/download/vX.Y.Z/amethyst-desktop-X.Y.Z-macos-arm64.dmg
|
|
# shasum -a 256 amethyst.dmg
|
|
#
|
|
# ---------------------------------------------------------------------------
|
|
# Why the cask body is this bare (review feedback on homebrew-cask#282745)
|
|
# ---------------------------------------------------------------------------
|
|
# The submitted version carried a `livecheck` block and two explanatory
|
|
# comments. A maintainer removed all three. Do not add them back:
|
|
#
|
|
# * `livecheck do url :url; strategy :github_latest end` — redundant.
|
|
# Homebrew infers the strategy from a GitHub release URL. Verified that
|
|
# `brew audit --new --cask` and `brew style` both still pass without it.
|
|
# * Inline comments — homebrew-cask house style is terse. The rationale
|
|
# lives here instead, where it is useful to us and invisible upstream.
|
|
#
|
|
# `conflicts_with cask: "amethyst"` is NOT optional: the unrelated tiling
|
|
# window manager (cask `amethyst`, ianyh/Amethyst) installs its own
|
|
# `Amethyst.app`, so the two cannot coexist in /Applications.
|
|
#
|
|
# The `zap` paths were verified against application source, not docs:
|
|
# ~/.amethyst DesktopAccountStorage.kt -> File(homeDir, ".amethyst")
|
|
# (accounts + KEYS — destructive)
|
|
# ~/Library/Application Support/Amethyst DesktopTorManager.kt -> ".../Amethyst/tor"
|
|
# ~/Library/Caches/AmethystDesktop DesktopImageLoaderSetup.kt -> cacheDir()
|
|
# (its macOS branch is ~/Library/Caches)
|
|
#
|
|
# Deliberately NOT zapped: ~/Library/Preferences/com.apple.java.util.prefs.plist.
|
|
# The app uses the Java Preferences API (auth approvals, Namecoin settings),
|
|
# which writes into that single SHARED plist — deleting it would wipe every
|
|
# other Java application's preferences too.
|
|
cask "amethyst-nostr" do
|
|
version "1.19.0"
|
|
sha256 "935cea8174c145cd05faab49e3a51cffcf5c239079b451d4f269613d05cadcdb"
|
|
|
|
url "https://github.com/vitorpamplona/amethyst/releases/download/v#{version}/amethyst-desktop-#{version}-macos-arm64.dmg"
|
|
name "Amethyst"
|
|
desc "Nostr client"
|
|
homepage "https://github.com/vitorpamplona/amethyst"
|
|
|
|
conflicts_with cask: "amethyst"
|
|
depends_on arch: :arm64
|
|
depends_on :macos
|
|
|
|
app "Amethyst.app"
|
|
|
|
zap trash: [
|
|
"~/.amethyst",
|
|
"~/Library/Application Support/Amethyst",
|
|
"~/Library/Caches/AmethystDesktop",
|
|
]
|
|
end
|