mirror of
https://github.com/hoornet/vega.git
synced 2026-04-24 06:40:01 -07:00
Bump to v0.3.0 — instant post/reply feedback
Published notes now appear in the feed immediately. Thread replies show up without waiting for the relay round-trip. Includes all v0.2.9 fixes (image paste, sent zaps, reply-to clickable, feed refresh on login).
This commit is contained in:
3
.github/workflows/release.yml
vendored
3
.github/workflows/release.yml
vendored
@@ -66,7 +66,8 @@ 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.
|
> **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.2.9
|
### New in v0.3.0
|
||||||
|
- **Instant feedback** — posted notes appear in feed immediately; thread replies show up without waiting for relay
|
||||||
- **Image paste fix** — uploads now use Tauri HTTP plugin, fixing "Failed to fetch" on Windows
|
- **Image paste fix** — uploads now use Tauri HTTP plugin, fixing "Failed to fetch" on Windows
|
||||||
- **Sent zaps visible** — zap history now correctly shows sent zaps (queries kind 9735 receipts instead of ephemeral kind 9734)
|
- **Sent zaps visible** — zap history now correctly shows sent zaps (queries kind 9735 receipts instead of ephemeral kind 9734)
|
||||||
- **Reply-to @name clickable** — clicking the @name in "↩ replying to @name" now opens that person's profile
|
- **Reply-to @name clickable** — clicking the @name in "↩ replying to @name" now opens that person's profile
|
||||||
|
|||||||
2
PKGBUILD
2
PKGBUILD
@@ -1,6 +1,6 @@
|
|||||||
# Maintainer: hoornet <hoornet@users.noreply.github.com>
|
# Maintainer: hoornet <hoornet@users.noreply.github.com>
|
||||||
pkgname=wrystr
|
pkgname=wrystr
|
||||||
pkgver=0.2.9
|
pkgver=0.3.0
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Cross-platform Nostr desktop client with Lightning integration"
|
pkgdesc="Cross-platform Nostr desktop client with Lightning integration"
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "wrystr",
|
"name": "wrystr",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.2.9",
|
"version": "0.3.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "wrystr"
|
name = "wrystr"
|
||||||
version = "0.2.9"
|
version = "0.3.0"
|
||||||
description = "Cross-platform Nostr desktop client with Lightning integration"
|
description = "Cross-platform Nostr desktop client with Lightning integration"
|
||||||
authors = ["hoornet"]
|
authors = ["hoornet"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://schema.tauri.app/config/2",
|
"$schema": "https://schema.tauri.app/config/2",
|
||||||
"productName": "Wrystr",
|
"productName": "Wrystr",
|
||||||
"version": "0.2.9",
|
"version": "0.3.0",
|
||||||
"identifier": "com.hoornet.wrystr",
|
"identifier": "com.hoornet.wrystr",
|
||||||
"build": {
|
"build": {
|
||||||
"beforeDevCommand": "npm run dev",
|
"beforeDevCommand": "npm run dev",
|
||||||
|
|||||||
@@ -166,12 +166,13 @@ export function ThreadView() {
|
|||||||
if (!replyText.trim() || replying) return;
|
if (!replyText.trim() || replying) return;
|
||||||
setReplying(true);
|
setReplying(true);
|
||||||
try {
|
try {
|
||||||
await publishReply(replyText.trim(), { id: event.id, pubkey: event.pubkey });
|
const replyEvent = await publishReply(replyText.trim(), { id: event.id, pubkey: event.pubkey });
|
||||||
setReplyText("");
|
setReplyText("");
|
||||||
setReplySent(true);
|
setReplySent(true);
|
||||||
// Re-fetch replies to show the new one
|
// Inject reply locally so it appears immediately
|
||||||
const updated = await fetchReplies(event.id);
|
setReplies((prev) => [...prev, replyEvent]);
|
||||||
setReplies(updated);
|
// Also try fetching from relay in background
|
||||||
|
fetchReplies(event.id).then((updated) => setReplies(updated));
|
||||||
setTimeout(() => setReplySent(false), 2000);
|
setTimeout(() => setReplySent(false), 2000);
|
||||||
} finally {
|
} finally {
|
||||||
setReplying(false);
|
setReplying(false);
|
||||||
|
|||||||
@@ -191,7 +191,7 @@ export async function publishReaction(eventId: string, eventPubkey: string, reac
|
|||||||
await event.publish();
|
await event.publish();
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function publishReply(content: string, replyTo: { id: string; pubkey: string }): Promise<void> {
|
export async function publishReply(content: string, replyTo: { id: string; pubkey: string }): Promise<NDKEvent> {
|
||||||
const instance = getNDK();
|
const instance = getNDK();
|
||||||
if (!instance.signer) throw new Error("Not logged in");
|
if (!instance.signer) throw new Error("Not logged in");
|
||||||
|
|
||||||
@@ -203,6 +203,7 @@ export async function publishReply(content: string, replyTo: { id: string; pubke
|
|||||||
["p", replyTo.pubkey],
|
["p", replyTo.pubkey],
|
||||||
];
|
];
|
||||||
await event.publish();
|
await event.publish();
|
||||||
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function publishNote(content: string): Promise<NDKEvent> {
|
export async function publishNote(content: string): Promise<NDKEvent> {
|
||||||
|
|||||||
Reference in New Issue
Block a user