Commit Graph
84 Commits
Author SHA1 Message Date
Laan Tungir 9b746838c3 Fix batch info in footer: include batchCurrent/batchTotal in per-relay progress events, set currentBatch before each batch starts v0.7.81 2026-06-30 10:55:04 -04:00
Laan Tungir 978e5029f3 Skip-mark timed-out broadcast relays too (not just explicit rejections) — reason distinguishes 'publish-timeout' from 'publish-rejected' v0.7.80 2026-06-30 10:42:12 -04:00
Laan Tungir 011e4c303c Show batch progress in footer: '📡 50/630 relays · 2/25 batches · relay.example.com' v0.7.79 2026-06-30 10:36:42 -04:00
Laan Tungir fa019fe9a1 Send publish response after outbox relays complete, then run broadcast batches in background — composer clears immediately while broadcast continues v0.7.78 2026-06-30 10:33:14 -04:00
Laan Tungir 0f31e1c301 Batched broadcast publishing: split 600+ relays into batches of 25, publish sequentially to avoid browser WebSocket connection limits. 10s per-relay timeout per batch. v0.7.77 2026-06-30 10:21:55 -04:00
Laan Tungir c9a20e63b5 Keep broadcast result in footer until next publish overwrites it (remove 10s auto-clear) v0.7.76 2026-06-30 10:13:46 -04:00
Laan Tungir 79e38b8f79 Experiment: increase per-relay broadcast timeout to 60s to test if NDK can handle 600 relays with longer connection time v0.7.75 2026-06-30 10:11:08 -04:00
Laan Tungir 7cfd43b91b Set per-relay broadcast timeout to 5s, overall deadline to totalRelays*5s (min 30s). NDK runs relays in parallel so 600 relays finish in ~5s not 3000s v0.7.74 2026-06-30 10:06:37 -04:00
Laan Tungir 777ab312a5 Fix broadcast timeout: increase connection timeout to 15s for temporary relays, race publish against 45s overall deadline so one slow relay doesn't block v0.7.73 2026-06-30 10:02:00 -04:00
Laan Tungir 2763dd9d6a Add relay URL hover tooltip on post time: shows 'Published to N relays:' with URL list when hovering over the relay count v0.7.72 2026-06-30 09:37:36 -04:00
Laan Tungir a20b28cd21 Fix relay count display: emit broadcastProgress done event for all publishes (not just broadcasts), add missing eventId/eventKind to broadcast done event v0.7.71 2026-06-30 09:33:08 -04:00
Laan Tungir 456f0e1f2e Add relay count to post time display: shows '21r - 1h' format on each post card, tracking successful relay count from broadcastProgress events v0.7.70 2026-06-30 09:28:38 -04:00
Laan Tungir 4abb4bf33c Add 10-sat fee-reserve buffer to handleWalletPayInvoice melt to fix 'not enough inputs provided for melt' errors v0.7.69 2026-06-30 09:19:30 -04:00
Laan Tungir 7dcfc7c3e3 Fix broadcast relay timeout: use 30s timeout for large broadcasts, distinguish timeouts from explicit rejections, only skip-mark explicit rejections, use live-tracked sets for results v0.7.68 2026-06-30 09:15:02 -04:00
Laan Tungir 07f5f39f35 Add per-mint tracing logs to handleWalletPayInvoice for lightning zap diagnostics v0.7.67 2026-06-30 07:59:52 -04:00
Laan Tungir 10ddda633c Add broadcast relays feature: kind 10088 list with always-on union, persistent skip-marks, live progress in post.html footer, sidenav management UI on relays.html v0.7.66 2026-06-30 07:47:22 -04:00
Laan Tungir c55a5ebfd8 Self-host GPT-2 model files to fix CORS over Tor/onion origins v0.7.65 2026-06-28 20:46:57 -04:00
Laan Tungir b6e945f8de Use locally-hosted GPT-2 model to fix CORS over Tor/onion origins v0.7.64 2026-06-28 20:45:25 -04:00
Laan Tungir 3ec585273f Change 'post on Primal' to 'post on Nostr' in inspiration FAQ v0.7.63 2026-06-28 20:32:50 -04:00
Laan Tungir 0e8229e13e Update inspiration FAQ to reference waxwing's Primal post and the Meteor paper v0.7.62 2026-06-28 20:30:26 -04:00
Laan Tungir 230bd70e07 Change all muted/dimmed text on stego page to regular primary color v0.7.61 2026-06-28 20:27:13 -04:00
Laan Tungir c36cb4a0fe Replace simple example FAQ with detailed toy-model walkthrough from llm_steganography_explained.md v0.7.60 2026-06-28 20:25:51 -04:00
Laan Tungir d6b167a50b Expand How It Works into FAQ section with collapsible questions v0.7.59 2026-06-28 20:23:01 -04:00
Laan Tungir 27f4cd6857 Set llm-steganography page to no-login (auth mode none) by default v0.7.58 2026-06-28 20:18:18 -04:00
Laan Tungir 28c8109f8a Add LLM Steganography demo page with GPT-2-based half-splitting entropy coding v0.7.57 2026-06-28 20:17:04 -04:00
Laan Tungir 00e93b2b2f This is a meaningful git commit message v0.7.56 2026-06-27 08:17:42 -04:00
Laan Tungir 2334f742cf Add kind 0 cache query as fallback for profile names in discovered relays — Dexie profiles table may not have all follows, so also query kind 0 events from NDK cache. Add debug log for name resolution count. v0.7.55 2026-06-26 21:51:10 -04:00
Laan Tungir 8c456ec522 Fix discovered relays cache invalidation: add version suffix to cache key so servingNames data is rebuilt after code change v0.7.54 2026-06-26 21:33:34 -04:00
Laan Tungir e734f33542 Display usernames instead of pubkeys in discovered relays Follows column — query Dexie profiles table for displayName/name, fall back to truncated pubkey if no profile cached v0.7.53 2026-06-26 20:20:37 -04:00
Laan Tungir 6ad2d37a23 Redesign handleGetDiscoveredRelays: use Dexie cache for follows' kind 10002 events instead of ephemeral outbox tracker. Stable relay→follows mapping that only changes when contact list changes. Live connection status from pool. Cache result in worker to avoid re-querying Dexie on every expand. v0.7.52 2026-06-26 13:43:40 -04:00
Laan Tungir 28ce7bce1b Fix discovered relays table: filter out rows with no serving pubkeys, rename 'Sample Follows' to 'Follows', show all follows (not just 3), fix layout wrapping with overflow-x auto and max-height scroll v0.7.51 2026-06-26 13:29:49 -04:00
Laan Tungir 894a163111 Fix relay disappearing: make port.onmessage synchronous (all handlers fire-and-forget). Fix discovered relays serving data: replace broken LRU cache iteration with kind 3 cache query + per-pubkey trackerData.get(). Remove debug logging. v0.7.50 2026-06-26 10:52:01 -04:00
Laan Tungir efe9d977cd Make warmOutbox handler non-blocking (fire-and-forget) in worker dispatch — trackUsers involves network I/O that was blocking the entire message dispatch loop, starving getRelayData/getRelayStats v0.7.49 2026-06-26 10:27:42 -04:00
Laan Tungir bff0bca411 Remove redundant warmOutbox calls from ensureLiveFeedSubscription and newAuthors path — NDK.subscribe already calls trackUsers internally, so only the pre-bootstrap warmOutbox is needed. This reduces the outbox event burst that was starving the worker message queue. v0.7.48 2026-06-26 10:17:56 -04:00
Laan Tungir fee3ffc764 Increase getRelayData/getRelayStats timeout from 5s to 15s — worker is busy processing outbox/NDK events from feed.html warmOutbox, causing message queue delays v0.7.47 2026-06-26 10:14:21 -04:00
Laan Tungir d49a3e800f Add debug logging to getDiscoveredRelays handler to diagnose why Serving/Sample Follows columns are empty v0.7.46 2026-06-26 10:11:55 -04:00
Laan Tungir 9d9d0f88f5 Remove discovered relays auto-refresh interval — fetch only on manual expand click to prevent worker message queue starvation v0.7.45 2026-06-26 10:08:13 -04:00
Laan Tungir b11161862a Fix relays.html relay data timeout: separate discovered relays refresh to 15s interval only when expanded, make worker getDiscoveredRelays handler non-blocking (fire-and-forget) to prevent message queue starvation v0.7.44 2026-06-26 09:54:18 -04:00
Laan Tungir fe35b2dfa1 Phase 5: Add discovered relays (outbox) table to relays.html — collapsible section showing temporary outbox relays with connection status, serving follow count, and sample npubs v0.7.43 2026-06-26 09:46:35 -04:00
Laan Tungir ae67e65969 Mark Phases 1-4 as complete in feed-outbox-assessment.md, update summary table with status column v0.7.42 2026-06-26 09:44:56 -04:00
Laan Tungir 19344942b0 Fix relays.html sidenav connection history toggle: remove section title and horizontal rules, use SVG checkbox style matching the relay table checkboxes v0.7.41 2026-06-26 09:43:02 -04:00
Laan Tungir c758333269 Implement feed outbox model pre-warming (Phases 1-3) and relays.html connection history toggle with performance fixes (Phase 4)
Phase 1 (ndk-worker.js): Add warmOutbox, setRelayEventLogging, and getDiscoveredRelays RPC handlers. Gate broadcastRelayEvent and logRelayEvent IndexedDB writes behind relayEventLoggingEnabled flag (default off). trackRelayRead/trackRelayWrite left ungated to preserve footer activity carrots.

