diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 457a5f5..6aaa0c1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -69,9 +69,19 @@ jobs: > **Windows note:** The installer is not yet code-signed. Windows SmartScreen will show an "Unknown publisher" warning — click "More info → Run anyway" to install. - ### New in v0.10.1 — Search Reliability - - **Search resilience** — each search relay (relay.nostr.band, search.nos.today, nostr.wine) now queried independently; a dead relay no longer blocks results from the others - - **nostr: URI prefix** — pasting `nostr:nevent1...` or `nostr:npub1...` share links in search now works (strips NIP-21 prefix) + ### New in v0.11.0 — Embedded Relay & Polish + - **Embedded Nostr relay** — built-in strfry relay with catch-up sync on startup; your notes are always available locally even when remote relays are slow or offline + - **naddr clickable links** — `nostr:naddr1…` references resolve to clickable named links (article titles, etc.) + - **New follower badges** — recently gained followers marked with "new" badge, sorted to top of follows list + - **New themes** — Sepia and Nord Frost replace Tokyo Night and Ethereal + - **Bookmark reliability** — batch fetch with deduplication, debounced publishing prevents race conditions + - **Relay pool resilience** — resetNDK preserves outbox-discovered relay URLs (fixes relay pool dropping to 3) + - **Larger font sizes** — Large (17px) and Extra Large (20px) presets increased + - **Account switcher** — larger avatar, name, and arrow for easier switching + - **Crash fix** — malformed Nostr profiles no longer cause React error #31 + + ### v0.10.1 — Search Reliability + - Search resilience, nostr: URI prefix support in search ### v0.10.0 — Renamed to Vega + UX Improvements - **Renamed from Wrystr to Vega** — named after Jurij Vega (1754–1802), Slovenian mathematician and artillery officer. Fresh identity, same mission: a desktop Nostr client built for writers. diff --git a/CLAUDE.md b/CLAUDE.md index 4a02c97..c24ebc2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -152,7 +152,7 @@ CI triggers on the tag and builds all three platforms (Ubuntu, Windows, macOS AR - **Profile media gallery** — "Media" tab on profiles with grid layout; images open lightbox, videos/audio navigate to thread - **Emoji picker** — shared categorized emoji picker (Frequent/Faces/Gestures/Objects/Symbols) in compose box, inline reply, thread reply; emoji reaction picker on note cards via visible + button - **External link opener** — global click handler intercepts http(s) links and opens in system browser via `@tauri-apps/plugin-opener` -- **Color themes** — 7 built-in themes (Midnight, Light, Catppuccin Mocha, Tokyo Night, Gruvbox, Ethereal, Hackerman); CSS custom properties swapped at runtime; persisted to localStorage +- **Color themes** — 7 built-in themes (Midnight, Light, Catppuccin Mocha, Sepia, Gruvbox, Nord Frost, Hackerman); CSS custom properties swapped at runtime; persisted to localStorage - **Font size presets** — Small/Normal/Large/Extra Large; CSS zoom scaling on document root; persisted to localStorage - **Web of Trust** — Vertex DVM integration (kind 5312→6312); personalized "Followed by people you trust" on profiles with clickable follower avatars - **SQLite-backed notifications** — instant load on startup from local cache; relay diff merged in background; read state persists in DB across restarts @@ -161,6 +161,11 @@ CI triggers on the tag and builds all three platforms (Ubuntu, Windows, macOS AR - **SQLite-backed articles cache** — articles feed (latest tab) loads instantly from DB - **Instant own-profile load** — sidebar badge shows name/picture from DB cache immediately, no raw npub on slow relays - **Retry-on-empty pattern** — followers, profile notes/articles, hashtag feeds retry once after 3s if relays return empty +- **Embedded Nostr relay** — built-in strfry relay with catch-up sync on startup; notes always available locally +- **naddr clickable links** — `nostr:naddr1…` references resolve to clickable named links (article titles) +- **New follower badges** — recently gained followers marked with "new" badge, sorted to top of follows list +- **Batch bookmark fetch** — fetches bookmarked notes with `{ ids: [...] }` filter; debounced kind 10003 publishes prevent race conditions +- **Resilient relay pool** — resetNDK preserves outbox-discovered relay URLs (fixes relay pool dropping to 3) **Not yet implemented:** - NIP-96 file storage diff --git a/PKGBUILD b/PKGBUILD index b6f00f2..cdb8ffc 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,6 +1,6 @@ # Maintainer: hoornet pkgname=vega-nostr -pkgver=0.10.1 +pkgver=0.11.0 pkgrel=1 pkgdesc="Cross-platform Nostr desktop client with Lightning integration" arch=('x86_64') diff --git a/README.md b/README.md index d94010e..8b6bc2f 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ sudo dnf install gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-liba - **Mute users** (NIP-51) — muted list synced to relays, filtered from feed - **Long-form article experience** (NIP-23) — **markdown toolbar** (bold, italic, heading, link, image, quote, code, list) with keyboard shortcuts (Ctrl+B/I/K); **multi-draft management** with draft list, resume, delete; **cover image file picker**; dedicated article feed with Latest/Following tabs; article search by keyword or hashtag; article reader with reading time, bookmark, like, and zap; profile Articles tab - **Quoted note inline preview** — `nostr:note1…` / `nostr:nevent1…` renders as an inline card +- **naddr clickable links** — `nostr:naddr1…` references resolve to clickable named links (article titles, etc.) - **Syntax highlighting** — code blocks in notes and articles render with syntax highlighting - Note rendering: images, video, mentions, hashtags, njump.me link interception - **External links** — all http(s) links open in your system browser via Tauri opener @@ -65,12 +66,14 @@ sudo dnf install gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-liba - **Keyword muting** — word/phrase mute list with client-side filtering across all views - **Direct Messages** (NIP-04 + NIP-17 gift wrap) — conversation list, thread view, per-message decryption; unread badge in sidebar - **Notifications** — background poller (60s) for mentions, zaps, new followers; each type independently toggleable; OS push notifications; 🔔 in sidebar with unread badge +- **New follower badges** — recently gained followers marked with a "new" badge and sorted to the top of your follows list **Relay & network** - **Relay status badge** — compact "8/12 relays" indicator in feed header with color coding (green/yellow/red by connection ratio); hover shows per-relay connection status - **Toast notifications** — transient status messages for relay events: "Connection lost — reconnecting", "Back online", "Relays reconnected" - **Relay health checker** — NIP-11 info fetch, WebSocket latency probing, online/slow/offline classification; expandable cards show all supported NIPs, software, description; per-relay remove button; "Remove dead" strips offline relays; "Publish list" publishes NIP-65 relay list; auto-checks on mount - **Relay recommendations** — discover relays based on your follows' NIP-65 relay lists; shows follow count, one-click "Add" +- **Embedded Nostr relay** — built-in strfry relay with catch-up sync on startup; your notes are always available locally even when remote relays are slow or offline - Relay management: add/remove relays, all in one consolidated Relays view - **NIP-65 outbox model** — reads user relay lists (kind 10002) so you see notes from people who publish to their own relays; publish your own relay list to Nostr @@ -93,7 +96,7 @@ sudo dnf install gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-liba - **NIP-05 verification badges** — cached verification with green checkmark on note cards **Personalization** -- **Color themes** — 7 built-in themes: Midnight (default dark), Light, Catppuccin Mocha, Tokyo Night, Gruvbox, Ethereal, Hackerman; instant switching from Settings +- **Color themes** — 7 built-in themes: Midnight (default dark), Light, Catppuccin Mocha, Sepia, Gruvbox, Nord Frost, Hackerman; instant switching from Settings - **Font size** — Small / Normal / Large / Extra Large presets; scales the entire UI uniformly **Performance & UX** @@ -164,9 +167,9 @@ See [ROADMAP.md](./ROADMAP.md) for the full prioritised next steps. Up next: - UI polish and visual makeover -- Nostr NIP research sprint — expanding protocol support -- Web of Trust scoring - Custom feeds / lists +- NIP research sprint — expanding protocol support +- NIP-58 badges, NIP-72 communities ## Support diff --git a/package.json b/package.json index 3817517..37a1b68 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "vega", "private": true, - "version": "0.10.1", + "version": "0.11.0", "type": "module", "scripts": { "dev": "vite", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index db66172..a7e921e 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "vega" -version = "0.10.1" +version = "0.11.0" description = "Cross-platform Nostr desktop client with Lightning integration" authors = ["hoornet"] edition = "2021" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 52d43f2..33b1c67 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Vega", - "version": "0.10.1", + "version": "0.11.0", "identifier": "com.hoornet.vega", "build": { "beforeDevCommand": "npm run dev",