diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7b49738..7f24cb7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -69,11 +69,14 @@ 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.9.6 — Font Size Fix - Fixed font scaling breaking layouts, especially on Windows. - - **Content-only zoom** — font size scaling now applies only to the content area, not the sidebar; sidebar stays consistent and readable at all sizes - - **Flex-wrap everywhere** — feed header, note card headers, note actions, compose box, settings theme grid, font size presets, media feed tabs, and profile header buttons all wrap gracefully at large zoom - - **Themes grid** — switched from fixed 4-column grid to responsive wrapping layout + ### New in v0.9.7 — Emoji Reactions & Search + - **Grouped emoji reactions** — reactions display as pills (❤️5 🤙3 🔥2) instead of a single count; multi-reaction per note; throttled fetch queue for reliability + - **npub search** — pasting a bare npub or nprofile in search navigates directly to that profile + - **Notification reliability** — poller waits for relay connection before first fetch; prevents empty badges on startup + - **Dev-only debug logger** — `debug.log/warn/error` silent in production builds + + ### Previous: v0.9.6 — Font Size Fix + - Content-only zoom, flex-wrap everywhere, themes grid fix ### Previous: v0.9.4 — Search, Follows, Editor & Polish - Search overhaul (dedicated NIP-50 relays, hybrid results), follows view, article editor improvements (image previews, toolbar labels, drag-drop), auto-expanding textareas, profile layout fix, thread stability fix diff --git a/CLAUDE.md b/CLAUDE.md index 0f45df3..87c5242 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -57,7 +57,8 @@ CI triggers on the tag and builds all three platforms (Ubuntu, Windows, macOS AR - `src/lib/nostr/` — NDK wrapper split into domain modules (`core.ts`, `notes.ts`, `social.ts`, `articles.ts`, `engagement.ts`, `dms.ts`, `bookmarks.ts`, `muting.ts`, `search.ts`, `relays.ts`, `trending.ts`); barrel `index.ts` re-exports all; all Nostr calls go through here - `src/lib/themes.ts` — Color theme definitions (7 themes) and `applyTheme()` utility - `src/lib/lightning/` — NWC client (`nwc.ts`); Lightning payment logic -- `src/hooks/` — `useProfile.ts`, `useReactionCount.ts` +- `src/hooks/` — `useProfile.ts`, `useReactions.ts` (grouped emoji reactions with throttled fetch queue) +- `src/lib/debug.ts` — Dev-only logger (silent in production builds) - `src/components/feed/` — Feed, NoteCard, NoteContent, NoteActions, InlineReplyBox, TextSegments, MediaCards, ComposeBox - `src/components/profile/` — ProfileView, EditProfileForm, ImageField, Nip05Field, ProfileMediaGallery - `src/components/thread/` — ThreadView @@ -102,7 +103,7 @@ CI triggers on the tag and builds all three platforms (Ubuntu, Windows, macOS AR **Implemented:** - Onboarding: key generation, nsec backup flow, login with nsec/npub - Global + following feed, compose, reply, thread view -- Reactions (NIP-25) with live network counts +- Reactions (NIP-25) with **grouped emoji pills** (❤️5 🤙3 🔥2), multi-reaction per note, throttled fetch queue - Follow/unfollow (NIP-02), contact list publishing - Profile view + edit (kind 0) with Notes/Articles tab toggle - Long-form article editor (NIP-23) with **markdown toolbar** (bold, italic, heading, link, image, quote, code, list), **keyboard shortcuts** (Ctrl+B/I/K), **multi-draft management**, **cover image file picker** @@ -113,7 +114,7 @@ CI triggers on the tag and builds all three platforms (Ubuntu, Windows, macOS AR - **NIP-98 HTTP Auth** for image uploads with fallback services (nostr.build, void.cat, nostrimg.com) - Zaps: NWC wallet connect (NIP-47) + NIP-57 via NDKZapper - **Advanced search** — query parser with modifiers: `by:author`, `mentions:npub`, `kind:N`, `is:article`, `has:image`, `since:date`, `until:date`, `#hashtag`, `"phrase"`, boolean `OR`; NIP-05 resolution; client-side content filters; search help panel -- Search: NIP-50 full-text, hashtag (#t filter), people, articles +- Search: NIP-50 full-text, hashtag (#t filter), people, articles, **npub/nprofile direct navigation** - Settings: color themes (7 presets), font size presets, NWC wallet, notifications, data export, identity, mute lists - **Relay management** — consolidated Relays view with add/remove individual relays, health checker (NIP-11 info, WebSocket latency, online/slow/offline status), expandable cards with all supported NIPs, per-relay remove button, "Remove dead" workflow, publish relay list (NIP-65) - **Relay recommendations** — suggest relays based on follows' NIP-65 relay lists; "Discover relays" button with follow count, one-click "Add" @@ -143,7 +144,8 @@ CI triggers on the tag and builds all three platforms (Ubuntu, Windows, macOS AR - **Dedicated hashtag pages** — clicking #tag opens a live feed, not generic search - **Keyword muting** — word/phrase mute list, client-side filtering across all views - **Follow suggestion dismissal** — persistent "don't suggest again" per person -- **Background notification poller** — 60s polling for mentions, zaps, new followers; each type independently toggleable +- **Background notification poller** — 60s polling for mentions, zaps, new followers; each type independently toggleable; relay-aware startup (waits for connection before first fetch) +- **Dev-only debug logger** — `debug.log/warn/error` via `src/lib/debug.ts`; uses `import.meta.env.DEV`, silent in production - **Trending feed polish** — 24h time window, time decay scoring, articles mixed with notes - **NIP-46 remote signer** — bunker:// URI login, session persistence via toPayload/fromPayload, account switching - **Media feed** — dedicated "Media" view with All/Videos/Images/Audio tabs; filters notes by embedded media type diff --git a/PKGBUILD b/PKGBUILD index 4cae22e..d79fe91 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,6 +1,6 @@ # Maintainer: hoornet pkgname=wrystr -pkgver=0.9.6 +pkgver=0.9.7 pkgrel=1 pkgdesc="Cross-platform Nostr desktop client with Lightning integration" arch=('x86_64') diff --git a/package.json b/package.json index f376a33..34920a0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "wrystr", "private": true, - "version": "0.9.6", + "version": "0.9.7", "type": "module", "scripts": { "dev": "vite", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index e17158e..7c275c0 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wrystr" -version = "0.9.6" +version = "0.9.7" 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 2b61b73..afd96f4 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": "Wrystr", - "version": "0.9.6", + "version": "0.9.7", "identifier": "com.hoornet.wrystr", "build": { "beforeDevCommand": "npm run dev",