Phase 2 (init-ndk.mjs): Add warmOutbox, setRelayEventLogging, and getDiscoveredRelays page API exports with proper request/response wiring and timeouts.

Phase 3 (feed.html): Pre-warm outbox tracker via warmOutbox() before bootstrapFeedPosts and fetchFeedWindow calls so NDK routes author-based subscriptions to follows' write relays before short-lived fetchEvents EOSE.

Phase 4 (relays.html): Add 'Show connection history' sidenav toggle (sidenavRowToggle pattern from feed.html), gate ndkRelayEvent listener and DB loading behind connectionHistoryEnabled flag, switch live event stream to incremental DOM appending, sync state on init/beforeunload.
v0.7.40
2026-06-26 09:38:31 -04:00
Laan Tungir 3ed0c35611 Fix post-feed reply composer width: #divComposer was nested in #divThread and re-applied 80% (560px); now fills parent (700px) v0.7.39 2026-06-26 07:26:09 -04:00
Laan Tungir d9503c1532 Revert: remove layout:'inline' from mountComposer in post-feed.html — made it worse v0.7.38 2026-06-26 07:18:32 -04:00
Laan Tungir fa0859dcdd Fix post-feed.html: reply composer width — add layout:'inline' to mountComposer
The composer wrapper defaults to width:60% (post-composer.css). Adding
layout:'inline' applies the --inline class which sets width:100%.
v0.7.37
2026-06-25 21:29:31 -04:00
Laan Tungir 0c340316ae Fix post-feed.html: reply composer width — add width:100% and box-sizing:border-box to .topPostComposerInput v0.7.36 2026-06-25 21:22:38 -04:00
Laan Tungir 313a55992f Change Nutzap button label from peanut emoji to text 'Nutzap' v0.7.35 2026-06-25 21:18:47 -04:00
Laan Tungir ece3a136c1 Redesign: Split Zap into two buttons (Zap + Nutzap) with separate counts and popups
- Split single Zap button into Zap ( Lightning) and Nutzap (🥜 Cashu) buttons
- Each button has its own count display and popup dialog
- Zap button: only sends Lightning zaps via Cashu melt, simplified dialog (no rail selector)
- Nutzap button: sends NIP-61 nutzaps, dialog shows recipient's accepted mints
- Removed capability badges (buttons themselves show capability via dimming)
- Removed separate nutzap count display (count now on Nutzap button)
- Added applyZapCapabilityDimming() — dims buttons based on resolveZapCapabilities
- Added promptNutzapDetails() to zaps.mjs — shows recipient mints and shared mint info
- Simplified promptZapDetails() — removed rail selector, Lightning only
- Added .interaction-item.nutzap and .dimmed CSS styles
- All colors use CSS variables only
v0.7.34
2026-06-25 21:13:55 -04:00
Laan Tungir 543ae6a1b3 Fix feed.html: disable inline comment rendering that caused flash of replies
Two fixes:
1. post-interactions2.mjs: only call addCommentToPost when getCommentsVisible() is true
2. feed.html: call cards.setCommentsVisible(false) after initPostCards to disable
   inline comment rendering for the new simplified feed

The old feed (feed-old.html) still has the Comments toggle and can re-enable them.
v0.7.33
2026-06-25 21:02:21 -04:00
Laan Tungir 508952a1ea Rename feed.html -> feed-old.html, feed2.html -> feed.html
The new simplified feed (formerly feed2.html) is now the primary feed page.
Updated post-feed.html back button to point to feed.html instead of feed2.html.
v0.7.32
2026-06-25 20:57:34 -04:00